Idioma.php

  1. <?php
  2. defined('BASEPATH') OR exit('No direct script access allowed');
  3.  
  4. /*
  5.   Estable el idioma de traducción en **CodeIgniter**
  6.   para funciones gettext
  7.  
  8.   Versiones:
  9. - Usando una clase: "application/libraries/Idioma.php"
  10. - Usando funciones: "application/helpers/idioma_helper.php"
  11.  
  12.   Ejemplos de uso:
  13.   - Inicializar la traducción: Idioma::init() init_idioma()
  14.   - Obtiene el idioma actual: Idioma::get() get_idioma()
  15.   - Cambia el idioma: Idioma::set($lang) set_idioma($lang)
  16.  
  17.   Mira los siguientes scripts:
  18.   locale/init.sh
  19.   locale/addlang.sh
  20.   locale/prepare.sh
  21.   locale/compile.sh
  22.  
  23.   See translations editors:
  24.   - http://poedit.net/
  25.   - https://github.com/pacifists/simplepo
  26.   - https://localise.biz/
  27. */
  28. class Idioma {
  29.  
  30. const DEFAULT = "es";
  31. const LOCALES = array(
  32. 'en'=> "en_US.utf8", // Inglés de Estados Unidos
  33. 'es'=> "es_ES.utf8", // Español de España
  34. 'ca'=> "ca_ES.utf8", // Catalán de España
  35. );
  36.  
  37. /*---------------------------------------------
  38.   INIT
  39.   Inicializa la traducción al idioma seleccionado
  40.   en las funciones gettext
  41.   */
  42. public static function init($dir='.') {
  43. $lang = self::get();
  44. $locale = self::LOCALES[$lang];
  45. putenv("LC_ALL=$locale");
  46. setlocale(LC_ALL, $locale);
  47. $domain = "messages";
  48. ////$root = dirname(__FILE__);
  49. bindtextdomain($domain, "$dir/locale");
  50. bind_textdomain_codeset($domain, 'utf8');
  51. textdomain($domain);
  52. }
  53.  
  54. /*---------------------------------------------
  55.   GET
  56.   Obtiene el idioma actual de traducción
  57.   */
  58. public static function get() {
  59. $lang = get_instance()->session->frontend_lang;
  60. return empty($lang) ? self::DEFAULT : $lang;
  61. }
  62.  
  63. /*---------------------------------------------
  64.   SET
  65.   Establece el idioma al que se quiere traducir
  66.   */
  67. public static function set($lang) {
  68. if (array_key_exists($lang, self::LOCALES)) {
  69. get_instance()->session->frontend_lang = $lang;
  70. return true;
  71. }
  72. else return false;
  73. }
  74.  
  75. }
  76.  

Proinf.net