Private ReadOnly httpClient As New HttpClient()
Private stringsToTranslate As Integer = 0
Private translatedCount As Integer = 0
Private Sub JTTMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim languages As String() = {"en", "de", "fr", "es", "ru", "zh", "it", "ja"}
ComboBoxSource.Items.AddRange(languages)
ComboBoxTarget.Items.AddRange(languages)
ComboBoxSource.SelectedItem = "en"
ComboBoxTarget.SelectedItem = "de"
End Sub
Private Async Sub TSMRead_Click(sender As Object, e As EventArgs) Handles TSMRead.Click
If ComboBoxSource.SelectedItem Is Nothing OrElse ComboBoxTarget.SelectedItem Is Nothing Then
MsgBox("Bitte wähle eine Ausgangs- und eine Zielsprache aus.", MsgBoxStyle.Exclamation)
Return
End If
Dim openFileDialog As New OpenFileDialog With {.Filter = "JSON Files|*.json", .Title = "Wähle die Minecraft Sprachdatei aus"}
If openFileDialog.ShowDialog() = DialogResult.OK Then
TSMRead.Enabled = False
' Datei in RichTextBox laden
RichTextBox1.Text = File.ReadAllText(openFileDialog.FileName)
Private Async Function ProcessTranslationAsync(filePath As String, sourceLang As String, targetLang As String) As Task
Dim jsonContent As String = File.ReadAllText(filePath)
Dim rootNode As JsonNode = JsonNode.Parse(jsonContent)
' Ergebnis in RichTextBox und speichern
Dim options As New JsonSerializerOptions With {.WriteIndented = True, .Encoder = System.Text.Encodings.Web.JavaScriptEncoder.Unsafe RelaxedJsonEscaping}
Dim outputJson As String = rootNode.ToJsonString(options)
RichTextBox1.Text = outputJson ' Nur das Ergebnis anzeigen
Dim savePath As String = Path.Combine(Path.GetDirectoryName(filePath), $"{targetLang}_translated.json")
File.WriteAllText(savePath, outputJson)
MsgBox("Übersetzung abgeschlossen!", MsgBoxStyle.Information)
End Function
' Hilfsfunktion zum Zählen der Strings für die ProgressBar
Private Function CountStrings(node As JsonNode) As Integer
Dim count As Integer = 0
If node Is Nothing Then Return 0
If node.GetValueKind() = JsonValueKind.String Then Return 1
If TypeOf node Is JsonObject Then
For Each kvp In node.AsObject() : count += CountStrings(kvp.Value) : Next
ElseIf TypeOf node Is JsonArray Then
For Each element In node.AsArray() : count += CountStrings(element) : Next
End If
Return count
End Function
Private Async Function TranslateNodeRecursiveAsync(node As JsonNode, sourceLang As String, targetLang As String) As Task
If node Is Nothing Then Return
If node.GetValueKind() = JsonValueKind.String Then
Dim originalText As String = node.GetValue(Of String)()
If Not String.IsNullOrWhiteSpace(originalText) Then
node.ReplaceWith(JsonValue.Create(Await TranslateTextAsync(originalText, sourceLang, targetLang)))
' Fortschritt aktualisieren
translatedCount += 1
ProgressBar1.Value = Math.Min(translatedCount, ProgressBar1.Maximum)
End If
ElseIf TypeOf node Is JsonObject Then
For Each kvp In node.AsObject().ToList() : Await TranslateNodeRecursiveAsync(kvp.Value, sourceLang, targetLang) : Next
ElseIf TypeOf node Is JsonArray Then
For Each element In node.AsArray().ToList() : Await TranslateNodeRecursiveAsync(element, sourceLang, targetLang) : Next
End If
End Function
Private Async Function TranslateTextAsync(text As String, fromLang As String, toLang As String) As Task(Of String)
Try
Dim url As String = $"https://translate.googleapis.com/translate_a/single?client=gtx&sl={fromLang}&tl={toLang}&dt=t&q ={Uri.EscapeDataString(text)}"
Dim response As String = Await httpClient.GetStringAsync(url)
Using doc As JsonDocument = JsonDocument.Parse(response)
Return doc.RootElement(0)(0)(0).GetString()
End Using
Catch
Return text
End Try
End Function
JQuery -JSON 11/28/2011 - General Coding - 0 Replies Hey, mein Freund hat ein Problem und ich wollte mal wissen, ob ihr da helfen könnt?
Die Fragestellung ist sehr kurz und ich persönlich kann damit nichts anfangen , aber hier die Frage:
Wie krieg ich beim Fullcalendar in JQuery nen Datensatz per JSON rein?
Komplexer JSON String 12/09/2010 - General Coding - 6 Replies Huhu
Kleine Herausforderung für euch: Ich habe einen JSON String. Jetzt will ich den JSON String in eine geeignete Datenstruktur in Java impementieren. Ein Objekt (mit ner Klasse als Vorlage), dynamische Arrays, oder ne Hashmap.
Der Json String ist ziemlich komplex:
var game_data =...
[translate] i got a Injecter but need translate. 07/26/2009 - GunZ - 1 Replies http://up49.siz.co.il/up1/wu2nimy0yxzy.jpg
http://up41.siz.co.il/up2/m4jnczyytt2z.jpg
http://up38.siz.co.il/up2/gi1fy4jntymm.jpg
here is what i know:
Wall Hack
Speed hack
i guess it just make you fast/cant see the walls..
Massives
Godmod