Which event type should we use? Anyone already doing this where I can read about it?
Discussion
You can create a NIP for translation services. Pick an NIP, define the tags for languages used (so clients can search for the language of the user) and simply watch for kind 1s and post the new kinds with the appropriate translations.
Before translations, we should start adding tags for the language the post was authored in (on mobile, I guess you can query for the keyboard and auto complete language setting?)
Like [ “LCID”, “en-us” ]
I am not sure we can trust that info. Amethyst wouldn't know which language the author is using.
@tyiu pointed out there’s this NIP 12 addition to add a post source language but hasn’t been ratified yet?
If this NIP-12 addition got ratified and clients started following it, then maybe. But it’s still all optional. So may be unlikely? https://github.com/nostr-protocol/nips/pull/182
Doesn’t this just end with every kind 1 event having a translation in tons of languages? This is absurd bloat at the relay level. Perhaps a custom special purpose relay (more like a translation cache) could support this but I wouldn’t expect normal relays to do so.
Agreed. I don’t understand why this is necessary.
But this doesn’t prohibit us from having verified translations right?
Our translation service could publish a public key and send over a translation string along with a hash? Then client or even user can do the verification to see if the translator service actually signed it and the translation isn’t modified?
Yes, but I think that can remain an implementation detail. Don’t think it needs to be part of the Nostr protocol. In fact, the problem described here seems like a small corner case and very theoretical, and the proposed solution seems a bit over engineered comparatively. Any request can be man-in-the-middled. There isn’t really anything specific to translations. HTTPS solves some of this I think.
Makes sense !
Not only do have translations into many languages, even for 1 language you can have multiple translations based on which AI model is used for the translation. Even more bloat.