JS dizeleri çevirmek için nasıl

6 Cevap php

Ben GetText ile Zend Altyapıları Zend_Translate kullanmak PHP Bölümü için birden çok dilde tercüme etmek istediğiniz bir proje var. Şimdi ben de JS bölümünü çevirmek istiyorum.

Ben jQuery JS Framework kullanıyorum ve JS dosyaları için çeviri düşüncelerinizi duymak isteriz

6 Cevap

Ben başarılı üç projede JavaScript dosyaları çeviri için GetText kullandık.

Tabii GetText doğal JavaScript desteklemiyor ve JavaScript ayrıca GetText desteklemiyor. Benim çözüm şu olmuştur.

  • JavaScript I gettext("your text here") ile çevrilebilir dizeleri çevreliyor.
  • Sonra JavaScript dosyaları dışarı dizeleri çeker ve C gettext tarafından desteklenen, çünkü, bir C dosyasını oluşturan bir komut dosyası var.
  • Sonra xgettext oluşturulan C dosyaları ve POT ve PO dosyaları üretmek için projemde başka dosyalarını kullanmak.

PO dosyalarını çevrilmesinden sonra, geri JavaScript çeviriler almak zorunda ...

  • Ben o zaman her yereli için, çevrilebilir dizeleri listesini hatırlayarak, yine JavaScript dosyalarını ayrıştırmak:
  • GetText desteği ile bir dil kullanarak (benim durumumda PHP) JavaScript dosyası tüm dizeleri ve çıkış çevirmek.

Örneğin, Estonya (örneğin et_EE.js) gibi görünebilir bir yerel dosya:

var LOCALE = {
  "Hello": "Tere",
  "My name is %s": "Minu nimi on %s",
  "Enter your credit card number": "Sisesta oma krediitkaardi number"
};

function gettext(string) {
  return LOCALE[string] ? LOCALE[string] : string;
}

Eğer et_EE.js veya en_US.js ya da içeren ya seçilen yerele bağlı ...

en_US.js muhtemelen sadece aşağıdaki içerecektir:

function gettext(string) {
  return string;
}

Biraz ngettext() için yanıltıcıdır, ama genel bir fikir almalısınız.

Müthiş bir şey zaten mevcut tüm gettext araçlarını kullanabilirsiniz olmasıdır. Ben her ikisini de çeviri için aynı aracı kullanmak ve aynı zamanda aynı dize JavaScript ve PHP hem de aynı şekilde çevrilmiştir sağlayabilirsiniz - PHP ve JavaScript hem de çevrilebilir metinleri var özellikle.

Eğer bir JavaScript yoğun web uygulaması ile ilgili değilse NOTE:, sen ilk etapta JavaScript tarafından oluşturulan sayfa içeriğine sahip önce iki kere düşünmek gerekir.

Bu aynı zamanda sizin için ilgi olabilir: a gettext plugin for jQuery.

Peki, onlara bir yerdeyseniz ahizeyi görünen bir tercüme-işlev vermek için dizeleri genişletmek olabilir.

Bu gibi kullanabilirsiniz:

alert ("En sevdiğiniz dili İngilizce olan!" tercüme ().);

Ve size bir şey "tu deyim prefiero es Espanol" ile birlikte bir uyarı verilir, ya da olurdu

niko

http://plugins.jquery.com/project/jquery-localize, aynı zamanda, bu http://plugins.jquery.com/project/l10n whichone daha da bulundu ile ve letmegooglethatforyou.com için kullanıldığı, bu, mu?

Ben de birçok dilde var olan bir PHP web sayfası var. PHP kendi dil sınıfı yazdım ve JavaScript dosyaları lokalize geldi ben sadece çok PHP gibi. Js dosyaları çalıştırmak için sunucu yapılandırılmış, ve JavaScript dizeleri çevirmek için benim PHP sınıfı kullanılır.

Böyle bir şey:

alert ( '<?php echo $l->Get ( 'MyString' ); ?>' );

Ben sadece her JavaScript dosyasının başında "$ l" başlatan bir dosya içerir. Ben bu konuda hiçbir sorun yok.