Show HN: I coded my own JSON translation tool to easily localize my side project
Quicklang simplifies global expansion for developers by translating JSON files into multiple languages swiftly. It automates, validates, and organizes translations, offering flexible pricing and refund options. Users praise its time-saving efficiency.
Read original articleQuicklang is a tool designed to help software developers expand their customer base globally by effortlessly translating JSON files into multiple languages within minutes. The platform aims to simplify the localization process for SaaS, apps, AI products, and websites, enabling users to ship their products worldwide with ease. Key features include automating translations, validating content for accuracy, organizing translations efficiently, and synchronizing updates across all languages. Pricing options cater to different needs, offering a basic plan for on-the-spot translations and a pro plan for managing project localization with additional features like translation history and credits for character usage. Quicklang operates on a pay-as-you-go model, allowing users to pay only for the translations they need without requiring a subscription. The tool also provides a refund option within 7 days of purchase and supports manual editing of translations. Testimonials from users highlight the time-saving benefits and ease of use provided by Quicklang in managing translations effectively.
Related
Guide to Slack AI
Slack AI integrates generative tools to summarize conversations, offering customizable daily recaps and a search feature for quick answers. It prioritizes data security and privacy, aligning billing with workspace plans.
LINQPad – The .NET Programmer's Playground
LINQPad is a versatile tool for .NET programmers, supporting C#, F#, and VB snippets. It enables database querying, rich output formatting, debugging, C# 12 and .NET 8 support, caching, and advanced features like async/await. It serves as a learning tool with various functionalities.
Show HN: FiddleCube – Generate Q&A to test your LLM
FiddleCube on GitHub helps create question-answer datasets for Large Language Models. It includes a guide, examples, and details on generating ideal datasets for testing, evaluating, and training LLMs. For more information, visit the GitHub page.
Zulip: Open Source Organized Team Chat
Zulip is a team chat tool emphasizing labeled topics for organized conversations. It enhances communication efficiency, reduces chaos, and offers stress reduction, faster decision-making, and improved connectivity. Users appreciate its user-friendly interface and data control options.
Execute JavaScript in a WebAssembly QuickJS Sandbox
QuickJS is a secure JavaScript execution tool in a WebAssembly sandbox. It includes security features, file system access, custom node modules, a fetch client, and a test runner. Find detailed documentation and examples in the repository. Users can seek further assistance for inquiries.
>This credits will never expire.
>So if you sync new o modified content
There are obvious mistakes in the English version of your website, which is totally bizarre to me, since these errors are absent in the German version. My guess is that the AI actually fixed these errors when translating.
I have to say that the German translation is really bad though.
"Habe nach einem Online-JSON-Editor gesucht, aber nur Enterprise-Tools gefunden, die nicht das bieten, was ich brauchte, also...
Ich habe mein eigenes JSON-Übersetzungstool erstellt. "
Dropping the "Ich" at the beginning of the first sentence makes it sound like total slang. And the transition between the paragraphs does not work in German (due to the verb being at a different position compared to English). It sounds extremely clunky.
"Prost!"
This just is not an appropriate translation.
"Hier ist was sie über Quicklang."
This isn't a complete sentence. It misses an essential component.
"Holen Quicklang"
Nonsensical translation.
"lokalisieren Sie Ihre SaaS-, App-, KI-Produkt- oder Website, um Ihnen das weltweite Versenden zu erleichtern."
I don't get what that means. The AI translated shipping as sending. It should have been "um Ihnen den weltweiten Vertrieb zu erleichtern", or something like that.
I usually hate nitpicking on stuff like this and I wouldn't have mentioned it if the product was anything else. But surely you can present your product in a better way.
I built it to their spec, for their CMS. They didn't use it, because the scheme they wanted turned out to be too much bother, and they couldn't find translation agencies who would bother with it.
The reality is that if you want to make it easy to keep translations up-to-date, you actually have to support all the (confusing, frustrating) translation infrastructure built around .PO files. Because then you have the support of translation agencies, tooling, even Crowdin etc.
Trying to short-circuit this with clever minimal bespoke JSON and ChatGPT is probably a mistake: this is a job where you will ultimately want actual people with actual multilingual ability working for you, and if you don't use the normal tooling you'll find it difficult to attract contributors even with open source.
monetizing your solution will likely be a dead end.
the value prop of your solution doesn't match the app you built, and what buyers pay for. for example, machine translating translation files is easier for you to build and developers to use with a cli [0] instead of a web app. there is no value in rendering json in the web app. vscode does a better job at rendering json's.
you could monetize via a web app if you allow non-devs to edit translations. but that's a beast called CAT editor [1], where you need to support all sorts of different file formats. aka, the value of a CAT editor is the file support and ecosystem around it, not the editor itself.
[0] https://inlang.com/m/2qj2w8pu/app-inlang-cli#machine-transla...
[1] https://inlang.com/m/tdozzpar/app-inlang-finkLocalizationEdi...
Ps. I'm working on a similar opensource tool to speed up the i18n process ( https://codeberg.org/garage44/expressio)
cat english.json | sed 's/"\([^"]*\)"/«\1»/g' > french.json
Strunggle with i18n -> Struggle with i18n ^
<strong>Hello World</strong>
And on-the-fly translation? Say I have a backend that returns english language but I need it to translate it to another language on the fly? It could check whether the translation is available and otherwise generate it and store it. The original text key could be a hash of the text and you probably need in-memory key lookup for those hashes.
https://github.com/KevinColemanInc/i18n-translate-go
Works well for i18njs. The issues I ran into are: chat-gpt didn't translate all the keys in the batch (especially for obscure languages like Laos) and sometimes the chatgpt output invalid unicode (see error in the readme).
I got tired of manually copy/pasting translations from ChatGPT every time I updated my main language JSON file. So I build my own alternative.
Joan
I don't mean to be critical, sounds like something I could actually use occasionally. I sometimes feel like I'm the only one putting up this common sense fight: if designers can spend hours crafting something carefully worded, tailored in English for something, why would it make sense to just take that and auto-translate it into something that if it's wrong gets discovered in the market as some very awkward in-app experience where the words don't make sense so much someone complains? My only gripe is people thinking AI is the total substitute for localization, it's not a silver bullet, but sure is better than nothing.
I like the idea.
At Replexica we've basically built a better + much faster (+ sometimes cheaper) alternative to Lokalise, Phrase, and Crowdin (we help dev teams do AI translations of user interfaces - web, mobile, Apple Vision Pro, etc.). So having seen some things, I must say AI-powered localization is indeed the future, but it's very, very hard to get it right.
For example, it took us a while to perfect the quality. Working with the "industry standard" scores (BLEU, etc.) isn't easy, and the state of the machine translation industry feels very last century, so you have to oftentimes invent things by studying the latest research.
It's a constant quest to ensure the user gets the best, perfect result, and not to mention, different LLMs perform differently with different language pairs, which adds an extra challenge to maintaining accuracy while iterating. For example, we had to build a regression testing setup internally, to make sure the quality only improves as we ship.
Nevertheless, good luck. I will be keeping an eye on your progress.
BTW, loving your domain name.
EDIT: typos
Related
Guide to Slack AI
Slack AI integrates generative tools to summarize conversations, offering customizable daily recaps and a search feature for quick answers. It prioritizes data security and privacy, aligning billing with workspace plans.
LINQPad – The .NET Programmer's Playground
LINQPad is a versatile tool for .NET programmers, supporting C#, F#, and VB snippets. It enables database querying, rich output formatting, debugging, C# 12 and .NET 8 support, caching, and advanced features like async/await. It serves as a learning tool with various functionalities.
Show HN: FiddleCube – Generate Q&A to test your LLM
FiddleCube on GitHub helps create question-answer datasets for Large Language Models. It includes a guide, examples, and details on generating ideal datasets for testing, evaluating, and training LLMs. For more information, visit the GitHub page.
Zulip: Open Source Organized Team Chat
Zulip is a team chat tool emphasizing labeled topics for organized conversations. It enhances communication efficiency, reduces chaos, and offers stress reduction, faster decision-making, and improved connectivity. Users appreciate its user-friendly interface and data control options.
Execute JavaScript in a WebAssembly QuickJS Sandbox
QuickJS is a secure JavaScript execution tool in a WebAssembly sandbox. It includes security features, file system access, custom node modules, a fetch client, and a test runner. Find detailed documentation and examples in the repository. Users can seek further assistance for inquiries.