?

Log in

No account? Create an account

Previous Entry | Next Entry

LInvert

Как известно, правила локализации Qt-приложений требуют, чтобы все строковые константы в программе были обрамлены в функции tr() или translate(). Также считается хорошей практикой (хотя и не требуется разработчиками Qt), чтобы эти константы содержали только латинские символы. В противном случае надо либо заменять tr() на trUtf8(), либо колдовать с кодеками и CODECFORTR/CODECFORSRC. Ситуация осложняется, когда для национального языка имеют хождение несколько разных кодировок, с русским языком дела обстоят именно так.

Как правило, в текстах программы все сообщения пишут на английском языке, а остальные языки существуют только в файлах переводов. Единственный минус такой схемы - если программа изначально разрабатывалась для неанглоязычных пользователей (особенно это относится к заказному ПО, которое изначально делается под конкретного заказчика), то размещая английский текст в коде, а перевод где-то ещё, мы проделываем двойную работу. Поэтому зачастую текст хардкодится в программе на родном для программистов и пользователей языке (в этом случае крайне рекомендуется применение UTF-8). Но что делать, если ПО изначально делалось для конкретных клиентов, а потом начало перерастать в международный продукт?

Читать дальше...