DIR : /home/kozerus/public_html/pn/uize/site-source/js/Uize/Build/PluralsModules.js
/home/kozerus/public_html/pn/uize/site-source/js/Uize/Build
/*______________
| ______ | U I Z E J A V A S C R I P T F R A M E W O R K
| / / | ---------------------------------------------------
| / O / | MODULE : Uize.Build.PluralsModules Package
| / / / |
| / / / /| | ONLINE : http://www.uize.com
| /____/ /__/_| | COPYRIGHT : (c)2014-2016 UIZE
| /___ | LICENSE : Available under MIT License or GNU General Public License
|_______________| http://www.uize.com/license.html
*/
/* Module Meta Data
type: Package
importance: 3
codeCompleteness: 100
docCompleteness: 4
*/
/*?
Introduction
The =Uize.Build.PluralsModules= build script builds plural rules modules for various languages, as defined by the [[http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html][CLDR plural rules]].
*DEVELOPERS:* `Chris van Rensburg`
EXAMPLE
..........................................................................................
node build.js Uize.Build.PluralsModules pluralRules=../cldr/json/supplemental/plurals.json
..........................................................................................
*/
Uize.module ({
name:'Uize.Build.PluralsModules',
required:[
'Uize.Services.FileSystem',
'Uize.Json',
'Uize.Loc.Plurals.RuleParser',
'Uize.Build.Templates.Module.Plurals.ModuleTemplate',
'Uize.Build.Templates.Module.Plurals.ClassesInfo'
],
builder:function () {
'use strict';
return Uize.package ({
perform:function (_params) {
var
_fileSystem = Uize.Services.FileSystem.singleton (),
_modulesPath = _params.uizePath + '/' + _params.modulesFolder + '/',
_modulesNamespace = 'Uize.Loc.Plurals',
_langsModulesNamespace = _modulesNamespace + '.Langs',
_pluralRules = Uize.Json.from (_fileSystem.readFile ({path:_params.pluralRules})),
_pluralRulesMapsByLanguage = Uize.map (
_pluralRules.supplemental ['plurals-type-cardinal'],
function (_languagePlurals,_language) {
var _pluralRulesMap = {};
Uize.forEach (
_languagePlurals,
function (_pluralRule,_pluralRuleName) {
_pluralRulesMap [_pluralRuleName.replace (/^pluralRule-count-/,'')] = _pluralRule;
}
);
return _pluralRulesMap;
}
)
;
/*** generate the plurals classes info module ***/
var _classesInfoModuleName = _modulesNamespace + '.ClassesInfo';
_fileSystem.writeFile ({
path:_modulesPath + Uize.modulePathResolver (_classesInfoModuleName) + '.js',
contents:Uize.Build.Templates.Module.Plurals.ClassesInfo.process ({
name:_classesInfoModuleName,
classesByLanguage:Uize.map (_pluralRulesMapsByLanguage,'Uize.keys (value)')
})
});
/*** generate the per language plurals modules under Uize.Loc.Plurals.Langs ***/
Uize.forEach (
_pluralRulesMapsByLanguage,
function (_pluralRulesMap,_language) {
_fileSystem.writeFile ({
path:_modulesPath + Uize.modulePathResolver (_langsModulesNamespace + '.' + _language) + '.js',
contents:Uize.Build.Templates.Module.Plurals.ModuleTemplate.process ({
namespace:_langsModulesNamespace,
language:_language,
pluralRules:_pluralRulesMap,
pluralRulesFunction:Uize.Loc.Plurals.RuleParser.rulesToJsFunctionStr (_pluralRulesMap)
})
});
}
);
}
});
}
});
//
koh5_pano
Drag mouse to navigate.
Navigation
- Left/Right Mouse drag: Changes camera heading.
- Up/Sown Mouse drag: Changes camera pitch.
- Scroll wheel: Changes camera field of view.
- I-Key: Displays Info panel with canvas size, image size and FPS.
17.Aug.2010, Martin Wengenmayer