From 917c15bef6f0740acc654693e766dc24e11d234a Mon Sep 17 00:00:00 2001 From: Marcelo Schmidt Date: Mon, 15 Jun 2015 23:52:05 -0300 Subject: [PATCH] Change language in settings menu; --- client/lib/tapi18n.coffee | 4 +++ client/views/app/layout.coffee | 4 ++- .../views/app/sideNav/createChannelFlex.html | 4 +-- .../views/app/sideNav/privateGroupsFlex.html | 4 +-- .../views/app/sideNav/userSettingsFlex.coffee | 26 +++++++++++++++++++ .../views/app/sideNav/userSettingsFlex.html | 24 +++++++++++++++++ client/views/app/sideNav/userStatus.coffee | 4 +++ client/views/app/sideNav/userStatus.html | 2 +- i18n/en.i18n.json | 4 +-- 9 files changed, 68 insertions(+), 8 deletions(-) create mode 100644 client/views/app/sideNav/userSettingsFlex.coffee create mode 100644 client/views/app/sideNav/userSettingsFlex.html diff --git a/client/lib/tapi18n.coffee b/client/lib/tapi18n.coffee index 5f43accaa0080..3d6c91c15bb21 100644 --- a/client/lib/tapi18n.coffee +++ b/client/lib/tapi18n.coffee @@ -3,3 +3,7 @@ return TAPi18n.__ key, replaces else return TAPi18n.__ key, { postProcess: 'sprintf', sprintf: replaces } + +@isRtl = (language) -> + # https://en.wikipedia.org/wiki/Right-to-left#cite_note-2 + return language.split('-').shift().toLowerCase() in ['ar', 'dv', 'fa', 'he', 'ku', 'ps', 'sd', 'ug', 'ur', 'yi'] \ No newline at end of file diff --git a/client/views/app/layout.coffee b/client/views/app/layout.coffee index 962285104f24f..c212cc65de1e3 100644 --- a/client/views/app/layout.coffee +++ b/client/views/app/layout.coffee @@ -4,5 +4,7 @@ Template.appLayout.helpers Template.appLayout.rendered = -> $('html').addClass("noscroll").removeClass "scroll" + # RTL Support - Need config option on the UI - # $('html').addClass("rtl") + if isRtl localStorage.getItem "userLanguage" + $('html').addClass "rtl" diff --git a/client/views/app/sideNav/createChannelFlex.html b/client/views/app/sideNav/createChannelFlex.html index 8dbdb66af91ab..b7153de571dd8 100644 --- a/client/views/app/sideNav/createChannelFlex.html +++ b/client/views/app/sideNav/createChannelFlex.html @@ -35,8 +35,8 @@

{{_ "chatRooms.Create_new_channel" }}

{{/if}}
- - + +
diff --git a/client/views/app/sideNav/privateGroupsFlex.html b/client/views/app/sideNav/privateGroupsFlex.html index 0cd39bc2d2d68..55c4e46f0e18d 100644 --- a/client/views/app/sideNav/privateGroupsFlex.html +++ b/client/views/app/sideNav/privateGroupsFlex.html @@ -29,8 +29,8 @@

Create a new private group

{{/if}}
- - + +
diff --git a/client/views/app/sideNav/userSettingsFlex.coffee b/client/views/app/sideNav/userSettingsFlex.coffee new file mode 100644 index 0000000000000..41bfaec63ddb0 --- /dev/null +++ b/client/views/app/sideNav/userSettingsFlex.coffee @@ -0,0 +1,26 @@ +Template.userSettingsFlex.helpers + languages: -> + languages = TAPi18n.getLanguages() + result = [] + for key, language of languages + result.push _.extend(language, { key: key }) + return _.sortBy(result, 'key') + + userLanguage: (key) -> + return localStorage.getItem('userLanguage')?.split('-').shift().toLowerCase() is key + +Template.userSettingsFlex.events + 'mouseenter header': -> + SideNav.overArrow() + + 'mouseleave header': -> + SideNav.leaveArrow() + + 'click header': -> + SideNav.closeFlex() + + 'click footer .save': -> + selectedLanguage = $('#language').val() + if localStorage.getItem('userLanguage') isnt selectedLanguage + localStorage.setItem 'userLanguage', selectedLanguage + Meteor._reload.reload() \ No newline at end of file diff --git a/client/views/app/sideNav/userSettingsFlex.html b/client/views/app/sideNav/userSettingsFlex.html new file mode 100644 index 0000000000000..09066548a416a --- /dev/null +++ b/client/views/app/sideNav/userSettingsFlex.html @@ -0,0 +1,24 @@ + diff --git a/client/views/app/sideNav/userStatus.coffee b/client/views/app/sideNav/userStatus.coffee index 80cb1307f246e..2ebcaf61e829d 100644 --- a/client/views/app/sideNav/userStatus.coffee +++ b/client/views/app/sideNav/userStatus.coffee @@ -32,5 +32,9 @@ Template.userStatus.events 'click #avatar': (event) -> Meteor.call('resetAvatar') + 'click #settings': (event) -> + SideNav.setFlex "userSettingsFlex" + SideNav.openFlex() + Template.userStatus.rendered = -> AccountBox.init() diff --git a/client/views/app/sideNav/userStatus.html b/client/views/app/sideNav/userStatus.html index c950b7805a3b7..c7d44b6402fe7 100644 --- a/client/views/app/sideNav/userStatus.html +++ b/client/views/app/sideNav/userStatus.html @@ -19,7 +19,7 @@

{{username}}

{{_ "userStatus.Busy"}} {{_ "userStatus.Invisible"}} {{_ "userStatus.Change_avatar"}} - {{_ "userStatus.Settings"}}{{_ "userStatus.coming_soon"}} + {{_ "userStatus.Settings"}} {{_ "userStatus.Privacy"}}{{_ "userStatus.coming_soon"}} {{_ "userStatus.Logout"}} diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json index b4784ecb316ee..9f85468bfcdcc 100644 --- a/i18n/en.i18n.json +++ b/i18n/en.i18n.json @@ -28,8 +28,6 @@ "Name" : "Name", "Members" : "Members", "Selected_users" : "Selected members", - "Save" : "Save", - "Cancel" : "Cancel", "No_channels_yet" : "You aren't part of any channel yet.", "No_direct_messages_yet" : "You haven't started any conversations yet.", "No_groups_yet" : "You have no private groups yet.", @@ -72,12 +70,14 @@ "Contact" : "Contact", "Conversation" : "Conversation", "History" : "History", + "Language" : "Language", "Load_more" : "Load more", "Login" : "Login", "Name" : "Name", "Please_wait" : "Please wait", "Remove" : "Remove", "Reset_password" : "Reset password", + "Save" : "Save", "Search" : "Search", "Send_confirmation_email" : "Send confirmation email", "Submit" : "Submit",