<script type="text/javascript" src="./js/panel-connman.js"></script>
<script type="text/javascript" src="./js/panel-bluetooth.js"></script>
<script type="text/javascript" src="./js/panel-datetime.js"></script>
+ <script type="text/javascript" src="./js/panel-locale.js"></script>
<link rel="stylesheet" href="./css/style.css" />
</head>
<li>
<a href="#page_datetime" id="button_datetime_settings">Date and Time</a>
</li>
+ <li>
+ <a href="#page_locale" id="button_locale_settings">Language</a>
+ </li>
</ul>
</div>
</div>
<div data-role="button" id="button_datetime_cancel">Cancel</div>
</div>
</div>
+
+ <!-- Locale Settings -->
+ <div data-role="page" id="page_locale">
+ <div data-role="header">
+ <a href="#main" data-icon="back">Back</a>
+ <h1>Language</h1>
+ </div>
+
+ <div data-role="content">
+ <fieldset data-role="controlgroup">
+ <input type="radio" name="radio_locale" id="radio_locale_english" value="en_US.UTF-8" checked="checked" />
+ <label for="radio_locale_english">English</label>
+
+ <input type="radio" name="radio_locale" id="radio_locale_german" value="de.UTF-8" />
+ <label for="radio_locale_german">German (Deutsch)</label>
+
+ <input type="radio" name="radio_locale" id="radio_locale_japanese" value="ja.UTF-8" />
+ <label for="radio_locale_japanese">Japanese (日本語)</label>
+
+ <input type="radio" name="radio_locale" id="radio_locale_simplified_chinese" value="zh_CN.UTF-8" />
+ <label for="radio_locale_simplified_chinese">Simplified Chinese (简体中文)</label>
+
+ <input type="radio" name="radio_locale" id="radio_locale_traditional_chinese" value="zh_TW.UTF-8" />
+ <label for="radio_locale_traditional_chinese">Traditional Chinese (繁體中文)</label>
+ </fieldset>
+ <div data-role="button" id="button_locale_apply">Apply</div>
+ <div data-role="button" id="button_locale_cancel">Cancel</div>
+ </div>
+ </div>
</body>
</html>
--- /dev/null
+/*
+ * Copyright (c) 2013, Intel Corporation.
+ *
+ * This program is licensed under the terms and conditions of the
+ * Apache License, version 2.0. The full text of the Apache License is at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ */
+
+var localeChanged = false;
+
+function localePanelInit() {
+ /* Locale Settings Panel */
+ $('#page_locale').on('pageshow', function(event, data) {
+ localePageReload();
+ });
+
+ $('[name="radio_locale"]').on('change', function(event, data) {
+ var new_locale = $('input[name=radio_locale]:checked').val();
+
+ if (tizen.locale) {
+ if (new_locale !== tizen.locale.getLocale()) {
+ localeChanged = true;
+ localeShowOption();
+ }
+ } else {
+ console.error('tizen.locale missing');
+ }
+ });
+
+ $('#button_locale_apply').on('click', function(event, data) {
+ if (localeChanged) {
+ localeChanged = false;
+ updateSystemLocale();
+ }
+
+ localeHideOption();
+ });
+}
+
+function localeShowOption() {
+ $('#button_locale_apply').show();
+ $('#button_locale_cancel').show();
+}
+
+function localeHideOption() {
+ $('#button_locale_apply').hide();
+ $('#button_locale_cancel').hide();
+}
+
+function localePageReload() {
+ localeChanged = false;
+
+ localeHideOption();
+
+ if (tizen.locale) {
+ var locale = tizen.locale.getLocale();
+ var language = localeToLanguage(locale);
+ if (!locale) {
+ showMessage('Error', 'Failed to get current locale');
+ }
+
+ console.log('Current locale is set to ' + locale);
+ console.log('Current language is set to ' + language);
+ if (language) {
+ $('#radio_locale_' + language).prop('checked', true);
+ $('input[name=radio_locale]').checkboxradio('refresh');
+ } else {
+ console.log('Unknown locale ' + locale + ', default to English');
+ $('#radio_locale_english').prop('checked', true);
+ $('input[name=radio_locale]').checkboxradio('refresh');
+ }
+ } else {
+ console.error('tizen.locale missing');
+ $('input[name=radio_locale]').checkboxradio('disable');
+ }
+}
+
+function updateSystemLocale() {
+ var locale = $('input[name=radio_locale]:checked').val();
+
+ if (tizen.locale) {
+ console.log('New locale is set to ' + locale);
+ tizen.locale.setLocale(locale);
+ localePageReload();
+ } else {
+ console.error('tizen.locale missing - cannot update locale');
+ }
+}
+
+function localeToLanguage(locale) {
+ if (locale === 'C' || locale === 'en_US.UTF-8') return 'english';
+ else if (locale === 'de_DE.UTF-8') return 'german';
+ else if (locale === 'ja_JP.UTF-8') return 'japanese';
+ else if (locale === 'zh_CN.UTF-8') return 'simplified_chinese';
+ else if (locale === 'zh_HK.UTF-8' || locale === 'zh_TW.UTF-8') return 'traditional_chinese';
+ else return null;
+}
\ No newline at end of file