C++ Builder 2010 で "GNU Gettext for Delphi and C++ Builder"を使ってみた。
インストールするファイルはググレ。
サンプルコードを触る
- dxgettext内にあるcppbuilderのサンプルプロジェクトをコンパイル・・・・失敗。
- webにDelphi9用のgnugettext.pasがあったので導入・・・・失敗
gnugettext.pasファイルを変更することでコンパイルできます。
390行あたりの
//const // LOCALE_SISO639LANGNAME = $59; // Used by Lazarus software development tool // LOCALE_SISO3166CTRYNAME = $5A; // Used by Lazarus software development tool
これでok
- poファイルの作成
コマンドラインから
ggdxgettext "C:\Program Files\dxgettext\example\cppbuilder"
を実行するとdefault.poが出来ます。
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-14 11:24+0900\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <[email protected]>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#. Form1..Caption
#: MainForm.dfm:4
msgid "GNU gettext sample application"
msgstr ""
#. Form1..Font.Name
#: MainForm.dfm:11
msgid "MS Sans Serif"
msgstr ""
#. Form1..Button1..Caption
#: MainForm.dfm:22
msgid "Click me"
msgstr ""
#: C:\Program Files\dxgettext\example\cppbuilder\MainForm.cpp:21
msgid "Thank you for clicking this button"
msgstr ""
で、.poファイルを編集するんだけど・・・Poeditを使ってみた。
gettextマクロ前にコメントなどがあるとエラーが出るの
gettextマクロ前にコメントなどがあるとエラーが出るの
;
Button1->Caption = _("Button1Caption");
Button2->Caption = _("Button2Caption");
こんな感じで回避。