Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2002-07

Internationalization-Russian

9 messages · 4 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

�������

So, lazarusidestrconsts.pas seems to be a place for internationalization. Here is a Russian version of menu etc. May be, .mo will be much better, but I don't know how will it work with fpc.

{ $Id: lazarusidestrconsts.pas,v 1.6 2002/06/28 06:34:54 lazarus Exp $ } {
/*************************************************************************** lazarusidestrconsts.pas
-----------------------
This unit contains all resource strings of the IDE

***************************************************************************/

***************************************************************************
* *
* This source is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This code is distributed in the hope that it will be useful, but *
* WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
* General Public License for more details. *
* *
* A copy of the GNU General Public License is available on the World *
* Wide Web at <http://www.gnu.org/copyleft/gpl.html>. You can also *
* obtain it by writing to the Free Software Foundation, *
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
* * *************************************************************************** }
unit LazarusIDEStrConsts;

{$mode objfpc}{$H+}
interface
uses
  Classes, SysUtils;
ResourceString
  // component palette
  lisSelectionTool = '���������� ������';
  // macros
  lisCursorColumnInCurrentEditor = '������� ������� � ������� ���������';
  lisCursorRowInCUrrentEditor = '��� ������� � ������� ���������';
  lisCompilerFilename = '��� ����� �����������';
  lisWordAtCursorInCurrentEditor = '����� "���" �������� � ������� ���������';
  lisExpandedFilenameOfCurrentEditor = '����������� ��� ����� ��� �������� � ������� ���������';
  lisFreePascalSourceDirectory = '������� ���������� Freepascal''�';
  lisLazarusDirectory = '������� Lazarus';
  lisLCLWidgetType = '��� "�������" LCL';
  lisCommandLineParamsOfProgram = '��������� ��������� ������ ���������';
  lisPromptForValue = '������������ ��������';
  lisProjectFilename = '��� ����� �������';
  lisProjectDirectory = '������� �������';
  lisSaveCurrentEditorFile = '��������� ������� ���� ���������';
  lisSaveAllModified = '��������� ��� ���������� �����';
  lisTargetFilenameOfProject = '��� ������������ ����� �������';
  lisTargetFilenamePlusParams = '��� ���. ����� + ���������';
  lisLaunchingCmdLine = '��������� ������ ������� ������������ �����';
  // main bar menu
  lisMenuFile = '&����';
  lisMenuEdit = '&������';
  lisMenuSearch = '&�����';
  lisMenuView = '&���';
  lisMenuProject = '&������';
  lisMenuRun = '&������';
  lisMenuTools = '&�����������';
  lisMenuEnvironent = '&���������';
  lisMenuHelp = '&�������';
  lisMenuNewUnit = '����� ������';
  lisMenuNewForm = '����� �����';
  lisMenuOpen = '�������';
  lisMenuOpenRecent = '������� ��������';
  lisMenuSave = '���������';
  lisMenuSaveAs = '��������� ���';
  lisMenuSaveAll = '��������� ���';
  lisMenuClose = '�������';
  lisMenuCloseAll = '������� ���';
  lisMenuQuit = '�����';
  lisMenuUndo = '��������';
  lisMenuRedo = '�������';
  lisMenuCut = '��������';
  lisMenuCopy = '����������';
  lisMenuPaste = '��������';
  lisMenuIndentSelection = '�������� ��������� ������';//� �� ����, ��� ��� ��������� �����
  lisMenuUnindentSelection = '�������� ��������� �����';
  lisMenuUpperCaseSelection = '������� �������';
  lisMenuLowerCaseSelection = '������ �������';
  lisMenuTabsToSpacesSelection = '���������� ��� � ������ � ���������';
  lisMenuCompleteCode = '��������� ���';
  lisMenuFind = '�����';
  lisMenuFindNext = '������ &�����';
  lisMenuFindPrevious = '������ &�����';
  lisMenuFindInFiles = '����� &� ������';
  lisMenuReplace = '������';
  lisMenuGotoLine = '������� � ������';
  lisMenuJumpBack = '������� �����';
  lisMenuJumpForward = '������� ������';
  lisMenuAddJumpPointToHistory = '������ ����� �������� � �������';//:-) history means History
  lisMenuViewJumpHistory = '�������� ������� ���������';
  lisMenuFindBlockOtherEndOfCodeBlock = '����� ������ ����� ���� �����';
  lisMenuFindCodeBlockStart = '����� ������ ����� ����';
  lisMenuFindDeclarationAtCursor = '����� �������� ��� ��������';
  lisMenuOpenFilenameAtCursor = '������� ��� ����� ��� ��������';
  lisMenuGotoIncludeDirective = '������� �� ��������� include';
  lisMenuViewObjectInspector = '��������� ��������';
  lisMenuViewProjectExplorer = '��������� �������';
  lisMenuViewCodeExplorer = '��������� ����';
  lisMenuViewUnits = '������...';
  lisMenuViewForms = '�����...';
  lisMenuViewMessages = '���������';
  lisMenuDebugWindows = '���� �������';
  lisMenuViewWatches = '����������� ��������';
  lisMenuViewBreakPoints = '����� ��������';
  lisMenuViewLocalVariables = '��������� ����������';
  lisMenuViewCallStack = '���� �������';
  lisMenuViewDebugOutput = '����� ���������';
  lisMenuNewProject = '������� ������';
  lisMenuOpenProject = '������� ������';
  lisMenuOpenRecentProject = '������� �������� ������';
  lisMenuSaveProject = '��������� ������';
  lisMenuSaveProjectAs = '��������� ������ ���...';
  lisMenuAddUnitToProject = '�������� �������� ������ � �������';
  lisMenuRemoveUnitFromProject = '������� �� �������';
  lisMenuViewSource = '�������� �������� ���� �������';//�������, ��� �����
  lisMenuProjectOptions = '��������� �������...';
  lisMenuBuild = '�������';
  lisMenuBuildAll = '������� ���';
  lisMenuProjectRun = '���������';
  lisMenuPause = '�������������';
  lisMenuStepInto = '��� �';
  lisMenuStepOver = '��� �����';
  lisMenuRunToCursor = '������ �� �������';
  lisMenuStop = '����������';
  lisMenuCompilerOptions = '��������� �����������...';
  lisMenuRunParameters = '��������� ������� ...';
  lisMenuSettings = '��������� ...';
  lisMenuQuickSyntaxCheck = '������� �������� ����������';
  lisMenuGuessUnclosedBlock = '������������ ���������� �����';
  lisMenuGuessMisplacedIFDEF = '������������ �������������� IFDEF/ENDIF';
  lisMenuBuildLazarus = '������� Lazarus';
  lisMenuConfigureBuildLazarus = '��������� ������ Lazarus';
  lisMenuGeneralOptions = '�������� ���������';
  lisMenuEditorOptions = '��������� ���������';
  lisMenuCodeToolsOptions = '��������� "������������ ����"';
  lisMenuCodeToolsDefinesEditor = '�������� �������� "������������ ����"';
  lisMenuAboutLazarus = '� ��������� Lazarus';
  // resource files //����������� �������...�����, � ����
  lisResourceFileComment =
    '{ ��� ���� �������, ������������� ��������� lazarus }';
  // file dialogs
  lisOpenFile = '������� ����';
  lisOpenProjectFile = '������� ���� �������';
  lisSaveSpace = '��������� ';
  // dialogs
  lisSaveChangesToProject = '��������� ��������� � ������?';
  lisProjectChanged = '������ �������';
  lisFPCSourceDirectoryError = '������ �������� ���������� FPC';
  lisPLzCheckTheFPCSourceDirectory = '����������, ��������� ������� ��������� ���� FPC';
  lisCompilerError = '������ �����������';
  lisPlzCheckTheCmpilerName = '����������, ��������� ��� ����� �����������';
  lisAboutLazarus = '� ��������� Lazarus';
  lisAboutLazarusMsg =
     '��������: GPL/LGPL'
    +#13
    +'Lazarus - ��� ���������� ������� ��� Free Pascal ��� �������� Delphi.'#13
    +'Free Pascal - ���������� �� (L)GPL, ����������� ��� Linux,'#13
    +'Win32, OS/2, 68K � ��. Free Pascal ���������� ��� ����, �����'#13
    +'��������� ��������� Delphi, �������, �����������, ���.'#13
    +'Lazarus - ����������� ����� ����, ������� �������� ���'#13
    +'������������� ��������� ���� Delphi ��� ���� ��������� ��������.'#13
    +'IDE ����� ����� ����� ������������ RAD, ��� � Delphi.'#13
    +#13
    +'��������� Lazarus "������", ��� ����� ������ ������������.'#13
    +'��������, ����������� ����� ������ � ��������� � ���������.';
  lsiUnitNameAlreadyExistsCap = '������ � ����� ������ ��� � �������';
  lsiUnitNameAlreadyExistsText = '������ "%s" ��� ����������.'#13
       +'"Ignore" �������� � ��������������,'#13
       +'"Cancel" ������� ��������� � ������� ���� �'#13
       +'"Abort" ��������� ������ ������.';
  lsiInvalidPascalIdentifierCap = '������������ ������������� �������';
  lsiInvalidPascalIdentifierText = '��� "%s" �� �������� ���������� ��������������� ����� �������.';
  // hints
  lsiHintNewUnit = '������� ������';
  lsiHintOpen = '�������';
  lsiHintSave = '���������';
  lsiHintSaveAll = '��������� ���';
  lsiHintNewForm = '������� �����';
  lsiHintToggleFormUnit = '����������� �����/������';
  lsiHintViewUnits = '�������� ������';
  lsiHintViewForms = '�������� �����';
  lsiHintRun = '���������';
  lsiHintPause = '�������������';
  lsiHintStepInto = '��� �';
  lsiHintStepOver = '��� �����';
implementation
end.

Reply by email

Sebastian Günther
to Michael Van Canneyt: FPC has gettext support if you use resourcestrings. See the gettext unit; and the…
Show quoted text 9 lines
So, lazarusidestrconsts.pas seems to be a place for > internationalization. Here is a Russian version of menu etc. > May be, .mo will be much better, but I don't know how will it work with > fpc. FPC has gettext support if you use resourcestrings. See the gettext unit; and the programmers manual contains a chapter on internationalization.

yes but the old gettext unit won't work well with different character sets than ISO8859-1. It _might_ work, when everything is not using Unicode but is configured to use the same character set.

- Sebastian

Reply by email

�������
to Michael Van Canneyt: FPC has gettext support if you use resourcestrings. See the gettext unit; and the…
Show quoted text 8 lines
full i18n support is not easy to do. We talked about this at the meeting in Strasbourg: The best solution is to use Unicode (i.e. WideStrings), and we would have to detect the current character encoding of the system. (we found out how libc is doing this, and it's quite complicated. So don't expect an implementation for FPC too soon). For now, the best solution is using some hacks... (simply assuming that codepages are set up correctly in the system, etc.) - just try it out and check wether it works or not...

Wide strings are not needed for are koi8-r string ��� ������ �� ������� � ��������� ���8 As a translit:
Eto stroka na Russkom v kodirovke KOI8

Reply by email

Sebastian Günther
to Michael Van Canneyt: FPC has gettext support if you use resourcestrings. See the gettext unit; and the…
Show quoted text 6 lines
>yes but the old gettext unit won't work well with different character >sets than ISO8859-1. It _might_ work, when everything is not using >Unicode but is configured to use the same character set. Hmm.

full i18n support is not easy to do. We talked about this at the meeting in Strasbourg: The best solution is to use Unicode (i.e. WideStrings), and we would have to detect the current character encoding of the system. (we found out how libc is doing this, and it's quite complicated. So don't expect an implementation for FPC too soon). For now, the best solution is using some hacks... (simply assuming that codepages are set up correctly in the system, etc.) - just try it out and check wether it works or not...

- Sebastian

Reply by email

Sebastian Günther
to �������: Wide strings are not needed for are koi8-r string ��� ������ ��…
Wide strings are not needed for are koi8-r string ��� ������ �� ������� � ��������� ���8 As a translit: Eto stroka na Russkom v kodirovke KOI8

I understand this, but it would be much clearer to use WideStrings whereever possible.
For example, a really correct Gettext translation file must have an encoding specification. Strings from a translation file without this will only be displayed correctly, when the default encoding of the X fonts is matching by accident. There are many issues with i18n, which are not obvious at the first look...

- Sebastian

Reply by email

Michael Van Canneyt
to �������: So, lazarusidestrconsts.pas seems to be a place for internationalization. Here is a…
������� wrote
So, lazarusidestrconsts.pas seems to be a place for internationalization. Here is a Russian version of menu etc. May be, .mo will be much better, but I don't know how will it work with fpc.

FPC has gettext support if you use resourcestrings. See the gettext unit; and the programmers manual contains a chapter on internationalization.

Michael.

Reply by email

Mattias Gaertner
to Michael Van Canneyt
Show quoted text 10 lines
Michael Van Canneyt schrieb: > So, lazarusidestrconsts.pas seems to be a place for >> internationalization. Here is a Russian version of menu etc. >> May be, .mo will be much better, but I don't know how will it work with >> fpc. > > > FPC has gettext support if you use resourcestrings. See the gettext > unit; and the programmers manual contains a chapter on > internationalization.

Good hint.

I will add some code for text language switching to lazarus this weekend.

yes but the old gettext unit won't work well with different character sets than ISO8859-1. It _might_ work, when everything is not using Unicode but is configured to use the same character set.

Hmm.

Mattias

Reply by email

�������
to Michael Van Canneyt: FPC has gettext support if you use resourcestrings. See the gettext unit; and the…
> yes but the old gettext unit won't work well with different character > sets than ISO8859-1. It _might_ work, when everything is not using > Unicode but is configured to use the same character set.

I need no unicode (koi8-r, only 33+33 cyrillic symbols are needed). But another problem (not connected with gettext) is that xkeyb uses unicode. So, lazarus don't support xkeyb ru in events. Really we should return to xmodmap?!! But about gettext. It worked with an example in fcl, russian worked well. But when I tried to use %s as a dir name (/usr/share/locale/...), it didn't work at all!
It seems to be good to internationalize dialogs.rst too. I made hard changes, it looked nice :)))

Reply by email

Mattias Gaertner
to �������: So, lazarusidestrconsts.pas seems to be a place for internationalization. Here is a…
So, lazarusidestrconsts.pas seems to be a place for internationalization. Here is a Russian version of menu etc. May be, .mo will be much better, but I don't know how will it work with fpc.

I have started the internationalization.
As an example I have created the german translation. This was a rather quick translation and the string constant units are not completed, so don't expect too much. The language is autodetected via the language environment variables LANG, LC_ALL and LC_MESSAGES. And you can override the language in the environment->General Options->Desktop.

Internals for the translators:
There are three new directories:
<lazarusdir>/languages
<lazarusdir>/components/codetools/languages
<lazarusdir>/lcl/languages

Plz read the README files in the directories. In each directory you can translate the *.po file just like the german. If the msgfmt complains about double ids, just delete one of the doubles. Probably we have to write a small script to auto delete doubles, before invoking msgfmt.

Plz send the translated .po files to one of the developers.

Mattias

Reply by email