Как вы поддерживаете свое многоязычное приложение?

StackOverflow https://stackoverflow.com/questions/190162

  •  06-07-2019
  •  | 
  •  

Вопрос

Как вы поддерживаете в актуальном состоянии строки разговорных языков в вашей программе?Есть ли недорогой способ?Где вы можете найти людей, которые со временем будут совершать конверсии?

Это было полезно?

Решение

Есть компании, которые переводят файлы ресурсов в стандартные форматы за плату; Я думаю, что так делают большинство крупных компаний.

Недавно я задал похожий вопрос здесь о лучший способ структурировать код в проекте, чтобы поддержать это, с моим дополнительным желанием сохранить читаемые строки в коде. Это не стандартно, хотя ... обычно вы помещаете все строковые ресурсы в отдельный файл и обращаетесь к ним по идентификатору в коде, а файл переводите.

См. файлы .rc для Windows C ++, файлы .resx для .NET, не уверен, что существует для Linux / Mac / other, но я уверен, что есть эквиваленты.

Другие советы

Это было взято в «Лучшем программном обеспечении» Джоэла I: http : //blogs.msdn.com/ericlippert/archive/2003/10/28/53298.aspx (Сколько сотрудников Microsoft требуется, чтобы заменить лампочку?), и на высоком уровне обсуждается, насколько просто изменения имеют большие последствия. Если вы считаете, что MS имеет много интернационализированных приложений, и это процесс, который они используют для обеспечения актуальности своих приложений с учетом тысячи факторов, в том числе новые / измененные строки не пропускаются на других языках.

Для нужд перевода (область, в которой у меня есть немного знаний!), я бы порекомендовал OmniLingua Worldwide.

Я думаю, это зависит от того, насколько вы хотите, чтобы языки были, что, вероятно, очень сильно зависит от того, какой проект стоит на первом месте (профессионал, хобби и т. д.)

В моей хобби-работе у меня есть строки, специфичные для локали, которые хранятся в простом внешнем файле JSON (XML или даже простой INI будут работать так же хорошо, что угодно, что может дать вам пары ключ-значение). Это дает преимущества кроссплатформенности, простоты редактирования и (если это необходимо) позволяет любому человеку, обладающему знаниями и решимостью, перевести ваше приложение на свой язык. Для проектов с открытым исходным кодом и тому подобного это может быть неоценимо.

Для проектов, которые вы, возможно, не захотите переводить вольно или невольно, тогда встроенные ресурсы, вероятно, являются более безопасным вариантом, так как разработчикам их довольно легко заменить, но они дают хотя бы тривиальный блокпост потенциальным переводчикам. Однако даже в этом случае метод хранения не должен быть сложным. Подойдет любой из указанных типов файлов или таблица собственных строк.

В проектах, над которыми я работал, мы использовали два разных подхода к локализации, в зависимости от размера проекта. Для небольших проектов, где каждый разработчик владеет " Компонент несет ответственность за ведение списка того, что необходимо перевести и на какие языки.

Для более крупных проектов мы пометили каждую строку префиксом языка. Например, немецкая строка для " Да " помечен как «[де] Да». После локализации строка заменяется на «Ja». Это облегчает поиск пропущенных вещей, поскольку вы можете искать по префиксу.

Что касается дополнительных коммерческих источников, я работал в разных местах с Net-Translators и BMT , последний из последних.

Я настоятельно рекомендую проверить западный ветер поставщик ресурсов БД.

Я управляю веб-приложением для управления проектами с открытым исходным кодом ( http://sharpforge.org/p/SharpForge.aspx ) и изначально использовал файлы resx.Вот проблемы, которые у меня возникли

  • Я хотел получить доступ к этим ресурсам, строго типизированным на уровне BLL.Это просто было невозможно.
  • Файлы resx также очень сложны в обслуживании, добавление / удаление / изменение ключей ресурсов может создать всевозможные проблемы.
  • Наконец, у меня возникли огромные проблемы с сохранением файлов, не используя редакторы с правильной символьной картой / кодировкой, которые удаляли бы весь переведенный текст.Процесс получения ресурсов из транслятора в репозиторий кода часто приводил к искажению текста.

Мне удалось реализовать поставщика БД как часть приложения.Он поставляется с редактором, к которому вы можете предоставить переводчикам доступ.Их перевод поступает непосредственно в приложение без двойной обработки и доступен сразу после перезапуска приложения.Он также имеет возможность создавать строго типизированные объекты для доступа к поставщику с любого уровня.

Как только это было установлено, я просто создал проект перевода на getafreelancer получить фрилансер и смог сделать 25 переводов для моей заявки примерно за 2 недели.Все примерно по 50-100 долларов США за штуку.

Свяжитесь с нами по форумы sharpforge если у вас есть какие-либо вопросы о том, как это реализовать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top