i18n/gettext: web uygulamaları setlocale yapılandırma

1 Cevap php

Yani gettext ile karıştırmasını başladı ama kimse bana yardımcı ve benim için boşlukları doldurmak eğer harika olurdu, hala bazı şeyler hakkında şaşkın değilim.

  1. Genellikle uygulamaların çoğu sadece setlocale bir dil parametresi temelinde çağırmak. Windows kurulumları üzerinde kenar durumlarda belki, putenv kullanmanız gereken herhangi bir durum var mı?

  2. Benim php çerçeve için varsayılan dil İngilizce, UTF-8 - en_US, ISO-8859-1 / olduğundan yani, LC_ALL en_US.utf-8 ayarlandığında ediyorum latin1 ve belli ki bu UTF-8 gibi destekleyici değil mi?

  3. Ben yürütmesini sonra hakkında bilmeniz gereken herhangi bir FRİKİKLERİNDEN vardır setlocale(LC_ALL, 'en_US.utf-8')? Bu değişiklikleri bütün Süresi: LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME, and LC_MESSAGES - Ben zaman ya da böyle bir şey üretmek, örneğin herhangi bir komut, güncellemek zorunda kalır?

  4. Diyelim ki yerel oluşturmak için nasıl biliyorum ama bu mevcut değildi, sonra ben bir dizide yedekleme sağlamalıdır, örneğin taze yapılandırılmış sunucu es_ES.utf-8 yerel yapılandırılmamış yoktu diyelim? Birisi gibi, pratik bir örnek verebilir harika olurdu:

    setlocale( LC_ALL, array('es_ES.UTF-8', 'es_ES', 'es') )

    Bu gibi örnekler sunuyor, ya da insanlar genellikle kendilerini sipariş öncelik ile geliyor web sitesi çeşit var mı?

  5. Ben locale veya olağan yapısı i18n klasörü altında gibi bir şey olduğunu okumuştum.

    Yapı gerçekten önemli mi? Bu bindtextdomain('messages', 'locale') bu yinelemeli için dizin messages.mo, ben fark olmayabilir ancak dikkate alarak dizinleri olabileceğini arar ne zaman bütün bu oluyor gibi görünüyor.

Nasıl sıkı bir yapıya sahip olmalı?

locale
  en_US
      LC_MESSAGES
         messages.po
  es_ES
      LC_MESSAGES
         messages.po


   6.  Should I even bother with trying to test whether the system actually supports the locale or not? Because for example, if a server didn't have a locale and I attempted to set it with setlocale it wouldn't error out or anything, it would just silently let it go by.

1 Cevap

Bu soruya not nitelikli bir cevap ve ben gettext kötü kullanarak demiyorum - Ben buna gerçekten derin bir görüş var onunla yeterince asla çalıştı - ama gettext yalnız ayrılmaya karar verdi çünkü karmaşıklığı ve farklı yerel farklı platformlarda büyük öngörülemezliğin. Ben alternatifler here arayan bir soru haberi ve çok çevresinde orada gerçekten değil iken, Zend_translate paketi bir göz değer gibi görünüyor. Kendimi henüz etrafında yok.

Eğer gettext ile çalışıyorsanız, PHP Manual User Contributed Notes on Gettext check out emin olun.