very good. you speak clearly you move mouse slowly you say what you and do what you say That's real professionnal. You help me a lot for my project. Thanks ''the Boss' 👍👍👍
The reason 4 digit language codes are still commonly used is that it's more specific. en_gb is different from en_za, and yet different from en_us. If you only have 2 digits to specify the language (e.g. "en") then you would have to settle on a single dialect.
Hi Rick! Thanks for this helpful video. Have you found a way to translate items in the database? As I understand your video - apptext translates elements, headers, and such, but what about actually translating the data that we display? I have an audience that is both German and English and they need to use the app together (e.g., I can't make two separate databases)
Hi - yes I have. It is a bit involved so I haven't yet made a video about it. But I need to get off my lazy tushy and just do it. It involves creating a list of things in your database. If you want to store a product name, for example, I have a field for "product name" (television) and another field for a list of "translated names" (en_us television,es_es televisión,fr_fr télévision,de_de Fernsehen etc). I have a workflow that creates the list whenever a product name is created. If the product name is changed, the workflow throws out the entire list of translated names and re-translates it. On the front end, when you display the product, you display the translated names, filtered by first-4-characters matches current user's language, first item. It requires the use of some regex expressions. It's tedious to set up, but it works flawlessly. I'll give you a heads up when I post the video.
For Option Sets, you could either 1. Store the translation for each option set's entry and have them show based on the current user's language preference or 2. Have google translate do a live translation is the current user's language preference is not English. Option sets are super frustrating when multiple languages are concerned.
@@genstatetechnology Thank you very much for your kind reply! I came to your video because I am going to build a new app and I wanted to set everything in order to have multiple language....I was so glad to see how easy it is to translate things when you deal with text elements or element text captions...and then I realized have such a lot of Option Set as well that must be translated....😁...I tried to figure out if it was possible to have something similar to the language settings but I didn't find anything and I thought about having multiple Option Sets version....but that also means having a lot of conditional statements because Option Sets are not linked to the lang param in the url...so I asked and you confirmed my fears...such a shame!...bubble should definetely consider this thing...thank you again!!!
Hi @castingdesign1140. I just tried to google the 4-digit ISO codes and found nothing. What I did was look on Bubble itself to get their list of 4-digit codes. Go to your app editor --> Settings Tab --> Languages Sub-tab. Click on "Export" and you'll get a popup that allows you to choose which languages you want and there you will see them all. Here's a screenshot of what I'm referring to: imgur.com/a/LY2Lc7a.
Hello Rick, thanks for this tuto! Quick question: with the first method you explained, how can I manage the translation of several pages without having to choose the language for each new page of my website?
If I understand your question correctly - you are referring to using conditional statements? You don't need to choose a specific language for each page. In all methods I went over, you set up translations for all supported languages for each element. In the example of using conditional statements - A page title would have each translation built into the title element, and displayed depending upon what "lang" parameter is used when the page loads. (Does that help?)
@@genstatetechnology Sorry for the misunderstanding. I used the method with the App Text (?). My website have 5 pages. I put the repeating group like you in the header. My problem is the following: When my users select a langage, the workflow is always the same with "go to page X". If they are on page Y and want to display the content in a different langage it's not possible because they will be redirected page X. Also, when my users navigates on my site and want to go from one page to another, the language they had chosen on the previous page is not the same and that the language displayed is the default. This leads me to two questions: 1. How can I display the current page in a different language? (not page X) 2. How do I store the language information that was chosen on the previous page when my user moves to another page? (when they move from page Y to page W) I guess it's with a query param but I've never used that before ... Many thanks for your help!
@@EleonoreMoulard OH! Thank you for the detailed description. To make this work, have a workflow for each page that changes the lang parameter to the current user's language preference. First step in the workflow - when the user chooses a language, the workflow should update the user's language in their profile. Second step - the workflow should request the page be refreshed. Upon refreshing, the page will see that the current page's lang parameter does not match that of the user and will refresh with the correct language.
Thanks for the video. What about storing a user's preferred language in a field in the database, it looks cleaner. Well, there are certain cons and pros...?
For the App Text (?) feature in Bubble to work, you need to have the ?lang parameter in the url. You can have your app make sure that the stored user's preferred language matches the lang parameter - and changes it if need be. But I haven't found a way for Bubble to recognize a different language other than referencing the url.
@@genstatetechnology no, I followed your tutorial but stored preferred language in a user field. Works just fine just using app.Text without the url parameter.
@@genstatetechnology yes, the con as I see it is that for users who haven't logged in yet won't get it translated. But I could use a browserLanguage plugin for that as I saw someone had suggested. Anyways, I better get started as well.
I understand you want to make some money of this. However, having to watch a dozen ads in the first 10 minutes of the video is so annoying that I stopped watching because it's a huge time waster. Good content though.
Hey Marc - we don't have any control over the number of ads RUclips decides to insert. Nor are we paid for the content. But I'm glad the bit you watched was helpful!
good job, exactly what i was looking for
very good.
you speak clearly
you move mouse slowly
you say what you and do what you say
That's real professionnal.
You help me a lot for my project.
Thanks ''the Boss' 👍👍👍
The reason 4 digit language codes are still commonly used is that it's more specific. en_gb is different from en_za, and yet different from en_us. If you only have 2 digits to specify the language (e.g. "en") then you would have to settle on a single dialect.
Agreed. I wonder why Google Translate only accepts the 2-digit. The different dialects of Spanish alone would merit the ability to differentiate.
Hi Rick! Thanks for this helpful video. Have you found a way to translate items in the database? As I understand your video - apptext translates elements, headers, and such, but what about actually translating the data that we display?
I have an audience that is both German and English and they need to use the app together (e.g., I can't make two separate databases)
Hi - yes I have. It is a bit involved so I haven't yet made a video about it. But I need to get off my lazy tushy and just do it. It involves creating a list of things in your database. If you want to store a product name, for example, I have a field for "product name" (television) and another field for a list of "translated names" (en_us television,es_es televisión,fr_fr télévision,de_de Fernsehen etc). I have a workflow that creates the list whenever a product name is created. If the product name is changed, the workflow throws out the entire list of translated names and re-translates it. On the front end, when you display the product, you display the translated names, filtered by first-4-characters matches current user's language, first item. It requires the use of some regex expressions. It's tedious to set up, but it works flawlessly. I'll give you a heads up when I post the video.
Hi,
Is the video done? Where can I find it please?@@genstatetechnology
Thank you so much for this Video. It just helped me.
You're welcome!
How should I deal with text in the Option Set collections? Should there I have multiple option set each for every language?
For Option Sets, you could either 1. Store the translation for each option set's entry and have them show based on the current user's language preference or 2. Have google translate do a live translation is the current user's language preference is not English. Option sets are super frustrating when multiple languages are concerned.
@@genstatetechnology Thank you very much for your kind reply! I came to your video because I am going to build a new app and I wanted to set everything in order to have multiple language....I was so glad to see how easy it is to translate things when you deal with text elements or element text captions...and then I realized have such a lot of Option Set as well that must be translated....😁...I tried to figure out if it was possible to have something similar to the language settings but I didn't find anything and I thought about having multiple Option Sets version....but that also means having a lot of conditional statements because Option Sets are not linked to the lang param in the url...so I asked and you confirmed my fears...such a shame!...bubble should definetely consider this thing...thank you again!!!
Thanks for this, Could you send the link for the 4-digit codes, please?
Hi @castingdesign1140. I just tried to google the 4-digit ISO codes and found nothing. What I did was look on Bubble itself to get their list of 4-digit codes. Go to your app editor --> Settings Tab --> Languages Sub-tab. Click on "Export" and you'll get a popup that allows you to choose which languages you want and there you will see them all. Here's a screenshot of what I'm referring to: imgur.com/a/LY2Lc7a.
@@genstatetechnology Thank you that very helpful
Good job Rick
Thank you Ghirmay!
Hello Rick, thanks for this tuto!
Quick question: with the first method you explained, how can I manage the translation of several pages without having to choose the language for each new page of my website?
If I understand your question correctly - you are referring to using conditional statements? You don't need to choose a specific language for each page. In all methods I went over, you set up translations for all supported languages for each element. In the example of using conditional statements - A page title would have each translation built into the title element, and displayed depending upon what "lang" parameter is used when the page loads. (Does that help?)
@@genstatetechnology Sorry for the misunderstanding.
I used the method with the App Text (?). My website have 5 pages. I put the repeating group like you in the header.
My problem is the following:
When my users select a langage, the workflow is always the same with "go to page X". If they are on page Y and want to display the content in a different langage it's not possible because they will be redirected page X. Also, when my users navigates on my site and want to go from one page to another, the language they had chosen on the previous page is not the same and that the language displayed is the default.
This leads me to two questions:
1. How can I display the current page in a different language? (not page X)
2. How do I store the language information that was chosen on the previous page when my user moves to another page? (when they move from page Y to page W)
I guess it's with a query param but I've never used that before ...
Many thanks for your help!
@@EleonoreMoulard OH! Thank you for the detailed description. To make this work, have a workflow for each page that changes the lang parameter to the current user's language preference. First step in the workflow - when the user chooses a language, the workflow should update the user's language in their profile. Second step - the workflow should request the page be refreshed. Upon refreshing, the page will see that the current page's lang parameter does not match that of the user and will refresh with the correct language.
Also - in the workflows navigating from page to page, make sure the "send current page parameters" checkbox is checked.
Thanks for the video.
What about storing a user's preferred language in a field in the database, it looks cleaner. Well, there are certain cons and pros...?
For the App Text (?) feature in Bubble to work, you need to have the ?lang parameter in the url. You can have your app make sure that the stored user's preferred language matches the lang parameter - and changes it if need be. But I haven't found a way for Bubble to recognize a different language other than referencing the url.
@@genstatetechnology no, I followed your tutorial but stored preferred language in a user field. Works just fine just using app.Text without the url parameter.
@@speedracer7022 Seriously!? I'll have to check that out.
@@speedracer7022 I don't know why I didn't see that before. You're right - it's much cleaner. Now I have to update a zillion pages.
@@genstatetechnology yes, the con as I see it is that for users who haven't logged in yet won't get it translated. But I could use a browserLanguage plugin for that as I saw someone had suggested. Anyways, I better get started as well.
I understand you want to make some money of this. However, having to watch a dozen ads in the first 10 minutes of the video is so annoying that I stopped watching because it's a huge time waster. Good content though.
Hey Marc - we don't have any control over the number of ads RUclips decides to insert. Nor are we paid for the content. But I'm glad the bit you watched was helpful!