В общем, методы перевода принимают ключевое значение > сопоставление значений и используют ключ, чтобы преобразовать его в значение. Теперь я признаю два разных метода, чтобы назвать ваши ключи перевода, и в моей команде мы не пришли к единому мнению, что кажется лучшим методом.
Метод 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 в целом.