Code Monkey home page Code Monkey logo

dragoman's People

Contributors

bounoable avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

gedw99 msonawane

dragoman's Issues

handle double quotes

Double quotes " are not escaped when inserted and result in broken JSON files.

gtranslate

How about we add this as a service ?

This is rate limited but works well.

It does NOT do the work splitting like dragoman.

package main

import (
	"fmt"

	"github.com/bregydoc/gtranslate"
)

func main() {
	text := "Hello, {firstName}! This is a title."
	translated, err := gtranslate.TranslateWithParams(
		text,
		gtranslate.TranslationParams{
			From: "en",
			To:   "ja",
		},
	)
	if err != nil {
		panic(err)
	}

	fmt.Printf("en: %s | ja: %s \n", text, translated)
	
}

We could add it as a new service in the Services folder called "gtranslate"

Just need to wrap it and match the DeepL code pattern i guess.
Also need to add the word splitting.

import (
  "github.com/bounoable/deepl"
)

client := deepl.New("your-auth-key")

translated, sourceLang, err := client.Translate(
  context.TODO(),
  "Hello, world",
  deepl.Chinese,
)
if err != nil {
  log.Fatal(err)
}

log.Println(fmt.Sprintf("source language: %s", sourceLang))
log.Println(translated)

Add `--update` option to only translate new fields

Given the following i18n files:

  • lang/foo/en.json
{
  "hello": "Hello",
  "bye": "Goodbye"
}
  • lang/foo/de.json
{
  "hello": "Hallo"
}

When providing the --update option, only the "bye" field should be translated, and the result should be added to the existing de.json:

dragoman translate lang/foo/en.json --update lang/foo/de.json --from English --to German

Implementation

When the user provides the --update option:

  1. Load the file at the --update path
  2. Check if the file is JSON (or other supported filetype)
  3. Check if source file is same filetype
  4. Create a temporary map that contains the fields that are only present in the source file
  5. Translate only the JSON of that map
  6. Merge the translated map into the target JSON
  7. Save target JSON back to --update file

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.