#Help Translate Modrinth!

1 messages · Page 3 of 1

jolly kayak
#

And of course for more complex strings it still gives a baseline for translating the string directly in crowdin

dusty pivot
#

Idk if Modrinth is on Crowdin's OS-project plan or paid, but from own experience and what I understand can you not add/change the TM in open source project plans.

#

It's on by default and set to what crowdin provides.

jolly kayak
#

At least thats how it works for my account

dusty pivot
#

No idea.

#

I use Crowdin for like one project and it's on OS so...

#

(And I plan to move stuff anyway)

jolly kayak
#

Since from a feature standpoint its pretty solid

ebon sun
#

Bring your own key

#

We won't be providing that

#

Or just have two tabs open and use DeepL free

jolly kayak
dusty pivot
#

It seems the word for gift card is being lowercased by the site, which is odd to do as not every language has the world lowercased...
Should perhaps be fixed.

elfin agate
#

If it's "Search + noun.toLower()" probably also breaks languages in which the verb has to agree with the noun. Or if the verb has to come after the object

#

(i.e. verb changes based on noun)

oak fulcrum
#

i beg your pardon

scenic girder
#

Lmao

dusty pivot
#

ICU goes brrrr

scenic girder
#

Just a question, but why does the website, on its first visit, start out on the user's language then revert to English on load?

ebon sun
#

just doing it for fun at this point lmao

grand silo
# ebon sun

do you really need itemType/contentType in these components? i think you can use "project" without any meaning loss

ebon sun
dark parcel
#

i do think some of these will get out of hand if we add more project types

fleet tangle
#

How often are proofreader applications read?

ebon sun
scenic girder
#

speaking of which, miroma is having some difficulties catching up on the new lines and approving the strings - I kinda wanted to help out, but idk how much it would take to be a proofreader as well

tardy pine
#

Translation suggestion: I think we should have English UK and AU as they are very similar to English US but are different enough to be included maybe not AU but definitely English UK

scenic girder
#

That's why they are not included: they are very similar to English US and for now only languages that are different are included to reduce costs

dusty pivot
dusty pivot
scenic girder
tardy pine
scenic girder
ebon sun
#

Compared to 17% at the start of the year

dusty pivot
#

Out of curiosity

ebon sun
dark parcel
#

yeah someone just has to do it

#

there's no roadblock

ebon sun
#

It's also quite invasive if we did it all at once, merge conflicts would be ridiculous/slow down in-flight projects - but yeah we could just do it rn and be done with it, it's just not a great idea

#

would have the same situ when we did the eslint/prettier changes lol

#

200k diff

scenic girder
#

The next day: 200k new lines to translate on crowdin

scenic girder
#

apparently this string isn't on crowdin?

ebon sun
#

We're about to prune a lot of broken translations (ICU broken) - we're also now actively deleting old translations if the source English string changes significantly

#

All the i18n fixes in the GH mega thread should be going out soon though

ebon sun
scenic girder
scenic girder
#

there are a lot of strings with {type},
can they all cointain the same things or are they all different?

dusty pivot
#

@ebon sun I want to request the removal of de_ch and my part as a proofreader for it
I simply can't find any motivation anymore in making the translations.

ebon sun
#

I dont see the point in having it anyways honestly

scenic girder
#

me and miroma were discussing if i should request to be a proofreader too

scenic girder
#

#announcements message
Looks like Filtered by is not a string on crowdin

steady olive
#

I would like to add a Slovenian translation (ping me if reply)

scenic girder
#

could be a replacement for de_zh

scenic girder
#

user.profile.badge.alpha.about.1 and user.profile.badge.hosting-alpha.about.1 are missing the ending period

ebon sun
scenic girder
#

placing both there

scenic girder
#

I submitted my proofreader request

little thorn
# ebon sun Can you put it into the megathread gh issue?

Hello (sorry for the reply, I couldn't mention you)
​I would like to request the addition of the Persian (Farsi) language to the Modrinth Crowdin project.
​There is an active community of Persian-speaking users who would benefit greatly from having the platform available in our language. I am ready to contribute to the translation process as soon as it is added.
​Thank you!

scenic girder
little thorn
scenic girder
#

-# why does this sound like an ai generated response (before they edited the message)

warped spindle
steady olive
#

this one?

#

ah

warped spindle
steady olive
#

I see what u mean

warped spindle
steady olive
jolly kayak
#

Crowdin workflow on github seems to be failing currently

rapid prairie
#

@ebon sun

ebon sun
#

uhh

#

will look soon, idk whats wrong with it

#

spontaneously broke

frail seal
#

because crowdin broke for the Fabric Docs yesterday, with a configuration similar to Modrinth's

ebon sun
#

i reran and it worked

#

i thought the rerun failed

#

it said

❌ Error from server: <Code: <empty_code>, Message: Unexpected character ('<' (code 60)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false')
 at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 1]>
frail seal
#

That's the same exact issue

#

it's a 503 Forbidden iirc

frail seal
rapid prairie
#

I love servers that randomly return xml

oak fulcrum
#

I DIDNT EVEN FINISH LAST WEEK'S STRINGS WHY

scenic girder
#

dies

jolly kayak
#

Light work no reaction

#

Apart from all the duplication the strings are pretty translation friendly, just gotta make sure that the server event specific strings use the correct form

dark parcel
#

we be shipping like crazy

scenic girder
ebon sun
#

@jolly kayak I have actually been putting off setting i18n ally up lol, ty

#

will rev tommorow 🙂

ebon sun
#

i used it for a uni proj a few weeks ago

#

is very neat

jolly kayak
#

Yea also just discovered it by accident

ebon sun
#

it is semi annoying it's owned by lokalise though

#

they aren't the best company out there in terms of open source stuff/lock in

jolly kayak
#

Havent looked into that, thought they were kinda like weblate

#

But apparently not

ebon sun
#

its honestly just crowdin with a faster UI and more expensive

#

and a massive push towards paying contracts out for translations

#

they r pushing AI massively now as well i think lol

#

as usual

jolly kayak
#

It really sucks that there isnt some open source crowdin clone, weblate is okay for what it is but I cant get used to the ui

#

And its slow

ebon sun
#

loqui was gonna be that

#

but i got a job here instead 😜

jolly kayak
#

Tried deploying it on my own machine

#

Btw did you get the go-to-definition and usage report working? I thought it was impossible with the current object-based setup

ebon sun
#

nah was not working

#

i think its just bugged

scenic girder
ebon sun
#

for all projs

jolly kayak
scenic girder
#

POEditor is free for open source projects tho
-# altough modrinth wouldn't fit in the criteria because Modrinth Servers exists

jolly kayak
#

@ebon sun 👀

ebon sun
#

it has quite a few pretty nasty security vulns with react

jolly kayak
ebon sun
#

someone actually hijacked my vps when we had a staging version of it running lol

jolly kayak
#

Whoa

#

Glad that has never happened to me before

ebon sun
#

the security thing wasn't a thing we introduced but part of next.js afaik

jolly kayak
#

I somehow have never actively worked on a next project before

#

Started with nuxt and vue and stayed there

dark parcel
dark parcel
#

but didn't get super far bc modrinth took too much of my time still

jolly kayak
dark parcel
#

currently on Pro but it looks like we're about out of strings

#

and that's already like $140/month it looks like

jolly kayak
#

That would certainly be a jump

dark parcel
#

looks like we can do one more jump on the Pro plan

jolly kayak
#

Isnt it the same price tho lol?

#

Wait no, team is way more expensive for the same amount

dark parcel
#

1.06M vs 100k

#

just such a ridiculous amount of money to spend on fairly shitty software

jolly kayak
#

Really sucks that weblate isnt really a drop in replacement

dark parcel
#

weblate is horrible

jolly kayak
#

Yea

dark parcel
#

would never use it again tbh

jolly kayak
#

Havent used crowdin for that long but afaik it has always stayed the same even tho the website looks modern

scenic girder
#

crowdin uses two uis but for some reason their most comfortable one is in the enterprise plan or something

#

there it lets proofreader vote for strings as if they were regular users, afaik regular crowdin doesn't

scenic girder
#

idk how much it costs the enterprise thing

jolly kayak
#

Yea, I cant vote which sucks

#

For example when some new user suggests a bad / broken translation, I cant simply bump the old translation up

scenic girder
#

you approve it

jolly kayak
#

Yea thats why I usually do but sometimes this makes it so im approving my own translation with zero votes which looks weird

#

German is not that active

scenic girder
#

time to pay for the enterprise version of crowdin

jolly kayak
scenic girder
#

there you can just decide as tho which role to log in

#

for some reason if you log as proofreader you can't translate new lines, there, tho
you gotta go on crowdsource first

jolly kayak
#

Seems like the enterprise stuff was built on top of everything purely for profit

#

Instead of creating a single, great ui

scenic girder
#

i mean... yeah that's how it works

jolly kayak
#

Just asking, what project youre on can afford that plan? Or is it just some company?

scenic girder
#

you just have an extra workflow tab

scenic girder
#

idk how much they pay for it but it's just for two subdomains apparently, the others they use regular crowdin

jolly kayak
#

Interesting

scenic girder
#

uhh... it costs a bunch @jolly kayak

jolly kayak
snow lake
#

I know that tools like Weblate have a much more spartan UI and might feel dauting to use at first, but is Crowdin's comfort really worth that inflated price tag? Especially for a non-profit-oriented project like this one, saving that money seems worth the friction of getting used to a rougher UI, or at least looking into other self-hosted alternatives

scenic girder
#

for the crazy amount of strings modrinth has, i'd say crowdin is really comfortable...
especially for the "translation memory" and "terms" features

#

some platforms use google sheets instead, which yeah it's free but it's quite uncomfortable and anyone can edit any language at any time and there's no proofreading stuff

#

-# yes i use to translate on google sheets too and it's very very uncomfortable

snow lake
scenic girder
#

-# not talking for how slow it would get with 16k strings for each language - english and keys included

snow lake
scenic girder
#

i have only tested POEditor so far,
which has proofreading but lacks translation memory and glossary; but is free for open source projects

snow lake
#

Personally, I've felt right at home with Weblate, which is mainly why I recommend it as a good platform. Ultimately, that's just my opinion. What really matter to me is that, in the end, the various translations we're working on are successful

scenic girder
#

i'd stick on crowdin because that's what we used and are used with so far... would be problematic to try to move everything to a new platform

#

and i'd feel sorry for whoever would have to move all the context images there

snow lake
#

From what I can see, the italian translation is already quite well advanced, right?

scenic girder
#

yeah me and miroma manage it

snow lake
#

Yes, that's why I'm saying it. I saw that you beat the russian

scenic girder
#

-# well we've been ahead of every other language (as in proofreading) for a while...

#

we've been hitting a bit slow now, but will recover soon

snow lake
#

i'll keep an eye out, bcs I understand and write Italian as… second (and distant) language

scenic girder
scenic girder
#

I apprecciate the correct use of the accented ì there 👍

snow lake
#

Btw, over the last few days I've been finishing off the French transl. and I'm now halfway through the Swiss Standard German (de-CH). Just how abandoned is that one? Because it's quite a bit behind many others

scenic girder
#

de-ch is about to be removed, really

snow lake
#

Oops

scenic girder
#

yeah it's barely any different from regular german and it just wastes words that could be used for other languages

snow lake
#

It makes sense, there are four differences from the german version, and above all that pesky ß eszett which becomes a ss double s, but I find it curious

scenic girder
#

there does exist it-ch and fr-ch too, and it's the same thing

ebon sun
#

Since we're on the paid plan

#

And honestly

#

I think Crowdin is working fine?

scenic girder
#

Yeah crowdin is working flawlessly for now, i like using that platform

snow lake
scenic girder
#

No problems so far, only complaint is that proofreaders can't vote like regular users

#

and that's only true for the non-enterprise edition of crowdin, for some weird reason

snow lake
snow lake
scenic girder
#

I see

snow lake
#

Btw, speaking of BCN. I understand that adding new languages might be frozen at the moment, but would it be possible in the short-medium term to include Catalan in Modrinth? It's my native language after all, so I could faithfully translate everything within a few weeks

scenic girder
#

someone suggested it previously but afair it got refused for now as it shares similarities with spanish

#

there's both spanish and the latin american one for now

#

as well as portuguese and brazilian portuguese

snow lake
#

Let me explain it simple, Catalan and Occitan are Occitano-romances langs., which branch out from the Gallo-romance family (alongside French)

scenic girder
#

yes but we also have 4 variations of the same old spanish here

snow lake
#

Spanish and Portuguese belong to the Ibero-romance branch

#

by origin Catalan is closer to French🫪

scenic girder
#

Could be a replacement for de-ch as long as Catalan people don't understand regular Spanish

snow lake
scenic girder
#

each country has their different variation of Spanish xd

#

No way we're going to include all of those variants...

snow lake
#

I think there's a misunderstanding. Catalan doesn't require regional variants like Spanish or Portuguese do! While technically ca-AD exists for Andorra and ca-ES for Spain (and ca-FR & ca-IT), in software localisation everyone just uses the single unified code ca.

#

Unlike other languages, the written differences between Catalan regions are minimal, so a single translation slot covers everything and every speaker understands it perfectly.

scenic girder
#

i meant each country having their own version of Spanish and Catalan being one of them

snow lake
#

Just to be clear that Catalan is not a version of Spanish. Saying that is like saying Dutch is a version of German

#

It is a fully independent language with its own grammar and vocabulary, not a regional variant

scenic girder
#

i may be tired and may be mixing it up with castillan

#

I mean, Italian also has around 20 different dialects but none of which are actually ever used in platforms as different languages

snow lake
#

No worries about the mix-up. But the comparison with Italian dialects doesn't really apply here. Those lack a unified written standard for tech. Catalan is a fully standardised, official language. That's why it's completely supported by Apple, Google, Microsoft, and Minecraft itself. It's a standard industry language, not a local dialect.

scenic girder
snow lake
#

In fact, there are two versions of Catalan in Minecraft
General Catalan (Català) and Valencian Catalan (Valencià)

scenic girder
#

also Minecraft supports every language almost

snow lake
#

Minecraft supports a crazy amount of languages. It even includes ones that aren't technically separate languages (like Valencian, which no serious linguist considers a separate language from Catalan, but politics can be funny like that)…

#

However you'll notice it still doesn't include any of those Italian dialects you mentioned earlier

scenic girder
#

Venetian is in Minecraft as a different language, thinking about it

#

Veneto

#

In Minecraft there are 3 Italian dialects + Italian

#

Veneto (Venetian), Lombardo (Lombard) and Friulano (Friulan)

ebon sun
#

We aren't adding any new languages due to the Crowdin plan limits

#

It grows exponentially with each language and each app/site/hosting release we do (which is why we're happily removing Swiss German for example if it's being unmaintained)

scenic girder
#

What about also removing the languages that barely have 20% completion

snow lake
#

But wait, I just checked Lombard, Friulian and Venetian too, and none of them are dialects of Italian🫪

scenic girder
snow lake
#

Personally I just want to know what you want me to do. I can continue with de-CH, although from what I've seen it still needs a lot of work to achieve a consistent style. Or, if you are planning to drop the practially abandoned Schweizer Hochdeutsch in the short term, we could replace it with Catalan, which I commit to actively maintain

#

Let me know

dusty pivot
scenic girder
#

Imo removing a language that is similar to another to a language that is different than the others is more worth

scenic girder
#

Did these bug out?

#

only for some languages apparently

#

Also i was thinking if maybe the Master/Duplicate strings feature of crowin may turn useful for strings like this.
Technically, it would save on a couple of words if implemented

#

-# or just merging these in particular as a single string, but that wasn't the point i was trying to make

#

Crowdin's UI just updated live wth

scenic girder
# scenic girder Did these bug out?

Maybe i got the problem,
if the ICUs aren't mathing (eg: a variable is missing), modrinth defaults to the english string.
Can this be fixed? Reporting on the i18n GitHub

jolly kayak
#

I think this was intentional to avoid issues with broken icus

scenic girder
#

in this case the icu isn't broken and it was a deliberate choice to translate the string like this

#

-# also we already have approved those strings and it's hard to track all of them down now...

jolly kayak
#

Yea, I also know some icu strings in German that were simplified, ill write a script later to check which ones

frail seal
#

I think crowdin has an option to filter for broken/missing ICU tags

scenic girder
#

approved strings are counted as having no mistakes

frail seal
#

time to remove all approvals then 👍

scenic girder
#

-# spiderman no scream

jolly kayak
# frail seal time to remove all approvals then 👍
app.instance.worlds.remove-server-description-with-address
app.modal.install-to-play.mod-count
analytics.chart.controls.active-count
dashboard.analytics.from-projects
dashboard.notifications.link.view-more
dashboard.organizations.member-count
dashboard.projects.links.and-more
profile.label.downloads
profile.stats.projects-followers
project.settings.permissions.search-placeholder
project.stats.downloads-label
project.stats.followers-label
report.already-reported-description
report.back-to-item
report.checking
report.could-not-find
report.question.content-id
report.question.report-reason
content.diff-modal.added-count
content.diff-modal.removed-count
content.diff-modal.updated-count
content.inline-backup.warning-body
content.selection-bar.selected-count
content.selection-bar.selected-count-simple
files.create-modal.header
files.layout.selected-count
files.upload-dropdown.uploads-left
files.upload.drag-and-drop.drop-to-upload
format.bytes.0
installation-settings.unlink.description
project-type.mod.capital
project-type.mod.lowercase
project-type.plugin.capital
project-type.plugin.lowercase
project-type.server.capital
project-type.server.lowercase
project-type.shader.capital
project-type.shader.lowercase
project.download-count-tooltip
project.follower-count-tooltip
servers.audit-log.event.server-plan.cpu
servers.backups.bulk-bar.aria-label
servers.backups.bulk-bar.deleting
servers.backups.delete-modal.header
servers.listing.notice.files-kept-for-download
servers.listing.notice.pending-change
servers.manage.search-placeholder
settings.language.description
settings.language.warning
nags.all-tags-selected.description
nags.description-too-short.description
nags.gpl-license-source-required.description
nags.multiple-resolution-tags.description
nags.select-license.description
nags.summary-too-short.description
nags.too-many-tags-server.description
nags.too-many-tags.description
nags.upload-gallery-image.description

Total: 58 missing ICU string(s) for it-IT
#

Cant say if its 100% accurate, it just tests which icu strings are missing

frail seal
#

I guess I'll add a {count, plural, other {}} to all

jolly kayak
#

I think the pruning that the i18n-icu-contract.ts script does wont really work in general tho. Changing a translation like {count} Server to {count} {count, plural, one {Server} other {Server}} is possible, just boilerplate, but more complex icus, like time-frame-picker.last-timeframe will always look different in some languages

scenic girder
jolly kayak
frail seal
scenic girder
scenic girder
jolly kayak
#

Realistically this is probably negligible

scenic girder
ebon sun
scenic girder
ebon sun
#

Im not really sure what you're asking? Do you mean like allow it to have extra?

jolly kayak
#

The problem is that it currently prunes strings like

In the last {amount} {unit, select, hours {{amount, plural, one {hour} other {hours}}} days {{amount, plural, one {day} other {days}}} weeks {{amount, plural, one {week} other {weeks}}} months {{amount, plural, one {month} other {months}}} other {days}}

where its impossible to keep the same icu structure in many languages

#

Because it has to be translated something like

months {{unit, select, hours {{amount, plural, one {In der letzten Stunde} other {In den letzten # Stunden} }} days {{amount, plural, one {Am letzten Tag} other {In den letzten # Tagen} }} weeks {{amount, plural, one {In der letzten Woche} other {In den letzten # Wochen} }} months {{amount, plural, one {Im letzten Monat} other {In den letzten # Monaten} }} other {In den letzten # Tagen}}

scenic girder
scenic girder
# jolly kayak Because it has to be translated something like `months {{unit, select, hours {...

{unit, select, hours {{amount, plural, one {Nell'ultima ora} other {Nelle ultime # ore}}} days {{amount, plural, one {Nell'ultimo giorno} other {Negli ultimi # giorni}}} weeks {{amount, plural, one {Nell'ultima settimana} other {Nelle ultime # settimane}}} months {{amount, plural, one {Nell'ultimo mese} other {Negli ultimi # mesi}}} other {Negli ultimi {amount} giorni}}
it's like this in italian

scenic girder
#

would it? i don't see it in the list you sent earlier

jolly kayak
#

Weird, let me check

#

Yea no, that would work lol, sorry

#

Will see if I can change the German translation to work

scenic girder
#

-# yeah i oftentimes check with an ICU editor if they would work

scenic girder
#

how is this not valid, too...?

#

pretty sure both settings.language.warning and description worked and we didn't change those in a long time

#

so it seems now it's discarding any string that doesn't have a 100% match on the ICUs

snow lake
fleet tangle
#

Even though I am the only one for the Danish, I'll continue

#

All I am waiting for is proofreader to approve translations using the Memory thingy

fleet tangle
#

Without any proofreader, this string can't be shown to the public in Danish, but if I wrote it myself using the time, then it would

#

IDK how often it updates though

warped spindle
fleet tangle
#

Could be wrong

warped spindle
#

TM simply means that you clicked on translation memories and used that translation as is.

#

Everyone can see your string, and it will show up on the website.

warped spindle
# fleet tangle But the text below says so

It just means that extra attention is needed because a translation was submitted as is without any changes from the memory. It has nothing to do with the visibility and the need to be approved by a proofreader.

fleet tangle
#

Aahhhh.

#

Thanks for the clarification

warped spindle
fleet tangle
#

Yeah. I have applied, but not gotten any reponse

dusty pivot
#

See the oldest pinned message or here: #1404516213689811004 message

fleet tangle
scenic girder
scenic girder
#

So that one "i18n strings fix" completely broke some strings instead,
it even removed all the strings in which '{name}' was replaced by "{name}" (changing quoting style).
This makes no sense

ebon sun
#

like the broken ones

#

will have a look

scenic girder
#

Instead of removing all the strings which ICU structures aren't the same between the original string and the translated one, just remove the ones in which the ICU can't be parsed, so translators are free to make their own ICUs

ebon sun
#

aware of the contract purge script not working perfectly

scenic girder
#

I don't really know if it's the same issue, but it removed about 50 strings from the website

#

many of which are the ones most people would see

ebon sun
#

Yeah its probably just the contract purge script being broken

#

its not deleting them off crowdin tho