Trong Django, tôi vui vẻ sử dụng ugettext_lazy
để đặt bản dịch của chuỗi chỉ khi biểu diễn của nó là cần thiết.Django: giữ bản dịch lười biếng khi soạn các chuỗi đã dịch
Vấn đề là khi tôi nối một chuỗi ký tự vào một chuỗi bình thường hoặc khi tôi sử dụng các phương thức của nó (ví dụ: viết hoa()), chuỗi được đánh giá và tôi dịch lỏng lẻo.
Ví dụ:
label = ugettext_lazy('my label') #This is lazy
label_concat = label + ' some other string' #'label_concat' contains transalted 'label'
label_cap = label.capitalize() #'label_cap' contains transalted 'label'
#Set language
...
print label #Translated
print label_cap #Not translated
Tôi biết rằng đây là hành vi bình thường của Django nhưng tôi tự hỏi nếu ai đó đã giải quyết vấn đề này.
Đối với django 1.11 và hơn thế nữa. https://stackoverflow.com/questions/29252312/how-can-i-join-lazy-translation-in-django/47263039#47263039 – Jay