aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexandre Hannud Abdo <abdo@member.fsf.org>2014-05-21 04:48:22 -0300
committerAlexandre Hannud Abdo <abdo@member.fsf.org>2014-05-21 04:48:22 -0300
commit72a633dc51b98b25c740a9cb392acfaad77148d8 (patch)
tree6710d6143e255f9e24c96d1c7cd68d0811d9cab6
parentc6de9096fabf913e5e8b4acbde75cd58bb8c9959 (diff)
downloadvolse-hubzilla-72a633dc51b98b25c740a9cb392acfaad77148d8.tar.gz
volse-hubzilla-72a633dc51b98b25c740a9cb392acfaad77148d8.tar.bz2
volse-hubzilla-72a633dc51b98b25c740a9cb392acfaad77148d8.zip
Make translation contexts effective.
-rwxr-xr-x.gitignore1
-rw-r--r--include/language.php5
-rw-r--r--util/po2php.php23
3 files changed, 18 insertions, 11 deletions
diff --git a/.gitignore b/.gitignore
index 18543589c..80fe3ec72 100755
--- a/.gitignore
+++ b/.gitignore
@@ -9,6 +9,7 @@ include/jquery-1.4.2.min.js
home.html
addon
*~
+.*.swp
compiled/
custom/
/store/
diff --git a/include/language.php b/include/language.php
index f4c7d1524..ba14c33be 100644
--- a/include/language.php
+++ b/include/language.php
@@ -153,8 +153,9 @@ function load_translation_table($lang, $install = false) {
function t($s,$ctx = '') {
global $a;
- if(x($a->strings,$s)) {
- $t = $a->strings[$s];
+ $cs = $ctx?"__ctx:".$ctx."__ ".$s:$s;
+ if(x($a->strings,$cs)) {
+ $t = $a->strings[$cs];
return is_array($t) ? $t[0] : $t;
}
return $s;
diff --git a/util/po2php.php b/util/po2php.php
index edb1a35a8..d3e6d190c 100644
--- a/util/po2php.php
+++ b/util/po2php.php
@@ -30,6 +30,7 @@ function po2php_run($argv, $argc) {
$infile = file($pofile);
$k="";
$v="";
+ $ctx="";
$arr = False;
$ink = False;
$inv = False;
@@ -92,23 +93,27 @@ function po2php_run($argv, $argc) {
if ($k!="") $out .= $arr?");\n":";\n";
$arr=False;
$k = str_replace("msgid ","",$l);
- if ($k != '""' ) {
- $k = trim($k,"\"\r\n");
- } else {
- $k = "";
- }
-
+ $k = trim($k,"\"\r\n");
+ $k = $ctx.$k;
+ // echo $ctx ? $ctx."\nX\n":"";
$k = preg_replace_callback($escape_s_exp,'escape_s',$k);
+ $ctx = "";
$ink = True;
}
- if ($inv && substr($l,0,6)!="msgstr") {
+ if ($inv && substr($l,0,6)!="msgstr" && substr($l,0,7)!="msgctxt") {
$v .= trim($l,"\"\r\n");
$v = preg_replace_callback($escape_s_exp,'escape_s',$v);
//$out .= '$a->strings['.$k.'] = ';
}
-
-
+
+ if (substr($l,0,7)=="msgctxt") {
+ $ctx = str_replace("msgctxt ","",$l);
+ $ctx = trim($ctx,"\"\r\n");
+ $ctx = "__ctx:".$ctx."__ ";
+ $ctx = preg_replace_callback($escape_s_exp,'escape_s',$ctx);
+ }
+
}
if ($inv) { $inv = False; $out .= '"'.$v.'"'; }