From 3d837edb0f58399aeea21d79022310d53067d135 Mon Sep 17 00:00:00 2001
From: Jim Garvin
Date: Wed, 14 Mar 2012 14:50:52 -0400
Subject: [PATCH 01/40] Added fileExtension option for language resource files.
Closes #16
---
build/jquery.localize.js | 9 +++++----
src/jquery.localize.coffee | 7 ++++---
test/lang/test-ja.foo | 4 ++++
test/localize_test.coffee | 5 +++++
4 files changed, 18 insertions(+), 7 deletions(-)
create mode 100644 test/lang/test-ja.foo
diff --git a/build/jquery.localize.js b/build/jquery.localize.js
index 63b90df..8204714 100644
--- a/build/jquery.localize.js
+++ b/build/jquery.localize.js
@@ -10,12 +10,13 @@
};
$.defaultLanguage = normaliseLang(navigator.language || navigator.userLanguage);
$.localize = function(pkg, options) {
- var defaultCallback, intermediateLangData, jsonCall, lang, loadLanguage, notifyDelegateLanguageLoaded, regexify, valueForKey, wrappedSet;
+ var defaultCallback, fileExtension, intermediateLangData, jsonCall, lang, loadLanguage, notifyDelegateLanguageLoaded, regexify, valueForKey, wrappedSet;
if (options == null) {
options = {};
}
wrappedSet = this;
intermediateLangData = {};
+ fileExtension = options.fileExtension || "json";
loadLanguage = function(pkg, lang, level) {
var file;
if (level == null) {
@@ -25,7 +26,7 @@
case 1:
intermediateLangData = {};
if (options.loadBase) {
- file = pkg + '.json';
+ file = pkg + ("." + fileExtension);
return jsonCall(file, pkg, lang, level);
} else {
return loadLanguage(pkg, lang, 2);
@@ -33,13 +34,13 @@
break;
case 2:
if (lang.length >= 2) {
- file = "" + pkg + "-" + (lang.substring(0, 2)) + ".json";
+ file = "" + pkg + "-" + (lang.substring(0, 2)) + "." + fileExtension;
return jsonCall(file, pkg, lang, level);
}
break;
case 3:
if (lang.length >= 5) {
- file = "" + pkg + "-" + (lang.substring(0, 5)) + ".json";
+ file = "" + pkg + "-" + (lang.substring(0, 5)) + "." + fileExtension;
return jsonCall(file, pkg, lang, level);
}
}
diff --git a/src/jquery.localize.coffee b/src/jquery.localize.coffee
index 27bb7f4..2173ac7 100644
--- a/src/jquery.localize.coffee
+++ b/src/jquery.localize.coffee
@@ -20,23 +20,24 @@ $.defaultLanguage = normaliseLang(navigator.language || navigator.userLanguage)
$.localize = (pkg, options = {}) ->
wrappedSet = this
intermediateLangData = {}
+ fileExtension = options.fileExtension || "json"
loadLanguage = (pkg, lang, level = 1) ->
switch level
when 1
intermediateLangData = {}
if options.loadBase
- file = pkg + '.json'
+ file = pkg + ".#{fileExtension}"
jsonCall(file, pkg, lang, level)
else
loadLanguage(pkg, lang, 2)
when 2
if lang.length >= 2
- file = "#{pkg}-#{lang.substring(0, 2)}.json"
+ file = "#{pkg}-#{lang.substring(0, 2)}.#{fileExtension}"
jsonCall(file, pkg, lang, level)
when 3
if lang.length >= 5
- file = "#{pkg}-#{lang.substring(0, 5)}.json"
+ file = "#{pkg}-#{lang.substring(0, 5)}.#{fileExtension}"
jsonCall(file, pkg, lang, level)
jsonCall = (file, pkg, lang, level) ->
diff --git a/test/lang/test-ja.foo b/test/lang/test-ja.foo
new file mode 100644
index 0000000..37b93d7
--- /dev/null
+++ b/test/lang/test-ja.foo
@@ -0,0 +1,4 @@
+{
+ "basic": "basic success foo"
+}
+
diff --git a/test/localize_test.coffee b/test/localize_test.coffee
index f8b4d18..fe1393a 100644
--- a/test/localize_test.coffee
+++ b/test/localize_test.coffee
@@ -45,6 +45,11 @@ test "chained call", ->
t.localize("test", @testOpts).localize("test", @testOpts)
equals t.text(), "basic success"
+test "alternative file extension", ->
+ t = localizableTag("p", "basic", text: "basic fail")
+ t.localize("test", $.extend({ fileExtension: "foo" }, @testOpts))
+ equals t.text(), "basic success foo"
+
moreSetup ->
@t = $('