AIXwindows 核对表

剩余的核对表项特定于 AIXwindows 系统。

  1. 为了在 X 应用程序中成为代码集无关,您的程序使用字体集规范吗?
  2. 您的客户机使用标签、按钮或其他仅用于输出的窗口小部件来显示可翻译消息吗?

    若是:

    • 以以下方式调用 *XtSetLanguageProc 子例程:
      XtSetLanguageProc(NULL, NULL, NULL);
    • 消息可以放置于消息目录中,也可置于本地化资源文件中。 请分别参阅一览表第 1 项或第 20 项。
    • 为了使窗口小部件成为代码集无关,请指定使用字体集的字体。
  3. 您的客户机使用 X 资源文件来定义标签、按钮的文本或文本窗口小部件吗?

    若是:

    • 将所有需要翻译的资源放在同一个地方。
    • 考虑为文本字符串使用消息目录。
    • 不要使用翻译过的颜色名,因为颜色名受限于一种编码。 仅有的可移植名称是以可移植字符集编码的。
    • 将特定于语言的资源文件放在 /usr/lib/X11/%L/app-defaults/%N 中,其中 %L 是语言环境的名称(如 fr_FR),而 %N 是客户机的名称。
  4. 键盘输入根据语言本地化吗?

    若是:

    • 以以下方式调用 *XtSetLanguageProc 子例程:
      XtSetLanguageProc(NULL, NULL, NULL);
    • 对于所有的文本输入,请使用 XmTextXmTextField 窗口小部件。

      XmText 窗口小部件的某些参数是以字符长度为单位定义的,而非字节长度。 光标位置保持在字符位置,而非字节位置。

    • 您正在使用 XmDrawingArea 窗口小部件来进行本地化输入吗?
      • 请使用输入方法子例程来进行不同语言的输入处理。
  5. 在您的客户机所呈现的列表或标签中,其中所含的本地化文本是否是来自于用户文件,而非 X 资源文件?

    若是:

    • 以以下方式调用 *XtSetLanguageProc 子例程:
      XtSetLanguageProc(NULL, NULL, NULL);
    • 使用 XmStringCreateSimple 子例程为本地化文本创建 XmString 数据类型。 可以使用 XmStringCreate 子例程,但是 XmSTRING_DEFAULT_CHARSET 更可取。
    • 为了使窗口小部件代码集无关,请使用字体集指定字体。 应用程序默认设置文件中的字体资源(例如,"*fontList:代替)应使用大写和类形式,而不是小写形式(例如,"*FontList:代替)。 这使得桌面风格管理器可对应用程序的字体选择产生影响。
  6. 您的程序是否对双向文本进行呈现操作(Xlib 绘制、打印、格式化或编辑)?

    若是:

    • 请使用 Xm(Motif)库中的 XmTextXmTextField。 这些窗口小部件支持双向文本。
    • 如果无法使用 Xm 库,可使用布局子例程来对文本执行重排序和构形。
    • 以隐式(逻辑)形式保存和传递文本。 有些实用程序(如 aixterm)支持双向文本的可视形式,但大多数多文化支持子例程无法处理可视形式的双向文本。

如果对上述所有项目的回答都是否,那么程序可能没有多文化支持依赖性。 在此情况下,您可能不需要语言环境设置子例程 setlocale 和目录工具子例程 catopen catgets