В общем, методы перевода принимают ключевое значение> сопоставление значений и используют ключ, чтобы преобразовать его в значение. Теперь я признаю два разных метода, чтобы назвать ваши ключи перевода, и в моей команде мы не пришли к единому мнению, что кажется лучшим методом.Наилучшая практика для значений ключей в файлах перевода
Метод 1: Используйте полные английские слова или фразы:
Name => Name
Please enter your email address => Please enter your email address
Метод 2: Используйте ключевые слова, описывающие ситуацию:
NAME => Name
ENTER_EMAIL => Please enter your email address
Я лично предпочитаю метод # 1, так как он непосредственно показывает смысл сообщения. Если перевод отсутствует, вы можете вернуться к ключу, и это не вызовет никаких проблем. Тем не менее, этот метод является громоздким, когда перевод часто меняется, потому что все файлы необходимо обновить. Кроме того, для более длинных текстов эти клавиши становятся очень большими. Это решается с помощью таких клавиш, как ENTER_EMAIL
, но формулировка полностью вне контекста. Список ключей абстрактного перевода будет огромным, вам нужны метаданные для всех ключей, объясняющих их использование, а столкновения могут происходить намного проще.
Есть ли лучшее из двух миров или третьего метода? Как вы используете ключи перевода в своем приложении? В нашем случае это приложение, основанное на php, но я думаю, что проблема выше, достаточно общая, чтобы говорить о i18n в целом.
Интересный вопрос. Я также предпочитаю # 1, но идти на гибрид, когда ситуация оправдывает это. –
Я предпочитаю # 2 с требованием, конечно, что ВСЕГДА есть запись на английском (или оригинальном языке). Каждая запись также должна включать дату/время, когда она была обновлена в последний раз, чтобы указать измененные сообщения и необходимость обновленных переводов. Отдельно следует сохранить запись, которая сообщает, что такое исходный язык. –