Allow to overwrite a single language string via the theme folder
This commit is contained in:
parent
5718402277
commit
78570a5f72
|
@ -66,13 +66,21 @@ OC.L10N = {
|
||||||
* @param {Function|String} [pluralForm] optional plural function or plural string
|
* @param {Function|String} [pluralForm] optional plural function or plural string
|
||||||
*/
|
*/
|
||||||
register: function(appName, bundle, pluralForm) {
|
register: function(appName, bundle, pluralForm) {
|
||||||
this._bundles[appName] = bundle || {};
|
var self = this;
|
||||||
|
if (_.isUndefined(this._bundles[appName])) {
|
||||||
|
this._bundles[appName] = bundle || {};
|
||||||
|
|
||||||
if (_.isFunction(pluralForm)) {
|
if (_.isFunction(pluralForm)) {
|
||||||
this._pluralFunctions[appName] = pluralForm;
|
this._pluralFunctions[appName] = pluralForm;
|
||||||
|
} else {
|
||||||
|
// generate plural function based on form
|
||||||
|
this._pluralFunctions[appName] = this._generatePluralFunction(pluralForm);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// generate plural function based on form
|
// Theme overwriting the default language
|
||||||
this._pluralFunctions[appName] = this._generatePluralFunction(pluralForm);
|
_.each(bundle, function(translation, key) {
|
||||||
|
self._bundles[appName][key] = translation
|
||||||
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -31,8 +31,24 @@ class JSResourceLocator extends ResourceLocator {
|
||||||
public function doFind($script) {
|
public function doFind($script) {
|
||||||
$theme_dir = 'themes/'.$this->theme.'/';
|
$theme_dir = 'themes/'.$this->theme.'/';
|
||||||
if (strpos($script, '3rdparty') === 0
|
if (strpos($script, '3rdparty') === 0
|
||||||
&& $this->appendIfExist($this->thirdpartyroot, $script.'.js')
|
&& $this->appendIfExist($this->thirdpartyroot, $script.'.js')) {
|
||||||
|| $this->appendIfExist($this->serverroot, $theme_dir.'apps/'.$script.'.js')
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strpos($script, '/l10n/') !== false) {
|
||||||
|
// For language files we try to load them all, so themes can overwrite
|
||||||
|
// single l10n strings without having to translate all of them.
|
||||||
|
$found = 0;
|
||||||
|
$found += $this->appendIfExist($this->serverroot, 'core/'.$script.'.js');
|
||||||
|
$found += $this->appendIfExist($this->serverroot, $theme_dir.'core/'.$script.'.js');
|
||||||
|
$found += $this->appendIfExist($this->serverroot, $script.'.js');
|
||||||
|
$found += $this->appendIfExist($this->serverroot, $theme_dir.$script.'.js');
|
||||||
|
$found += $this->appendIfExist($this->serverroot, $theme_dir.'apps/'.$script.'.js');
|
||||||
|
|
||||||
|
if ($found) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
} else if ($this->appendIfExist($this->serverroot, $theme_dir.'apps/'.$script.'.js')
|
||||||
|| $this->appendIfExist($this->serverroot, $theme_dir.$script.'.js')
|
|| $this->appendIfExist($this->serverroot, $theme_dir.$script.'.js')
|
||||||
|| $this->appendIfExist($this->serverroot, $script.'.js')
|
|| $this->appendIfExist($this->serverroot, $script.'.js')
|
||||||
|| $this->appendIfExist($this->serverroot, $theme_dir.'core/'.$script.'.js')
|
|| $this->appendIfExist($this->serverroot, $theme_dir.'core/'.$script.'.js')
|
||||||
|
@ -40,6 +56,7 @@ class JSResourceLocator extends ResourceLocator {
|
||||||
) {
|
) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$app = substr($script, 0, strpos($script, '/'));
|
$app = substr($script, 0, strpos($script, '/'));
|
||||||
$script = substr($script, strpos($script, '/')+1);
|
$script = substr($script, strpos($script, '/')+1);
|
||||||
$app_path = \OC_App::getAppPath($app);
|
$app_path = \OC_App::getAppPath($app);
|
||||||
|
|
Loading…
Reference in New Issue