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

Я планирую создать многоязычное приложение на C #, и мне было интересно, как лучше всего справиться со следующим:

  • Контейнер для языков;
  • Лучшие подходы к чтению / изменению после инициирования / запроса;
  • По мере роста программы увеличивается и текст для каждого языка, что вы обычно делаете и что рекомендуете в качестве наилучшей практики;
  • С какими проблемами вы столкнулись при выполнении таких приложений;

Спасибо за любые советы, ответы и т. Д.

Я был бы очень признателен за ссылки и образец кода, если это не слишком сложно (не обязательно, только если у вас есть время и вы можете).


person Prix    schedule 12.07.2010    source источник
comment
голос против без комментария - это как человек, который голосует без всякого смысла. Выходи и скажи мне хотя бы свою причину.   -  person Prix    schedule 12.07.2010
comment
Это был не я, но я думаю, что вопрос слишком общий. Может быть, разбить на: как создать многоязычный проект? Как хранить данные (подробнее о домене), как обращаться с i18n? и Т. Д.   -  person Mau    schedule 12.07.2010
comment
Спасибо за ввод, Мау, я буду переделывать его сейчас ... я очень не уверен, как это переписать.   -  person Prix    schedule 12.07.2010


Ответы (3)


Я бы сказал, что стандартный способ локализации приложения C # - использование ресурсов и вспомогательных сборок. Вот несколько статей об этом:

Создание и реализация вспомогательных сборок
Локализация как у профессионалов
MSDN: Локализация приложений

person Hans Olsson    schedule 12.07.2010
comment
Спасибо за ответ, но я посмотрю на него, надеюсь, теперь вопрос выглядит лучше. - person Prix; 12.07.2010

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

Если вы планируете хранить много данных, я бы посоветовал SQL Compact + NHibernate. XML работает очень медленно, особенно с C #.

person onof    schedule 12.07.2010
comment
Спасибо, я не уверен, будет ли это так много данных в начале, но я уверен, что со временем они будут расти с новыми функциями ... - person Prix; 12.07.2010

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

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

По следующей ссылке вы можете найти информацию о двух подходах.

.NET - Локализация с использованием файла ресурсов

Следующая ссылка - действительно хорошая статья о локализации и базовых концепциях.

Интернационализация и локализация

Надеюсь, поможет.

person Mario    schedule 12.07.2010