Allow to define RTL languages so the content can be mirrored
parent
f821d83310
commit
93a7c9f91e
|
@ -753,7 +753,7 @@ i18nInit = (lang, $translate) ->
|
||||||
|
|
||||||
|
|
||||||
init = ($log, $rootscope, $auth, $events, $analytics, $translate, $location, $navUrls, appMetaService,
|
init = ($log, $rootscope, $auth, $events, $analytics, $translate, $location, $navUrls, appMetaService,
|
||||||
loaderService, navigationBarService, errorHandlingService, lightboxService) ->
|
loaderService, navigationBarService, errorHandlingService, lightboxService, $tgConfig) ->
|
||||||
$log.debug("Initialize application")
|
$log.debug("Initialize application")
|
||||||
|
|
||||||
$rootscope.$on '$translatePartialLoaderStructureChanged', () ->
|
$rootscope.$on '$translatePartialLoaderStructureChanged', () ->
|
||||||
|
@ -782,6 +782,9 @@ init = ($log, $rootscope, $auth, $events, $analytics, $translate, $location, $na
|
||||||
$rootscope.$on "$translateChangeEnd", (e, ctx) ->
|
$rootscope.$on "$translateChangeEnd", (e, ctx) ->
|
||||||
lang = ctx.language
|
lang = ctx.language
|
||||||
i18nInit(lang, $translate)
|
i18nInit(lang, $translate)
|
||||||
|
# RTL
|
||||||
|
rtlLanguages = $tgConfig.get("rtlLanguages", [])
|
||||||
|
$rootscope.isRTL = rtlLanguages.indexOf(lang) > -1
|
||||||
|
|
||||||
# bluebird
|
# bluebird
|
||||||
Promise.setScheduler (cb) ->
|
Promise.setScheduler (cb) ->
|
||||||
|
@ -930,5 +933,6 @@ module.run([
|
||||||
"tgNavigationBarService",
|
"tgNavigationBarService",
|
||||||
"tgErrorHandlingService",
|
"tgErrorHandlingService",
|
||||||
"lightboxService",
|
"lightboxService",
|
||||||
|
"$tgConfig",
|
||||||
init
|
init
|
||||||
])
|
])
|
||||||
|
|
|
@ -29,9 +29,13 @@ module = angular.module("taigaCommon", [])
|
||||||
#############################################################################
|
#############################################################################
|
||||||
## Default datepicker config
|
## Default datepicker config
|
||||||
#############################################################################
|
#############################################################################
|
||||||
DataPickerConfig = ($translate) ->
|
DataPickerConfig = ($translate, $config, $auth) ->
|
||||||
return {
|
return {
|
||||||
get: () ->
|
get: () ->
|
||||||
|
user = $auth.getUser()
|
||||||
|
lang = user.lang || $translate.preferredLanguage()
|
||||||
|
rtlLanguages = $config.get("rtlLanguages", [])
|
||||||
|
isRTL = rtlLanguages.indexOf(lang) > -1
|
||||||
return {
|
return {
|
||||||
i18n: {
|
i18n: {
|
||||||
previousMonth: $translate.instant("COMMON.PICKERDATE.PREV_MONTH"),
|
previousMonth: $translate.instant("COMMON.PICKERDATE.PREV_MONTH"),
|
||||||
|
@ -69,13 +73,13 @@ DataPickerConfig = ($translate) ->
|
||||||
$translate.instant("COMMON.PICKERDATE.WEEK_DAYS_SHORT.SAT")
|
$translate.instant("COMMON.PICKERDATE.WEEK_DAYS_SHORT.SAT")
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
isRTL: $translate.instant("COMMON.PICKERDATE.IS_RTL") == "true",
|
isRTL: isRTL,
|
||||||
firstDay: parseInt($translate.instant("COMMON.PICKERDATE.FIRST_DAY_OF_WEEK"), 10),
|
firstDay: parseInt($translate.instant("COMMON.PICKERDATE.FIRST_DAY_OF_WEEK"), 10),
|
||||||
format: $translate.instant("COMMON.PICKERDATE.FORMAT")
|
format: $translate.instant("COMMON.PICKERDATE.FORMAT")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.factory("tgDatePickerConfigService", ["$translate", DataPickerConfig])
|
module.factory("tgDatePickerConfigService", ["$translate", "$tgConfig", "$tgAuth", DataPickerConfig])
|
||||||
|
|
||||||
#############################################################################
|
#############################################################################
|
||||||
## Get the selected text
|
## Get the selected text
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
doctype html
|
doctype html
|
||||||
html(lang="en")
|
html(lang="en", ng-attr-dir="{{ isRTL ? 'rtl' : 'ltr' }}")
|
||||||
head
|
head
|
||||||
meta(charset="utf-8")
|
meta(charset="utf-8")
|
||||||
meta(http-equiv="content-type", content="text/html; charset=utf-8")
|
meta(http-equiv="content-type", content="text/html; charset=utf-8")
|
||||||
|
@ -18,7 +18,7 @@ html(lang="en")
|
||||||
script(type='text/javascript').
|
script(type='text/javascript').
|
||||||
window.prerenderReady = false;
|
window.prerenderReady = false;
|
||||||
|
|
||||||
body(tg-main)
|
body(tg-main, ng-class="{'rtl': isRTL}")
|
||||||
div(tg-navigation-bar, ng-if="!errorHandling.showingError")
|
div(tg-navigation-bar, ng-if="!errorHandling.showingError")
|
||||||
div(ng-if="!errorHandling.showingError")
|
div(ng-if="!errorHandling.showingError")
|
||||||
div.master(ng-view)
|
div.master(ng-view)
|
||||||
|
|
|
@ -79,7 +79,6 @@
|
||||||
},
|
},
|
||||||
"PICKERDATE": {
|
"PICKERDATE": {
|
||||||
"FORMAT": "DD MMM YYYY",
|
"FORMAT": "DD MMM YYYY",
|
||||||
"IS_RTL": "false",
|
|
||||||
"FIRST_DAY_OF_WEEK": "1",
|
"FIRST_DAY_OF_WEEK": "1",
|
||||||
"PREV_MONTH": "Previous Month",
|
"PREV_MONTH": "Previous Month",
|
||||||
"NEXT_MONTH": "Next Month",
|
"NEXT_MONTH": "Next Month",
|
||||||
|
|
|
@ -51,6 +51,8 @@ svg {
|
||||||
//Datepicker
|
//Datepicker
|
||||||
.pika-single {
|
.pika-single {
|
||||||
// scss-lint:disable ImportantRule
|
// scss-lint:disable ImportantRule
|
||||||
|
min-width: 240px;
|
||||||
|
width: auto;
|
||||||
z-index: 999999;
|
z-index: 999999;
|
||||||
.pika-title {
|
.pika-title {
|
||||||
color: $grayer;
|
color: $grayer;
|
||||||
|
|
|
@ -19,5 +19,6 @@
|
||||||
"contribPlugins": [],
|
"contribPlugins": [],
|
||||||
"tribeHost": null,
|
"tribeHost": null,
|
||||||
"importers": [],
|
"importers": [],
|
||||||
"gravatar": true
|
"gravatar": true,
|
||||||
|
"rtlLanguages": ["fa"]
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue