I18N مع gettext لكن من دون مشاحنات المحلي؟
-
06-07-2019 - |
سؤال
وأنا أبحث عن وسيلة المعايير المتوافقة لتخزين محتوى متعدد اللغات لتطبيق ويب. حتى الآن، لقد استخدمت بلدي "ترجمة ()" الوظائف التي قراءة البيانات من ملف أو جدول القاموس في قاعدة بيانات. ومع ذلك، والحفاظ على قواميس حتى الآن في جدول قاعدة بيانات غير مرهقة للغاية إذا كنت تعمل مع نسخ مختلفة من التطبيق على شبكة الإنترنت.
وأنا أحب gettext لأن هناك العديد من الأدوات المتاحة لذلك. ومع ذلك، I تطوير تطبيقات لمنصات مختلفة. أنا غير مستعدين تماما للتعامل مع الطرق كربي من setlocale () والأقران - وهي العشرات من مختلف الاختلافات سلسلة لغة مختلفة من نظام إلى نظام التي تحتاج إلى توفير للحصول على عمل. ابدا. لدي مجموعة من اللغات - يقول دي، أون، والخانات - وأريد أن تحميل القاموس المناسب والعمل مع _ () دون لمس setlocale () أو bindtexdomain () مرة واحدة
وهذا هو بطريقة أو بأخرى من الممكن استخدام gettext؟ أو لا شخص يعرف بسيطة، صغيرة وسريعة (!) حل آخر I18N لPHP التي يمكن أن تعمل مع .po / .mo الملفات، ويفضل دون الحاجة إلى تمديد PHP؟
المحلول
وZend_Translate يعمل معها
HTTP: // الإطار .zend.com / دليل / EN / zend.translate.adapter.html # zend.translate.adapter.gettext
نصائح أخرى
ويجب أن تعمل هذه الطريقة حتى مع لغات غير القياسية:
$locale = 'someWeirdLocale';
putenv('LC_MESSAGES=' . $locale);
bindtextdomain('domain', './locale');
textdomain('domain');
واستمتع!