Подскажите пожалуйста по своему опыту, какие ключи удобнее использовать в переводах - значимые как "User Settings" или нет ("userSettings", "user.settings"…). Задался этим вопросом когда наткнулся на этустатью. Плюс во многих проектах используются именно не значимые ключи (Chive как пример).
Я пользовался значимыми. Так хоть на одном из языков проект будет нормально отображаться (на исходном). Но это просто мое IMHO, проект был не большой, и кроме основного язык только один.
Думаю, зависит от конкретного проекта и личного удобства в работе. Подход из статьи использовать путь к слову понравился честно говоря, думаю, может быть удобным. Хотя логичнее в таком варианте сразу выносить тексты не в ‘app’, а разбивать на категории ‘model’ и подобное.
Я чаще всего использую такой вариант:
все тексты разбиты на категории, например ‘message’, ‘link’ или ‘form’. таким образом, если переводы хранятся в файлах, у вас будут messages/en/link.php, messages/en/form.php и т.п.
используются незначимые ключи. во-первых, меньше шансов на опечатки в больших текстах, во-вторых - перевод надо менять только в одном месте. ключи выглядят где-то так - ‘my_profile’.
Итого, получаем Yii:t(‘link’, 'my_profile);
Для случаев, если нет перевода на родной язык, лучше добавить откат к языку по умолчанию и выводить его перевод.
Мне сложно представить пример. Но я бы лучше воспользовался бы функцией изменения регистра, если таких слов много, что бы не захламлять файл локализации