S-Man42 / GCWizard

GC Wizard
Other
44 stars 10 forks source link

Speak (vocal / sound based) versus Language (written word) --> impact on decoder result - to be discussed #822

Open Henrike71 opened 2 years ago

Henrike71 commented 2 years ago

Hi there, I have been translating GCWizard texts to be part of the NL GCWizard version. I have noticed that sometimes the code is sound / vocal based and therefore the standard coding / decoding is not likely to work. A typical example of this is Löffel Sprache. It is based on the sound of the word and therefore its coding should as well. As a result it is extremely hard to translate this into another langauge, as another language has other sounds. Just to give an example: ou is one sound and if literally applying the Löffel Sprache to is would make it olewo ulewo but I think in practive would say oulewou instead... In Dutch we have one sound 'ieu' that would become ilewi elewe ulewu in theory but I think should be ieulewieu in practice..... On the other hand I can still imagine that ee would become elewe elewe in practice ... but ieu, ou are completely different than i e u, o u....

I do realize this is not a coding issue as such but it is about what operation needs to be in place to cover various language. My suggestion at current would be: Call it Löffel Sprache (regardless of the language) and state that it best applies to German.

I did translate it to the Dutch Lepelspraak yesterday, but it does not seem adequate....

I would like to start a discussion how to treat speak instead of language where the sound of a word is most important, otherwise we may end up with silly (or even useless?) speak (de)coders. It may be good to invite someone who is native German and knows about at least this Löffel Sprache, and preferably some other sound based converters / secret languages as well.

Thank you for your time, regards, Henrike (I am a chem. eng. not a IT / software eng.)

By the way - I have not yet seen this coding in any Dutch geocaching puzzle I believe. But once a tool becomes available they will start using it because some believe it is fun to add some new puzzle element to the game - so we'd better be safe than sorry

t-m-z commented 2 years ago

Hi Henrike, let me first thank you for your great work and support. We are now in the beta test phase for 2.1.0 and with you help we made a big step forward regarding internationalization.

Regarding your topic: you made a valid point. But I believe this is something which has to be decided case by case. For example Löffelsprache: Löffelsprache asd many other other language games (https://en.wikipedia.org/wiki/Language_game) has its own grammar. Each (spoken) vowel or diphthong is reduplicated with a leading 'lef', 'lew' or 'lev'. Hence the sound is not important. So in my opinion - as long as there is a kind of grammar we should stick to these rules. Thus I suggest to translate the name, but keep the original in brackest/parantheses.

However you are right, we should better be safe than sorry.

regards Thomas

P.S: Although I studied computer science in the early nineties, I would not state that I am a IT/Software eng. at the moment ;-) In fact, it's not the profession which is important but the mindset and enthusiasm

Henrike71 commented 2 years ago

Nice link to that website. I had been searching in Dutch to find the Dutch version of it. Thanks for the information and this good app. I normally use all apps in English, but have to check if I can set individual apps like this one too Dutch. Further for part of the untranslated texts i probably have to use the app to figure out what is meant.

Have a nice evening! Regards, Henrike

Get Outlook for Androidhttps://aka.ms/AAb9ysg


From: Thomas @.> Sent: Sunday, December 12, 2021 7:29:23 PM To: S-Man42/GCWizard @.> Cc: Henrike71 @.>; Assign @.> Subject: Re: [S-Man42/GCWizard] Speak (vocal / sound based) versus Language (written word) --> impact on decoder result - to be discussed (Issue #822)

Assigned #822https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FS-Man42%2FGCWizard%2Fissues%2F822&data=04%7C01%7C%7C7e12ab4be7c3496b45e708d9bd9d5299%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637749305664820499%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=di7OMeagMNQCMGWnZ5NArDWh6clesKdaz7TpuBH1Wa4%3D&reserved=0 to @Henrike71https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FHenrike71&data=04%7C01%7C%7C7e12ab4be7c3496b45e708d9bd9d5299%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637749305664830494%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=HN9A4nNLkO%2BWNx2CasKk8bw0N3CZA1pC2OeZ%2FEmymiM%3D&reserved=0.

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHubhttps://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FS-Man42%2FGCWizard%2Fissues%2F822%23event-5753137429&data=04%7C01%7C%7C7e12ab4be7c3496b45e708d9bd9d5299%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637749305664840489%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=GWvWldCfwro69MmVborpdRu4IepSDihfC2JbMH%2BWY%2B0%3D&reserved=0, or unsubscribehttps://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAW4QVQJQHAUGHJKCJO7NKRTUQTSYHANCNFSM5J4LNOGQ&data=04%7C01%7C%7C7e12ab4be7c3496b45e708d9bd9d5299%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637749305664840489%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=8OUuEdGrYKJ%2Faa8ne7%2FCB6xuq%2BxjLjVDRXszEuuQZxo%3D&reserved=0. Triage notifications on the go with GitHub Mobile for iOShttps://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fapps.apple.com%2Fapp%2Fapple-store%2Fid1477376905%3Fct%3Dnotification-email%26mt%3D8%26pt%3D524675&data=04%7C01%7C%7C7e12ab4be7c3496b45e708d9bd9d5299%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637749305664850487%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=W2v6%2FG65Nkp53plyZkUyTcFCAzTDW8R39R7C47yHlIg%3D&reserved=0 or Androidhttps://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.github.android%26referrer%3Dutm_campaign%253Dnotification-email%2526utm_medium%253Demail%2526utm_source%253Dgithub&data=04%7C01%7C%7C7e12ab4be7c3496b45e708d9bd9d5299%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637749305664850487%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=S7BCDNZglsD%2BVcjmwZqdcSz4wXVry3SxniZouHWcIss%3D&reserved=0.

t-m-z commented 2 years ago

You are always welcome. Please do not hesitate to ask or raise an issue at Crowdin. For details about the app we provide also an online manual hosted at https://blog.gcwizard.net/manual/en/. This includes a list of examples at https://www.geocaching.com/plan/lists/BM8VJK1?sort=distance&sortOrder=asc&skip=0&take=500 to.

Also if you have some ideas how to improve GC Wizard feel free to contribute. And if you you know some caches which can be solved with the app, we are interested, too.

Have a nice week Regards Thomas

S-Man42 commented 2 years ago

For completeness here my Crowdin comments:

================

I completely agree with your (Henrikes) approach. I guess, instead of vocals, complete sounds should be recognized. Maybe we should think about it in one of the next versions. May you open an issue ticket on github https://github.com/S-Man42/GCWizard ?

However, we should do some research how other tools handle this. Maybe this is a well known common problem: We try to make something in a very correct way, while other GC tools do not. In that case it could be quite annoying for our users: Although we are right, they will not receive a good result because the mystery owners use another source. Usually we try to offer some options or something.

But we should definitely keep an eye on this! Nice catch!

Btw: Thanks for your many many contributions! You're great! Thanks a lot!

===============================

Thinking about it: It's not that easy :D

"neu" is a good example for "combined sounds/vocal" (whatever one call it). However, there are numerous exceptions for it: Like "Museum", where the "eu" is not one sound but separately spoken as "Mu-se-um". Same for any word beginning with "be-" or "ge-". ("be-urlaubt", "ge-igelt" - silly word, but "eingeigelt" is commonly used ;) ). In fact, one needs dictionaries for perfect translations and that... is far beyond the scope. Using and integrating entire dictionaries for any tool yield in too huge app sizes. I guess here, the GCW's translation can only be the first approach, the owner needs to adjust it finally...

But however, it's worth to think about it :D

S-Man42 commented 2 years ago

More interesting, we support the German diphtongs: ie, ei, eu, au.

These are the test cases, we use:

      {'input' : 'Hallo Welt', 'expectedOutput' : 'halewallolewo welewelt'},
      {'input' : 'Auto', 'expectedOutput' : 'aulewautolewo'},
      {'input' : 'Ein', 'expectedOutput' : 'eilewein'},
      {'input' : 'eie', 'expectedOutput' : 'eileweielewe'},
      {'input' : 'Öl', 'expectedOutput' : 'ölewöl'},
      {'input' : 'aie', 'expectedOutput' : 'alewaielewie'},
      {'input' : 'ieeu', 'expectedOutput' : 'ielewieeuleweu'},
      {'input' : 'a', 'expectedOutput' : 'alewa'},
      {'input' : 'e', 'expectedOutput' : 'elewe'},
      {'input' : 'i', 'expectedOutput' : 'ilewi'},
      {'input' : 'o', 'expectedOutput' : 'olewo'},
      {'input' : 'u', 'expectedOutput' : 'ulewu'},
      {'input' : 'ä', 'expectedOutput' : 'älewä'},
      {'input' : 'ö', 'expectedOutput' : 'ölewö'},
      {'input' : 'ü', 'expectedOutput' : 'ülewü'},
      {'input' : 'au', 'expectedOutput' : 'aulewau'},
      {'input' : 'ei', 'expectedOutput' : 'eilewei'},
      {'input' : 'eu', 'expectedOutput' : 'euleweu'},
      {'input' : 'ie', 'expectedOutput' : 'ielewie'},

However, i fear, this leads to bad results when it comes to my examples above. So, I guess, it's not simply possible to just make it quite perfect without internal dictionary analysis. And this is, as said, far beyond our scope, I guess.

Henrike71 commented 2 years ago

Yes, this is going to be too complex also considering that in Dutch we also have ieu for example, and eï and eë and some other options.... So let's note what we stated before, that a human check is required before actually using it. The idea beyond the speak is clear to me and should become clear from the app... The latter I did not yet investigate.

See you, regards, Henrike

Get Outlook for Androidhttps://aka.ms/AAb9ysg


From: MLorenz42 @.> Sent: Monday, December 13, 2021 9:10:59 AM To: S-Man42/GCWizard @.> Cc: Henrike71 @.>; Mention @.> Subject: Re: [S-Man42/GCWizard] Speak (vocal / sound based) versus Language (written word) --> impact on decoder result - to be discussed (Issue #822)

More interesting, wie support the German diphtongs: ie, ei, eu, au.

These are the test cases, we use:

  {'input' : 'Hallo Welt', 'expectedOutput' : 'halewallolewo welewelt'},

  {'input' : 'Auto', 'expectedOutput' : 'aulewautolewo'},

  {'input' : 'Ein', 'expectedOutput' : 'eilewein'},

  {'input' : 'eie', 'expectedOutput' : 'eileweielewe'},

  {'input' : 'Öl', 'expectedOutput' : 'ölewöl'},

  {'input' : 'aie', 'expectedOutput' : 'alewaielewie'},

  {'input' : 'ieeu', 'expectedOutput' : 'ielewieeuleweu'},

  {'input' : 'a', 'expectedOutput' : 'alewa'},

  {'input' : 'e', 'expectedOutput' : 'elewe'},

  {'input' : 'i', 'expectedOutput' : 'ilewi'},

  {'input' : 'o', 'expectedOutput' : 'olewo'},

  {'input' : 'u', 'expectedOutput' : 'ulewu'},

  {'input' : 'ä', 'expectedOutput' : 'älewä'},

  {'input' : 'ö', 'expectedOutput' : 'ölewö'},

  {'input' : 'ü', 'expectedOutput' : 'ülewü'},

  {'input' : 'au', 'expectedOutput' : 'aulewau'},

  {'input' : 'ei', 'expectedOutput' : 'eilewei'},

  {'input' : 'eu', 'expectedOutput' : 'euleweu'},

  {'input' : 'ie', 'expectedOutput' : 'ielewie'},

However, i fear, this leads to bad results when it comes to my examples above. So, I guess, it's not simply possible to just make it quite perfect without internal dictionary analysis. And this is, as said, far beyond our scope, I guess.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FS-Man42%2FGCWizard%2Fissues%2F822%23issuecomment-992208297&data=04%7C01%7C%7Ce12a473f488f47a4c8be08d9be10190c%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637749798610033721%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=kE85bKP4j51Of5smHMxJJua4pGOo8XR0%2FGlwHc%2BbpmQ%3D&reserved=0, or unsubscribehttps://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAW4QVQOX2AYAGSNXQ6E4OU3UQWTBHANCNFSM5J4LNOGQ&data=04%7C01%7C%7Ce12a473f488f47a4c8be08d9be10190c%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637749798610043717%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=Ixxp45DEyemBf8tjreYgWkK2Ca81HkxbZDnVKIrdlS8%3D&reserved=0. Triage notifications on the go with GitHub Mobile for iOShttps://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fapps.apple.com%2Fapp%2Fapple-store%2Fid1477376905%3Fct%3Dnotification-email%26mt%3D8%26pt%3D524675&data=04%7C01%7C%7Ce12a473f488f47a4c8be08d9be10190c%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637749798610053707%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=gPA5sKxuyElREkR7M3HDjAv8HLTv4WFE2z0gRNXNtws%3D&reserved=0 or Androidhttps://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.github.android%26referrer%3Dutm_campaign%253Dnotification-email%2526utm_medium%253Demail%2526utm_source%253Dgithub&data=04%7C01%7C%7Ce12a473f488f47a4c8be08d9be10190c%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637749798610053707%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=JMWwN%2B5LuohfH6A%2FMlD1OChnUxekpLm6oXx3OdAimN0%3D&reserved=0.