Merge pull request #1955 from mattermost/PLT-7-client-user-loc
Plt 7 client user loc
Этот коммит содержится в:
4
Makefile
4
Makefile
@@ -118,7 +118,8 @@ package:
|
|||||||
mkdir -p $(DIST_PATH)/web/static/js
|
mkdir -p $(DIST_PATH)/web/static/js
|
||||||
cp -L web/static/js/*.min.js $(DIST_PATH)/web/static/js/
|
cp -L web/static/js/*.min.js $(DIST_PATH)/web/static/js/
|
||||||
cp -L web/static/js/*.min.js.map $(DIST_PATH)/web/static/js/
|
cp -L web/static/js/*.min.js.map $(DIST_PATH)/web/static/js/
|
||||||
cp -RL web/static/js/react-intl-2.0.0-beta-2 $(DIST_PATH)/web/static/js/
|
cp -RL web/static/js/intl-1.0.0 $(DIST_PATH)/web/static/js/
|
||||||
|
cp -RL web/static/js/react-intl-2.0.0-beta-2 $(DIST_PATH)/web/static/js/
|
||||||
cp -RL web/static/i18n $(DIST_PATH)/web/static
|
cp -RL web/static/i18n $(DIST_PATH)/web/static
|
||||||
cp -RL web/static/config $(DIST_PATH)/web/static
|
cp -RL web/static/config $(DIST_PATH)/web/static
|
||||||
cp -RL web/static/css $(DIST_PATH)/web/static
|
cp -RL web/static/css $(DIST_PATH)/web/static
|
||||||
@@ -141,6 +142,7 @@ package:
|
|||||||
|
|
||||||
sed -i'.bak' 's|react-0.14.3.js|react-0.14.3.min.js|g' $(DIST_PATH)/web/templates/head.html
|
sed -i'.bak' 's|react-0.14.3.js|react-0.14.3.min.js|g' $(DIST_PATH)/web/templates/head.html
|
||||||
sed -i'.bak' 's|react-dom-0.14.3.js|react-dom-0.14.3.min.js|g' $(DIST_PATH)/web/templates/head.html
|
sed -i'.bak' 's|react-dom-0.14.3.js|react-dom-0.14.3.min.js|g' $(DIST_PATH)/web/templates/head.html
|
||||||
|
sed -i'.bak' 's|Intl.js|Intl.min.js|g' $(DIST_PATH)/web/templates/head.html
|
||||||
sed -i'.bak' 's|react-intl.js|react-intl.min.js|g' $(DIST_PATH)/web/templates/head.html
|
sed -i'.bak' 's|react-intl.js|react-intl.min.js|g' $(DIST_PATH)/web/templates/head.html
|
||||||
sed -i'.bak' 's|jquery-2.1.4.js|jquery-2.1.4.min.js|g' $(DIST_PATH)/web/templates/head.html
|
sed -i'.bak' 's|jquery-2.1.4.js|jquery-2.1.4.min.js|g' $(DIST_PATH)/web/templates/head.html
|
||||||
sed -i'.bak' 's|bootstrap-3.3.5.js|bootstrap-3.3.5.min.js|g' $(DIST_PATH)/web/templates/head.html
|
sed -i'.bak' 's|bootstrap-3.3.5.js|bootstrap-3.3.5.min.js|g' $(DIST_PATH)/web/templates/head.html
|
||||||
|
|||||||
101
web/react/components/user_settings/manage_languages.jsx
Обычный файл
101
web/react/components/user_settings/manage_languages.jsx
Обычный файл
@@ -0,0 +1,101 @@
|
|||||||
|
// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved.
|
||||||
|
// See License.txt for license information.
|
||||||
|
|
||||||
|
import * as Client from '../../utils/client.jsx';
|
||||||
|
import * as Utils from '../../utils/utils.jsx';
|
||||||
|
|
||||||
|
export default class ManageLanguage extends React.Component {
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
|
|
||||||
|
this.setupInitialState = this.setupInitialState.bind(this);
|
||||||
|
this.setLanguage = this.setLanguage.bind(this);
|
||||||
|
this.changeLanguage = this.changeLanguage.bind(this);
|
||||||
|
this.submitUser = this.submitUser.bind(this);
|
||||||
|
this.state = this.setupInitialState(props);
|
||||||
|
}
|
||||||
|
setupInitialState(props) {
|
||||||
|
var user = props.user;
|
||||||
|
return {
|
||||||
|
languages: Utils.languages(),
|
||||||
|
locale: user.locale
|
||||||
|
};
|
||||||
|
}
|
||||||
|
setLanguage(e) {
|
||||||
|
this.setState({locale: e.target.value});
|
||||||
|
}
|
||||||
|
changeLanguage(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
|
var user = this.props.user;
|
||||||
|
var locale = this.state.locale;
|
||||||
|
|
||||||
|
user.locale = locale;
|
||||||
|
|
||||||
|
this.submitUser(user);
|
||||||
|
}
|
||||||
|
submitUser(user) {
|
||||||
|
Client.updateUser(user,
|
||||||
|
() => {
|
||||||
|
window.location.reload(true);
|
||||||
|
},
|
||||||
|
(err) => {
|
||||||
|
let serverError;
|
||||||
|
if (err.message) {
|
||||||
|
serverError = err.message;
|
||||||
|
} else {
|
||||||
|
serverError = err;
|
||||||
|
}
|
||||||
|
this.setState({serverError});
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
render() {
|
||||||
|
let serverError;
|
||||||
|
if (this.state.serverError) {
|
||||||
|
serverError = <label className='has-error'>{this.state.serverError}</label>;
|
||||||
|
}
|
||||||
|
|
||||||
|
const options = [];
|
||||||
|
this.state.languages.forEach((lang) => {
|
||||||
|
options.push(
|
||||||
|
<option
|
||||||
|
key={lang.value}
|
||||||
|
value={lang.value}
|
||||||
|
>
|
||||||
|
{lang.name}
|
||||||
|
</option>);
|
||||||
|
});
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div key='changeLanguage'>
|
||||||
|
<br/>
|
||||||
|
<label className='control-label'>{'Change interface language'}</label>
|
||||||
|
<div className='padding-top'>
|
||||||
|
<select
|
||||||
|
ref='language'
|
||||||
|
className='form-control'
|
||||||
|
value={this.state.locale}
|
||||||
|
onChange={this.setLanguage}
|
||||||
|
>
|
||||||
|
{options}
|
||||||
|
</select>
|
||||||
|
{serverError}
|
||||||
|
<div className='padding-top'>
|
||||||
|
<a
|
||||||
|
className={'btn btn-sm btn-primary'}
|
||||||
|
href='#'
|
||||||
|
onClick={this.changeLanguage}
|
||||||
|
>
|
||||||
|
{'Set language'}
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ManageLanguage.propTypes = {
|
||||||
|
user: React.PropTypes.object
|
||||||
|
};
|
||||||
@@ -5,7 +5,9 @@ import {savePreferences} from '../../utils/client.jsx';
|
|||||||
import SettingItemMin from '../setting_item_min.jsx';
|
import SettingItemMin from '../setting_item_min.jsx';
|
||||||
import SettingItemMax from '../setting_item_max.jsx';
|
import SettingItemMax from '../setting_item_max.jsx';
|
||||||
import Constants from '../../utils/constants.jsx';
|
import Constants from '../../utils/constants.jsx';
|
||||||
|
const PreReleaseFeatures = Constants.PRE_RELEASE_FEATURES;
|
||||||
import PreferenceStore from '../../stores/preference_store.jsx';
|
import PreferenceStore from '../../stores/preference_store.jsx';
|
||||||
|
import ManageLanguages from './manage_languages.jsx';
|
||||||
import * as Utils from '../../utils/utils.jsx';
|
import * as Utils from '../../utils/utils.jsx';
|
||||||
|
|
||||||
function getDisplayStateFromStores() {
|
function getDisplayStateFromStores() {
|
||||||
@@ -78,6 +80,7 @@ export default class UserSettingsDisplay extends React.Component {
|
|||||||
let clockSection;
|
let clockSection;
|
||||||
let nameFormatSection;
|
let nameFormatSection;
|
||||||
let fontSection;
|
let fontSection;
|
||||||
|
let languagesSection;
|
||||||
|
|
||||||
if (this.props.activeSection === 'clock') {
|
if (this.props.activeSection === 'clock') {
|
||||||
const clockFormat = [false, false];
|
const clockFormat = [false, false];
|
||||||
@@ -292,6 +295,48 @@ export default class UserSettingsDisplay extends React.Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Utils.isFeatureEnabled(PreReleaseFeatures.LOC_PREVIEW)) {
|
||||||
|
if (this.props.activeSection === 'languages') {
|
||||||
|
var inputs = [];
|
||||||
|
inputs.push(
|
||||||
|
<ManageLanguages
|
||||||
|
user={this.props.user}
|
||||||
|
key='languages-ui'
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
|
||||||
|
languagesSection = (
|
||||||
|
<SettingItemMax
|
||||||
|
title={'Language'}
|
||||||
|
width='medium'
|
||||||
|
inputs={inputs}
|
||||||
|
updateSection={(e) => {
|
||||||
|
this.updateSection('');
|
||||||
|
e.preventDefault();
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
var locale = 'English';
|
||||||
|
Utils.languages().forEach((l) => {
|
||||||
|
if (l.value === this.props.user.locale) {
|
||||||
|
locale = l.name;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
languagesSection = (
|
||||||
|
<SettingItemMin
|
||||||
|
title={'Language'}
|
||||||
|
width='medium'
|
||||||
|
describe={locale}
|
||||||
|
updateSection={() => {
|
||||||
|
this.updateSection('languages');
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<div className='modal-header'>
|
<div className='modal-header'>
|
||||||
@@ -324,6 +369,7 @@ export default class UserSettingsDisplay extends React.Component {
|
|||||||
<div className='divider-dark'/>
|
<div className='divider-dark'/>
|
||||||
{nameFormatSection}
|
{nameFormatSection}
|
||||||
<div className='divider-dark'/>
|
<div className='divider-dark'/>
|
||||||
|
{languagesSection}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -451,6 +451,10 @@ export default {
|
|||||||
EMBED_PREVIEW: {
|
EMBED_PREVIEW: {
|
||||||
label: 'embed_preview',
|
label: 'embed_preview',
|
||||||
description: 'Show preview snippet of links below message'
|
description: 'Show preview snippet of links below message'
|
||||||
|
},
|
||||||
|
LOC_PREVIEW: {
|
||||||
|
label: 'loc_preview',
|
||||||
|
description: 'Show user language in display settings'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
OVERLAY_TIME_DELAY: 400,
|
OVERLAY_TIME_DELAY: 400,
|
||||||
|
|||||||
@@ -1340,3 +1340,18 @@ export function clearFileInput(elm) {
|
|||||||
// Do nothing
|
// Do nothing
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function languages() {
|
||||||
|
return (
|
||||||
|
[
|
||||||
|
{
|
||||||
|
value: 'en',
|
||||||
|
name: 'English'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 'es',
|
||||||
|
name: 'Español'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|||||||
697
web/static/js/intl-1.0.0/Intl.complete.js
Исполняемый файл
697
web/static/js/intl-1.0.0/Intl.complete.js
Исполняемый файл
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
3256
web/static/js/intl-1.0.0/Intl.js
Исполняемый файл
3256
web/static/js/intl-1.0.0/Intl.js
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
1
web/static/js/intl-1.0.0/Intl.js.map
Исполняемый файл
1
web/static/js/intl-1.0.0/Intl.js.map
Исполняемый файл
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
1
web/static/js/intl-1.0.0/Intl.min.js
поставляемый
Исполняемый файл
1
web/static/js/intl-1.0.0/Intl.min.js
поставляемый
Исполняемый файл
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
696
web/static/js/intl-1.0.0/locale-data/complete.js
Исполняемый файл
696
web/static/js/intl-1.0.0/locale-data/complete.js
Исполняемый файл
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
2205
web/static/js/intl-1.0.0/locale-data/json/af-NA.json
Исполняемый файл
2205
web/static/js/intl-1.0.0/locale-data/json/af-NA.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2204
web/static/js/intl-1.0.0/locale-data/json/af-ZA.json
Исполняемый файл
2204
web/static/js/intl-1.0.0/locale-data/json/af-ZA.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2204
web/static/js/intl-1.0.0/locale-data/json/af.json
Исполняемый файл
2204
web/static/js/intl-1.0.0/locale-data/json/af.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2199
web/static/js/intl-1.0.0/locale-data/json/agq-CM.json
Исполняемый файл
2199
web/static/js/intl-1.0.0/locale-data/json/agq-CM.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2199
web/static/js/intl-1.0.0/locale-data/json/agq.json
Исполняемый файл
2199
web/static/js/intl-1.0.0/locale-data/json/agq.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2203
web/static/js/intl-1.0.0/locale-data/json/ak-GH.json
Исполняемый файл
2203
web/static/js/intl-1.0.0/locale-data/json/ak-GH.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2203
web/static/js/intl-1.0.0/locale-data/json/ak.json
Исполняемый файл
2203
web/static/js/intl-1.0.0/locale-data/json/ak.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2204
web/static/js/intl-1.0.0/locale-data/json/am-ET.json
Исполняемый файл
2204
web/static/js/intl-1.0.0/locale-data/json/am-ET.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2204
web/static/js/intl-1.0.0/locale-data/json/am.json
Исполняемый файл
2204
web/static/js/intl-1.0.0/locale-data/json/am.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2239
web/static/js/intl-1.0.0/locale-data/json/ar-001.json
Исполняемый файл
2239
web/static/js/intl-1.0.0/locale-data/json/ar-001.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2239
web/static/js/intl-1.0.0/locale-data/json/ar-AE.json
Исполняемый файл
2239
web/static/js/intl-1.0.0/locale-data/json/ar-AE.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2239
web/static/js/intl-1.0.0/locale-data/json/ar-BH.json
Исполняемый файл
2239
web/static/js/intl-1.0.0/locale-data/json/ar-BH.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2240
web/static/js/intl-1.0.0/locale-data/json/ar-DJ.json
Исполняемый файл
2240
web/static/js/intl-1.0.0/locale-data/json/ar-DJ.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2238
web/static/js/intl-1.0.0/locale-data/json/ar-DZ.json
Исполняемый файл
2238
web/static/js/intl-1.0.0/locale-data/json/ar-DZ.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2239
web/static/js/intl-1.0.0/locale-data/json/ar-EG.json
Исполняемый файл
2239
web/static/js/intl-1.0.0/locale-data/json/ar-EG.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2238
web/static/js/intl-1.0.0/locale-data/json/ar-EH.json
Исполняемый файл
2238
web/static/js/intl-1.0.0/locale-data/json/ar-EH.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2240
web/static/js/intl-1.0.0/locale-data/json/ar-ER.json
Исполняемый файл
2240
web/static/js/intl-1.0.0/locale-data/json/ar-ER.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2239
web/static/js/intl-1.0.0/locale-data/json/ar-IL.json
Исполняемый файл
2239
web/static/js/intl-1.0.0/locale-data/json/ar-IL.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2239
web/static/js/intl-1.0.0/locale-data/json/ar-IQ.json
Исполняемый файл
2239
web/static/js/intl-1.0.0/locale-data/json/ar-IQ.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2239
web/static/js/intl-1.0.0/locale-data/json/ar-JO.json
Исполняемый файл
2239
web/static/js/intl-1.0.0/locale-data/json/ar-JO.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2239
web/static/js/intl-1.0.0/locale-data/json/ar-KM.json
Исполняемый файл
2239
web/static/js/intl-1.0.0/locale-data/json/ar-KM.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2239
web/static/js/intl-1.0.0/locale-data/json/ar-KW.json
Исполняемый файл
2239
web/static/js/intl-1.0.0/locale-data/json/ar-KW.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2238
web/static/js/intl-1.0.0/locale-data/json/ar-LB.json
Исполняемый файл
2238
web/static/js/intl-1.0.0/locale-data/json/ar-LB.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2238
web/static/js/intl-1.0.0/locale-data/json/ar-LY.json
Исполняемый файл
2238
web/static/js/intl-1.0.0/locale-data/json/ar-LY.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2238
web/static/js/intl-1.0.0/locale-data/json/ar-MA.json
Исполняемый файл
2238
web/static/js/intl-1.0.0/locale-data/json/ar-MA.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2239
web/static/js/intl-1.0.0/locale-data/json/ar-MR.json
Исполняемый файл
2239
web/static/js/intl-1.0.0/locale-data/json/ar-MR.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2239
web/static/js/intl-1.0.0/locale-data/json/ar-OM.json
Исполняемый файл
2239
web/static/js/intl-1.0.0/locale-data/json/ar-OM.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2239
web/static/js/intl-1.0.0/locale-data/json/ar-PS.json
Исполняемый файл
2239
web/static/js/intl-1.0.0/locale-data/json/ar-PS.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2239
web/static/js/intl-1.0.0/locale-data/json/ar-QA.json
Исполняемый файл
2239
web/static/js/intl-1.0.0/locale-data/json/ar-QA.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2239
web/static/js/intl-1.0.0/locale-data/json/ar-SA.json
Исполняемый файл
2239
web/static/js/intl-1.0.0/locale-data/json/ar-SA.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2239
web/static/js/intl-1.0.0/locale-data/json/ar-SD.json
Исполняемый файл
2239
web/static/js/intl-1.0.0/locale-data/json/ar-SD.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2240
web/static/js/intl-1.0.0/locale-data/json/ar-SO.json
Исполняемый файл
2240
web/static/js/intl-1.0.0/locale-data/json/ar-SO.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2239
web/static/js/intl-1.0.0/locale-data/json/ar-SS.json
Исполняемый файл
2239
web/static/js/intl-1.0.0/locale-data/json/ar-SS.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2239
web/static/js/intl-1.0.0/locale-data/json/ar-SY.json
Исполняемый файл
2239
web/static/js/intl-1.0.0/locale-data/json/ar-SY.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2239
web/static/js/intl-1.0.0/locale-data/json/ar-TD.json
Исполняемый файл
2239
web/static/js/intl-1.0.0/locale-data/json/ar-TD.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2238
web/static/js/intl-1.0.0/locale-data/json/ar-TN.json
Исполняемый файл
2238
web/static/js/intl-1.0.0/locale-data/json/ar-TN.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2239
web/static/js/intl-1.0.0/locale-data/json/ar-YE.json
Исполняемый файл
2239
web/static/js/intl-1.0.0/locale-data/json/ar-YE.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2239
web/static/js/intl-1.0.0/locale-data/json/ar.json
Исполняемый файл
2239
web/static/js/intl-1.0.0/locale-data/json/ar.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2208
web/static/js/intl-1.0.0/locale-data/json/as-IN.json
Исполняемый файл
2208
web/static/js/intl-1.0.0/locale-data/json/as-IN.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2208
web/static/js/intl-1.0.0/locale-data/json/as.json
Исполняемый файл
2208
web/static/js/intl-1.0.0/locale-data/json/as.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2203
web/static/js/intl-1.0.0/locale-data/json/asa-TZ.json
Исполняемый файл
2203
web/static/js/intl-1.0.0/locale-data/json/asa-TZ.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2203
web/static/js/intl-1.0.0/locale-data/json/asa.json
Исполняемый файл
2203
web/static/js/intl-1.0.0/locale-data/json/asa.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2200
web/static/js/intl-1.0.0/locale-data/json/ast-ES.json
Исполняемый файл
2200
web/static/js/intl-1.0.0/locale-data/json/ast-ES.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2200
web/static/js/intl-1.0.0/locale-data/json/ast.json
Исполняемый файл
2200
web/static/js/intl-1.0.0/locale-data/json/ast.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2200
web/static/js/intl-1.0.0/locale-data/json/az-Cyrl-AZ.json
Исполняемый файл
2200
web/static/js/intl-1.0.0/locale-data/json/az-Cyrl-AZ.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2200
web/static/js/intl-1.0.0/locale-data/json/az-Cyrl.json
Исполняемый файл
2200
web/static/js/intl-1.0.0/locale-data/json/az-Cyrl.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2200
web/static/js/intl-1.0.0/locale-data/json/az-Latn-AZ.json
Исполняемый файл
2200
web/static/js/intl-1.0.0/locale-data/json/az-Latn-AZ.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2200
web/static/js/intl-1.0.0/locale-data/json/az-Latn.json
Исполняемый файл
2200
web/static/js/intl-1.0.0/locale-data/json/az-Latn.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2200
web/static/js/intl-1.0.0/locale-data/json/az.json
Исполняемый файл
2200
web/static/js/intl-1.0.0/locale-data/json/az.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2199
web/static/js/intl-1.0.0/locale-data/json/bas-CM.json
Исполняемый файл
2199
web/static/js/intl-1.0.0/locale-data/json/bas-CM.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2199
web/static/js/intl-1.0.0/locale-data/json/bas.json
Исполняемый файл
2199
web/static/js/intl-1.0.0/locale-data/json/bas.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2204
web/static/js/intl-1.0.0/locale-data/json/be-BY.json
Исполняемый файл
2204
web/static/js/intl-1.0.0/locale-data/json/be-BY.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2204
web/static/js/intl-1.0.0/locale-data/json/be.json
Исполняемый файл
2204
web/static/js/intl-1.0.0/locale-data/json/be.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2203
web/static/js/intl-1.0.0/locale-data/json/bem-ZM.json
Исполняемый файл
2203
web/static/js/intl-1.0.0/locale-data/json/bem-ZM.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2203
web/static/js/intl-1.0.0/locale-data/json/bem.json
Исполняемый файл
2203
web/static/js/intl-1.0.0/locale-data/json/bem.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2203
web/static/js/intl-1.0.0/locale-data/json/bez-TZ.json
Исполняемый файл
2203
web/static/js/intl-1.0.0/locale-data/json/bez-TZ.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2203
web/static/js/intl-1.0.0/locale-data/json/bez.json
Исполняемый файл
2203
web/static/js/intl-1.0.0/locale-data/json/bez.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2196
web/static/js/intl-1.0.0/locale-data/json/bg-BG.json
Исполняемый файл
2196
web/static/js/intl-1.0.0/locale-data/json/bg-BG.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2196
web/static/js/intl-1.0.0/locale-data/json/bg.json
Исполняемый файл
2196
web/static/js/intl-1.0.0/locale-data/json/bg.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2205
web/static/js/intl-1.0.0/locale-data/json/bm-Latn-ML.json
Исполняемый файл
2205
web/static/js/intl-1.0.0/locale-data/json/bm-Latn-ML.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2205
web/static/js/intl-1.0.0/locale-data/json/bm-Latn.json
Исполняемый файл
2205
web/static/js/intl-1.0.0/locale-data/json/bm-Latn.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2199
web/static/js/intl-1.0.0/locale-data/json/bm-Nkoo.json
Исполняемый файл
2199
web/static/js/intl-1.0.0/locale-data/json/bm-Nkoo.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2205
web/static/js/intl-1.0.0/locale-data/json/bm.json
Исполняемый файл
2205
web/static/js/intl-1.0.0/locale-data/json/bm.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2215
web/static/js/intl-1.0.0/locale-data/json/bn-BD.json
Исполняемый файл
2215
web/static/js/intl-1.0.0/locale-data/json/bn-BD.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2215
web/static/js/intl-1.0.0/locale-data/json/bn-IN.json
Исполняемый файл
2215
web/static/js/intl-1.0.0/locale-data/json/bn-IN.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2215
web/static/js/intl-1.0.0/locale-data/json/bn.json
Исполняемый файл
2215
web/static/js/intl-1.0.0/locale-data/json/bn.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2207
web/static/js/intl-1.0.0/locale-data/json/bo-CN.json
Исполняемый файл
2207
web/static/js/intl-1.0.0/locale-data/json/bo-CN.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2207
web/static/js/intl-1.0.0/locale-data/json/bo-IN.json
Исполняемый файл
2207
web/static/js/intl-1.0.0/locale-data/json/bo-IN.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2207
web/static/js/intl-1.0.0/locale-data/json/bo.json
Исполняемый файл
2207
web/static/js/intl-1.0.0/locale-data/json/bo.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2199
web/static/js/intl-1.0.0/locale-data/json/br-FR.json
Исполняемый файл
2199
web/static/js/intl-1.0.0/locale-data/json/br-FR.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2199
web/static/js/intl-1.0.0/locale-data/json/br.json
Исполняемый файл
2199
web/static/js/intl-1.0.0/locale-data/json/br.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2211
web/static/js/intl-1.0.0/locale-data/json/brx-IN.json
Исполняемый файл
2211
web/static/js/intl-1.0.0/locale-data/json/brx-IN.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2211
web/static/js/intl-1.0.0/locale-data/json/brx.json
Исполняемый файл
2211
web/static/js/intl-1.0.0/locale-data/json/brx.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2204
web/static/js/intl-1.0.0/locale-data/json/bs-Cyrl-BA.json
Исполняемый файл
2204
web/static/js/intl-1.0.0/locale-data/json/bs-Cyrl-BA.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2204
web/static/js/intl-1.0.0/locale-data/json/bs-Cyrl.json
Исполняемый файл
2204
web/static/js/intl-1.0.0/locale-data/json/bs-Cyrl.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2196
web/static/js/intl-1.0.0/locale-data/json/bs-Latn-BA.json
Исполняемый файл
2196
web/static/js/intl-1.0.0/locale-data/json/bs-Latn-BA.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2196
web/static/js/intl-1.0.0/locale-data/json/bs-Latn.json
Исполняемый файл
2196
web/static/js/intl-1.0.0/locale-data/json/bs-Latn.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2196
web/static/js/intl-1.0.0/locale-data/json/bs.json
Исполняемый файл
2196
web/static/js/intl-1.0.0/locale-data/json/bs.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2203
web/static/js/intl-1.0.0/locale-data/json/ca-AD.json
Исполняемый файл
2203
web/static/js/intl-1.0.0/locale-data/json/ca-AD.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2203
web/static/js/intl-1.0.0/locale-data/json/ca-ES-VALENCIA.json
Исполняемый файл
2203
web/static/js/intl-1.0.0/locale-data/json/ca-ES-VALENCIA.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2203
web/static/js/intl-1.0.0/locale-data/json/ca-ES.json
Исполняемый файл
2203
web/static/js/intl-1.0.0/locale-data/json/ca-ES.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2204
web/static/js/intl-1.0.0/locale-data/json/ca-FR.json
Исполняемый файл
2204
web/static/js/intl-1.0.0/locale-data/json/ca-FR.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2203
web/static/js/intl-1.0.0/locale-data/json/ca-IT.json
Исполняемый файл
2203
web/static/js/intl-1.0.0/locale-data/json/ca-IT.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2203
web/static/js/intl-1.0.0/locale-data/json/ca.json
Исполняемый файл
2203
web/static/js/intl-1.0.0/locale-data/json/ca.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2203
web/static/js/intl-1.0.0/locale-data/json/cgg-UG.json
Исполняемый файл
2203
web/static/js/intl-1.0.0/locale-data/json/cgg-UG.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2203
web/static/js/intl-1.0.0/locale-data/json/cgg.json
Исполняемый файл
2203
web/static/js/intl-1.0.0/locale-data/json/cgg.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2200
web/static/js/intl-1.0.0/locale-data/json/chr-US.json
Исполняемый файл
2200
web/static/js/intl-1.0.0/locale-data/json/chr-US.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2200
web/static/js/intl-1.0.0/locale-data/json/chr.json
Исполняемый файл
2200
web/static/js/intl-1.0.0/locale-data/json/chr.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2207
web/static/js/intl-1.0.0/locale-data/json/cs-CZ.json
Исполняемый файл
2207
web/static/js/intl-1.0.0/locale-data/json/cs-CZ.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
2207
web/static/js/intl-1.0.0/locale-data/json/cs.json
Исполняемый файл
2207
web/static/js/intl-1.0.0/locale-data/json/cs.json
Исполняемый файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Ссылка в новой задаче
Block a user