Почему я не хочу использовать Resx файлы:Локализация Альтернативой Resx файл
Ищу альтернативу для Resx файлов, чтобы предложить многоязычную поддержку моего проекта, в силу следующих причин:
- Я не люблю указывать «messageId» при написании сообщений, это больше усилий, и это раздражает поток, поскольку я не вижу, что на самом деле скажет сообщение журнала, и мне нужно будет открыть другое для редактирования сообщения
- Иногда я использую встроенный код, потому что я Не хотите создавать новые переменные для простых шагов (e. г.
Log.Info("Iterated {i+1} times");
). Использование переменных или делать простые расчеты инлайн делает весь код иногда более четко, чем создавать дополнительные строки кода
То, что я мог себе представить, вместо того, чтобы:
Внешнее приложение, которое ползает скомпилированный ехе для всех строк, давая вы можете игнорировать/добавлять строки, которые нужно перевести. Он также может создавать XML или Json-файл для всех языков. Он заменил бы все строки хэшем/id так, чтобы поиск строк для всех языков по-прежнему возможен.
Является ли я единственным, кто недоволен обычно используемым решением Resx/centralized db? Могу ли я пропустить точки, почему это не будет хорошей идеей?
Вы описываете gettext здесь. И там [кажется, тоже поддерживается C#] (https://www.gnu.org/software/gettext/manual/html_node/C_0023.html). Однако подход к ресурсам работает для большего количества вещей, чем просто строки. – Joey
Хм, чтобы быть точно вам нужно отредактировать код внутри вашего проекта, и то, что я предлагаю, не требует каких-либо изменений в моем коде проекта. – kentor
Нет волшебства. Если вы не хотите использовать встроенный подход Microsoft, вам нужно отредактировать код для использования другого. –