Open DrSkyfaR opened 2 years ago
Thanks for your kind offering to add German translations. Since not all of us are speaking English natively, you are certainly not alone.
Just for clarification: Are you looking to translate the web frontend or the admin interface or another part of the application?
We had consensus in earlier discussions that translating Owncast needs lots of preparation and a good system on which languages are accepted. While I think that there are "enough" German-speaking people here who would be able to maintain that translation, it might be rougher on other less-spoken languages like Klingon (taking it as an example to not hurt anyone). There might be one person dropping a translated file at one point, but if Owncast adds more features and more strings, that person might not add the translations and we leave our users -- who relied on us offering Owncast in Klingon -- with a half-baked interface.
Hello @jeyemwey, first, thank you for your summary of the topic and the conversation you had already had. Unfortunately, I'm only now getting around to replying to you. Like many people, I was probably gripped by stress during the final stages of Christmas. But I have used the time wisely and thought about your words.
The problem of supporting a language is quite justified, but I think it is a general one, especially with open source software. Nevertheless, I would think that a translation, no matter how complete it is, could attract users from other language areas.
As you say, alternative languages would probably come from the input of other users, and that this will use the software forever is probably not something anyone can guarantee, nor is their continued participation. So whether you want to work with the available resources of human helpers is of course something you have to decide for yourself in the project.
However, one possible solution that has occurred to me is to coordinate the translation via appropriate platforms that are designed for such tasks. Crowdin or Transifex come to mind first and foremost. Furthermore, one could provide rudimentary language support with the LibreTranslate API. This would also ensure that a translation exists for new strings or code parts. As soon as a native speaker has contributed new translations, these could be reimplemented from the previously mentioned tools.
That has been my train of thought so far. Regards
Hello all, it's been a few days since our last conversation and I thought I'd ask if you had any further thoughts on the subject.
Kind regards
I'll be upfront and say unless there's somebody else who can spearhead, now and into the future, a true localization project, I'm not going to be able to do it. It's a responsibility that's far too large for me to take on. And even if somebody did volunteer, I'm not sure I'd trust that they'd be able to keep up with it and not leave me with the burden.
Owncast is pretty much only me working on it, and I'd be spending all my time working on building a translation framework and working on feature localization if I took on that responsibility.
I'm sorry.
With the release of the rebuilt web interface I think we're at a better place to be able to support localization. There are still a lot of big projects I want to work on, so dropping them to focus on this isn't something I want to do right now, but I'm going to re-open this as something I'd like to get to.
If somebody could step up and work on this, that would be awesome, and it would get done faster. Otherwise hopefully by the end of 2023 I can get to it.
I put together the foundation of translations. It's still new, so please let me know if you run into any issues. Read below to find how you can help.
There are two roles required to make this happen:
The primary frontend for Owncast doesn't have a lot of strings. However, the Owncast admin has a ton of them. That's going to be the largest challenge.
strings.json
as the source fileAll strings and phrases in the application needs to be wrapped with the t(<string>)
function. This is done with the next-export-i18n library. Read more about it to get additional details if you'd like.
localization
branch. This is temporary while we make sure everything is working, and then we can merge into develop.import { useTranslation } from 'next-export-i18n';
on the top of the file.FC
), not outside the component, add the hook: const { t } = useTranslation();
. It's likely you'll see other hooks setup there as well, such as useEffect
.t('Existing string or phrase')
. For example: t('Chat will be available when the stream is live.')
Owncast translation project on Crowdin. Crowdin is a localization management platform for companies and teams. Seamlessly make your software multilingual and reach new markets.
Can you add Dutch to Crowdin please @gabek?
@rmens Done!
@gabek Could you add Polish language? Many thanks! :)
@gabek Could you add Chinese Simplified? Many thanks! :)
@pigeons2023 I know nothing about this myself, but I previously asked somebody else if we should have traditional or simplified. It was explained to me that traditional will be helpful for more people. Is that incorrect? I'd hate to have to manage both if there's a correct answer. I don't know what other pieces of software do.
@gabek Hello, you can try to add Chinese Simplified Chinese, add more convenient usage habits for more users, I wish you a better day
@pigeons2023 Can you answer my question above?
Hi, I would be happy to help translate into Brazilian Portuguese, @gabek if you wish, add that language so I can get started, thank you very much!
Ok, it's been added. But just a heads-up, the translation project isn't really going anywhere right now, and it's unlikely any translations will get released soon.
The actual translation isn't the issue, see above in the section entitled "Developer enabling files for translations" for what is holding it back currently. But hopefully, they'll get released at some point after some progress can be made.
No problem @gabek I just wanna help this amazing project. Hit me if you need anything!
Hello
I would like to translate into French, I can't find how to select strings.json
as source file. I can't see any source file (maybe a problem between chair and keyboard, I never used Crowdin)
Sorry
Hi there. I appreciate you wanting to help. I'm not sure what's going on with Crowdin. However, like mentioned above, until I, or somebody else can focus on marking up the codebase to support translations, at this point there's very little for anybody to translate. This project will likely be on hold indefinitely.
I understand :) It's just easy to do on the translation side, so it'll be ready or almost ready when someone will have time and motivation to make the code for this feature. I really understand the rest of the feature is not easy to do.
And maybe, knowing there is already so many languages translated, could will motivate a code contribution.
I'd like to help in other ways if I could..
@pigeons2023 I know nothing about this myself, but I previously asked somebody else if we should have traditional or simplified. It was explained to me that traditional will be helpful for more people. Is that incorrect? I'd hate to have to manage both if there's a correct answer. I don't know what other pieces of software do.
It would be recommended to have both. By sheer numbers, Simplified Chinese (SC) is more common as it is typically used mainland China, Singapore, and Malaysia. And Taiwan, Hong Kong, and Macau use Traditional Chinese (TC). Notice that some of the characters (in bold) are different.
EN | SC | TC |
---|---|---|
Apple | 苹果 | 蘋果 |
How are you? | 你好吗? | 你好嗎? |
Hope that clarifies!
Hi, could you please add Basque for whenever Owncast is ready to be localised?
Hello, I was wondering if we could help translate Owncast into additional languages. I would like to provide the German translation here.