Jump to content

Looking for a small translation team for an Emby plugin. :)


chef

Recommended Posts

Hi,

I'm currently looking for a small group of people who would be interested in helping to  translate some text commands.

This project has to do with natural speech, so it is also about properly translating the phrasing of a commands, as well as the words.

The languages I'm looking to translate are:

English => German

English => Spanish

English => one of the many languages of India probably " hi-IN" to start.

Please post below if you are interested, it would be great to hear form you :) 

 

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

chef
6 hours ago, Eigeplackter said:

I could try to help with

English => German

Oh that's amazing! 

Thank you. 

Link to comment
Share on other sites

chef

@Eigeplackter are you familiar with JSON?

I just want to make the translations as easy as I can.

 I can format them differently if you need.

I will PM you shortly. 

 

Link to comment
Share on other sites

chef
5 minutes ago, Eigeplackter said:

Nope, absolutely not into coding/programming. 

Okay, I will reformat the data to make it easy.

 

Thank you so much. I'll be in touch 😃

This is very exciting, you'll see. 👍

Link to comment
Share on other sites

chef

I'm going to post this json doc here. 

translate what you can.

Xml nodes (<amazon:emotion name='excited' intensity='medium'>) should be left as English. 

but the text inside can be translated, for example:

<say-as interpret-as='interjection'>you bet!</say-as>

We'd want to translate "you bet!😃 or something similar.

 

Another example:

Elements like: "AskForHelp": "Ask for Help",

We would want to translate the right side of the colon (the value) and leave the left side of the colon (the key) in English. 

"AskForHelp": "I_Need_To_Be_Translated".

 

Just leave the "Dysfluency" stuff, it is rarely used.

 

I hope I have explained that okay. I'm the worst at explaining things.

I've made notes for some phrasing where the string is just half the sentence, since the rest is dynamically written.

If you notice phrasing that wouldn't sound proper, let me know. I am hoping to have Alexa speak fluently in German. 

There's a lot. It's okay if you get board and stop. LOL! I totally get it. Just creating the JSON was a lot of manual labor. 

 

{
  "localization": {
    "Apologetic": [
      "Sorry.",
      "Apologies.",
      "I Apologize.",
      "I'm sorry."
    ],
    "Compliance": [
      "<say-as interpret-as='interjection'>you bet!</say-as>",
      "<say-as interpret-as='interjection'>OK</say-as>",
      "<say-as interpret-as='interjection'>absolutely!</say-as>",
      "<say-as interpret-as='interjection'>all right!</say-as>",
      "<say-as interpret-as='interjection'>Alight!</say-as>",
      "<amazon:emotion name='excited' intensity='medium'>Yes.</amazon:emotion>. Here you go."
    ],
    "Repose": [
      "One moment...",
      "One moment please...",
      "Just a moment..."
    ],
    "Greetings": [
      "Hi",
      "Hello",
      "<amazon:emotion name='excited' intensity='high'>Hey!</amazon:emotion>",
      "<amazon:emotion name='excited' intensity='high'>Hi There!</amazon:emotion>"
    ],
    "DysfluencyNegative": [
      "<say-as interpret-as='interjection'>oops!</say-as>",
      "<say-as interpret-as='interjection'>ugh!</say-as>",
      "<say-as interpret-as='interjection'>uh oh!</say-as>",
      "<say-as interpret-as='interjection'>um!</say-as>",
      "<say-as interpret-as='interjection'>uh uh!</say-as>"
    ],

    "DysfluencyPositive": [
      "<say-as interpret-as='interjection'>ahem!</say-as>",
      "<say-as interpret-as='interjection'>uh!</say-as>",
      "<say-as interpret-as='interjection'>uh huh!</say-as>",
      "<say-as interpret-as='interjection'>um!</say-as>",
      "<say-as interpret-as='interjection'>hmmm!</say-as>",
      "<say-as interpret-as='interjection'>err</say-as>",
      "<say-as interpret-as='interjection'>uhm</say-as>",
      "<say-as interpret-as='interjection'>ummm</say-as>",
      "<say-as interpret-as='interjection'>ah</say-as>",
      "<say-as interpret-as='interjection'>er</say-as>",
      "<say-as interpret-as='interjection'>hmm</say-as>"
    ],
    "PersonNotRecognized": "I don't recognize the current user. ",
    "AskForHelp": "Ask for Help",
    "UnableToFind": "I was unable to find that item in the library.",
    "Misunderstood": [ "I may have misunderstood you.", "I didn't understand what you said" ],
    "PleaseTryAgain": "Please Try again.",
    "OnLaunch": "What media can I help you find.",
    "SayAgain": "Can you say that again?",
    "HelpPromptExampleMediaRequest": "Try using the type of media in your request. <break strength='weak'/> For example: Use the word \"Movie\", or \"Series\".",
    "DeviceUnavailable": "That device is currently unavailable.",
    "HereIs": "Here is",
    "Rated": "Rated",
    "UnRated": "unrated",
    "HereIsNextUpEpisode": "Here is the next up episode for",
    "NoUnwatchedEpisode": "There doesn't seem to be a new unwatched episode available for",
    "PlayNextUpEpisode": "Playing the next up episode for",
    "ShowingInRoom": "Showing in the", //with regards to a movie or tv show starting to play in a certain room in your home.
    "ParentalControlsNotAllowedAccess": "Are you sure you are allowed access to this item",
    "PlayItem": "Now playing the",
    "RoomContext": "<amazon:emotion name='excited' intensity='medium'>In which room?</amazon:emotion>",
    "VoiceAuthenticationExistsBeforeName": "This profile is already linked to an account.",
    "VoiceAuthenticationExistsAfterName": "'s account",
    "VoiceAuthenticationAccountLinkError": "I was unable to learn your voice. ",
    "CheckPersonalizationSettings": "Please make sure you have allowed personalization in the Alexa app.",
    "VoiceAuthenticationAccountLinkSuccess": "<say-as interpret-as='interjection'>Success!</say-as> Please look at the plugin configuration. You should now see the I.D. linked to your voice. <break strength='weak'/> Choose your emby account name and press save.",
    "ThereAre": "There are",
    "ThereIs": "There is",
    "UpcomingEpisode": "upcoming episode",
    "UpcomingEpisodes": "upcoming episodes",
    "Scheduled": "scheduled to air over the next ", // 7 days
    "Days": "days",
    "On": "On",
    "PremiereSeason": "will premiere season", //Example "On sunday {Series} will premiere season 2"
    "And": "and",
    "ListComplete": "This completes the list of episodes scheduled for the next ", //7 days
    "New": "new",
    "AddedDuration": "added in the past", //Referring to the duration: example "The past two days"
    "Starring": "starring",
    "Also": "also",
    "WhatItemToPlayError": "I don't know what item you want to play.",
    "CanIHelpYou": "Can I help you with anything?"
  }
}

 

Edited by chef
Link to comment
Share on other sites

Eigeplackter
{
  "localization": {
    "Apologetic": [
      "Sorry.",
      "Apologies.",
      "I Apologize.",
      "I'm sorry."
    ],
    "Compliance": [
      "<say-as interpret-as='interjection'>you bet!</Verlass dich drauf!>",
      "<say-as interpret-as='interjection'>OK</Ok>",
      "<say-as interpret-as='interjection'>absolutely!</Auf jeden Fall!>",
      "<say-as interpret-as='interjection'>all right!</Alles klar!>",
      "<say-as interpret-as='interjection'>Alight!</Ausstieg>",
      "<amazon:emotion name='excited' intensity='medium'>Yes.</amazon:emotion>. Here you go."
    ],
    "Repose": Antwort [   //I suppose this was meant as RespoNse ? Bzt no translation needed?
      "One moment...",
      "One moment please...",
      "Just a moment..."
    ],
    "Greetings":"Willkommen" [
      "Hi",
      "Hello",
      "<amazon:emotion name='excited' intensity='high'>Hey!</amazon:emotion>",
      "<amazon:emotion name='excited' intensity='high'>Hi There!</amazon:emotion>"
    ],
    "DysfluencyNegative": [
      "<say-as interpret-as='interjection'>oops!</Hoppla>",
      "<say-as interpret-as='interjection'>ugh!</Igitt>",
      "<say-as interpret-as='interjection'>uh oh!</say-as>",
      "<say-as interpret-as='interjection'>um!</Hmm>",
      "<say-as interpret-as='interjection'>uh uh!</Oh Oh>"
    ],

    "DysfluencyPositive": [
      "<say-as interpret-as='interjection'>ahem!</say-as>",
      "<say-as interpret-as='interjection'>uh!</say-as>",
      "<say-as interpret-as='interjection'>uh huh!</say-as>",
      "<say-as interpret-as='interjection'>um!</say-as>",
      "<say-as interpret-as='interjection'>hmmm!</say-as>",
      "<say-as interpret-as='interjection'>err</Jaaaa>",
      "<say-as interpret-as='interjection'>uhm</say-as>",
      "<say-as interpret-as='interjection'>ummm</say-as>",
      "<say-as interpret-as='interjection'>ah</Ahh>",
      "<say-as interpret-as='interjection'>er</Jaaaa>",
      "<say-as interpret-as='interjection'>hmm</say-as>"
    ],
    "PersonNotRecognized": "Diesen Benutzer kenne ich nicht!",
    "AskForHelp": "Bitte um Hilfe.",
    "UnableToFind": "Das kann ich leider nicht finden.",
    "Misunderstood": [ "Ich habe Dich leider nicht verstanden.", "Das habe ich nicht mitbekommen." ],
    "PleaseTryAgain": "Bitte versuche es noch einmal.",
    "OnLaunch": "Welche Medien suchst du?",
    "SayAgain": "Bitte wiederhole das.",
    "HelpPromptExampleMediaRequest": "Versuche die Art der Medien in Deiner Anfrage zu verwenden. <break strength='weak'/> Zum Beispiel: Benutze das Wort \"Film\", oder \"Serie\".",
    "DeviceUnavailable": "Dieses Gerät steht aktuell nicht zur Verfügung",
    "HereIs": "Hier ist",
    "Rated": "Rated",   //rating as in Tomatometer or mpaa rating ?
    "UnRated": "unrated", //rating as in Tomatometer or mpaa rating ?
    "HereIsNextUpEpisode": "Hier ist die nächste Folge von",
    "NoUnwatchedEpisode": "Es scheint keine neue ungesehene Folge verfügbar zu sein von",
    "PlayNextUpEpisode": "Spiele die nächste Folge von",
    "ShowingInRoom": "Wiedergabe erfolgt in", //with regards to a movie or tv show starting to play in a certain room in your home.
    "ParentalControlsNotAllowedAccess": "Bist du sicher das du Zugriff auf diese Datei hast",
    "PlayItem": "Spiele",
    "RoomContext": "<amazon:emotion name='excited' intensity='medium'>In welchem Raum?</amazon:emotion>",
    "VoiceAuthenticationExistsBeforeName": "Dieses Profil ist bereits mit einem anderen Benutzer verknüpft",
    "VoiceAuthenticationExistsAfterName": "'s Benutzer",
    "VoiceAuthenticationAccountLinkError": "Ich konnte deine Stimme leider nicht erkennen",
    "CheckPersonalizationSettings": "Bitte überprüfe ob die Option Personalisierung in der Alexa App eingeschaltet ist.",
    "VoiceAuthenticationAccountLinkSuccess": "<say-as interpret-as='interjection'>Success!</Erfolgreich!> Bitte überprüfe die Plugin Konfiguration. Du solltest jetzt eine ID sehen, die deiner Stimme zugeordnet ist. <break strength='weak'/> Wähle deinen Emby Benutzer und klicke auf sichern.",
    "ThereAre": "Es gibt",
    "ThereIs": "Da wäre",
    "UpcomingEpisode": "Demnächst erscheint die Episode",
    "UpcomingEpisodes": "Demnächst erscheinen die Episoden",
    "Scheduled": "Läuft innerhalb der nächsten ", // 7 days
    "Days": "Tage",
    "On": "Ein", // as in Power on, or "Auf" as in running on HBO
    "PremiereSeason": "erfolgt die Erstausstrahlung", //Example "On sunday {Series} will premiere season 2"
    "And": "und",
    "ListComplete": "Das sind alle geplanten Episoden für die nächsten ", //7 days
    "New": "neu",
    "AddedDuration": "Aufgenommen innerhalb der ", //Referring to the duration: example "The past two days"
    "Starring": "Mitwirkend",
    "Also": "Ebenfalls",
    "WhatItemToPlayError": "Ich weiß leider nicht welche Datei zu abspielen möchtest.",
    "CanIHelpYou": "Kann ich dir behilflich sein?"
  }

 

 

There you go, added some comments incl. question

Link to comment
Share on other sites

chef

ah, okay... so for items like this:

"Greetings": [
      "Hi",
      "Hello",
      "<amazon:emotion name='excited' intensity='high'>Hey!</amazon:emotion>",
      "<amazon:emotion name='excited' intensity='high'>Hi There!</amazon:emotion>"
    ],

we actually need to translate "Hi", "Hello", "Hey!", "Hi There!".

 

and for this one:

"Apologetic": [
      "Sorry.",
      "Apologies.",
      "I Apologize.",
      "I'm sorry."
    ],

"Sorry", "Apologies", "I Apologize", "I'm Sorry"

 

Also here:

 "Repose": [   
      "One moment...",
      "One moment please...",
      "Just a moment..."
    ],

 

"One moment", "One moment please", "Just a moment..."

Edited by chef
Link to comment
Share on other sites

chef, have you found anyone for the Spanish translation?

If not, I might be able to lend a hand, no native speaker though

Feel free to ping me if you need me.

  • Like 1
Link to comment
Share on other sites

Eigeplackter
52 minutes ago, Eigeplackter said:
{
  "localization":"Lokalisation" {
    "Apologetic":"Bedauernd" [
      "Sorry.","Sorry."
      "Apologies.","Verzeihung."
      "I Apologize.","Ich entschuldigw mich."
      "I'm sorry."
    ],"Das tut mir leid."
    "Compliance":"Compliance" [
      "<say-as interpret-as='interjection'>you bet!</Verlass dich drauf!>",
      "<say-as interpret-as='interjection'>OK</Ok>",
      "<say-as interpret-as='interjection'>absolutely!</Auf jeden Fall!>",
      "<say-as interpret-as='interjection'>all right!</Alles klar!>",
      "<say-as interpret-as='interjection'>Alight!</Ausstieg>",
      "<amazon:emotion name='excited' intensity='medium'>Yes.</amazon:emotion>. Here you go."
    ],
    "Repose": Antwort [   //I suppose this was meant as RespoNse ? Bzt no translation needed?
      "One moment...","Einen Augenblick..."
      "One moment please...","Einen Moment bittr..."
      "Just a moment..."
    ],"Nur noch kurz Warten..."
    "Greetings":"Willkommen" [
      "Hi","Hi"
      "Hello","Hallo"
      "<amazon:emotion name='excited' intensity='high'>Hey!</amazon:emotion>",
      "<amazon:emotion name='excited' intensity='high'>Hey du !"</amazon:emotion>"
    ],
    "DysfluencyNegative": [
      "<say-as interpret-as='interjection'>oops!</Hoppla>",
      "<say-as interpret-as='interjection'>ugh!</Igitt>",
      "<say-as interpret-as='interjection'>uh oh!</say-as>",
      "<say-as interpret-as='interjection'>um!</Hmm>",
      "<say-as interpret-as='interjection'>uh uh!</Oh Oh>"
    ],

    "DysfluencyPositive": [
      "<say-as interpret-as='interjection'>ahem!</say-as>",
      "<say-as interpret-as='interjection'>uh!</say-as>",
      "<say-as interpret-as='interjection'>uh huh!</say-as>",
      "<say-as interpret-as='interjection'>um!</say-as>",
      "<say-as interpret-as='interjection'>hmmm!</say-as>",
      "<say-as interpret-as='interjection'>err</Jaaaa>",
      "<say-as interpret-as='interjection'>uhm</say-as>",
      "<say-as interpret-as='interjection'>ummm</say-as>",
      "<say-as interpret-as='interjection'>ah</Ahh>",
      "<say-as interpret-as='interjection'>er</Jaaaa>",
      "<say-as interpret-as='interjection'>hmm</say-as>"
    ],
    "PersonNotRecognized": "Diesen Benutzer kenne ich nicht!",
    "AskForHelp": "Bitte um Hilfe.",
    "UnableToFind": "Das kann ich leider nicht finden.",
    "Misunderstood": [ "Ich habe Dich leider nicht verstanden.", "Das habe ich nicht mitbekommen." ],
    "PleaseTryAgain": "Bitte versuche es noch einmal.",
    "OnLaunch": "Welche Medien suchst du?",
    "SayAgain": "Bitte wiederhole das.",
    "HelpPromptExampleMediaRequest": "Versuche die Art der Medien in Deiner Anfrage zu verwenden. <break strength='weak'/> Zum Beispiel: Benutze das Wort \"Film\", oder \"Serie\".",
    "DeviceUnavailable": "Dieses Gerät steht aktuell nicht zur Verfügung",
    "HereIs": "Hier ist",
    "Rated": "Rated",   //rating as in Tomatometer or mpaa rating ?
    "UnRated": "unrated", //rating as in Tomatometer or mpaa rating ?
    "HereIsNextUpEpisode": "Hier ist die nächste Folge von",
    "NoUnwatchedEpisode": "Es scheint keine neue ungesehene Folge verfügbar zu sein von",
    "PlayNextUpEpisode": "Spiele die nächste Folge von",
    "ShowingInRoom": "Wiedergabe erfolgt in", //with regards to a movie or tv show starting to play in a certain room in your home.
    "ParentalControlsNotAllowedAccess": "Bist du sicher das du Zugriff auf diese Datei hast",
    "PlayItem": "Spiele",
    "RoomContext": "<amazon:emotion name='excited' intensity='medium'>In welchem Raum?</amazon:emotion>",
    "VoiceAuthenticationExistsBeforeName": "Dieses Profil ist bereits mit einem anderen Benutzer verknüpft",
    "VoiceAuthenticationExistsAfterName": "'s Benutzer",
    "VoiceAuthenticationAccountLinkError": "Ich konnte deine Stimme leider nicht erkennen",
    "CheckPersonalizationSettings": "Bitte überprüfe ob die Option Personalisierung in der Alexa App eingeschaltet ist.",
    "VoiceAuthenticationAccountLinkSuccess": "<say-as interpret-as='interjection'>Success!</Erfolgreich!> Bitte überprüfe die Plugin Konfiguration. Du solltest jetzt eine ID sehen, die deiner Stimme zugeordnet ist. <break strength='weak'/> Wähle deinen Emby Benutzer und klicke auf sichern.",
    "ThereAre": "Es gibt",
    "ThereIs": "Da wäre",
    "UpcomingEpisode": "Demnächst erscheint die Episode",
    "UpcomingEpisodes": "Demnächst erscheinen die Episoden",
    "Scheduled": "Läuft innerhalb der nächsten ", // 7 days
    "Days": "Tage",
    "On": "Ein", // as in Power on, or "Auf" as in running on HBO
    "PremiereSeason": "erfolgt die Erstausstrahlung", //Example "On sunday {Series} will premiere season 2"
    "And": "und",
    "ListComplete": "Das sind alle geplanten Episoden für die nächsten ", //7 days
    "New": "neu",
    "AddedDuration": "Aufgenommen innerhalb der ", //Referring to the duration: example "The past two days"
    "Starring": "Mitwirkend",
    "Also": "Ebenfalls",
    "WhatItemToPlayError": "Ich weiß leider nicht welche Datei zu abspielen möchtest.",
    "CanIHelpYou": "Kann ich dir behilflich sein?"
  }

 

 

There you go, added some comments incl. question

Updated 

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

chef
5 minutes ago, Eigeplackter said:

Updated 

AMAZING! Thank you. Alexa will soon speak German thanks to you :) 

Link to comment
Share on other sites

chef
21 minutes ago, neik said:

chef, have you found anyone for the Spanish translation?

If not, I might be able to lend a hand, no native speaker though

Feel free to ping me if you need me.

it would be a pleasure to have you on board @neik as always!

would either of you guys want to join in on the Alexa Testing?

Getting all the languages is super important. That has always been the issue with the current Emby Alexa app.

This one is slightly more in-depth. LOL!

TA-DA! this is just a small example  of how we've endowed Alexa with power of Emby.

 

And.. Yes! Alexa speaks German now. That's very cool. 

Edited by chef
Link to comment
Share on other sites

Just had a look at the German translation and there are two little typos in Eigeplackter's translation:

"One moment please...","Einen Moment bittr..." -> bitte

"I Apologize.","Ich entschuldigw mich." -> entschuldige

 

5 hours ago, chef said:

it would be a pleasure to have you on board @neik as always!

would either of you guys want to join in on the Alexa Testing?

Let me see what I can do with the translations but I will not be able to test it as my house is Alexa-free.

  • Like 1
  • Agree 1
Link to comment
Share on other sites

chef

Okay are you interested in going again for German translation?

The thing about this document is we are only looking to translate the "samples".

For example in the following snippit:

          "samples": [
            "play {Anaphor} on the {Room} TV",
            "play {Anaphor} in {Room}",
            "play {Anaphor} in the {Room}",
            "play {Anaphor}",
            "play"
          ]

We want to ignore anything in brackets. So you would ignore "{Anaphor}" and "{Room}".

 

The phrasing here is super important! These are examples of what you would say to Alexa, to get the outcome you want.

To give a little more clarity, {Room} is a room in your house, {Anaphor} are words like "This", "That", "It".

Alexa will understand these same types of words in German, and they fall into the same category. 

So if the phrase in German needs to use those word types in a different place then where it is currently placed, we would need the translation to work around them.

 

For example, in the sample above, while using English we could say the following phrases to Alexa, and it would understand us:

"play that in the family room" ==> "That" is the {Anaphor} / "family room" is the {Room}

"play this in the family room" ==> "This" is the {Anaphor} / "family room" is the {Room}

"play that"

"play this"

 

If I give you the json, do you thinkI have explained it enough for  you to translate it?

@neik

@Eigeplackter

 

I'm not sure if I want to place the entire command list publically here... a lot of work went into it. Maybe we more to PM.

 

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...