Сделано в этом сообществе вики: 3
Я занимаюсь разработкой базовой RPG, и одна из моих целей с самого начала - убедиться, что моя программа не зависит от языка. По сути, прежде чем я спроектирую или начну программировать какие-либо меню, я хочу убедиться, что я могу загружать и отображать их из поддерживаемых языков, чтобы я не программировал значения.
(Это спасло бы меня от многих мигрантов в будущем)
Для этого примера давайте использовать западные языки слева направо. Английский, испанский, немецкий, французский, итальянский.
Это базовый пример того, что у меня есть.
Один XML-файл содержит отображение и схему разговора.
<conversation>
<dialog>line1</dialog>
<dialog>line2</dialog>
</conversation>
Другие XML-файлы содержат определения.
<mappings language="English">
<line1>This is line 1 in English!</line1>
<line2>Other lines are contained in language-separated xml files</line2>
</mappings>
Хех. Это будет прекрасно работать, кроме того факта, что я забыл, что английский язык не назначает роды своим словам, в то время как другие языки делают. Поэтому, когда одного предложения на английском языке может быть достаточно, мне может понадобиться два предложения на других языках: одно, чтобы охватить время в маслинском, а другое - в женском.
Каким был бы самый обнадеживающий способ решения этой проблемы? Прямо сейчас я подумал о том, чтобы придумать разные таблицы сопоставления, одна из которых исключительно для предложений мужского времени, тогда как другая таблица будет охватывать только женские времена. Или просто чтение из разных таблиц определений.
И еще один кикер будет основан на моем дизайне игровых данных. Я никогда не думал об этом, но мне может понадобиться хранить в моих игровых элементах и персонажах их пол, чтобы я мог использовать правильное предложение. Тем не менее, у других языков могут быть свои специфические особенности, которые мне необходимо учитывать (хотя, к счастью, из того, что я знаю, итальянский и испанский языки относительно похожи, и, возможно, французский также.)
Так что, очевидно, передо мной стоит огромная задача. Какие еще соображения по поводу дизайна я должен подумать? Ладно, я думаю, что статический класс будет проще всего. Сконфигурируйте выбранный язык при запуске, добавьте входные данные и, надеюсь, верните строку.
Любые идеи (ищите идеи: P)