示例#1
0
 /**
  * Build name of PO file for given or default domain
  */
 public function create_po_path(LocoLocale $locale, $domain = '', $force_global = null)
 {
     if (!$domain) {
         $domain = $this->get_domain();
     }
     // get best directory
     if (is_null($force_global)) {
         $dir = $this->lang_dir($domain);
         $force_global = $this->is_global_path($dir);
     } else {
         if ($force_global) {
             $dir = $this->global_lang_dir();
         } else {
             $dir = $this->lang_dir($domain, true);
         }
     }
     $name = $locale->get_code() . '.po';
     // core default package has no file prefix
     $type = $this->get_type();
     if ('core' === $type && 'default' === $domain) {
         $prefix = '';
     } else {
         if ('plugin' === $type || $force_global) {
             $prefix = $domain . '-';
         } else {
             $prefix = '';
         }
     }
     // if PO files exist, copy their naming format and use location if writable
     if (is_null($force_global) && !empty($this->po[$domain])) {
         foreach ($this->po[$domain] as $code => $path) {
             $info = pathinfo($path);
             $prefix = str_replace($code . '.' . $info['extension'], '', $info['basename']);
             if (is_writable($info['dirname'])) {
                 $dir = $info['dirname'];
                 break;
             }
         }
     }
     return $dir . '/' . $prefix . $name;
 }
示例#2
0
 public function equal_to(LocoLocale $locale)
 {
     return $this->get_code() === $locale->get_code();
 }