diff options
| author | Di Peng | 2011-07-29 14:22:37 -0700 | 
|---|---|---|
| committer | Igor Minar | 2011-08-14 23:44:20 -0700 | 
| commit | 966cbd4cf8d795b1706ff400f604c6002d7e81f9 (patch) | |
| tree | 3ca9c42d7bad4f151c72d39f3ef9b053de6cc861 /i18n/src/converter.js | |
| parent | 8534b7c7c0aa352eb0f17dbe8b22ba34f995654d (diff) | |
| download | angular.js-966cbd4cf8d795b1706ff400f604c6002d7e81f9.tar.bz2 | |
feat(i18n): collect and convert locale info from closure
- add i18n/closure directory with closure i18n files and
  update-closure.sh script to update them
- generate.sh script runs node.js scripts that extract localization
  rules from the closure library, transform them to a more suitable
format and dumps them into i18n/locale directory as angular's $locale
services
- update Rakefile to copy i18n files to build/ and pkg/ dirs
- copy i18n stuff during rake build
- e2e tests for several locales
Diffstat (limited to 'i18n/src/converter.js')
| -rw-r--r-- | i18n/src/converter.js | 60 | 
1 files changed, 60 insertions, 0 deletions
diff --git a/i18n/src/converter.js b/i18n/src/converter.js new file mode 100644 index 00000000..586bdb95 --- /dev/null +++ b/i18n/src/converter.js @@ -0,0 +1,60 @@ +/** + * after obtaining data from closure files, use converter to massage the data into the formats + * we want + */ +exports.convertDatetimeData = convertDatetimeData; +exports.convertNumberData = convertNumberData; + + +require.paths.push(__dirname); + + +var parsePattern = require('parser').parsePattern; + + +function convertNumberData(dataObj, currencySymbols) { +  var numberFormats = {}, + +  numberFormats = { +    DECIMAL_SEP: dataObj.DECIMAL_SEP, +    GROUP_SEP: dataObj.GROUP_SEP, +    PATTERNS: [parsePattern(dataObj.DECIMAL_PATTERN), +               parsePattern(dataObj.CURRENCY_PATTERN)] +  } + +  if (currencySymbols[dataObj.DEF_CURRENCY_CODE]) { +    numberFormats.CURRENCY_SYM = currencySymbols[dataObj.DEF_CURRENCY_CODE][1]; +  } else { +    if (dataObj.DEF_CURRENCY_CODE == 'MTL') { +      numberFormats.CURRENCY_SYM = '₤'; //for some reason this is missing in closure +    } else { +      // if there is no corresponding currency symbol, just use currency code. +      var code = numberFormats.CURRENCY_SYM = dataObj.DEF_CURRENCY_CODE; +      console.log(code +' has no currency symbol in closure, used ' + code + ' instead!'); +    } +  } +  return numberFormats; +} + + +function convertDatetimeData(dataObj) { +  var datetimeFormats = {}; + +  datetimeFormats.MONTH = dataObj.MONTHS; +  datetimeFormats.SHORTMONTH = dataObj.SHORTMONTHS; +  datetimeFormats.DAY = dataObj.WEEKDAYS; +  datetimeFormats.SHORTDAY = dataObj.SHORTWEEKDAYS; +  datetimeFormats.AMPMS = dataObj.AMPMS; + + +  datetimeFormats.medium      = dataObj.DATEFORMATS[2] + ' ' + dataObj.TIMEFORMATS[2]; +  datetimeFormats.short       = dataObj.DATEFORMATS[3] + ' ' + dataObj.TIMEFORMATS[3]; +  datetimeFormats.fullDate    = dataObj.DATEFORMATS[0]; +  datetimeFormats.longDate    = dataObj.DATEFORMATS[1]; +  datetimeFormats.mediumDate  = dataObj.DATEFORMATS[2]; +  datetimeFormats.shortDate   = dataObj.DATEFORMATS[3]; +  datetimeFormats.mediumTime  = dataObj.TIMEFORMATS[2]; +  datetimeFormats.shortTime   = dataObj.TIMEFORMATS[3]; + +  return datetimeFormats; +}  | 
