Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как организовать мультиязыковую поддержку, Как это сделать правильно и без напряга 
:(
    Опции темы
new_web
Дата 12.2.2008, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 1.2.2008

Репутация: нет
Всего: нет



Решил себя попробовать в поддерже двух языков.

Делал файл констант
Код

AnsiString strProlot;
const AnsiString STR_PROLOT_UA="Будинок";
const AnsiString STR_PROLOT_RU="Дом";

AnsiString strLong;
const AnsiString strLong_UA="Довжина";
const AnsiString strLong_RU="Длина";


Потом сравнивал

Код

if(ukr)
{
strProlot=STR_PROLOT_UA;
strLong=strLong_UA;
}
if(ru)
{
strProlot=STR_PROLOT_RU;
strLong=strLong_RU;
}


Больше ничего умного не мог придумать! А как правильно?
PM MAIL   Вверх
sergejzr
Дата 12.2.2008, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



ищи реализацию хэш-таблиц в билдере(или std:map). Затем можно делать так:

Код

Hashtable * ru=new Hashtable();
ru->put('HOUSE',"Дом");
ru->put('LENGTH',"Длина");

Hashtable * ua=new Hashtable();
ua->put('HOUSE',"Будинок");
ua->put('LENGTH',"Довжина");



Ну а в самом коде:

Код

Hashtable *workingTable;
if(ukr)
{
workingTable=ua;
}else
{
workingTable=ru;
}
strProlot=workingTable->get("HOUSE");
strLong=workingTable->get("LENGTH");


Всё красиво и понятно. Ключи в таблице - слова на англицком. Ребята из раздела CPP возможно обьяснят, как пользоваться std:map, сам я уже забыл т.к пару лет не писал на сях. Но ключевое решение описно верно. 

Хотя возможно Бильдер предоставляет какие нибудь Properties именно для перевода. (Насколько я знаю, приложения дельфи одними из первых появились многоязычные)


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
new_web
Дата 13.2.2008, 01:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 1.2.2008

Репутация: нет
Всего: нет



sergejzr, Спасибо за совет!

Я знаком с указателями и таблицами на начинающим уровне, и мне самому было бы интересней и проще сделать это с помощью таблиц баз данных, будь-то Paradox, множество раз описанный во множестве учебников, и конечно же, я так буду делать, но можно ли эту таблицу скомпилировать, скомпоновать в один exeфайл, работающий без установки?
Или это совсем другая тема разговора?
 


PM MAIL   Вверх
artsb
Дата 13.2.2008, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



У Билдера есть свои средства. Открываем нужный проект, далее:

Project->Languages->Add



--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
new_web
Дата 13.2.2008, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 1.2.2008

Репутация: нет
Всего: нет



Цитата(artsb @  13.2.2008,  10:10 Найти цитируемый пост)
У Билдера есть свои средства. Открываем нужный проект, далее:Project->Languages->Add


Может. моя версия билдера устарела
Version 6.0   (Build 10.157)
или, я чего-то недопонял? У меня в меню  Project- нету Languages smile 
PM MAIL   Вверх
artsb
Дата 13.2.2008, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



У меня тоже 6-ой Билдер.

user posted image


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
new_web
Дата 13.2.2008, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 1.2.2008

Репутация: нет
Всего: нет



Цитата(artsb @ 13.2.2008,  10:51)
У меня тоже 6-ой Билдер.

user posted image

user posted image

Такое состояние дел у меня изменяемое?
PM MAIL   Вверх
artsb
Дата 13.2.2008, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Цитата(new_web @  13.2.2008,  19:21 Найти цитируемый пост)

Такое состояние дел у меня изменяемое? 

Хм...
У тебя какой Билдер?
У меня 6.0 Enterprise Suite.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0580 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.