Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Многоязычность


Автор: Алкоголик 9.4.2009, 08:32
Здраствуйте.
Есть проект реализованный на русском языке, нужно добавить туда поддержку английского.
В проекте пара форм, на которых раскиданы элементы. И штук 15 модулей в которых тоже есть текст.
Вот как тут лучше реаизовать подключения языков?

Добавлено через 11 минут и 58 секунд
Понимаю, что через iniFiles.. но как, куда и в какие моменты считывать их. В модулях вместо текста подставлять переменную и в нее уже считывать или как? и считывать когда? при создании программы(в какой то глобальный массив) или когда идет обращение к модулю?

Автор: pseud 9.4.2009, 09:22
Вариант1:
1.
Код

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

resourcestring
  S_STRING = 'Локализация';

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Caption := S_STRING;
end;

2. компилишься
3. открываешь свой Project1.exe каким-нибудь редактором ресурсов (например, ExeScope)
4. находишь свои русские строки и обзываешь по английски (французски, тулузски)
5. сохраняешь и запускаешь свой новоиспеченный Project1.exe - english-вершн

Автор: Akella 9.4.2009, 09:26
Вариант 2. 
Ставишь компоненты типа TsiLang (локализация приложений)

Автор: Алкоголик 9.4.2009, 09:50
Ну первый вариант меня не устрайвает. А вот второй заинтересовал, а не могли бы вы посоветовать какой-нибудь бесплатный компонентик. А то неохото для небольшой программы покупать..
Используется Delphi 2007

Автор: CodeMonkey 9.4.2009, 10:10
http://delphikingdom.ru/asp/viewitem.asp?catalogid=335 + см. обсуждение

Автор: Алкоголик 9.4.2009, 11:02
Как я понял эти компоненты меняют Caption у кнопок лейбелов и прочего.. А когда русский текст находится в тексте программы?

Автор: cemick 9.4.2009, 11:57
Цитата(Алкоголик @  9.4.2009,  11:02 Найти цитируемый пост)
Как я понял эти компоненты меняют Caption у кнопок лейбелов и прочего.. А когда русский текст находится в тексте программы? 

Тогда сам и меняй в рантайме, в зависимости от выбранного языка, делов-то...

Автор: CodeMonkey 9.4.2009, 12:11
Цитата
Как я понял эти компоненты меняют Caption у кнопок лейбелов и прочего.

Не только.

Цитата
А когда русский текст находится в тексте программы?

Есть такая хорошая практика: все константы, которые нужно локализовывать, необходимо оформлять как http://transl-gunsmoker.blogspot.com/2008/12/blog-post_9202.html.

Автор: Bose 9.4.2009, 14:00
Цитата(CodeMonkey @  9.4.2009,  09:10 Найти цитируемый пост)
http://delphikingdom.ru/asp/viewitem.asp?catalogid=335 + см. обсуждение 

Тема хорошая, жалко только, что инфа там немного устаревшая. 

Цитата(CodeMonkey @  9.4.2009,  11:11 Найти цитируемый пост)
Есть такая хорошая практика: все константы, которые нужно локализовывать, необходимо оформлять как resourcestring. 

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

Цитата(Алкоголик @  9.4.2009,  07:32 Найти цитируемый пост)
Есть проект реализованный на русском языке, нужно добавить туда поддержку английского.

А вот это, кстати, может вызвать трудности, в случае если перевод сделан по словарю. Но это так, мысли вслух.

Автор: ZBugz 10.4.2009, 07:51
А я его юзаю http://www.dk-soft.org/download.php?lang=ru&cat_id=4
Всегда работает и бесплатно smile 

Автор: Алкоголик 11.4.2009, 07:26
Но он вроде не работает с D2007?

Автор: GN1 11.4.2009, 09:24
Цитата(Алкоголик @ 11.4.2009,  07:26)
Но он вроде не работает с D2007?

Угу, "DKLang Localization Package 4" работает только с 2009.

Автор: Алкоголик 11.4.2009, 13:24
Попытался использовать  "DKLang". Но возникло пару вопросов:
1) Нужно на каждую форму кидать что ли компонент? А как быть с unit' ами?
2) Он не видит resourcestring?

Автор: GN1 12.4.2009, 10:46
Да, на каждую форму.
Там есть хелп, и примеры отличные smile Я по ним разобрался.

Автор: ZBugz 13.4.2009, 08:02
Цитата(GN1 @ 12.4.2009,  10:46)
Да, на каждую форму.
Там есть хелп, и примеры отличные smile Я по ним разобрался.

+1
Ниче сложно, все в примере есть smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)