[new feature] add i18n support (#310)

* fix: Tabbar icon line-height

* [new feature] progress add showPivot prop

* [new feature] TabItem support vue-router

* [new feature] update document header style

* [Doc] add toast english ducoment

* [new feature] add i18n support

* feat: Extract demos from markdown

* feat: Base components demos

* [new feature] complete demo extract & translate

* [fix] text cases

* fix: add deepAssign test cases

* fix: changelog detail

* [new feature] AddressEdit support i18n
This commit is contained in:
neverland
2017-11-15 20:08:51 -06:00
committed by GitHub
parent 05abf0d509
commit d8b6ad7d54
210 changed files with 5561 additions and 5528 deletions
+4
View File
@@ -0,0 +1,4 @@
const camelizeRE = /-(\w)/g;
export default function(str) {
return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '');
}
+34
View File
@@ -0,0 +1,34 @@
const hasOwnProperty = Object.prototype.hasOwnProperty;
function isObj(x) {
const type = typeof x;
return x !== null && (type === 'object' || type === 'function');
}
function assignKey(to, from, key) {
const val = from[key];
if (
val === undefined ||
val === null ||
(hasOwnProperty.call(to, key) &&
(to[key] === undefined || to[key] === null))
) {
return;
}
if (!hasOwnProperty.call(to, key) || !isObj(val)) {
to[key] = val;
} else {
to[key] = assign(Object(to[key]), from[key]);
}
}
export default function assign(to, from) {
for (const key in from) {
if (hasOwnProperty.call(from, key)) {
assignKey(to, from, key);
}
}
return to;
}
+9
View File
@@ -0,0 +1,9 @@
export default function(object, path) {
const keys = path.split('.');
let result = object;
keys.forEach(key => {
result = result[key] || '';
});
return result;
}