Variable dialect in App Function say


I have a simple app that takes a number range. That range is looked up from a data sheet to provide a French word and it’s English translation. 2 labels are updated with the words, and I use App Feature - Speech - Say to Speak first the French word then the English word. I assign the spoken voice of French and English to the appropriate words, and I hear a proper accent for each word. Well, on my laptop at least. I logged in to the builder on my phone and played a range of words, and the French accent disappeared from the web preview. Seeing the warning that the builder does not work as well on mobile, I chalked it up to that. I logged back into my laptop, and the web preview worked just fine. I downloaded to Android, installed, and ran the app. French accent is gone. It’s like I selected English instead of French for the speaker. I’m pretty green at mobile development. Is there something I need to include, or am I misunderstanding the function?

As a separate question, my Update word function, both the labels are updated, and then the words are spoken. Oddly, they don’t seem tied together. Before I had the wait command, all the words would scroll through almost immediately, and the words would just roll through independently. All x number of words would have already have cycled through before the 5th words were read. It’s like the words go into a buffer and will just continue until complete. Adding the wait at 4 seconds slows the label update down to the time to read both words and keeps them synced. Seems like there should be a better way than a hard coded pause. The 4 seconds works well in French, but for Russian, Latin, and German, I had to use different times for each to keep things balanced. Is there something like, If function is complete; continue?

Thank you,

Hi @jmpalcs7pkl, thanks for reaching out about this.

Are there any accent marks in the French words? This could make a difference. Otherwise, it could just be how the translator we use for this (Yandex) works.

Because this is all using an API to get the translation and reading of the words, sometimes the wait block can allow each call in the function to finish before moving on to the next.