function translate() { global $phpc_locale_path; if (!is_admin()) { permission_error(__('Need to be admin')); exit; } $handle = opendir($phpc_locale_path); if (!$handle) { return soft_error("Error reading locale directory."); } $output_tag = tag('div', tag('h2', __('Translate'))); while (($filename = readdir($handle)) !== false) { $pathname = "{$phpc_locale_path}/{$filename}"; if (strncmp($filename, ".", 1) == 0 || !is_dir($pathname)) { continue; } $msgs_path = "{$pathname}/LC_MESSAGES"; $hash = parse_po_file("{$msgs_path}/messages.po"); if ($hash === FALSE) { print nl2br("Error reading '{$msgs_path}/messages.po', aborted.\n"); } else { $out = "{$msgs_path}/messages.mo"; write_mo_file($hash, $out); } $output_tag->add(tag('div', sprintf(__('Translated "%s"'), $filename))); } closedir($handle); return $output_tag; }
* distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * @package php-msgfmt * @version $Id$ * @copyright 2007 Matthias Bauer * @author Matthias Bauer * @license http://opensource.org/licenses/lgpl-license.php GNU Lesser General Public License 2.1 * @license http://opensource.org/licenses/apache2.0.php Apache License 2.0 */ /* * This is a command line PHP script to compile gettext PO files into gettext MO files. * Output should be equivalent to that of msgfmt --no-hash * * Syntax: ./msgfmt.php file.po [-o output.mo] */ include dirname(__FILE__) . '/msgfmt-functions.php'; array_shift($argv); $in = array_shift($argv); $out = str_replace('.po', '.mo', $in); if (array_shift($argv) == '-o') { $out = array_shift($argv); } $hash = parse_po_file($in); if ($hash === FALSE) { print "Error reading '{$in}', aborted.\n"; } else { write_mo_file($hash, $out); }