/** * 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; }
public function equal_to(LocoLocale $locale) { return $this->get_code() === $locale->get_code(); }