POC for RTL support (#1966)

* POC for RTL support

* POC for RTL support

* POC for RTL support
This commit is contained in:
Ronen Hayun 2018-11-03 14:21:58 +02:00 committed by Paulus Schoutsen
parent c68604d1fe
commit 0922314134
3 changed files with 165 additions and 148 deletions

View File

@ -27,6 +27,9 @@ class HomeAssistantMain extends NavigateMixin(EventsMixin(PolymerElement)) {
/* remove the grey tap highlights in iOS on the fullscreen touch targets */ /* remove the grey tap highlights in iOS on the fullscreen touch targets */
-webkit-tap-highlight-color: rgba(0,0,0,0); -webkit-tap-highlight-color: rgba(0,0,0,0);
} }
:host([rtl]) {
direction: rtl;
}
iron-pages, ha-sidebar { iron-pages, ha-sidebar {
/* allow a light tap highlight on the actual interface elements */ /* allow a light tap highlight on the actual interface elements */
-webkit-tap-highlight-color: rgba(0,0,0,0.1); -webkit-tap-highlight-color: rgba(0,0,0,0.1);
@ -42,7 +45,7 @@ class HomeAssistantMain extends NavigateMixin(EventsMixin(PolymerElement)) {
</iron-media-query> </iron-media-query>
<app-drawer-layout fullbleed="" force-narrow="[[computeForceNarrow(narrow, dockedSidebar)]]" responsive-width="0"> <app-drawer-layout fullbleed="" force-narrow="[[computeForceNarrow(narrow, dockedSidebar)]]" responsive-width="0">
<app-drawer id="drawer" slot="drawer" disable-swipe="[[_computeDisableSwipe(hass)]]" swipe-open="[[!_computeDisableSwipe(hass)]]" persistent="[[dockedSidebar]]"> <app-drawer align="start" id="drawer" slot="drawer" disable-swipe="[[_computeDisableSwipe(hass)]]" swipe-open="[[!_computeDisableSwipe(hass)]]" persistent="[[dockedSidebar]]">
<ha-sidebar narrow="[[narrow]]" hass="[[hass]]" default-page="[[_defaultPage]]"></ha-sidebar> <ha-sidebar narrow="[[narrow]]" hass="[[hass]]" default-page="[[_defaultPage]]"></ha-sidebar>
</app-drawer> </app-drawer>
@ -69,6 +72,11 @@ class HomeAssistantMain extends NavigateMixin(EventsMixin(PolymerElement)) {
type: Boolean, type: Boolean,
computed: "computeDockedSidebar(hass)", computed: "computeDockedSidebar(hass)",
}, },
rtl: {
type: Boolean,
reflectToAttribute: true,
computed: "computeRTL(hass)",
},
}; };
} }
@ -123,6 +131,13 @@ class HomeAssistantMain extends NavigateMixin(EventsMixin(PolymerElement)) {
return hass.dockedSidebar; return hass.dockedSidebar;
} }
computeRTL(hass) {
return (
hass.translationMetadata.translations[hass.selectedLanguage].isRTL ||
false
);
}
_computeDisableSwipe(hass) { _computeDisableSwipe(hass) {
return NON_SWIPABLE_PANELS.indexOf(hass.panelUrl) !== -1; return NON_SWIPABLE_PANELS.indexOf(hass.panelUrl) !== -1;
} }

View File

@ -1,149 +1,150 @@
{ {
"ar": { "ar": {
"nativeName": "العربية" "nativeName": "العربية"
}, },
"bg": { "bg": {
"nativeName": "Български" "nativeName": "Български"
}, },
"bs": { "bs": {
"nativeName": "Bosanski" "nativeName": "Bosanski"
}, },
"ca": { "ca": {
"nativeName": "Català" "nativeName": "Català"
}, },
"cs": { "cs": {
"nativeName": "Čeština" "nativeName": "Čeština"
}, },
"cy": { "cy": {
"nativeName": "Cymraeg" "nativeName": "Cymraeg"
}, },
"da": { "da": {
"nativeName": "Dansk" "nativeName": "Dansk"
}, },
"de": { "de": {
"nativeName": "Deutsch" "nativeName": "Deutsch"
}, },
"el": { "el": {
"nativeName": "Ελληνικά" "nativeName": "Ελληνικά"
}, },
"en": { "en": {
"nativeName": "English" "nativeName": "English"
}, },
"es": { "es": {
"nativeName": "Español" "nativeName": "Español"
}, },
"es-419": { "es-419": {
"nativeName": "Español (Latin America)" "nativeName": "Español (Latin America)"
}, },
"et": { "et": {
"nativeName": "Eesti" "nativeName": "Eesti"
}, },
"fa": { "fa": {
"nativeName": "فارسی" "nativeName": "فارسی"
}, },
"fi": { "fi": {
"nativeName": "Suomi" "nativeName": "Suomi"
}, },
"fr": { "fr": {
"nativeName": "Français" "nativeName": "Français"
}, },
"gsw": { "gsw": {
"nativeName": "Schwiizerdütsch" "nativeName": "Schwiizerdütsch"
}, },
"he": { "he": {
"nativeName": "עברית" "nativeName": "עברית",
}, "isRTL": true
"hi": { },
"nativeName": "हिन्दी" "hi": {
}, "nativeName": "हिन्दी"
"hr": { },
"nativeName": "Hrvatski" "hr": {
}, "nativeName": "Hrvatski"
"hu": { },
"nativeName": "Magyar" "hu": {
}, "nativeName": "Magyar"
"id": { },
"nativeName": "Indonesia" "id": {
}, "nativeName": "Indonesia"
"it": { },
"nativeName": "Italiano" "it": {
}, "nativeName": "Italiano"
"ja": { },
"nativeName": "日本語" "ja": {
}, "nativeName": "日本語"
"ko": { },
"nativeName": "한국어" "ko": {
}, "nativeName": "한국어"
"lb": { },
"nativeName": "Lëtzebuergesch" "lb": {
}, "nativeName": "Lëtzebuergesch"
"lt": { },
"nativeName": "Lietuvių" "lt": {
}, "nativeName": "Lietuvių"
"lv": { },
"nativeName": "Latviešu" "lv": {
}, "nativeName": "Latviešu"
"nl": { },
"nativeName": "Nederlands" "nl": {
}, "nativeName": "Nederlands"
"nn": { },
"nativeName": "Norsk Nynorsk" "nn": {
}, "nativeName": "Norsk Nynorsk"
"no": { },
"nativeName": "Norsk" "no": {
}, "nativeName": "Norsk"
"pl": { },
"nativeName": "Polski" "pl": {
}, "nativeName": "Polski"
"pt": { },
"nativeName": "Português" "pt": {
}, "nativeName": "Português"
"pt-BR": { },
"nativeName": "Português (BR)" "pt-BR": {
}, "nativeName": "Português (BR)"
"ro": { },
"nativeName": "Română" "ro": {
}, "nativeName": "Română"
"ru": { },
"nativeName": "Русский" "ru": {
}, "nativeName": "Русский"
"sk": { },
"nativeName": "Slovenčina" "sk": {
}, "nativeName": "Slovenčina"
"sl": { },
"nativeName": "Slovenščina" "sl": {
}, "nativeName": "Slovenščina"
"sr": { },
"nativeName": "Српски" "sr": {
}, "nativeName": "Српски"
"sr-Latn": { },
"nativeName": "Srpski" "sr-Latn": {
}, "nativeName": "Srpski"
"sv": { },
"nativeName": "Svenska" "sv": {
}, "nativeName": "Svenska"
"ta": { },
"nativeName": "தமிழ்" "ta": {
}, "nativeName": "தமிழ்"
"te": { },
"nativeName": "తెలుగు" "te": {
}, "nativeName": "తెలుగు"
"th": { },
"nativeName": "ภาษาไทย" "th": {
}, "nativeName": "ภาษาไทย"
"tr": { },
"nativeName": "Türkçe" "tr": {
}, "nativeName": "Türkçe"
"uk": { },
"nativeName": "Українська" "uk": {
}, "nativeName": "Українська"
"vi": { },
"nativeName": "Tiếng Việt" "vi": {
}, "nativeName": "Tiếng Việt"
"zh-Hans": { },
"nativeName": "简体中文" "zh-Hans": {
}, "nativeName": "简体中文"
"zh-Hant": { },
"nativeName": "繁體中文" "zh-Hant": {
} "nativeName": "繁體中文"
}
} }

View File

@ -44,6 +44,7 @@ export interface Panel {
export interface Translation { export interface Translation {
nativeName: string; nativeName: string;
isRTL: boolean;
fingerprints: { [fragment: string]: string }; fingerprints: { [fragment: string]: string };
} }