Довольно старый вопрос, но еще одна причина, которую я еще не видел в ответах:
Вы можете получить больше заполнителей, чем необходимо, таким образом, больше работы для переводчиков и возможные противоречивые переводы.Тем не менее, хорошие редакторы, такие как Poedit или Gtranslator, вероятно, могут помочь с этим.
Придерживайтесь вашего примера: текст «Пожалуйста, введите ваше имя» может появиться в другом контексте в другом шаблоне (что разработчик наиболеескорее всего не в курсе и не должно быть).Например, это может быть использовано не как ошибка, а как подсказка, похожая на заполнитель поля ввода.
Если вы используете
_("Please enter your name");
, его можно будет использовать повторно, разработчик может не знать о существующем ключе для сообщения об ошибке и просто интуитивно использовать тот же текст.
Однако, если вы использовали
_("error_please_enter_name");
в предыдущем шаблоне, разработчики не обязательно знали бы об этом и создали бы второй ключ (скорее всего, в соответствии с предопределенной схемой формулировок, чтобы не заканчиватьсяв полном хаосе), например
_("prompt_please_enter_name");
, который затем должен быть переведен снова.
Так что я думаю, что это не очень хорошо масштабируется.Предварительно согласованная схема формулировки суффиксов / префиксов, например, для контекстов, никогда не может быть настолько точной, как сам текст, я думаю (либо слишком многословным, либо слишком общим, до того, как вы не знаете, а после этого трудно изменить) и требует больше работыразработчик, который не стоит ИМХО.
Кто-нибудь согласен / не согласен?