1

У меня есть большой проект, написанный на родном языке (Hun) в C# с Visual Studio 2012.Переводя визуальный проект студии

Я хотел бы, чтобы перевести его на английский.

Конечно, если я получу текст на венгерском языке, я могу его перевести, поэтому дело не в том, как перевести текст, а в том, как сделать весь перевод проще. Мне не нужно программное обеспечение для изменения языка во время выполнения, это также нормально, если я получаю другой проект с другим языком. Один из способов - пройти весь проект и изменить все ярлыки, но это большая работа, и потому, что я изменяю весь проект, мне придется делать это снова и снова.

Я написал другую программу, которая находит метки, помеченные «...» в файлах проекта (например, «Form1.cs» и т. Д.), И я мог бы их перевести. У этого было много ошибок. Например, Visual Studio разбивает длинный текст, поэтому я разделил эти строки, поэтому после всего перевода все еще много работы.

Другая идея заменить все строки с массива вещей, как вместо того, чтобы писать «Отменить», написание т [201] или что-то подобное, и тогда я мог бы перевести только переменную т. Но это также большая работа, и есть проблема, если я включаю переменную в текст.

Для excample, в венгерский я мог бы написать «2 masodperc maradt», но я должен перевести это на «Оставаясь секунд: 2» или что-то подобное. Тогда я должен учитывать включенные переменные.

Как вы думаете, что самый простой способ - сделать перевод, и как это делают другие программисты?

Для справки TotalCommander меняет язык за секунду, без перезапуска или чего-либо еще.

ответ

3

Существует встроенный способ в .Net с использованием файлов resx.

  • Вы можете найти краткое введение here.

  • Подробнее о Programmers stackexchange

  • MSDN довольно обширен с его документацией по этой теме, и это хорошо читать. MSDN

Есть много инструментов там помогают с переводом на основе локализации .Net, но вы также можете сделать это в VS непосредственно.

  • Может быть ResXManager имеет свой вкус

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

Если вы хотите сделать что-то подобное самостоятельно, помните, что вам также необходимо изменить размеры элементов управления, чтобы текст соответствовал.

Для вашей проблемы с текстовым текстом и текстовым текстом #count вы можете использовать string.Format like.

  1. Добавить Resx файл в свой проект как Localized.resx
  2. Добавить строковое свойство «CountText» со значением {0} текст текста.
  3. Добавить второй resx Localized.en.resx
  4. Добавить свойство строки "CountText" со значением текстового текста {0}. to Localized.en.resx
  5. Где вы пишете свой прогресс в строке использования GUI.Format (Localized.CountText, myCount);
  6. Переключите язык программы, как показано в первой ссылке.
  7. .Net автоматически загружает соответствующий ресурс для языка.

Чтобы узнать обо всех возможностях, особенно в переводе с VS, вы действительно должны ознакомиться с статьями библиотеки MSDN. Перевод может стать громоздким, если вы что-то пропустите.

+0

Хорошо, это действительно работает и потрясающе. Но есть ли способ решить эту проблему, что переменная идет в середине текста на одном языке и идет в конец текста на другом языке? – weiszam

+0

См. Мое редактирование выше ... – wonko79

+0

Это последнее редактирование помогает. Большое спасибо! – weiszam

Смежные вопросы