現在の位置: ホーム> 最新記事一覧> PHPとCGIの国際化とローカリゼーションを達成する方法:言語間適応の技術ガイド

PHPとCGIの国際化とローカリゼーションを達成する方法:言語間適応の技術ガイド

M66 2025-06-14

1。国際化とローカリゼーションの概念

国際化とは、複数の言語や文化に適応するためにアプリケーションを設計する能力を指します。ローカリゼーションとは、アプリケーションのインターフェイスとテキストを特定の言語と領域に変換するプロセスを指します。

2。国際化とローカリゼーションの実装

PHPでは、GetText Extensionを使用して国際化を実現できます。 GetTextは、アプリケーションのテキストを異なる言語に翻訳できる標準的な国際化ツールです。まず、getText拡張子をインストールする必要があります。次に、すべてのテキスト翻訳を使用して.poファイルを作成し、xgetTextコマンドを使用してソースコードからすべての翻訳文字列を抽出する必要があります。次に、PoEDITなどの専門的な翻訳ツールを使用して、.poファイルの翻訳文字列を編集できます。最後に、.poファイルをバイナリ形式の.moファイルに変換する必要があります。以下は、国際化されたPHPコードの例です。

<?php
    // ロケールのセットアップ
    putenv("LC_ALL=zh_CN.UTF-8");
    setlocale(LC_ALL, "zh_CN.UTF-8");

    // 指定moファイルパス
    bindtextdomain("messages", "locale");

    // 翻訳ドメインを選択します
    textdomain("messages");

    // 使用gettextテキストを翻訳します
    echo _("Hello World!");
?>

CGIでは、国際テンプレートライブラリ(LIBINTL)を使用して、国際化とローカリゼーションを実現できます。 International Template Libraryは、Internationalizationの標準的なライブラリであり、GetTextと同様の機能を提供しています。 Libintlがすでにサーバーにインストールされていることを確認する必要があります。以下は、国際化されたCGIコードの例です。

#含むむ<locale.h>
#含むむ<libintl.h>
#含むむ<stdio.h>

int main(){
    // locale settinglocale(lc_all、 "zh_cn.utf-8")を設定します。

    //変換ドメインBindTextDomain( "メッセージ"、 "locale");

    //翻訳ドメインTextDomain( "メッセージ")を選択します。

    // getTextを使用してテキストprintf( "%s"、getText( "Hello World!"))を翻訳します。
    0を戻るします。
}

ローカリゼーションの実装

テキストの翻訳に加えて、ローカリゼーションには、日付、時刻、通貨のフォーマットも含まれます。 PHPでは、Strftime関数とMoney_Format関数を使用して、DateTimeと通貨をフォーマットできます。これがローカライズされたPHPコードの例です。

<?php
    // ロケールのセットアップ
    setlocale(LC_ALL, "zh_CN.UTF-8");

    // フォーマット日付時間
    $date = strftime("%d %B %Y");
    echo $date;

    // フォーマット通貨
    $number = 1234.56;
    $formatted_number = money_format("%n", $number);
    echo $formatted_number;
?>

CGIでは、関数ライブラリLocaleCONVを使用して、ローカライズされた日付、時間、通貨形式を取得できます。これがローカライズされたCGIコードの例です。

#含むむ<locale.h>
#含むむ<stdio.h>
#含むむ<stdlib.h>
#含むむ<sys/time.h>
#含むむ<localeconv.h>

int main(){
    // locale settinglocale(lc_all、 "zh_cn.utf-8")を設定します。

    //ローカライズされた日付と時間フォームのstruct timeval TVを得るします。
    struct tm *tm;
    char日[128];

    GetTimeOfday(&TV、null);
    tm = localtime(&tv.tv_sec);

    strftime(date、sizeof(date)、 "%d%b%y"、tm);
    printf( "%s"、date);

    //ローカライズされた通貨フォームstruct lconv *lc = localeconv()を得るします。
    ダブル番号= 1234.56;
    char formatted_number [128];

    snprintf(formatted_number、sizeof(formatted_number)、lc-> currency_symbol、number);
    printf( "%s"、formatted_number);

    0を戻るします。
}

4。概要

国際化とローカリゼーションは、言語間および地域のアプリケーションを構築するための基盤です。 PHPおよびCGIでは、GetText拡張機能と国際テンプレートライブラリを使用して、国際化とローカリゼーションを実現できます。テキストの翻訳に加えて、ローカリゼーションには、日付、時刻、通貨のフォーマットも含まれます。これらのテクノロジーを合理的に適用することにより、ユーザーにより良いユーザーエクスペリエンスを提供し、アプリケーションが異なる言語や地域のニーズに適応できるようにします。

この記事では、読者が国際化とローカリゼーション技術を理解し、適用するのに役立つサンプルコードを提供します。同時に、さまざまな言語や地域の文化と習慣に注意を払い、地域の法律と規制を尊重して、アプリケーションが異なる言語や地域で正常に動作できるようにすることも必要です。