Add bulk translate django command, also some data files

This commit is contained in:
Ramon Wenger 2023-09-27 22:54:19 +02:00
parent 4667465b9c
commit f183a51317
4 changed files with 82 additions and 5 deletions

View File

@ -0,0 +1,28 @@
interkulturelle-kommunikation,intercultural-communication,communication-interculturelle
warum-sind-gesprächstechniken-wichtig,why-are-interview-techniques-important,pourquoi-les-techniques-de-communication-sont-elles-importantes
konfliktlösungsstrategien,conflict-solving-strategies,stratégies-de-résolution-de-conflit
typische-situationen-im-kaufmännischen-alltag,typical-situations-in-everday-business-life,situations-quotidiennes-typiques-pour-un-employé-de-commerce
unterschiedliche-prägung-durch-generationenbedingte-werte,Differences-due-to-generation-specific-values,Imprégnation-différente-par-les-valeurs-générationnelles
formen-der-kommunikation,forms-of-communication,formes-de-communication
inhalte-verstehen-und-erfassen,understanding-and-capturing-content,comprendre-et-saisir-les-contenus
stolpersteine-in-der-kommunikation,stumbling-blocks-in-communication,difficultes-de-la-communication
kommunikationstechniken,communication-techniques,techniques-de-communication
durchdacht-kommunizieren-und-speditiv-erledigen,well-thought-out-communication-and-efficient-handling,communication-reflechie-et-traitement-rapide
kundenbedürfnisse,customer-needs,besoins-des-clients
phasen-des-verkaufsgesprächs,phases-of-the-sales-pitch,phases-de-lentretien-de-vente
bedarfserfassung,capturing-the-need,analyse-des-besoins
verhalten-bei-beschwerden,conduct-when-complaints-are-made,comportement-en-cas-de-reclamations
nonverbale-signale-deuten,interpreting-nonverbal-signals,interpreter-les-signaux-non-verbaux
was-ist-eine-frage,what-is-a-question,quest-ce-quune-question
fragearten,types-of-question,types-de-questions
fragefunktionen,functions-of-questions,fonctions-des-questions
fragetechniken,questioning-techniques,techniques-de-questionnement
gute-fragen-und-fragefehler,good-questions-and-errors-in-questioning,bonnes-et-mauvaises-questions
antwortreaktionen,responses-to-questions,reactions-en-reponse
wertschatzung,appreciation,estime
grundannahmen-und-werte-fur-eine-wertschatzende-haltung,basic-assumptions-and-values-for-a-respectful-attitude,principes-et-valeurs-dun-comportement-respectueux
wertschatzende-kommunikation,respectful-communication,communication-respectueuse
gesprachstipps,conversation-tips,conseils-pour-lentretien
argumentieren,reasoning,argumenter
erfolgreich-uberzeugen-in-drei-schritten-merkmal-vorteil-und-nutzen,successful-persuasion-in-three-steps-feature-advantage-and-benefit,reussir-a-convaincre-a-laide-dun-plan-en-trois-points-caracteristique-avantage-benefice
unterschiede-zwischen-mundlicher-und-schriftlicher-argumentation,differences-between-verbal-and-written-reasoning,differences-entre-largumentation-orale-et-ecrite
1 interkulturelle-kommunikation intercultural-communication communication-interculturelle
2 warum-sind-gesprächstechniken-wichtig why-are-interview-techniques-important pourquoi-les-techniques-de-communication-sont-elles-importantes
3 konfliktlösungsstrategien conflict-solving-strategies stratégies-de-résolution-de-conflit
4 typische-situationen-im-kaufmännischen-alltag typical-situations-in-everday-business-life situations-quotidiennes-typiques-pour-un-employé-de-commerce
5 unterschiedliche-prägung-durch-generationenbedingte-werte Differences-due-to-generation-specific-values Imprégnation-différente-par-les-valeurs-générationnelles
6 formen-der-kommunikation forms-of-communication formes-de-communication
7 inhalte-verstehen-und-erfassen understanding-and-capturing-content comprendre-et-saisir-les-contenus
8 stolpersteine-in-der-kommunikation stumbling-blocks-in-communication difficultes-de-la-communication
9 kommunikationstechniken communication-techniques techniques-de-communication
10 durchdacht-kommunizieren-und-speditiv-erledigen well-thought-out-communication-and-efficient-handling communication-reflechie-et-traitement-rapide
11 kundenbedürfnisse customer-needs besoins-des-clients
12 phasen-des-verkaufsgesprächs phases-of-the-sales-pitch phases-de-lentretien-de-vente
13 bedarfserfassung capturing-the-need analyse-des-besoins
14 verhalten-bei-beschwerden conduct-when-complaints-are-made comportement-en-cas-de-reclamations
15 nonverbale-signale-deuten interpreting-nonverbal-signals interpreter-les-signaux-non-verbaux
16 was-ist-eine-frage what-is-a-question quest-ce-quune-question
17 fragearten types-of-question types-de-questions
18 fragefunktionen functions-of-questions fonctions-des-questions
19 fragetechniken questioning-techniques techniques-de-questionnement
20 gute-fragen-und-fragefehler good-questions-and-errors-in-questioning bonnes-et-mauvaises-questions
21 antwortreaktionen responses-to-questions reactions-en-reponse
22 wertschatzung appreciation estime
23 grundannahmen-und-werte-fur-eine-wertschatzende-haltung basic-assumptions-and-values-for-a-respectful-attitude principes-et-valeurs-dun-comportement-respectueux
24 wertschatzende-kommunikation respectful-communication communication-respectueuse
25 gesprachstipps conversation-tips conseils-pour-lentretien
26 argumentieren reasoning argumenter
27 erfolgreich-uberzeugen-in-drei-schritten-merkmal-vorteil-und-nutzen successful-persuasion-in-three-steps-feature-advantage-and-benefit reussir-a-convaincre-a-laide-dun-plan-en-trois-points-caracteristique-avantage-benefice
28 unterschiede-zwischen-mundlicher-und-schriftlicher-argumentation differences-between-verbal-and-written-reasoning differences-entre-largumentation-orale-et-ecrite

View File

@ -0,0 +1,6 @@
kommunizieren-im-team,communicating-in-the-team,communiquer-au-sein-de-léquipe
zusammenarbeiten-im-team,collaborating-in-a-team,collaborer-dans-une-équipe
erstauskunft-geben,giving-preliminary-information,donner-les-informations-preliminaires
kundenbedürfnisse-erfassen,capturing-customer-needs,comprendre-les-besoins-des-clients
umgang-mit-beschwerden,handling-complaints,gestion-des-reclamations
kunst-der-gesprachsfuhrung,the-art-of-conversation,lart-de-mener-un-entretien
1 kommunizieren-im-team communicating-in-the-team communiquer-au-sein-de-léquipe
2 zusammenarbeiten-im-team collaborating-in-a-team collaborer-dans-une-équipe
3 erstauskunft-geben giving-preliminary-information donner-les-informations-preliminaires
4 kundenbedürfnisse-erfassen capturing-customer-needs comprendre-les-besoins-des-clients
5 umgang-mit-beschwerden handling-complaints gestion-des-reclamations
6 kunst-der-gesprachsfuhrung the-art-of-conversation lart-de-mener-un-entretien

View File

@ -21,7 +21,9 @@ class Command(BaseCommand):
parser.add_argument("--slug", type=str, required=True)
parser.add_argument("--original", type=str, required=True)
parser.add_argument("--language", type=str, choices=[EN, FR], default=EN)
parser.add_argument("--model", type=str, choices=["instrument", "module"], default="instrument")
parser.add_argument(
"--model", type=str, choices=["instrument", "module"], default="instrument"
)
def handle(self, *_, **options):
slug = options.get("slug")
@ -37,12 +39,15 @@ class Command(BaseCommand):
raise CommandError(f"Unknown model: {model}")
try:
result = convert_page_to_translation(page_model,
slug=slug, original_slug=original_slug, language_code=language_code
result = convert_page_to_translation(
page_model,
slug=slug,
original_slug=original_slug,
language_code=language_code,
)
self.stdout.write(result)
except PageDoesNotExistException as e:
raise CommandError(f"Instrument does not exist: {e}")
raise CommandError(f"{page_model} does not exist: {e}")
except AlreadyTranslatedException:
raise CommandError(
f"Pages {model} {slug} and {original_slug} already are translations of each other"

View File

@ -0,0 +1,38 @@
import csv
from django.core import management
from django.core.management import BaseCommand
class Command(BaseCommand):
"""
usage: `python manage.py translate_from_csv --file file [...]`
"""
def add_arguments(self, parser):
parser.add_argument("--file", type=str)
parser.add_argument(
"--model", type=str, choices=["instrument", "module"], default="instrument"
)
def handle(self, *args, **options):
filename = options["file"]
model = options["model"]
# self.stdout.write(filename)
with open(filename) as f:
reader = csv.reader(f)
for original, english, french in reader:
# self.stdout.write(f"{original}\t\t\t{english}\t\t\t{french}")
management.call_command(
"migrate_page_translation",
slug=english,
original=original,
language="en",
model=model,
)
management.call_command(
"migrate_page_translation",
slug=french,
original=original,
language="fr",
model=model,
)