Gettext

Mureakuha

Loikkaa: valikkoon, hakuun

Gettext on tapa lokalisoida helposti tekstiä. Useimmissa kielissä gettext-funktio on alaviiva _(). Hyvä editori gettextin käyttämien .po/.mo tiedostojen tuottamiseen on poEdit.

PHP

Tiedosto: /public_html/index.php:

<?php
$language = 'fi_FI';
$language2 = "finnish";
 
putenv("LANG=$language");
putenv("LANGUAGE=$language");
putenv("LC_ALL=$language");
putenv("LC_MESSAGES=$language");
setlocale(LC_ALL, $language, $language2);
setlocale(LC_MESSAGES, $language, $language2);
 
$domain = 'messages';
bindtextdomain($domain, "./../locale");
textdomain($domain);
 
echo _("This is written in finnish language.");
?>

Tiedosto (tallenna UTF-8-muodossa): /locale/fi_FI/LC_MESSAGES/messages.po:

 msgid ""
 msgstr ""
 "Project-Id-Version: test\n"
 "POT-Creation-Date: \n"
 "PO-Revision-Date: 2005-06-03 13:42+0200\n"
 "Last-Translator: Teppo Testaaja <tt@localhost>\n"
 "Language-Team: test <test@test.test>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Poedit-Language: Finnish\n"
 "X-Poedit-Country: FINLAND\n"
 "X-Poedit-SourceCharset: utf-8\n"
 "X-Poedit-Basepath: .\\..\\..\\..\\public_html\\\n"
 "X-Poedit-SearchPath-0: .\n"
 #: index.php:16
 msgid "This is written in finnish language."
 msgstr "Tämä on kirjoitettu suomeksi."

Tiedosto: /locale/fi_FI/LC_MESSAGES/messages.mo:

binäärimössöä, joka on koostettu aiemmasta po-tiedostosta.

index.php tulostaa nyt:

Tämä on kirjoitettu suomeksi.

Nyt on helppoa muuntaa PHP-ohjelmasi usealle kielelle.

C#

Ole hyvä ja lisää esimerkki

C/C++

#include <libintl.h>
#include <locale.h>
#include <stdio.h>
#include <stdlib.h>
 
int main ( void )
{
  char domain[] = "messages";
  setlocale ( LC_ALL, "" );
  bindtextdomain ( domain, "./../locale" );
  textdomain ( domain );
  printf ( gettext("This is written in finnish language.") );
 
  return EXIT_SUCCESS;
}
Henkilökohtaiset työkalut