EN (sorry... it's Google-translate text
)
This idea is already hovering in the brain ...)
1. Create a list of all the phrases used by the program, save them to file for a particular language.
For example it can be done in the image and likeness of INI-file:
Code: Select all
IDC_COMMANDNAME = "name of command" or IDN_COMMANNUMBER = "name of command"
example:
Code: Select all
IDC_NEW = "New" or IDN_4101 = "New"
------------
example:
------------
Code: Select all
IDMC_MESSAGECAPTION = "title of the message box"
example:
Code: Select all
IDMC_AKELPAD = "AkelPad message ..."
------------
------------
etc. ..
2. Put in folder AkelFiles\Langs these files for different languages.
If files are missing, the program takes the English (probably need to keep fnutri, as now).
3. Use in the program, plugins, scripts defined messages from lng-files.
Add to Scripts-plug method, which returns to the text on ID._. .., respectively, the current language, for example:
Code: Select all
var txt = AkelPad.GetLangString (IDMT_QREPLACEFILE);
txt enrolled in the variable value to the message: "
File already exists, replace it it?"
By the way, could be in the messages indicate variables, such as:
Code: Select all
IDMT_QREPLACEFILE = "File %VAR1% already exists, replace it?"
and then, having received the message already in the program/plugin/script to replace
%VAR1%...n on corresponding values.
In my opinion, not a bad idea
P.S.
Here, I once suggested that the format of the menu ... but this work is more serious and global.
RU
Подобная идея уже витала в мозгу...)
1. Создать список всех фраз, используемых программой, сохранять их в файле для определённого языка.
Например это можно сделать по образу и подобию INI-файлов:
Code: Select all
IDC_COMMANDNAME = "Имя команды" или IDN_COMMANNUMBER = "Имя команды"
т.е. это выгледело бы так:
Code: Select all
IDC_NEW = "Новый" или IDN_4101 = "Новый"
------------
пример:
------------
Code: Select all
IDMC_MESSAGECAPTION = "заголовок окна сообщения"
пример:
Code: Select all
IDMC_AKELPAD = "AkelPad message..."
------------
Code: Select all
IDMT_MESSAGETEXT = "текст сообщения"
------------
и т.д...
2. Положить в папке AkelFiles\Langs эти файлы для разных языков.
Если файлов нет, то программа берёт английский (видимо надо хранить фнутри, как и сейчас).
3. Использовать в программе, плагинах, скриптах установленные сообщения из lng-файлов.
Добавить в Scripts-плагин метод, который возвращал бы текст по ID._..., соответственно текущему языку; например:
Code: Select all
var txt = AkelPad.GetLangString(IDMT_QREPLACEFILE);
в переменную txt записалось бы значение сообщения: "
Файл уже существует, заменить его?"
Кстати, можно было бы в сообщениях указывать переменные, например:
Code: Select all
IDMT_QREPLACEFILE = "Файл %VAR1% уже существует, заменить его?"
а затем, получив текст сообщения, уже в программе/плагине/скрипте заменять
%VAR1%...n на соотвтетствующие значения.
По моему, неплохая идея