# Попытка реализовать мультиязычность

**URL:** <https://discourse.cataclysmdda.org/t/topic/1744>\
**Category:** Основное обсуждение "Катаклизма"\
**Created:** [June 11, 2013, 6:20pm UTC](https://discourse.cataclysmdda.org/t/topic/1744 "2013-06-11T18:20:14Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![Savidiy](https://avatars.discourse-cdn.com/v4/letter/s/a183cd/32.png) [@Savidiy](https://discourse.cataclysmdda.org/u/Savidiy)\
**Post date:** [June 11, 2013, 6:20pm UTC](https://discourse.cataclysmdda.org/t/topic/1744/1 "2013-06-11T18:20:14Z")

</div>

В общем, я вижу решение задачи следующим:  
Программная часть:

1. В настройках добавляется пункт Language, который имеет цифровое значение
2. Все строковые константы выносятся в отдельный файл. Оформляются, например, “ittypdef\_cpp\_corpse\_DSC” (описание трупа в файле ittypdef.cpp), указывая в названии имя файла, где использовалась константа. Для каждого языка соответственно имеется свой файл.
3. Добавляется модуль, который выполняет две функции. Во-первых, при старте программы загружает языковые константы из соответствующего файла. Во-вторых, по требованию возвращает требуемый текст по идентификатору, т.е. вместо

```auto

```

получаем

```auto

```

1. Для учета согласования слов и пола говорящих, фразы имеют несколько вариантов. Кроме того фраза может содержать спецсимвол указывающий, например, на необходимость следующую фразу взять во второй форме (Взять + зажигалка -\> Взять + зажигалку). Перенос части логики в сами фразы обусловлен тем, чтобы не править код при переводе на разные языки, а править только текст. Что-то там + предмет и крутитесь, как хотите.

Текстовая часть:  
Оформляется электронная таблица для перевода. Сожержит секции соответствующие исходным файлам, с колонками:

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

Соответственно я против просто правки английского текста на русский в коде, я за добавление возможностей подключения разных языков.

Готов заняться организационной и программной частью этой затеи. aiwant2tc, берешься за перевод?

Кнопки действий остаются английскими. То есть будет (Y)Да / (N)Нет.  
Ну и предвижу сложность в том, что русские слова могут быть длиннее английских.

---

_[View the full topic](https://discourse.cataclysmdda.org/t/topic/1744)._
