16
Projekto internacionalizavimas ir lokalizavimas Darius Leskauskas KaunasPHP v.23

Projekto internacionalizavimas ir lokalizavimas

Embed Size (px)

Citation preview

Page 1: Projekto internacionalizavimas ir lokalizavimas

Projekto internacionalizavimas ir lokalizavimasDarius Leskauskas KaunasPHP v.23

Page 2: Projekto internacionalizavimas ir lokalizavimas

Darius Leskauskas @darlesDeveloper @ UAB “Informacinių technologijų organizacija”

Team lead @ TASKER

Organizer @ KaunasPHP

Symfony user

Page 3: Projekto internacionalizavimas ir lokalizavimas

Kas tas i18n ir L10n?● i18n - internationalization

○ paverčiame projektą daugiakalbiu

● L10n - Localization○ pritaikome projektą tam tikrai kalbai

Page 4: Projekto internacionalizavimas ir lokalizavimas

1. Tekstų reikia ieškoti visame projektea. šablonai, servisai, kontroleriai, JS ir t.t.

2. Norint projektą paversti daugiakalbiu nusimato ilgas refactoringas

Problemos

Page 5: Projekto internacionalizavimas ir lokalizavimas

Formatai● GNU Gettext● XLIFF

● PHP● YML● JSON

Page 6: Projekto internacionalizavimas ir lokalizavimas

GNU Gettext● Populiariausias● Turi įvairių pagalbinių įrankių/bibliotekų● Turi papildomas informacines žymas

○ #, fuzzy, #, translated, #, untranslated, #, obsolete● PHP native funkcijos● msgmerge

Page 7: Projekto internacionalizavimas ir lokalizavimas

GNU Gettextclient.lt.po

#: kliento redagavimas

msgid "ito_client_edit_label"

msgstr "Kliento redagavimas"

#: klient pavadinimas

msgid "ito_client_title_label"

msgstr "Klientas"

Page 8: Projekto internacionalizavimas ir lokalizavimas

GNU Gettext<?php

$language = 'en';putenv("LANG=$language"); setlocale(LC_ALL, $language);

$domain = 'messages';bindtextdomain($domain, "/www/htdocs/site.com/locale"); textdomain($domain);

echo gettext("A string to be translated would go here");

?>

Page 9: Projekto internacionalizavimas ir lokalizavimas

XLIFF (XML Localisation Interchange File Format)

● Validuojamas● Turi įvairių pagalbinių įrankių/bibliotekų● Turi papildomas informacines žymas● Rekomenduojamas kaip pagrindinis

@Symfony

Page 10: Projekto internacionalizavimas ir lokalizavimas

XLIFF (XML Localisation Interchange File Format)

<?xml version="1.0"?>

<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">

<file source-language="en" target-language="en" datatype="plaintext" original="file.ext">

<body>

<trans-unit id="1">

<source>title.post_list</source>

<target>Post List</target>

</trans-unit>

</body>

</file>

</xliff>

Page 11: Projekto internacionalizavimas ir lokalizavimas

Įrankiai● http://poedit.net● http://sourceforge.net/projects/eviltrans

Page 12: Projekto internacionalizavimas ir lokalizavimas

Symfony Bundle● LexikTranslationBundle

○ Vertimų administravimas● JMSTranslationBundle

○ Translations on steroids● BazingaJsTranslationBundle

○ JS vertimai

Page 13: Projekto internacionalizavimas ir lokalizavimas

Praktikos● Nedėti pilno teksto kaip rakto

● Rakte nurodyti tikslą, o ne vietą kur jis yra

● Jei reikia sujungti kelis sakinius - sukurti atskirą vertimą su kintamaisiais

Page 14: Projekto internacionalizavimas ir lokalizavimas

Administravimas● Open Source:

○ weblate.org○ pootle.translatehouse.org

● + GIT palaikymas● - vartotojo sąsaja

Page 15: Projekto internacionalizavimas ir lokalizavimas

Administravimas● Servisai

○ oneskyapp.com■ nemokamas talpinimas, API

○ poeditor.com■ api, patogi vartotojo sąsaja

○ transifex.com■ live view palaikymas

○ lingohub.com■ github, bitbucket palaikymas

Page 16: Projekto internacionalizavimas ir lokalizavimas

Ačiū!

Klausimai?