-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RTL i18n/l10n support #176
Comments
I have no experience with RTL on web, but I know that tricky situations can arise with formatting. One simple thing we can do is add/remove .rtl button {} But it's likely there will also be cases where actual HTML elements will need to be reconfigured, which means template overrides. So a theme would also have to have the option to define some override templates that render different markup depending on Implementation ideas:
|
So you theoretically support option #2... |
@danielgindi @aldeed now that we have the pricing localization in as well, what do you think remains here? Do either of you want to take a whack at this? |
Hey guys! |
@danielgindi sounds great. I think we've got most of the i18n and currency issues working fairly well. Looking forward to seeing what you come up with. |
Yay! It will be ready in a few days :) |
Well it takes a little more time than I thought, as there is a big theme to adjust, and as I got engaged in the past month so I have my hands full. |
👍 Looking forward to it. (and doesn't it always take more time than originally thought?) |
Looking pretty darn good. However, I'm noticing one glitch. When changing from RTL to LTR not everything is updating for me (it does on refresh though). Here's what it looks like after it switching back to LTR I'm merging this into reactioncommerce/reaction-core#96. I'll take a look and see what's going on there. |
Man that's weird! |
re: the pr comments, I can update the docs after everything look solid. Was there a particular reason you used rtl.less as a separate import routine in the build configuration? In any case, I've updated to use Didn't see any difference in behavior (and I think that's how it should be)... but was wondering if you'd encountered some issue I'm not seeing. Still - it looks like it's the same functionally as before ( I just merged my changes into development, if you want to take a look. |
Out of curiosity, does the site load in Hebrew by default for you (like it probably should) or English? I am thinking I had tested that locale detection, but at the moment mine keeps defaulting to |
Well I just thought it's natural to put it where the original bootstrap is, |
I did have to specify Hebrew, but my Chrome is in English, and Chrome does not take the system locale for that... |
Something you did in that last PR broke the language menu - it does not load for me |
did you do |
Yes! |
@danielgindi does that mean it worked, or yes, like "duh, I did that" (and it still doesn't work) |
Oh yes!!! ;-) |
(Is that clearer?) |
Awesome. |
re: the refresh issue -> just occurred to me we probably need a Tracker.flush() |
From my tests it looks like a bug in refreshing CSS, I need to look into it more to say with certainty |
Yes it is a WebKit bug. Trying to add the class "rtl" to the document live in Chrome, then Ctrl+Z - keeps the bootstrap floats to the right. These are actually not floats, but "-webkit-column", which I guess is still "-webkit" because it's not complete yet. Trying to find a webkit-fix |
OK it seems like Bootstrap is using a very un-finished CSS3 feature there. I wonder why. There are dozens of articles out there blaming the browsers for being buggy and inconsistent about that feature... |
Update: Found the bug. |
well that works perfectly! love it when 15 characters of code answers one of life's big mysteries. I'll update docs and close this issue when it's ready for the next release. |
Yeah it works great! I'm very satisfied with the result- where everything comes out real clean, and themes can be RTLed with almost zero effort. Looking forward for the next release :-) |
Thanks to contributions from @danielgindi `right to left internationalization` is now supported. Take a look at the Russian or Hebrew languages to see RTL in action. - Resolves #176 Also contributions from @firstred and @epson121 added Dutch and Croatian translations. Thanks to contributions from @lovetostrike, the initial `reactioncommerce:reaction-social` package has been published, which gives basic social sharing functionality. - Resolves #61 - Resolves #281 - if there is neither a sessionCart nor a userCart, create a sessionCart * add sessionId to cart.sessions * auto insert/update userId if authenticated * observers to ensure cart always exists (ie after deletion) - if sessionCart is a not a userCart return sessionCart - if sessionCart just authenticated, add userId - only return a user cart when authenticated * copy existing userCart(s) into sessionCart and remove userCart(s) - if userCart just logged out, remove sessionId from userCart and create new sessionCart - allow multiple sessionId per cart when userCart TODO: - realistically this may not be very solid way to handle sessions. - Session handling will need a **close review in the future**. - potential edge cases where multiple session/auth/merge actions to a cart may destroy the cart - cart really should have mirrored client and server methods and be tested offline Issue updates: - Remove packages introduced in reactioncommerce/reaction-core#76 - Resolves #271 - Resolves #339 - Resolves #326 - Resolves #183 - Strategic updates for issue #16 - Strategic updates for issue #318 - Strategic updates for issue #76 * dashboard enable/disable **guest checkout** * change default step to **guest checkout** or create/sign-in * store email for order - **after order completion if guest** * not visible after destroyed session (ie: refresh) * updated checkout and progress bar to use cart value instead of session TODO: - validation on email guest entry - add account creation instructions to an order completion email - potentially add third prompt for account creation after email (or promos,etc) - order emails! - use workflow states to control checkout ui flow. Thanks to initial contributions from @prinzdezibel! - use new Accounts collection (previously referred to as customers) - create account on user create, or use a session specific account - implement Template.dynamic handling of AddressBook edit/add/grid - changes to checkout address handling, fix accounts context - update addressBook forms to autoform-v0.5.0 compatible (autoform not upgraded) - change accounts/shop `email` from string to `emails` array - `emails: {'address': options.email, 'verified': true}` - changed Shops, Accounts email to an array `emails` - userAccountsDropdown icon for orders, profile - user view of order history TODO: - merge session accounts to user account upon email confirmation (and email saved on cart) - reduce / cleanup garbage sessions (merge will help) - session / accounts/ cart garbage collector - account profile / settings - on account creation / login with password - if confirmed account creation email - create a account collection record with this userId - update all orders with matching email to match this userId - copy all order addresses into Accounts.profile.addressBook - copy all social / email info to Accounts. - users collection locked down, nothing exposed to client, used for authentication only - else - if there are more orders with this email - display on order view "Add order" * moves user orders from cart/checkout folder to dashboard/orders * add message for confirmation of email * authenticated user can see all orders where userId in list view * admin can see all in list view * userAccountsDropdown icon for orders * add cartId to Orders (instead of using cartId as orderId) TODO: - integrate the admin view of list into dashboard admin flow - this is possibly a breaking change to the orders dashboard. - remove sessionId from orders on logout * updates to handling settings from registry (public, private) * rename and move settingGeneral to shop/settings * rename and move settingsAccounts to shop/accounts **Multi-shop/vendor** * shop account updates to prep multi-shop dashboard * shopId added to cart.items (variants) Issue updates: - Strategic updates for issue #236 - Strategic updates for issue #327 * added settings.public to publish public settings to ReactionCore.xxx Thanks to contributions and docs from @spencern - Test coverage for product methods - Fix, add coverage for core methods * Upgrade to Meteor 1.0.4.2 * Implements `check` and `audit-argument-checks` * Implements `browser-policy` * Fixed footer layout pages loading. * Updates CFS, removes FileStorage collection. * **Contributions from @aldeed @prinzdezibel @spencern @boboci9 @evliu @ceh @gouthamve @KEFIRCHIK @epson21 @firstred **
Thanks to contributions from @danielgindi `right to left internationalization` is now supported. Take a look at the Russian or Hebrew languages to see RTL in action. - Resolves #176 Also contributions from @firstred and @epson121 added Dutch and Croatian translations. Thanks to contributions from @lovetostrike, the initial `reactioncommerce:reaction-social` package has been published, which gives basic social sharing functionality. - Resolves #61 - Resolves #281 - if there is neither a sessionCart nor a userCart, create a sessionCart * add sessionId to cart.sessions * auto insert/update userId if authenticated * observers to ensure cart always exists (ie after deletion) - if sessionCart is a not a userCart return sessionCart - if sessionCart just authenticated, add userId - only return a user cart when authenticated * copy existing userCart(s) into sessionCart and remove userCart(s) - if userCart just logged out, remove sessionId from userCart and create new sessionCart - allow multiple sessionId per cart when userCart TODO: - realistically this may not be very solid way to handle sessions. - Session handling will need a **close review in the future**. - potential edge cases where multiple session/auth/merge actions to a cart may destroy the cart - cart really should have mirrored client and server methods and be tested offline Issue updates: - Remove packages introduced in reactioncommerce/reaction-core#76 - Resolves #271 - Resolves #339 - Resolves #326 - Resolves #183 - Strategic updates for issue #16 - Strategic updates for issue #318 - Strategic updates for issue #76 * dashboard enable/disable **guest checkout** * change default step to **guest checkout** or create/sign-in * store email for order - **after order completion if guest** * not visible after destroyed session (ie: refresh) * updated checkout and progress bar to use cart value instead of session TODO: - validation on email guest entry - add account creation instructions to an order completion email - potentially add third prompt for account creation after email (or promos,etc) - order emails! - use workflow states to control checkout ui flow. Thanks to initial contributions from @prinzdezibel! - use new Accounts collection (previously referred to as customers) - create account on user create, or use a session specific account - implement Template.dynamic handling of AddressBook edit/add/grid - changes to checkout address handling, fix accounts context - update addressBook forms to autoform-v0.5.0 compatible (autoform not upgraded) - change accounts/shop `email` from string to `emails` array - `emails: {'address': options.email, 'verified': true}` - changed Shops, Accounts email to an array `emails` - userAccountsDropdown icon for orders, profile - user view of order history TODO: - merge session accounts to user account upon email confirmation (and email saved on cart) - reduce / cleanup garbage sessions (merge will help) - session / accounts/ cart garbage collector - account profile / settings - on account creation / login with password - if confirmed account creation email - create a account collection record with this userId - update all orders with matching email to match this userId - copy all order addresses into Accounts.profile.addressBook - copy all social / email info to Accounts. - users collection locked down, nothing exposed to client, used for authentication only - else - if there are more orders with this email - display on order view "Add order" * moves user orders from cart/checkout folder to dashboard/orders * add message for confirmation of email * authenticated user can see all orders where userId in list view * admin can see all in list view * userAccountsDropdown icon for orders * add cartId to Orders (instead of using cartId as orderId) TODO: - integrate the admin view of list into dashboard admin flow - this is possibly a breaking change to the orders dashboard. - remove sessionId from orders on logout * updates to handling settings from registry (public, private) * rename and move settingGeneral to shop/settings * rename and move settingsAccounts to shop/accounts **Multi-shop/vendor** * shop account updates to prep multi-shop dashboard * shopId added to cart.items (variants) Issue updates: - Strategic updates for issue #236 - Strategic updates for issue #327 * added settings.public to publish public settings to ReactionCore.xxx Thanks to contributions and docs from @spencern - Test coverage for product methods - Fix, add coverage for core methods * Upgrade to Meteor 1.0.4.2 * Implements `check` and `audit-argument-checks` * Implements `browser-policy` * Fixed footer layout pages loading. * Updates CFS, removes FileStorage collection. * **Contributions from @aldeed @prinzdezibel @spencern @boboci9 @evliu @ceh @gouthamve @KEFIRCHIK @epson21 @firstred **
v0.7.0 - JS Conversion, layout.workflows, reaction-accounts, UIX
…e-cloudinary chore: latest cloudinary plugin (operator UI update)
RTL (right to left) support in internationalization / localizations.
Original discussion/proposal from @danielgindi
The text was updated successfully, but these errors were encountered: