Closed Heptagon-ru closed 5 years ago
@tatsu011 whats the state of this?
..was wondering why I didn't see anything mentioned as things for me to do during January for translations last month. Though I did just come up with an idea of how to deal with this.
Lets go back to the Hearty Cabbage Soup example. We have the translation for the words Hearty Cabbage Soup
However, if we decide to add in more ingredients, instead of adding to the name, we add them to the tooltip with the format of Secondary-Primary-Type with a format for each type.
The idea being that we add in some format lines for the cooking system that covers Secondary-Primary-Type and Primary-Type. The list of ingredients for that food would be in the tooltip, and not in the name.
The change to fix this has been pushed to the next main version. As of now this change is complete.
@Heptagon-ru I'll upload the new 1.9.0 translations soon-ish. If the improvements by tatsu do not suffice for a correct translation do let us know please. I fully agree on your statement, either we properly translate it or not translate it at all.
@tyronx , @tatsu011 So the Type is soup/porridge/...? Then yeah, it might work, if at least Primary will be separate for each type. Need to see live to understand better. Yeah, will try to keep an eye on the new translations and check and report back.
These are the new language entries that tatsu added:
"cooking-porridge-format-g1": "{1} {0}",
"cooking-porridge-format-g2": "{1}-{2} {0}",
"cooking-porridge-format-g1o": "{1} {0} with {2}",
"cooking-porridge-format-g2o": "{1}-{2} {0} with {3}",
"cooking-porridge-format-g1h": "{2} topped {1} {0}",
"cooking-porridge-format-g2h": "{3} topped {1}-{2} {0}",
"cooking-porridge-format-g1oh": "{3} topped {1} {0} with {2}",
"cooking-porridge-format-g2oh": "{4} topped {1}-{2} {0} with {3}",
"meaty": "meaty",
"cooking-stew-format-m1": "{1} {0}",
"cooking-stew-format-m2": "{2} {1} {0}",
"cooking-stew-format-m1o": "{1} {0} with {2}",
"cooking-stew-format-m2o": "{2} {1} {0} with {3}",
"cooking-stew-format-m1h": "{2} topped {1} {0}",
"cooking-stew-format-m2h": "{3} topped {2} {1} {0}",
"cooking-stew-format-m1oh": "{3} topped {1} {0} with {2}",
"cooking-stew-format-m2oh": "{4} topped {2} {1} {0} with {3}",
"cooking-stew-format-v1": "{1} {0}",
"cooking-stew-format-v2": "{2} {1} {0}",
"cooking-stew-format-v1o": "{1} {0} with {2}",
"cooking-stew-format-v2o": "{2} {1} {0} with {3}",
"cooking-soup-format-a1": "{1} {0}",
"cooking-soup-format-a2": "{2} {1} {0}",
"cooking-soup-format-a1o": "{1} {0} with {2}",
"cooking-soup-format-a2o": "{2} {1} {0} with {3}",
If I understand correctly, {0} is "porridge"/"stew"/"soup", {1} is main ingredient, {2} is additional, {3} is topping.
I may see 3 kinds of problems. 1. For porridge, in case "{1} {0}" and in case "{1}-{2} {0}", even if {1} is e.g. rye, it will be two different word forms. For "{1} {0}" it will be adjective, e.g. "rye porridge" = "ржаная каша", but for "{1}-{2} {0}" it will be adverb, e.g. "rye-rice porridge" = "ржано-рисовая каша". Kinda because the last word in chain X-Y-X remains adjective, and all previous become adverbs. And I think you can't build the chain without dashes using only adjectives, because the adjectives are of the same type/tier. I guess the same in English - you probably can't say "rye rice porridge", but can "tasty rice porridge", because tasty and rice are adjectives of different "type", they describe different attribute "slots" of porridge.
Sometimes one ingredient, e.g. vegetable, is used in recipes of different types, therefore we need to have a separate form of the ingredient for each type, because meal types have different gender and therefore their adjectives need to have different gender. E.g. "stew" has neuter gender, "soup" has masculine gender. So "cabbage stew" will be "капустное рагу", but "cabbage soup" will be "капустный суп".
When e.g. "poultry" is used before meal type for stews, it will be adjective, when after (for soups) - usually a noun: "poultry stew" - "куриное рагу", "cabbage soup with poultry" - "капустный суп с курицей". Again need to have separate words for substitutions.
So unless there is more of the new entries, I feel this will not save us. @tyronx , could you please cross-check all this through Saraty? She knows Russian quite good I'm sure, and she is much closer to you and she worked more with the dynamic meals. Maybe I am missing something. Also if you will try to modify the methodology, she will give much faster analysis if it works for Russian. Ofc if she distastes :) this kind of work, you are stuck with me only :D
Oki, thank you hepta, I'll talk to saraty about it, maybe she can help indeed.
I am curious if "Poultry in cabbage soup" is written differently than "Cabbage soup with poultry"
@tatsu011, yes. "Poultry in cabbage soup" - Курица в капустном супе "Cabbage soup with poultry" - Капустный суп с курицей For reference: cabbage - капуста, poultry - курица, soup - суп
In this example all the changes in suffixes are because of grammatical cases. According to Wiki, English mostly lost all cases, remained only 3 simplified cases for personal pronouns: I/ me/mine(my), he/him/his, ...
(Btw, strictly speaking, poultry is translated differently, and I actually used translation of "chicken". But the word transformation is the same. It is just that in Russian there is no good short accurate word for poultry, the usual translation is "bird meat" which is not quite correct, because poultry is not all birds. That's why poultry is one of the most hated by me words in VS OneSky translation, where I used "bird meat" :DDD)
I approve of that little bit of info. I also approve of changing the format of how things are laid out so that words can flow in the same sort of direction. What I've put there works for English, but if it's possible to change that formatting to work for Russian, then by all means, change the formatting. (that's what it's there for. )
Aww, I was hoping you guys will find the way with your bright young brains :D I will try to think of something, but I don't feel positive I can :)
Since I'm not exactly multilingual, (just monolingual English speaker) I wanted to build something that others can work with. Thus: I give you formatting.
Saraty may be able to help. Let's see
Unfortunately the system proposed by tatsu is insufficient. New system, as discussed with @Heptagon-ru:
Base language Entries
"meal-normal-porridge": "{0} porridge {1}",
"meal-normal-stew": "{0} stew {1}",
"meal-normal-soup": "{0} soup {1}",
"meal-hearty-porridge": "Hearty {0} porridge {1}",
"meal-hearty-stew": "Hearty {0} stew {1}",
"meal-hearty-soup": "Hearty {0} soup {1}",
"meal-hefty-porridge": "Hefty {0} porridge {1}",
"meal-hefty-stew": "Hefty {0} stew {1}",
"meal-hefty-soup": "Hefty {0} soup {1}",
"meal-normal-porridge-honey": "Honey topped {0} porridge {1}",
"meal-normal-stew-honey": "Honey topped {0} stew {1}",
"meal-normal-soup-honey": "Honey topped {0} soup {1}",
"meal-hearty-porridge-honey": "Honey topped hearty {0} porridge {1}",
"meal-hearty-stew-honey": "Honey topped hearty {0} stew {1}",
"meal-hearty-soup-honey": "Honey topped hearty {0} soup {1}",
"meal-hefty-porridge-honey": "Honey topped hefty {0} porridge {1}",
"meal-hefty-stew-honey": "Honey topped hefty {0} stew {1}",
"meal-hefty-soup-honey": "Honey topped hefty {0} soup {1}",
in above list {0} will be replaced by: The list of primary/secondary ingredients connected with dashes as before, but using primary/secondary language entries for all of possible ingredients:
"meal-ingredient-porridge-secondary-rice": "Rice as adverb",
"meal-ingredient-porridge-primary-rice": "Rice as adjective",
"meal-ingredient-soup-secondary-rice": "Rice as adverb",
"meal-ingredient-soup-primary-rice": "Rice as adjective",
etc.....
whereas {1} will be replaced by:
"meal-adds-generic": " with {0}",
"meal-adds-meatystew-boiled": " with boiled {0}",
"meal-adds-vegetablestew-garnish": " with {0} garnish",
"meal-adds-porridge-mashed": " with mashed {0}",
"meal-adds-porridge-sprinkled": " with sprinkled {0}",
"meal-adds-porridge-mashed-and-sprinkled: " with mashed {0} and sprinkled {1}",
"meal-adds-porridge-mash-aswellas-sprinkled": " with mashed {0} as well as sprinkled {1}",
in this list {0}/{1} will be replaced by item lists
"meal-ingredientlist-1": "{0}",
"meal-ingredientlist-2": "{0} and {1}",
"meal-ingredientlist-3": "{0}, {1} and {2}",
"meal-ingredientlist-4": "{0}, {1}, {2} and {3}",
etc... (until 10)
items inside the item list will use language entries of all ingredients in instrumental case
"meal-ingredient-cranberry-instrumentalcase": "cranberry+oi",
"meal-ingredient-carrot-instrumentalcase": "carrot+oi"
etc....
@Heptagon-ru as requested in our talk, please verify if above system suffices for a grammatically correct translation of meals into russian. Thank you :-)
Yes, I have checked it again and cross-checked with Discord messages, it seems we covered all and the system should work. Can't wait to see if it will work flawlessly, or completely fail because of a minorest detail we missed :DDDDDD Thank you for this noice participation opportunity! Little did @tatsu011 know, when suggested the "format" approach, we quickly mega-exploded it into the Mega Multy Format approach :D Anyway, blame Pushkin and Tolstoy, not us!!! :DDDDD
The only thing I'd actually suggest changing on the new format is give "Honey" it's own name and allow for other toppings. eg "{2} topped hefty {0} soup {1}"
And the only reason I'm suggesting this is the existence of sauces, and ease of mod ability.
Yeah, this should work, even with other liquid sauces addition. And we can (or even should) avoid adding a new keyword type for this, we can/should reuse "meal-ingredient-*-instrumentalcase", i.e. "meal-ingredient-honey-instrumentalcase", because honey here will have the same "with what" grammatical case.
Nah, don't do that for now. Add that at a later point when it becomes relevant please.
Might I ask why to leave it as "Honey topped" instead of "{x} topped"? The formatting required doesn't really add much and it's very easy to do.
This task is now complete and waiting on a merge request.
As of current, the only major feature missing is the implementation of InsturmentalCase as I had no clue how that was supposed to be handled in code- as the formatting for it looked strange. This will be completed once I get a rough draft of the Launcher in place.
All fixed. Will be pushed with my updates for this month.
In Russian (I am not a linguist and can be wrong in details and grammatical definitions),
I guess in other languages this may be also as problematic, but in different way.
I have no experience how these things are usually dealt with. E.g. with current approach we could try to somehow store the source words with context. Context may be included to the source (doesnt seem to be possible), or may be only visible in the key string. E.g. if I know that this hearty will go with soup, not to porridge, I will write the matched translation. Same with point 2, with cabbage. Also with cabbage-pumpkin case (even with more-general case of cabbage-pumpkin-turnip-onion case): all words except the last one are adverbs, last one is adjective, which can depend from grammatical gender and quantity.
Without such improvement, the awesome feature - dynamic meal descriptions - will look terrible in Russian and may damage VS reputation a lot. Better not to translate at all. In Russia there were many widely known cases when in movies (usually US ones) or in games the translations were awful (e.g. just a random set of cyrillic characters instead of a person's surname), and people laughed on these translations and looked at them very negatively.
:tired_face: