Skip to content

Latest commit

 

History

History
64 lines (60 loc) · 2.53 KB

README.md

File metadata and controls

64 lines (60 loc) · 2.53 KB

Steps for Titanium RTL Application:

1 - Use this module to force language change, it'll load correct strings link 2 - Add android:supportsRtl="true" to tag in tiapp.xml

<android xmlns:android="http://schemas.android.com/apk/res/android">
    <manifest>
        <application android:supportsRtl="true" />
    </manifest>
</android>

3 - Use if in .tss file to switch RTL & LTR

// alloy.js
Alloy.Globals.isRTL = Ti.Locale.currentLanguage === 'ar';
'#exampleLabel' : {
	color: ‘red'
}
'#exampleLabel[if=Alloy.Globals.isRTL]' : {
	right: 5
}
'#exampleLabel[if=!Alloy.Globals.isRTL]' : {
	left: 5
}

4 - Set iOS 9+ is minimum in tiapp.xml

<?xml version="1.0" encoding="UTF-8"?>
<ti:app xmlns:ti="http://ti.appcelerator.org">
  <ios>
    <min-ios-ver>9.0</min-ios-ver>
  </ios>
</ti:app>

5 - Set Android 4.2 as minimum

<?xml version="1.0" encoding="UTF-8"?>
<ti:app xmlns:ti="http://ti.appcelerator.org">
  <android xmlns:android="http://schemas.android.com/apk/res/android">
    <manifest android:versionCode="17">
      <uses-sdk android:minSdkVersion="17"/>
    </manifest>
  </android>
</ti:app>

This items flip from/to RTL/LTR fine

iOS 9+

  1. LeftNavButton & RightNavButton
  2. Default ListView/TableView templates
  3. Window open transition come from right with RTL and left with LTR
  4. CollectionView list items from top right with RTL and top left with LTR

Android 4.2+

  1. ActionBar and menus items flip RTL/LTR with zero code
  2. Drawer layout come from right instead of left

Current Titanium issues RTL support issues

  1. linearlayout (horizontal/vertical layout) will not flip, Titanium calculate positions manually, same with autolayout in iOS. ref
  2. Natural direction for the text supported nativly in both iOS and Android, while Titanium has only right, left and center allignment. Android iOS
  3. Titanium has no API to change local, but we can use this module
  4. Titanium has an issue to re-open the hole UI stack on iOS, so change loal will load strings from the new selected file but will not wich RTL/LTR till you close the app and open it again.