2008-10-10 2 views

ответ

1

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

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

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

+0

Спасибо, что вы знаете, где найти эти компании? – 2008-10-10 05:03:56

1

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

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

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

2

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

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

1

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

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

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

1

Я настоятельно рекомендую проверить западный ветер db resource provider.

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

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

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

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

Если у вас есть вопросы по поводу его применения, свяжитесь с нами по адресу sharpforge forums.