Selaa lähdekoodia

Added new strings and translations.
Implemented moment.js localization.
Added xml:lang in get-iqs.

Valeria Titova 4 vuotta sitten
vanhempi
commit
3502b6e0f7

+ 2 - 1
config.js

@@ -10,7 +10,8 @@ require.config({
         "backbone":                 "node_modules/backbone/backbone",
         "underscore":               "node_modules/underscore/underscore",
         "jquery":                   "node_modules/jquery/dist/jquery",
-        "moment":                   "node_modules/moment/moment",
+        "moment":                   "node_modules/moment/min/moment-with-locales.min",
+        "moment-locales":           "node_modules/moment/min/locales.min",
         "perfectScrollbarJQuery":   "node_modules/perfect-scrollbar/dist/js/perfect-scrollbar.jquery",
         "strophe":                  "node_modules/strophe.js/strophe",
         "strophe.disco":            "node_modules/strophejs-plugins/disco/strophe.disco",

+ 1 - 0
css/xabber.css

@@ -5213,6 +5213,7 @@ body .lean-overlay + .client-body-wrap.hidden ~ #modals {
     line-height: 14px;
     text-align: center;
     color: #9E9E9E;
+    text-transform: capitalize;
 }
 
 .chat-notification {

+ 6 - 0
src/accounts.js

@@ -224,6 +224,12 @@ define("xabber-accounts", function () {
                 sendIQ: function () {
                     let res = this.connection.authenticated && this.get('status') !== 'offline';
                     if (res) {
+                        let elem = arguments[0];
+                        if (typeof(elem.tree) === "function" && elem.tree().getAttribute('type') == 'get') {
+                            let lang = xabber.settings.language;
+                            (lang == 'default') && (lang = xabber.get('default_language'));
+                            elem.tree().setAttribute('xml:lang', lang);
+                        }
                         this.connection.sendIQ.apply(this.connection, arguments);
                     } else {
                         this._pending_stanzas.push({stanza: arguments});

+ 4 - 1
src/core.js

@@ -82,7 +82,10 @@
                 pluralSeparator: '-',
                 resources: _translations
             });
-            lang && xabber_i18next.changeLanguage(lang);
+            if (lang) {
+                xabber_i18next.changeLanguage(lang);
+                env.moment.lang(lang);
+            }
             xabber_i18next.default_lang = xabber_i18next.getFixedT(default_lang);
         },
         getOneLiners: function () {

+ 8 - 16
templates/base/about.html

@@ -3,7 +3,7 @@
             <div class="picture-wrap">
                 <img class="logo" src="images/xabber-logo-96.png"/>
             </div>
-            <div class="name">Xabber for Web</div>
+            <div class="name">{{constants.CLIENT_NAME}}</div>
             <div class="version"></div>
         </div>
     </div>
@@ -16,31 +16,23 @@
         <div class="panel-content-wrap">
             <div class="panel-content">
                 <div class="settings-block-wrap about">
-                    <div class="block-content">
-                        Xabber is an open source XMPP messenger for Android, iOS and Web platforms. It is build around open standards, interoperability, design and great user experience. Versions of Xabber for every platform are built to provide a continuous chat experience between them.
-                    </div>
-                    <div class="block-content">
-                        You will find more information on our official website <a href="https://www.xabber.com" target="_blank">https://www.xabber.com</a>
-                    </div>
+                    <div class="block-content">{[print(xabber.getString("web_client__screen_about__preamble_1", [constants.SHORT_CLIENT_NAME, constants.SHORT_CLIENT_NAME]))]}</div>
+                    <div class="block-content">{[print(xabber.getString("web_client__screen_about__preamble_2", [`<a href="https://www.xabber.com" target="_blank">https://www.xabber.com</a>`]))]}</div>
                     <div class="block-header">
-                        <span class="block-name">XMPP protocol</span>
-                    </div>
-                    <div class="block-content">
-                        Extensible Messaging and Presence Protocol (XMPP) is a communications protocol for message-oriented middleware based on XML (Extensible Markup Language). It enables the near-real-time exchange of structured yet extensible data between any two or more network entities. The protocol was originally named Jabber, and was developed by the Jabber open-source community in 1999 for near real-time instant messaging (IM),presence information, and contact list maintenance.
+                        <span class="block-name">{[print(xabber.getString("web_client__screen_about__block_1__header"))]}</span>
                     </div>
+                    <div class="block-content">{[print(xabber.getString("web_client__screen_about__block_1__text"))]}</div>
 
                     <div class="block-header">
-                        <span class="block-name">XMPP Extension Protocols</span>
-                    </div>
-                    <div class="block-content">
-                        XMPP is highly extensible, via extensions known as XEPs (XMPP Extension Protocol). Xabber supports a number of popular XEPs that are essential to providing great chat experience for our users.
+                        <span class="block-name">{[print(xabber.getString("web_client__screen_about__block_2__header"))]}</span>
                     </div>
+                    <div class="block-content">{[print(xabber.getString("web_client__screen_about__block_2__text", [constants.SHORT_CLIENT_NAME]))]}</div>
 
                     <div class="block-header">
                         <span class="block-name">Developers</span>
                     </div>
                     <div class="block-content">
-                        Xabber for Android was originally developed by <a href="http://redsolution.com" target="_blank">Redsolution</a> — an international software and services company currently based in Estonia. Since then, a number of individuals joined Xabber as developers, testers and translators.
+                        Xabber for Web was originally developed by <a href="http://redsolution.com" target="_blank">Redsolution</a> — an international software and services company currently based in Estonia. Since then, a number of individuals joined Xabber as developers, testers and translators.
                     </div>
                     <div class="block-content">
                         Our goal is to create a stable, reliable, interoperable and user friendly ecosystem for instant messaging that does not rely on proprietary services and data silos. We welcome anyone who believes in open standards and free information interchange to take part in moving Xabber forward.

+ 1 - 1
templates/chats/messages/audio_file.html

@@ -5,7 +5,7 @@
         <div class="file-info one-line">
             <span class="file-name">{{name}}</span>{[ if (duration) { ]}, {{duration}}{[ } ]},  <span class="file-size">{{size}}</span>
         </div>
-        <a href="{{sources[0]}}" class="file-link-download">Download</a>
+        <a href="{{sources[0]}}" class="file-link-download">{[print(xabber.getString("action_download"))]}</a>
         <a class="voice-message-play">Play</a>
     </div>
 </div>

+ 1 - 1
templates/chats/messages/file.html

@@ -4,6 +4,6 @@
         <div class="file-info one-line">
             <span class="file-name">{{name}}</span>{[ if (is_audio && duration) { ]}, {{duration}}{[ } ]},  <span class="file-size">{{size}}</span>
         </div>
-        <a href="{{sources[0]}}" class="file-link-download">Download</a>
+        <a href="{{sources[0]}}" class="file-link-download">{[print(xabber.getString("action_download"))]}</a>
     </div>
 </div>

+ 1 - 1
templates/chats/messages/group_request.html

@@ -1,6 +1,6 @@
 <div class="chat-message system auth-request" data-time="{{timestamp}}" data-uniqueid="{{unique_id}}" data-from="{{from_jid}}">
     <div class="left-side noselect">
-        <div class="circle-avatar"><img></div>
+        <div class="circle-avatar"></div>
     </div>
 
     <div class="msg-wrap">

+ 3 - 3
templates/chats/messages/main.html

@@ -7,7 +7,7 @@
         <div class="chat-msg-author-wrap">
             <div class="chat-msg-author text-color-700 one-line">{{username}}</div>
             {[if (badge) {]} <div class="chat-msg-author-badge one-line">{{badge}}</div>
-            {[ } if (role && (role != 'Member')) {]} <div class="chat-msg-author-role ground-color-700 one-line">{{role}}</div> {[}]}
+            {[ } if (role && (role.toLowerCase() != 'member')) {]} <div class="chat-msg-author-role ground-color-700 one-line">{{role}}</div> {[}]}
         </div>
         <div class="fwd-msgs-block"></div>
         <div class="chat-msg-content chat-text-content">{{message}}</div>
@@ -19,8 +19,8 @@
         <div class="edited-info one-line hidden"></div>
         {[ if (is_sender) { ]}
             <i class="msg-delivering-state mdi mdi-14px" data-state="{{state}}" title="{{verbose_state}}" data-activates="retry-send-msg-{{msgid}}"></i>
-            <div id="retry-send-msg-{{msgid}}" class="dropdown-content retry-send-message noselect"><div class="btn-retry-send-message">retry</div></div>
+            <div id="retry-send-msg-{{msgid}}" class="dropdown-content retry-send-message noselect"><div class="btn-retry-send-message">{[print(xabber.getString("chat_screen__message__button_retry_send"))]}</div></div>
         {[ } ]}
-        <div class="msg-copy-link" title="Copy link"><i class="mdi mdi-link-variant" data-image="{{is_image}}"></i></div>
+        <div class="msg-copy-link" title='{[print(xabber.getString("action_copy_link"))]}'><i class="mdi mdi-link-variant" data-image="{{is_image}}"></i></div>
     </div>
 </div>

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
translations/en.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
translations/pl-rPL.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
translations/pt-rBR.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
translations/ru-rRU.js


+ 1 - 1
translations/translation_progress.js

@@ -1 +1 @@
-let client_translation_progress = {"en":100,"ar":41,"az":0,"be":20,"bg":37,"bs":0,"ca":37,"cs":41,"cy":0,"da":0,"de":64,"el":43,"es-ES":41,"es-latin":10,"et":0,"fa":7,"fi":14,"fil":21,"fr":29,"ga-IE":0,"he":31,"hi":0,"hr":0,"hu":21,"hy-AM":12,"id":65,"is":0,"it":41,"ja":30,"ka":0,"kmr":0,"ko":1,"ku":4,"ky":8,"la-LA":0,"lb":0,"lt":6,"me":0,"mk":0,"mn":0,"mr":0,"ms":9,"nb":31,"ne-NP":0,"nl":29,"no":0,"oc":19,"pa-IN":0,"pl":43,"pt-BR":76,"pt-PT":22,"qya-AA":0,"ro":24,"ru":81,"sco":0,"si-LK":0,"sk":29,"sl":41,"sq":2,"sr":19,"sr-Cyrl-ME":0,"sv-SE":55,"sw":0,"ta":2,"te":0,"tg":0,"tk":0,"tlh-AA":0,"tr":54,"uk":41,"uz":0,"vi":19,"yo":0,"zh-CN":41,"zh-TW":16,"zu":0}; typeof define === "function" && define(() => { return client_translation_progress;});
+let client_translation_progress = {"en":100,"ar":40,"az":0,"be":19,"bg":37,"bs":0,"ca":37,"cs":40,"cy":0,"da":0,"de":63,"el":42,"es-ES":40,"es-latin":10,"et":0,"fa":7,"fi":14,"fil":21,"fr":29,"ga-IE":0,"he":30,"hi":0,"hr":0,"hu":21,"hy-AM":12,"id":64,"is":0,"it":40,"ja":29,"ka":0,"kmr":0,"ko":1,"ku":4,"ky":8,"la-LA":0,"lb":0,"lt":5,"me":0,"mk":0,"mn":0,"mr":0,"ms":9,"nb":31,"ne-NP":0,"nl":28,"no":0,"oc":19,"pa-IN":0,"pl":42,"pt-BR":81,"pt-PT":21,"qya-AA":0,"ro":24,"ru":80,"sco":0,"si-LK":0,"sk":29,"sl":40,"sq":2,"sr":19,"sr-Cyrl-ME":0,"sv-SE":54,"sw":0,"ta":2,"te":0,"tg":0,"tk":0,"tlh-AA":0,"tr":53,"uk":40,"uz":0,"vi":18,"yo":0,"zh-CN":40,"zh-TW":16,"zu":0}; typeof define === "function" && define(() => { return client_translation_progress;});

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä