diff --git a/i18n/de/README.md b/i18n/de/README.md new file mode 100644 index 000000000..b4f663148 --- /dev/null +++ b/i18n/de/README.md @@ -0,0 +1 @@ +# OJBetter diff --git a/i18n/de/docs/AtCoderBetter.html b/i18n/de/docs/AtCoderBetter.html new file mode 100644 index 000000000..106c27782 --- /dev/null +++ b/i18n/de/docs/AtCoderBetter.html @@ -0,0 +1,244 @@ +

AtCoder Better!🎈

+

AtCoder-Schnittstelle Chinesisch, Unterstützung des dunklen Modus, Titelübersetzung, Markdown-Ansicht, Kopieren von Titeln mit einem Klick, Sprung zu Logu

+

Funktionalität

+

Das Skript tip:bietet Konfigurationsoptionen für einige seiner Funktionen. Sie können das Einstellungsfeld öffnen, indem Sie auf die Schaltfläche AtCoderBetter Settings unter in der oberen rechten Ecke der gesamten Seite vonklicken.

+

Chinesische Sprachschnittstelle

+

Die wichtigsten Elemente der Website werden ins Chinesische übersetzt. Sollte es irgendwo einen Fehler oder eine schlechte Übersetzung geben, freuen wir uns über Ihr Feedback.

+

Sie können die Lokalisierung in den AtCoderBetter Einstellungen in der oberen rechten Ecke ein- oder ausschalten.

+

Übersetzung des Titels

+

Fügen Sie in der oberen rechten Ecke von Titeln, Blogs, Kommentaren usw. eine Übersetzungsschaltfläche hinzu, um mit einem Klick ins Chinesische zu übersetzen. Dabei wird die Latex-Formel nicht verletzt!

+

Welchen Übersetzungsdienst Sie verwenden möchten, können Sie im AtCoderBetter Einstellungen Panel in der oberen rechten Ecke auswählen (Standard ist Deepl)

+

Tipp:Klicken Sie mit der rechten Maustaste auftranslate, um den Übersetzungsdienst schnell zu wechseln!

+

Die folgenden Übersetzungsschnittstellen sind verfügbar:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  + KEY + Qualität der ÜbersetzungVerlässlichkeitMaximale Anzahl von Zeichen + einen Zeitraum von (x Zeit) benötigen
Deepl Übersetzung (✨ empfohlen)unnötig⭐️⭐️⭐️⭐️Einige Bereiche können unzugänglich oder langsam sein5000scharf (von Messern oder Verstand)
Xunfei Hear Übersetzenunnötig⭐️⭐️⭐️Gewöhnlich zuverlässig2000scharf (von Messern oder Verstand)
Youtube Übersetzungunnötig⭐️⭐️Gewöhnlich zuverlässig600scharf (von Messern oder Verstand)
Google Übersetzenunnötig⭐️⭐️⭐️Erfordert einen aktuellen Internetzugang zu Google5000scharf (von Messern oder Verstand)
Bunte Wolke Übersetzungunnötig⭐️⭐️Gewöhnlich zuverlässig5000scharf (von Messern oder Verstand)
Übersetzung mit ChatGPT (✨ empfohlen)API-Schlüssel erforderlich⭐️⭐️⭐️⭐️⭐️Hängt von der Qualität des Dienstanbieters ab und davon, wie groß der Andrang auf OpenAI istHängt vom Modell abLangsamer
+

Andere Funktionen

+

Einige Funktionen können im AtCoderBetter Einstellungen Panel in der oberen rechten Ecke geändert/umgeschaltet werden

+ +

Kompatibilität

+

Browser (Software)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 AdjuvansMindestversion
ChromeAdjuvans96
EgdeAdjuvans96
Domestic Chromium FallGrundlegende Kompatibilität, aber unerwartete Fehler können auftretenChromium Kernel Version ≥96
FireFox (einschließlich mobil)etw. unterstützen103
SafariNicht unterstützte\
+ +

Skript Manager

+

Nur mit dem Tampermonkey Script Manager getestet. Die Kompatibilität mit Greasemonkey, Violentmonkey, ScriptCat, etc. ist nicht garantiert!

+

Andere Plug-Ins

+

Es gibt keine Kompatibilitätsprobleme mit den gängigen CF-Plug-ins.

+

allgemeine Probleme

+ + + +

Code beisteuern

+

Fühlen Sie sich frei, Code beizutragen, gehen Sie zu Github repository Erstellen Sie einen PR

+

Dankbar

+ +

Vielen Dank, 0rz.

\ No newline at end of file diff --git a/i18n/de/docs/CodeforcesBetter.html b/i18n/de/docs/CodeforcesBetter.html new file mode 100644 index 000000000..d1ae569cf --- /dev/null +++ b/i18n/de/docs/CodeforcesBetter.html @@ -0,0 +1,477 @@ +

Codeforces Better!🎈

+

Codeforces-Schnittstelle Chinesisch, Unterstützung des dunklen Modus, Titelübersetzung, Markdown-Ansicht, Kopieren von Titeln mit einem Klick, Springen zu Logu, Differenzierungsseite für Kommentare, Anzeige der ClistRating-Punkte, Neueinfärbung der Liste

+
+
+
+

Schreiben Sie vorab:Feedback-Notizen

+
+

如遇问题,请先阅读下方的 #常见问题 说明。如果没有得到解决,请前往 反馈页 或者 Github issues 反馈。如遇问题,请先阅读下方的 #常见问题 说明。如果没有得到解决,请前往 反馈页 或者 Github issues 反馈。如遇问题,请先阅读下方的 #常见问题 说明。如果没有得到解决,请前往 反馈页 或者 Github issues 反馈。Wenn Sie Probleme haben, lesen Sie bitte zuerst die #FAQ Anweisungen unten.Wenn das Problem nicht behoben ist, gehen Sie bitte auf die Feedback-Seite oder Github issues , um Feedback zu geben.

+

Bitte geben Sie eine detaillierte Beschreibung des Problems, z.B.:Link, Screenshots, gewünschte Ergebnisse, tatsächliche Ergebnisse, Reproduktion……

+

Freundliche Diskussionen und Funktionsvorschläge sind ebenfalls willkommen, aber es ist nicht die Pflicht des Autors, die Skripte zu pflegen und Hilfe zu leisten. Vielen Dank für Ihr Verständnis.

+
+
+

Funktionalität

+Tipp Einige der Funktionen des Skripts:bieten Konfigurationsmöglichkeiten. Sie können das Einstellungsfeld öffnen, indem Sie auf die SchaltflächeCodeforcesBetter Settings auf
in der oberen rechten Ecke der gesamten Seite von klicken. +

Chinesische Sprachschnittstelle

+

Sinisieren Sie die wichtigsten Elemente der Website ins Chinesische (kann ausgeschaltet werden)

+

Übersetzung des Titels

+

Fügen Sie in der oberen rechten Ecke von Titeln, Blogs, Kommentaren usw. eine Übersetzungsschaltfläche hinzu, um mit einem Klick ins Chinesische zu übersetzen. Dabei wird die Latex-Formel nicht verletzt!

+

Auf dieser Grundlage bietet das Skript drei Arten der Übersetzung:

+ +

Sie können den zu verwendenden Übersetzungsdienst (standardmäßig DeepL) auswählen sowie den Arbeitsmodus des Skripts im CodeforcesBetter Einstellungen Panel in der oberen rechten Ecke ändern.

+
+
+

Hinweis:Der Segmentierungs-/Selektionsmodus führt zu den folgenden Problemen:

+

- Wenn es für die Übersetzungsschnittstelle unmöglich ist, die Kontextinformationen des gesamten Textes zu kennen, kann dies die Qualität der Übersetzung beeinträchtigen.

+

- Es wird Teile des Inhalts geben, die nicht übersetzt/ausgewählt werden können, weil sie keine<p/>oder<i/>Elemente sind.

+
+
+

Das Skript bietet die folgenden Übersetzungsschnittstellen zur Auswahl an:(Standard ist DeepL)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  + KEY + Qualität der ÜbersetzungVerlässlichkeitMaximale Anzahl von Zeichen + einen Zeitraum von (x Zeit) benötigen
Übersetzung von DeepL (✨ empfohlen)unnötig⭐️⭐️⭐️⭐️Einige Bereiche können unzugänglich oder langsam sein5000scharf (von Messern oder Verstand)
Xunfei Hear Übersetzenunnötig⭐️⭐️⭐️Gewöhnlich zuverlässig2000scharf (von Messern oder Verstand)
Youtube Übersetzungunnötig⭐️⭐️Gewöhnlich zuverlässig600scharf (von Messern oder Verstand)
Google Übersetzenunnötig⭐️⭐️⭐️Erfordert einen aktuellen Internetzugang zu Google5000scharf (von Messern oder Verstand)
Bunte Wolke Übersetzungunnötig⭐️⭐️Gewöhnlich zuverlässig5000scharf (von Messern oder Verstand)
Übersetzung mit ChatGPT (✨ empfohlen)API-Schlüssel erforderlich⭐️⭐️⭐️⭐️⭐️Hängt von der Qualität des Dienstanbieters ab und davon, wie groß der Andrang auf OpenAI istHängt vom Modell abLangsamer
+Tipp:Klicken Sie mit der rechten Maustaste auf die SchaltflächeÜbersetzen, um schnell zwischen verschiedenen Übersetzungsdiensten zu wechseln! +

automatische Übersetzung

+

Wenn "Automatische Übersetzung" aktiviert ist, werden kurze Texte im Bereich.ttypography, .comments automatisch übersetzt, wenn sie in densichtbaren Bereichim Browserfenster gelangen.

+

(Sie können in den Einstellungen angeben, wie viele Zeichen oder weniger ein kurzer Text ist)

+

Wenn die Funktion "Schnellübersetzung im Kommentarbereich" aktiviert ist, wählt die automatische Übersetzung bei kurzen Texten im Kommentarbereich zufällig einen der in Frage kommenden Dienste aus und führt parallel dazu eine Schnellübersetzung durch.

+

Historische Wiederherstellung der Übersetzung

+

Wenn "Historische Übersetzungen automatisch wiederherstellen" aktiviert ist, werden die Übersetzungsinformationen auf derTitelseiteautomatisch in der Tabelle translateData in der CFBetterDB Datenbank von indexDB lokal im Browser gespeichert.

+

Aktualisieren / stellt die Übersetzungen automatisch wieder her, wenn Sie die Seite das nächste Mal aufrufen.

+

ClistRating

+

Holen Sie sich die Bewertungsdaten für die clist.by-Website und zeigen Sie sie an!

+

Beachten Sie, dass die für verschiedene Seitenaufträge erforderlichen Anmeldeinformationen variieren:

+ +Das Skript erhält kein spezielles Cookie für clist.by. Die Cookie-Informationen werden automatisch vom Browser übertragen, wenn er die Anfrage sendet, und die Gültigkeit des Cookies wird durch den Statuscode bestimmt, der von der versuchten Anfrage zurückgegeben wird. +

Herausgeber und LSP

+

Editor zur Titelseite hinzufügen

+

Fügen Sie den Monaco-Code-Editor am unteren Rand der Titelseite hinzu (standardmäßig aktiviert).

+

Unterstützt die automatische Speicherung von Code, die schnelle Übermittlung von Code, Online-Testläufe, LSP, statische Ergänzungen und andere Funktionen.

+

Code autosave

+

Der Code wird automatisch in der editorCode-Tabelle der CFBetterDB-Datenbank von IndexedDB lokal im Browser gespeichert.

+

Online-Testlauf

+

Sie können die Beispiele im Titel mit einem Klick ausführen und Sie können die Testbeispiele, die automatisch in der editorCode-Tabelle in der CFBetterDB-Datenbank gespeichert werden, auch anpassen.

+

Das Skript bietet mehrere Online-Codelaufdienste:codeforces official, wandbox (3rd party), rextester (3rd party), die verschiedene Parameteroptionen unterstützen.

+
+
+

Notiz:

+
    +
  • +

    Offensichtlich sind alle online laufenden Dienste nicht in der Lage, interaktive Themen zu testen.

    +
  • +
  • +

    Online-Codeausführungsdienste von Drittanbietern können in anderen Umgebungen als codeforces ausgeführt werden, und Code, der in einem Online-Codeausführungsdienst eines Drittanbieters funktioniert oder sich als korrekt erweist, muss dies nicht unbedingt auch in codeforces tun.

    +
  • +
  • +

    Es gibt keine Garantie dafür, dass Ihr Code nicht auf irgendeine Art und Weise von einem fremden Online-Codelauf-Dienst weitergegeben wird.

    +
  • +
  • +

    Darüber hinaus entsprechen die Compiler-Optionen auf der Seite für eine breitere Anwendung nicht genau den tatsächlichen Compiler-Optionen des Online-Codeausführungsdienstes eines Drittanbieters, so dass es durchaus möglich ist, unerwartete Ergebnisse zu erhalten.

    +
  • +
+
+
+

LSP

+

Nachdem Sie den LSP konfiguriert haben, können Sie die folgenden Funktionen für den Editor bereitstellen (nur für die Sprachen C++ und Python):

+ +

Natürlich unterstützt sie keine lokale Kompilierung, Debugging mit Haltepunkten, mehrere Dateien usw.……, die Leistung ist nicht so gut wie bei den lokalen Spezial-IDEs

+

Kurz gesagt, diese Funktion ist nicht sehr aussagekräftig oder nützlich. Wenn Sie daran interessiert sind, lesen Sie den Abschnitt FAQ weiter unten, um mehr zu erfahren!

+

Verbesserung der statischen Vervollständigung

+

Sie können dem Monaco-Editor benutzerdefinierte Regeln für die statische Code-Vervollständigung unter Einstellungen - Monaco - Erweiterungen für die statische Vervollständigung - Benutzerdefiniert hinzufügen.

+

Die Vervollständigungsregeln liegen im JSON-Format vor, hier ein Beispiel (im Monaco-Format).

+
+  {
+    "suggestions": [
+        {
+            "label": "hello world",
+            "kind": 15,
+            "documentation": "The is a hello world snippet",
+            "insertText": "hello world"
+        },
+        // other Vorschläge... ]
+}
+
+

Sie können fast alle Eigenschaften von CompletionItem verwenden. (Hinweis: Geben Sie die Eigenschaft range nicht ein, das Skript wird sie automatisch berechnen und hinzufügen).

+

Andere Funktionen

+ +

Kompatibilität

+

Browser (Software)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 AdjuvansMindestversion
ChromeAdjuvans96
EdgeAdjuvans96
Domestic Chromium FallGrundlegende Kompatibilität, aber unerwartete Fehler können auftretenChromium Kernel Version ≥96
FireFox (einschließlich mobil)Adjuvans103
SafariNicht unterstützte\
+

Skript Manager

+

Nur mit dem Tampermonkey-Skriptmanager getestet. Die Kompatibilität mit Greasemonkey, Violentmonkey, ScriptCat usw. wird nicht garantiert.

+

Andere Plug-Ins

+

Es gibt keine Kompatibilitätsprobleme mit den gängigen CF-Plug-ins. Wenn Sie also Kompatibilitätsprobleme haben, ist Ihr Feedback willkommen.

+

Spiegel (Informatik)

+

Unterstützen Sie die offizielle Lichtseite m1 / m2 / m3 , die offizielle Spiegelseite https://mirror.codeforces.com/, die inoffizielle Spiegelseite https://codeforc.es

+

Außerdem ist es theoretisch mit jedem anderen Mirror kompatibel. Sie müssen nur eine weitere Zeile mit Kommentaren hinzufügen // @match your mirror URL und das war's!

+

allgemeine Probleme

+
+
F. Wie fange ich an? +
+ A. Sie müssen Tampermonkey installieren, bevor Sie das Skript installieren können. +
+
+
+
F. Aktualisierungsfehler? +
+

A. Aufgrund der Greasy Fork-Plattform kann es bei der Veröffentlichung einer neuen Version vorkommen, dass das eigentliche Update/die Installation die vorherige Version ist.

+

Normalerweise müssen Sie nur ein paar Minuten warten und dann die Aktualisierung/Installation erneut durchführen.

+

Sie können auch mit der Maus über das rote Fragezeichen im Feld Update-Warnung des Skripts fahren und auf die Schaltfläche "Noch nicht aktualisieren" am unteren Rand der Popup-Meldung klicken.

+
+
+
+
F. Wird immer wieder das Laden angezeigt? +
+ A. Bitte aktivieren Sie die Option "Kompatibilitätsoptionen - Nicht auf das Laden von Seitenressourcen warten" in den Einstellungen. +
+
+
+
Q. Verwendung von DeepL Übersetzungsfehler Zu viele Anfragen? +
+

A. Das liegt in der Regel daran, dass Sie in kurzer Zeit viel übersetzt haben oder mehr als 5.000 Zeichen Text auf einmal übersetzt haben. DeepL hat ein Limit für die Anzahl der Wörter und die Häufigkeit der Übersetzungen.

+ Das ist nur vorübergehend. Es wird sich nach einer Weile wieder normalisieren. +
+
+
+
F. Ich erhalte eine Fehlermeldung, wenn ich DeepL verwende, oder es wird ständig angezeigt, dass die Übersetzung im Gange ist. +
+ A. Das liegt in der Regel daran, dass das Netzwerk, das Sie verwenden, nicht richtig zugänglich ist www.deepl.com +
+
+
+
Einige Formeln werden als {xx} / [xx] / [xx] im Übersetzungsergebnis angezeigt? +
+ A. Bei der Verwendung der gemeinsamen Übersetzungsschnittstelle (DeepL/Youdao/google) für die Übersetzung, die durch die Art und Weise, wie das Skript implementiert ist, eingeschränkt ist, kann es{xx}/[xx]/[xx] +
+
+
+

Umgang des Skripts mit Formeln

+

Um zu verhindern, dass LaTeX-Formeln während der Übersetzung beschädigt werden, nimmt das Skript zunächst alle LaTeX-Formeln heraus und ersetzt sie durch das Ersetzungszeichen{xx}/[xx]/[xx], das

+

Da die Wahrscheinlichkeit besteht, dass diese Substitutionen während der Übersetzung nicht beschädigt werden, ist es möglich, die Formeln nach der Übersetzung auf der Grundlage der Substitutionen in LaTeX wiederherzustellen.

+

Diese Implementierung funktioniert wie erwartet, vorausgesetzt, dass das Ersetzungszeichen nicht gebrochen ist, was in den meisten Fällen kein Problem darstellt.

+

Aber manchmal brechen Übersetzungsdienste Ersetzungen, z.B. wird [23] zu [23 / 23] / [23]/ [23 】/ 23 】. In diesem Fall wird das Skript durch bestimmte reguläre Regeln wiederhergestellt, so dass es immer noch wie erwartet funktionieren kann.

+

Wenn der Übersetzungsdienst jedoch noch mehr Inhalt zerstört und Mehrdeutigkeit schafft, z.B. wenn der Übersetzungsdienst [2] 313 in [2312] umwandelt, dann ist es nicht möglich, ihn wiederherzustellen.

+

Für jeden Übersetzungsdienst haben verschiedene Ersetzungen unterschiedliche Wahrscheinlichkeiten, selbst beschädigt zu werden, und Sie können verschiedene Ersetzungen in der Einstellungsleiste in der oberen rechten Ecke des

+

Nach Tests hat sich herausgestellt, dass {} in der Regel besser funktioniert, so dass die Skripte standardmäßig diese Ersetzung verwenden

+
+
+
+
+
+

Tipp:

+

Dieses Problem tritt bei der Übersetzung mit ChatGPT nicht auf, da ChatGPT über ein Prompt-Wort direkt angewiesen werden kann, die darin enthaltenen LaTeX-Formeln unübersetzt zu lassen.

+

Ein intelligentes ChatGPT kann dies sehr gut erfüllen, und dies ist der empfohlene Weg für die Übersetzung von Skripts.

+
+
+
+
+
+
Wie kann ich mit ChatGPT übersetzen? +
+ A. Wenn Sie direkten Zugriff auf die Schnittstelle von OpenAI haben und über ein Konto verfügen, brauchen Sie nur "ChatGPT-Übersetzung (API) verwenden" anzukreuzen und auf die Schaltfläche "Hinzufügen" unten zu klicken, um eine neue Konfiguration zu erstellen und die in der Schaltfläche "Hinzufügen" unten aus und füllen Sie sie aus. +

Darüber hinaus können Sie auch Api-Proxy-Dienste erwerben, um ChatGPT zu nutzen. In der folgenden Tabelle sind einige Api-Dienstanbieter aufgelistet, die Sie nutzen können +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 offizielle WebsiteMethode der Akquisition
API2Dhttps://api2d.com/offizielle Website
CloseAIhttps://console.closeai-asia.com/offizielle Website
OhMyGPThttps://aigptx.top/offizielle Website
OpenAI-SBhttps://openai-sb.com/Telegramm Bots
API2GPThttps://www.api2gpt.com/offizielle Website
AI Proxyhttps://aiproxy.io/offizielle Website
+
+
+
+

Haftungsausschluss:

+

Der Autor sammelt und teilt nur zum Zweck des Teilens, erhält keine Einnahmen und garantiert nicht für die Stabilität der oben genannten Plattformen, und jegliches Verhalten der Plattformen hat nichts mit dem Autor zu tun.

+

Es wird empfohlen, in kleinen Beträgen aufzuladen und alles aufzubrauchen, da diese Anbieter möglicherweise nicht mehr existieren.

+
+
+

Wenn Sie einen Dienst verwenden, der von einem Api-Proxy-Dienstanbieter bereitgestellt wird, sollte der KEY in der Konfiguration der vom Api-Proxy-Dienstanbieter bereitgestellte Schlüssel sein.

+

Außerdem müssen Sie in der Konfiguration zusätzlich die Proxy-API eintragen, die

+

Die Proxy-API muss vollständig ausgefüllt werden. Hier ist ein Beispiel für CloseAI , das die API + Base:https://api.closeai-proxy.xyzbereitstellt.

+

Dann sollte die Proxy-API von https://api.closeai-proxy.xyz/v1/chat/completionsgefolgt werden.

+ Hinweis:Da Sie eine benutzerdefinierte API angegeben haben, wird Tampermonkey Sie vor domänenübergreifenden Anfragen warnen. Bitte klicken Sie auf Selbst autorisieren! +
+ Hinweis:Wenn Sie Azure OpenAI verwenden möchten, da seine Schnittstellenparameter nicht mit der offiziellen OpenAI-Schnittstelle übereinstimmen, können Sieazure-openai-proxyselbst einsetzen, um die +
+
+
+
Was ist LSP? +
+ A. LSP (Language Server Protocol)ist eine von Microsoft initiierte Protokollspezifikation für die Kommunikation zwischen Redakteuren und Sprachservern. +

Es trennt die Funktionen der Code-Vervollständigung, der Diagnose, der Vorschläge, der Dokumentation und sogar des Projektmanagements, die herkömmliche IDEs implementieren müssen, vom Editor und verwendet unabhängige Dienste, um diese Funktionen auszuführen.

+

Der Editor muss nur mit dem Server gemäß der Protokollspezifikation kommunizieren, was den Arbeitsaufwand erheblich reduziert und es dem Editor leicht macht, eine Vielzahl von Programmiersprachen zu unterstützen

+

Gegenwärtig hat sich die Ökologie von LSP allmählich verbessert, die gängigen Editoren unterstützen LSP oder verfügen über die entsprechenden Plug-ins, wie VSCode, Vim, Emacs, etc....

+

Die großen kommerziellen IDE-Anbieter haben jedoch wenig Interesse daran. Im Grunde wird der bestehende LSP Server von der Open-Source-Gemeinschaft gepflegt, so dass er immer noch nicht so gut ist wie professionelle IDEs und eine Vielzahl professioneller Plug-ins.

+
+
+
+
Wie verwende ich den LSP? +
+ A. Nur zwei Schritte: +

Das Skript:bietet Unterstützung für die folgenden zwei Implementierungen von LSP Server in C++ und Python, die Sie bei Bedarf installieren müssen:

+ + + + + + + + + + + + + + + + + + + + +
MehrsprachigkeitLSP ServerInstallationsmethode (unter Windows)
C++clangdLaden Sie clangd von clangd release herunter und fügen Sie den Pfad von clangd zum Pfad der Systemumgebungsvariablen hinzu, z.B. C:\clangd_16.0.2\bin\
PythonpylspFühren Sie den Befehl: + pip install "python-lsp-server[all]"aus und es wird automatisch die Umgebungsvariable hinzugefügt
+

II:Sie müssen auch OJBetter_Bridge von GitHub release oder Blue Rhythm Cloud (password:aaaa) herunterladen und entpacken, die die Kommunikation zwischen Skripten und LSP Server überbrückt.

+

Legen Sie den extrahierten Ordner im Stammverzeichnis Ihres Laufwerks C oder an einem beliebigen anderen Ort ab (Hinweis:Wenn Sie ihn an einem anderen Ort ablegen, müssen Sie den "Arbeitspfad" im Einstellungsfenster auf Ihren tatsächlichen Ort ändern).

+

Dann können Sie OJBetter_Bridge ausführen, das eine GUI-Version und eine Terminalversion bietet. Die GUI-Version wird für Windows empfohlen, führen Sie server_gui.exe direkt aus.

+

OJBetter_Bridge prüft beim Start automatisch, ob die Befehle clangd und pylsp gültig sind und gibt eine entsprechende Meldung aus.

+ Tipp::In der Benutzeroberfläche von server_gui.exe können Sie einstellen, dass er hochgefahren wird. +

Nachdem Sie die obigen Schritte ausgeführt haben, können Sie "LSP verwenden" in den Einstellungen aktivieren und die Funktion nutzen.

+
+
+
+ Mehr erfahren? +
+ Für clangd gibt es zwei Konfigurationsdateien, die im Ordner cpp_workspace gespeichert sind: .clangd,.clang-format +

Sie definieren die Konfigurationselemente und Code-Formatierungsstilvon clangd, die Sie bearbeiten können.

+
+
+
+
+
+
+
+
Warum funktioniert die clangd Formatierung nicht? +
+ A. Das liegt daran, dass Sie im Fenster Einstellungen den falschen LSP-Arbeitspfad eingegeben haben. +
+
+
+
Q. Warum kann clangd meine <bits/stdc++.h> Kopfzeilen nicht erkennen? +
+ A. Das liegt daran, dass <bits/stdc++.h> keine Standard-Header-Datei ist und daher von clangd standardmäßig nicht unterstützt wird. Sie müssen clang mitteilen, wo diese Nicht-Standard-Header-Datei zu finden ist, indem Sie den Compiler-Parameter in der Datei .clangd im cpp_workspace + von OJBetter_Bridge ändern (und natürlich wird die Verwendung eines universellen Headers nicht empfohlen). +
+
+
+
Ist es möglich, lokale JSON-Dateien für statische Ergänzungen zu verwenden? +
+ A. Aufgrund von Sicherheitsbeschränkungen des Browsers können Sie mit einer URL wie file:///xxx nicht direkt auf Ihre lokale JSON-Datei im Browser zugreifen. +

Aber Sie können es mit OJBetter_Bridge tun, es ist sehr einfach, Sie müssen nur die JSON-Datei xxx.json in den Ordner /mycomplet von OJBetter_Bridge legen.

+

Wenn Sie OJBetter_Bridge starten, können Sie im Bereich Einstellungen eine neue Konfiguration mit einer JSON-URL von:http://127.0.0.1:2323/mycomplet/xxx.jsonerstellen.

+
+
+

Probieren Sie es aus?

+

Starten Sie OJBetter_Bridge. Zu Beginn enthält der Ordner /mycomplet eine Beispiel-JSON-Datei:template.json, so dass Sie eine Konfiguration hinzufügen, + http://127.0.0.1:2323/mycomplet/template.json ausfüllen und speichern können!

+

Geben Sie nun hallo in den Editor ein und Sie werden zwei komplementäre Einträge sehen:hello world, hello world2

+
+
+
+
+
+

Code beisteuern

+

Fühlen Sie sich frei, Code beizutragen, gehen Sie zu Github repository Erstellen Sie einen PR

+

Anderer OJ?

+

Die Autoren pflegen aufgrund begrenzter Ressourcen nicht viele ähnliche Skripte. Wenn Sie also dieses Skript für Ihr bevorzugtes OJ portieren möchten, sind Sie herzlich eingeladen, dies zu tun, Sie müssen nur die GPL-3.0-Lizenz einhalten!

+

Dankbar

+ +

Vielen Dank, 0rz.

\ No newline at end of file diff --git a/i18n/de/resources/subs/Codeforces-subs.json b/i18n/de/resources/subs/Codeforces-subs.json new file mode 100644 index 000000000..4381eea34 --- /dev/null +++ b/i18n/de/resources/subs/Codeforces-subs.json @@ -0,0 +1,859 @@ +{ + "version": "1.0.0", + "commonReplacements": { + ".datatable": { + "class": [ + ".datatable" + ], + "description": "", + "isStrict": false, + "rules": { + "Virtual participation": "Nehmen Sie am virtuellen Reenactment-Turnier teil", + "Enter": "gehen in", + "Current standings": "Aktuelle Liste", + "Final standings": "Endgültige Liste", + "Preliminary results": "Vorläufige Ergebnisse", + "open hacking:": "Offenes Hacken", + "School/University/City/Region Championship": "Wettbewerbe der Schule/Universität/Stadt/Region", + "Official School Contest": "Offizielle Schulwettbewerbe", + "Training Contest": "Trainingsspiel", + "Training Camp Contest": "Trainingslager Wettbewerb", + "Official ICPC Contest": "ICPC Offizieller Wettbewerb", + "Official International Personal Contest": "Offizieller internationaler Einzelwettbewerb", + "China": "sino", + "Statements": "Titel Beschreibung", + "in Chinese": "Chinesisch", + "Trainings": "Zug", + "Prepared by": "Autor", + "Current or upcoming contests": "Laufende oder bevorstehende Wettbewerbe", + "Rating: users participated in recent 6 months": "Bewertung:Benutzer, die in den letzten 6 Monaten teilgenommen haben", + "Past contests": "Vergangene Spiele", + "Exclusions": "ausschließen", + "Before start": "Wir haben noch ein paar Minuten bis zum Start des Rennens.", + "Before registration": "Es ist noch Zeit, bevor die Registrierung beginnt", + "Until closing ": "Es ist noch Zeit, die Registrierung abzuschließen", + "Before extra registration": "Zusätzliche Registrierung ist noch nicht geöffnet", + "Register »": "Einschreibung \"", + "Registration completed": "Eingeschrieben", + "Registration closed": "Die Registrierung ist jetzt geschlossen", + "Problems\n": "问题集", + "My Submissions": "Meine Einreichung", + "Standings": "Liste der Namen", + "Questions about problems": "Fragen zu Themen", + "Contest status": "Spielstatus", + "Invited users": "Eingeladene Benutzer", + "Invitation links": "Einladung Link", + "API keys": "API密钥" + } + }, + ".menu-list.main-menu-list": { + "class": [ + ".menu-list.main-menu-list" + ], + "description": "", + "isStrict": false, + "rules": { + "Home": "Homepage", + "Top": "en vogue", + "Catalog": "Katalog der Reiseführer", + "Contests": "Wettbewerb (Sport usw.)", + "Gym": "Trainingslager", + "Problemset": "Fragebogen", + "Groups": "Organisationen", + "Rating": "Rating-Ranglisten", + "Edu": "kultivieren", + "Calendar": "Kalender", + "ICPC Challenge": "ICPC挑战赛", + "Help": "Hand" + } + }, + ".nav-links": { + "class": [ + ".nav-links" + ], + "description": "", + "isStrict": false, + "rules": { + "Settings": "einrichten", + "Blog": "Blog (Lehnwort)", + "Teams": "Warteschlange", + "Submissions": "einreichen (einen Bericht usw.)", + "Favourites": "Lesezeichen (Internet)", + "Problemsetting": "Problemstellung", + "Talks": "Privatbrief", + "Contests": "Wettbewerb (Sport usw.)" + } + }, + ".contest-state-phase": { + "class": [ + ".contest-state-phase" + ], + "description": "", + "isStrict": false, + "rules": { + "Before contest": "bevorstehender Wettbewerb", + "Contest is running": "Spiel im Gange" + } + }, + ".notice": { + "class": [ + ".notice" + ], + "description": "", + "isStrict": false, + "rules": { + "has extra registration": "Es gibt zusätzliche Einschreibefristen", + "If you are late to register in 5 minutes before the start, you can register later during the extra registration. Extra registration opens 10 minutes after the contest starts and lasts 25 minutes.": "Wenn Sie sich nicht bis 5 Minuten vor dem Start des Rennens angemeldet haben, können Sie sich später während der zusätzlichen Anmeldephase anmelden. Zusätzliche Anmeldungen werden 10 Minuten nach dem Start des Rennens geöffnet und dauern 25 Minuten.", + "in timezone ([^)]*)": "1 Zeitzone", + "Contest will be available for virtual participation when over. Leave this field blank to allow virtual participation at any time": "Virtuelle Einträge sind auch nach dem Ende des Wettbewerbs möglich. Lassen Sie dieses Feld leer, wenn Sie jederzeit virtuelle Einsendungen zulassen möchten.", + "Contest duration in minutes": "Dauer des Spiels (Minuten)", + "or choose": "oder wählen Sie", + "Standings freeze period in minutes": "Liste Einfrierzeit (Minuten)", + "Time when final results are available": "Verfügbare Zeit für endgültige Ergebnisse", + "Is it allowed to solve contest problems unofficially after the end": "Ob eine inoffizielle Lösung von Problemen nach dem Spiel erlaubt ist", + "Is it allowed to run contest as virtual after the end": "Ob virtuelle Einträge nach dem Wettbewerb erlaubt sind", + "Is it allowed participate in contest out of competition": "Ob nicht-kompetitive Einträge erlaubt sind", + "Are participants allowed to register for the contest themselves": "Ob die Teilnehmer sich selbst registrieren dürfen", + "Can non-registered users and anonyms view contest standings, problems and other statistics": "Ob Sie unregistrierten und anonymen Benutzern erlauben, die Ranglisten, Fragen und andere Statistiken zu sehen", + "If unchecked they will view only personal status": "Wenn diese Option nicht aktiviert ist, können sie nur einzelne Status anzeigen.", + "To manage allowed program languages": "Verwaltung zulässiger Programmiersprachen", + "The system will automatically adjust time limits for some languages. Recommended for use only for educational purpose.": "Das System passt das Zeitlimit für bestimmte Sprachen automatisch an. Nur für Bildungszwecke empfohlen.", + "Check it if you want to allow contestants view statements": "Markieren Sie dieses Kästchen, wenn Sie dem Teilnehmer erlauben möchten, die Beschreibung der Frage zu sehen.", + "Check it if contestants can view standings": "Markieren Sie dieses Kästchen, wenn Sie den Teilnehmern erlauben möchten, die Bestenlisten zu sehen.", + "Where the contest was held originally": "Ort, an dem der Wettbewerb ursprünglich stattfand", + "Official contest site URL": "Offizielle Website zum Wettbewerb URL", + "Enter a name for your new API key. It should describe what this key is used for.": "为您的新API密钥输入一个名称。它应该描述这个密钥的用途。", + "Enter your account password to confirm access. If you do not have password, logout and use password recovery feature.": "输入您的账户密码以确认访问。如果您没有密码,请注销并使用密码恢复功能。" + } + }, + ".propertyLinks": { + "class": [ + ".propertyLinks" + ], + "description": "", + "isStrict": false, + "rules": { + "Contribution": "widmen" + } + }, + ".contests-table": { + "class": [ + ".contests-table" + ], + "description": "", + "isStrict": false, + "rules": { + "Contest history": "Wettbewerb Geschichte" + } + }, + ".roundbox.sidebox.borderTopRound ": { + "class": [ + ".roundbox.sidebox.borderTopRound " + ], + "description": "", + "isStrict": false, + "rules": { + "Register now": "Jetzt einschreiben", + "No tag edit access": "Keine Berechtigung zur Tag-Bearbeitung", + "Problem([\\s]*)$": "问题", + "Verdict": "Status der Rechtsprechung", + "Language:": "Sprachen.", + "Participant": "Kandidaten", + "Choose file:": "Wählen Sie eine Datei aus." + } + }, + ".icon-eye-close.icon-large": { + "class": [ + ".icon-eye-close.icon-large" + ], + "description": "", + "isStrict": false, + "rules": { + "Add to exclusions": "Zur Ausschlussliste hinzufügen" + } + }, + "null": { + "class": [ + null + ], + "description": "", + "isStrict": false, + "rules": { + "Add to exclusions for gym contests filter": "Hinzufügen von Ausnahmen zum Boot Camp Filter" + } + }, + ".roundbox.sidebox.sidebar-menu.borderTopRound": { + "class": [ + ".roundbox.sidebox.sidebar-menu.borderTopRound" + ], + "description": "", + "isStrict": false, + "rules": { + "Announcement": "Bulletin", + "Statements": "Statistische Berichte", + "Tutorial": "Notizen" + } + }, + ".second-level-menu": { + "class": [ + ".second-level-menu" + ], + "description": "", + "isStrict": false, + "rules": { + "Problems": "Ausgaben", + "Submit Code": "Code einreichen", + "My Submissions": "Meine Einreichung", + "Status": "Stand der Dinge", + "Standings": "Liste der Namen", + "Adm.": "Manager", + "Edit": "Compiler", + "Custom Invocation": "Benutzerdefiniertes Debugging", + "Common standings": "Alle Ranglisten", + "Friends standings": "Nur für Freunde.", + "Submit": "einreichen (einen Bericht usw.)", + "Hacks": "hacker (Informatik) (Lehnwort)", + "Room": "Kabinen", + "Custom test": "Benutzerdefinierte Tests", + "Blog": "Blog (Lehnwort)", + "Teams": "Warteschlange", + "Submissions": "Einreichung von Unterlagen", + "Groups": "Organisationen", + "Rating": "Einstufungen", + "Friends rating": "Bewertung durch einen Freund", + "Favourites": "Lesezeichen (Internet)", + "Contests": "Wettbewerb (Sport usw.)", + "Magic": "魔法", + "Handle": "账号", + "Members": "Mitglieder", + "问题etting": "Beteiligung an der Vorbereitung von Ausgaben", + "Streams": "Direkte Internet-Übertragung", + "Gym": "Trainingslager", + "Mashups": "Mix und Match (von Kleidung etc.)", + "Posts": "Karte", + "Comments": "zurückkehren (zu einem früheren Zustand)", + "Main": "Heftklammer", + "Settings": "einrichten", + "Lists": "Inserate", + "General": "grundlegend", + "Sidebar": "eine Seitenleiste (in Software)", + "Social": "Soziale Sicherheit (Renten, Krankenversicherung)", + "Address": "Adresse", + "Wallets": "Geldbörsen" + } + }, + ".topic-toggle-collapse": { + "class": [ + ".topic-toggle-collapse" + ], + "description": "", + "isStrict": false, + "rules": { + "Expand": "Eröffnungsfeier" + } + }, + ".topic-read-more": { + "class": [ + ".topic-read-more" + ], + "description": "", + "isStrict": false, + "rules": { + "Full text and comments": "Mehr lesen/Kommentare" + } + }, + ".toggleEditorCheckboxLabel": { + "class": [ + ".toggleEditorCheckboxLabel" + ], + "description": "", + "isStrict": false, + "rules": { + "Switch off editor": "Deaktivieren Sie die Syntaxhervorhebung im Editor" + } + }, + ".submit": { + "class": [ + ".submit" + ], + "description": "", + "isStrict": false, + "rules": { + "Registration for the contest": "Anmeldung zum Wettbewerb" + } + }, + "._FilterByTagsFrame_difficulty": { + "class": [ + "._FilterByTagsFrame_difficulty" + ], + "description": "", + "isStrict": false, + "rules": { + "Difficulty:": "Schwierigkeitsgrad." + } + }, + "._FilterByTagsFrame_addTagLink": { + "class": [ + "._FilterByTagsFrame_addTagLink" + ], + "description": "", + "isStrict": false, + "rules": { + "Add tag": "Tags hinzufügen" + } + }, + ".alert": { + "class": [ + ".alert" + ], + "description": "", + "isStrict": false, + "rules": { + "Rating changes for last rounds are temporarily rolled back. They will be returned soon.": "Die Bewertungsänderungen aus der letzten Runde wurden vorübergehend zurückgenommen. Sie werden in Kürze wiederhergestellt.", + "Reminder: in case of any technical issues, you can use the lightweight website": "Zur Erinnerung::Bei technischen Problemen können Sie die leichtgewichtige Website nutzen", + "Please subscribe to the official Codeforces channel in Telegram via the link ": "Bitte abonnieren Sie den offiziellen Telegram-Kanal von Codeforces über den Link!" + } + }, + ".lang-chooser": { + "class": [ + ".lang-chooser" + ], + "description": "", + "isStrict": false, + "rules": { + "Enter": "sich anmelden", + "Register": "Immatrikulation", + "Contest rating": "Test Bewertung", + "Logout": "Abmelden" + } + }, + ".userbox": { + "class": [ + ".userbox" + ], + "description": "", + "isStrict": false, + "rules": { + "Change photo": "Ersetzen von Bildern", + "Contest rating": "Rennsport", + "Contribution": "widmen", + "My friends": "Mein bester Freund.", + "Change settings": "Einstellungen ändern", + "Last visit": "letzter Zugriff", + "not visible": "不可见的", + "Registered": "registriert in", + "Blog entries": "Blog-Einträge", + "comments": "Kommentare", + "Write new entry": "Vorbereitung von neuen Einträgen", + "View my talks": "Meine privaten Nachrichten ansehen", + "Talks": "Privatbrief", + "Send message": "eine Nachricht senden" + } + }, + "#vote-reset-filterDifficultyLowerBorder": { + "class": [ + "#vote-reset-filterDifficultyLowerBorder" + ], + "description": "", + "isStrict": false, + "rules": { + "Reset": "Reprovision" + } + }, + "#vote-reset-filterDifficultyUpperBorder": { + "class": [ + "#vote-reset-filterDifficultyUpperBorder" + ], + "description": "", + "isStrict": false, + "rules": { + "Reset": "Reprovision" + } + }, + ".alert.alert-info": { + "class": [ + ".alert.alert-info" + ], + "description": "", + "isStrict": false, + "rules": { + "The problem statement has recently been changed.": "Die Titelbeschreibung wurde kürzlich geändert.", + "View the changes.": "Änderungen anzeigen" + } + }, + ".enterPage": { + "class": [ + ".enterPage" + ], + "description": "", + "isStrict": false, + "rules": { + "Fill in the form to login into Codeforces.": "Füllen Sie das Formular aus, um sich bei Codeforces anzumelden.", + "You can use": "Sie können auch die", + "as an alternative way to enter.": "sich anmelden" + } + }, + ".notice.small": { + "class": [ + ".notice.small" + ], + "description": "", + "isStrict": false, + "rules": { + "\\* To view the complete list, click ": "* :: Um die vollständige Liste zu sehen, klicken Sie" + } + }, + ".setting-name": { + "class": [ + ".setting-name" + ], + "description": "", + "isStrict": false, + "rules": { + "Contest type:": "Art des Wettbewerbs:", + "Rated:": "Nennwert:", + "Tried:": "Versucht", + "Substring:": "Schlüsselwörter" + } + }, + ".by-form": { + "class": [ + ".by-form" + ], + "description": "", + "isStrict": false, + "rules": { + "Sort by:": "Sortiert nach:", + "relevance": "(Statistik) Korrelation", + "popularity": "kurzlebige Begeisterung", + "time": "mal" + } + }, + ".roundbox.borderTopRound": { + "class": [ + ".roundbox.borderTopRound" + ], + "description": "", + "isStrict": false, + "rules": { + "If you invite users to this contest, the contest will become visible to them regardless of its visibility. You can share the contest using the link:": "Wenn Sie einen Benutzer zur Teilnahme an diesem Wettbewerb einladen, wird der Wettbewerb für den Benutzer unabhängig von seiner Sichtbarkeit sichtbar sein. Sie können das Gewinnspiel über den folgenden Link:teilen", + "Generate link and share it with other users": "Erzeugen Sie Links und teilen Sie diese mit anderen Benutzern", + "Show Log »": "Journal anzeigen \"", + "Move all to practice »": "Alle verschoben zu Practitioner \"", + "Remove All »": "Alle entfernen \"", + "Add »": "Hinzufügen \"", + "Set »": "Einstellungen \"", + "Download Archive »": "Archiv herunterladen \"" + } + }, + ".caption.titled": { + "class": [ + ".caption.titled" + ], + "description": "Seitenleiste mit dem Titel Chinesisch", + "isStrict": false, + "rules": { + "Pay attention": "zur Kenntnis nehmen", + "Top rated": "Rating-Ranking", + "Top contributors": "Rangliste der Beitragszahler", + "Find user": "Benutzer finden", + "Recent actions": "Neueste Nachrichten", + "Training filter": "Filtern und Sieben", + "Find training": "Wettbewerbe/Ausgaben suchen", + "Virtual participation": "Was ist ein virtueller Eintrag", + "Contest materials": "Wettbewerbsbezogene Informationen", + "Settings": "einrichten", + "Create Mashup Contest": "Erstellen Sie einen Mashup-Wettbewerb", + "Clone Contest to Mashup": "Klonspiel zu Combo Mashup", + "Invitations": "Einladungen", + "Status filter": "Status-Filter", + "Administration": "Manager", + "Submit": "einreichen (einen Bericht usw.)", + "Practice": "Übung", + "Problem tags": "Frage-Tag", + "Filter Problems": "Probleme beim Filtern", + "Last unsolved": "Beim letzten Mal nicht gelöst", + "Attention": "zur Kenntnis nehmen", + "Past contests filter": "Vergangenes Match Screening", + "About Contest": "Über den Wettbewerb", + "Last submissions": "Geschichte der Einreichung", + "Streams": "Direkte Internet-Übertragung", + "Coach rights": "Coaching-Autorität", + "Advices to fill address": "Vorschläge zum Ausfüllen Ihrer Adresse", + "Hacks filter": "Hacker-Filter", + "Score table": "Bewertungsskala", + "Contests": "Wettbewerb (Sport usw.)", + "History": "Redaktionelle Geschichte", + "Login into Codeforces": "Bei Codeforces anmelden", + "Export the judgment log to DAT-file": "Exportieren Sie das Urteilsprotokoll als DAT-Datei", + "Contest managers": "Wettbewerb Administrator", + "Contest writers": "Autoren des Wettbewerbs", + "Spectator ranklists": "Publikumsrangliste", + "Ghosts:": "Geisterspieler", + "Export Submissions": "Einreichung exportieren", + "Register in Codeforces": "注册 Codeforces" + } + }, + "QuestionFilter1": { + "class": [ + "#gym-filter-form div label", + "#gym-filter-form div" + ], + "description": "Handhabung der Titel-Filteroptionen", + "isStrict": false, + "rules": { + "Contest type:": "Wettbewerbstyp.", + "ICPC region:": "ICPC-Regionen.", + "Contest format:": "Format des Wettbewerbs.", + "Order by:": "Sortieren nach.", + "Secondary order by:": "Zweite Bestellung.", + "Hide, if participated:": "Verstecken Sie die, an denen ich teilgenommen habe.", + "Hide excluded gyms": "Verstecken ausgeschlossen.", + "Season:": "Zeitrahmen (jährlich)", + "Duration, hours:": "Dauer (Stunden).", + "Difficulty:": "Schwierigkeitsgrad." + } + }, + "QuestionFilter2": { + "class": [ + ".setting-value select option", + ".setting-last-value select option" + ], + "description": "", + "isStrict": false, + "rules": { + "Official ACM-ICPC Contest": "ICPC Offizieller Wettbewerb", + "Official School Contest": "Offizielle Schulwettbewerbe", + "Opencup Contest": "Opencup Wettbewerb", + "School/University/City/Region Championship": "Schule/Universität/Stadt/Regionsmeisterschaften", + "Training Camp Contest": "Trainingslager Wettbewerb", + "Official International Personal Contest": "Offizieller internationaler Einzelwettbewerb", + "Training Contest": "Trainingsspiel", + "ID_ASC": "Erstellungszeit (aufsteigende Reihenfolge)", + "ID_DESC": "Erstellungszeit (absteigend)", + "RATING_ASC": "Bewertung (aufsteigende Reihenfolge)", + "RATING_DESC": "Bewertung (absteigend)", + "DIFFICULTY_ASC": "Schwierigkeit (aufsteigende Reihenfolge)", + "DIFFICULTY_DESC": "Schwierigkeit (absteigend)", + "START_TIME_ASC": "Startzeit (aufsteigende Reihenfolge)", + "START_TIME_DESC": "Startzeit (absteigend)", + "DURATION_ASC": "Dauer (aufsteigend)", + "DURATION_DESC": "Dauer (absteigend)", + "POPULARITY_ASC": "Hitze (aufsteigende Reihenfolge)", + "POPULARITY_DESC": "Hitze (absteigende Reihenfolge)", + "UPDATE_TIME_ASC": "Aktualisierungszeit (aufsteigende Reihenfolge)", + "UPDATE_TIME_DESC": "Aktualisierungszeit (absteigend)" + } + }, + "CompetitionFilter": { + "class": [ + ".options li label", + ".CaptionCont span" + ], + "description": "Rennen Filteroptionen Chinesisch", + "isStrict": false, + "rules": { + "Educational": "lehrreich", + "Global": "weltweit", + "VK Cup": "VK-Pokal", + "Long Rounds": "lange Zeitspanne", + "April Fools": "Aprilscherz", + "Team Contests": "Team-Wettbewerb", + "ICPC Scoring": "ICPC-Bewertung", + "Doesn't matter": "----", + "Any": "Eigentum", + "Yes$": "是", + "No$": "否", + "No submission(s)": "Keine Vorlage", + "Have submission(s)": "Eingereicht", + "No solved problem(s)": "Keine Problemlösung", + "Have solved problem(s)": "Lösen Sie Probleme." + } + }, + "RightSidebox": { + "class": [ + ".sidebox div label" + ], + "description": "Rechte Sidebox Chinesisch", + "isStrict": false, + "rules": { + "Show tags for unsolved problems": "Labels für ungelöste Probleme anzeigen", + "Hide solved problems": "Gelöste Probleme ausblenden" + } + }, + "FormField-name": { + "class": [ + "td.field-name label" + ], + "description": "", + "isStrict": false, + "rules": { + "Postal/zip code": "Postleitzahl/Postleitzahl", + "Country //(English//)": "国家(英文)", + "State //(English//)": "州/省份(英文)", + "City //(English//)": "城市(英文)", + "Address //(English//)": "地址(英文)", + "Recipient //(English//)": "收件人姓名(英文)", + "Country //(Native//)": "国家(本地语言)", + "State //(Native//)": "州/省份(本地语言)", + "City //(Native//)": "城市(本地语言)", + "Address //(Native//)": "地址(本地语言)", + "Recipient //(Native//)": "收件人姓名(本地语言)", + "Phone": "Telefone", + "TON Wallet:": "TON WALLET.", + "Secret Code:": "Captcha.", + "Terms of agreement:": "Bedingungen der Vereinbarung.", + "Choose team:": "Team auswählen." + } + }, + "QuestionTag": { + "class": [ + "._FilterByTagsFrame_addTagLabel select option", + "._FilterByTagsFrame_tagBoxCaption", + ".notice", + ".tag-box" + ], + "description": "", + "isStrict": false, + "rules": { + "combine tags by OR": "Etiketten nach Logik oder Kombination meiner Auswahlen", + "combine-tags-by-or": "Kombiniere meine Auswahl an Tags nach Logik oder (combine-tags-by-or)", + "2-sat": "Erfüllbarkeitsproblem für zweistufige Graphen (2-sat)", + "binary search": "Binäre Suche", + "bitmasks": "Bitmasken", + "brute force": "Brute-Force-Aufzählung.", + "chinese remainder theorem": "Chinesischer Restsatz (中国剩余定理)", + "combinatorics": "Kombinatorik", + "constructive algorithms": "Konstruktive Algorithmen (konstruktive Algorithmen)", + "data structures": "Datenstrukturen", + "dfs and similar": "Depth-First-Suche und ihre Varianten (dfs und ähnliche)", + "divide and conquer": "Algorithmus zum Teilen und Erobern.", + "dp": "Dynamische Programmierung (dp)", + "dsu": "Paralleles Suchset (dsu)", + "expression parsing": "Analyse von Ausdrücken", + "fft": "Schnelle Fourier-Transformation (fft)", + "flows": "Flows", + "games": "Spieltheorie (Spiele)", + "geometry": "Computergestützte Geometrie", + "graph matchings": "Graphische Zuordnungen", + "graphs": "Graphentheorie (Graphen)", + "greedy": "Gierig", + "hashing": "Hash-Tabelle (Hashing)", + "implementation": "Implementierungsfragen, Programmierkenntnisse, Simulation (Implementierung)", + "interactive": "Fragen zur Interaktivität (interaktiv)", + "math": "Mathematik (math)", + "matrices": "Matrizen", + "meet-in-the-middle": "Meet-in-the-Middle-Algorithmus (Mittelsmann-Algorithmus)", + "number theory": "Zahlentheorie", + "probabilities": "Wahrscheinlichkeiten", + "schedules": "Algorithmen zur Zeitplanung (Zeitpläne)", + "shortest paths": "Algorithmen für kürzeste Wege (kürzeste Pfade)", + "sortings": "Sortieralgorithmen (Sortierungen)", + "string suffix structures": "String-Suffix-Strukturen", + "strings": "Behandlung von Zeichenketten (Strings)", + "ternary search": "Ternäre Suche", + "trees": "Baumstruktur (Bäume)", + "two pointers": "Algorithmus mit zwei Zeigern (zwei Zeigern)" + } + }, + "SettingField-name": { + "class": [ + ".field-name" + ], + "description": "Einrichten der Felder auf der Seite", + "isStrict": false, + "rules": { + "Hide sidebar block \"Find user\"": "Blenden Sie den Seitenleistenblock \"Benutzer suchen\" aus.", + "Hide sidebar block \"Current user\"": "Blenden Sie den Seitenleistenblock \"Aktueller Benutzer\" aus.", + "Hide sidebar block \"Recent аctions\"": "Blenden Sie den \"Was ist neu\"-Block in der Seitenleiste aus.", + "Hide sidebar block \"Favourite groups\"": "Blenden Sie den Seitenleistenblock \"Favoritengruppen\" aus.", + "Hide sidebar block \"Top contributors\"": "Blenden Sie den Seitenleistenblock \"Contributor Ranking\" aus.", + "Hide sidebar block \"Top rated\"": "Blenden Sie den Seitenleistenblock \"Rating Ranking\" aus.", + "Hide sidebar block \"Streams\"": "Den Seitenleistenblock \"Live\" ausblenden", + "Old password": "altes Passwort", + "New password": "neues Passwort", + "Confirm new password": "Bestätigen Sie das neue Passwort", + "Contest email notification": "E-Mail-Benachrichtigung zum Wettbewerb", + "Send email on new user talk": "Senden Sie eine E-Mail, wenn es einen neuen Benutzerdialog gibt", + "Send email on new comment": "Eine E-Mail senden, wenn ein neuer Kommentar hinzugefügt wird", + "Hide contact information": "Kontaktinformationen ausblenden", + "Remember me by Gmail, Facebook and etc": "Erinnern Sie sich an mich bei Gmail, Facebook, etc.", + "Show tags for unsolved problems": "Labels für ungelöste Probleme anzeigen", + "Hide solved problems from problemset": "Gelöste Probleme aus Problemsätzen ausblenden", + "Hide low rated blogs": "Blogs mit niedrigen Bewertungen ausblenden", + "Offer to publish great rating rises": "Bietet die Möglichkeit, die deutliche Verbesserung von Rating zu demonstrieren", + "Enforce https": "HTTPS erzwingen", + "Show private activity in the profile": "Private Aktivitäten im Profil anzeigen", + "Show diagnostics": "Anzeige von Diagnoseinformationen" + } + }, + "CloneContestFormField": { + "class": [ + ".field-name" + ], + "description": "Klonen eines Wettbewerbs in ein virtuelles Mashup-Einrichtungsformular", + "isStrict": false, + "rules": { + "Problem:": "Titel.", + "Question": "问题", + "Language:": "Sprachen.", + "Source code:": "Quellcode.", + "Or choose file:": "Oder wählen Sie die Datei aus.", + "Choose file:": "Wählen Sie eine Datei aus.", + "Notice:": "Vorsicht!", + "virtual participation:": "Virtuelle Teilnahme.", + "Registration for the contest:": "Anmeldung zum Rennen.", + "Take part:": "Teilnahme.", + "as individual participant:": "Als einzelne Teilnehmer.", + "as a team member:": "Als Mitglied eines Teams.", + "Virtual start time:": "Virtuelle Startzeit.", + "Complete problemset:": "Vollständiger Satz von Fragen.", + "First name \\(English\\)": "Name (Englisch)", + "Last name \\(English\\)": "Nachname (Englisch)", + "First name \\(Native\\)": "Name (Landessprache)", + "Last name \\(Native\\)": "Nachname (Landessprache)", + "Birth date": "Geburtsdatum", + "Country": "Nationen", + "City": "Gemeinden", + "Organization": "Organisationen", + "Handle/Email": "Kontonummer/E-Mail", + "Name": "名称", + "Handle": "账号", + "Email": "邮箱", + "Confirm": "确认", + "Password": "kryptographisch", + "New Rank": "新的Rank", + "Training name \\(English\\):": "Name der Schulung (Englisch).", + "Training name \\(Russian\\):": "Name der Schulung (auf Russisch).", + "Contest format:": "Format des Wettbewerbs.", + "Start time:": "Startzeit.", + "Duration:": "Dauer.", + "Visibility:": "Sichtbarkeit.", + "Attach parent contest\\?:": "Assoziiertes Sire Match?", + "Participation type:": "Art der Teilnahme.", + "Freeze period:": "Einfrierzeit.", + "Unfreeze time:": "Auftauzeit.", + "Is practice allowed\\?:": "Ist das Üben erlaubt?", + "Is virtual allowed\\?:": "Sind virtuelle Einträge erlaubt?", + "Is out of competition allowed\\?:": "Sind Beiträge ohne Wettbewerbscharakter erlaubt?", + "Is self-registration allowed\\?:": "Ist eine Selbstregistrierung erlaubt?", + "Can non-registered view the contest\\?:": "Können unregistrierte Benutzer das Gewinnspiel sehen?", + "Can participants view common status\\?:": "Können die Teilnehmer den Status der Freigabe überprüfen?", + "Contest testdata policy:": "Spieltest-Datenstrategie.", + "Allow view other submissions to:": "Erlauben Sie die Ansicht anderer Einsendungen an.", + "Manage program languages:": "Verwaltete Programmiersprachen.", + "Use time limits scaling policy\\?:": "Verwenden Sie eine zeitlich begrenzte Skalierungspolitik?", + "Allow statements\\?:": "Erlauben Sie die Anzeige der Titelbeschreibung?", + "Allow standings\\?:": "Erlauben Sie die Anzeige von Ranglisten?", + "Season:": "Saison.", + "Contest type:": "Wettbewerbstyp.", + "ICPC region:": "ICPC-Regionen.", + "Country:": "Land.", + "City:": "Die Städte.", + "Contest difficulty:": "Rennen Schwierigkeitsgrad.", + "Website URL:": "Web-Link.", + "Description \\(English\\):": "Beschreibung (Englisch).", + "Description \\(Russian\\):": "Beschreibung (auf Russisch).", + "Registration confirmation text \\(English\\):": "Text der Anmeldebestätigung (Englisch).", + "Registration confirmation text \\(Russian\\):": "Text der Registrierungsbestätigung (auf Russisch).", + "Logo \\(English\\):": "Logo (Englisch).", + "Logo \\(Russian\\):": "Logo (Russisch).", + "End time:": "Endzeit.", + "Name:": "Name.", + "Contest\\(s\\):": "Wettbewerb.", + "Add contest:": "Wettbewerb hinzufügen.", + "Show Contestants:": "Teilnehmer der Show.", + "Show Out of Competition Participants:": "Nicht-Wettbewerbsteilnehmer anzeigen.", + "Show Practices:": "Übung anzeigen.", + "Show Virtuals:": "Virtuelle Spieler anzeigen.", + "Show Ghosts:": "Ghost Player anzeigen.", + "Text:": "Text.", + "Rewrite Examples:": "Rewrite Sample.", + "Add images:": "Bild hinzufügen.", + "Do not use:": "Nicht verwendet.", + "Problem short name:": "Titelabkürzung.", + "Source problem:": "Quelle: Ausgabe.", + "Problem name \\(English\\):": "Titel (auf Englisch).", + "Input file name:": "Dateiname eingeben.", + "Output file name:": "Name der Ausgabedatei.", + "Time Limit:": "Zeitlimit.", + "Memory Limit:": "Speicherbegrenzungen.", + "Output only:": "Nur Ausgabe." + } + }, + ".ask-question-link": { + "class": [ + ".ask-question-link" + ], + "description": "", + "isStrict": false, + "rules": { + "Ask a question": "Stellen Sie eine Frage." + } + }, + "add-announcement-link": { + "class": [ + ".add-announcement-link" + ], + "description": "", + "isStrict": false, + "rules": { + "Add announcement": "Ankündigung hinzufügen" + } + }, + "demo": { + "class": [ + "Class" + ], + "description": "", + "isStrict": false, + "rules": { + "SourceText": "TargetText" + } + } + }, + "InputValueReplacements": { + "InputSubmit": { + "class": [ + "input[type='submit']" + ], + "description": "Chinesisch einreichen", + "isStrict": false, + "rules": { + "Register for virtual participation": "Registrieren Sie sich für virtuelle Einträge", + "Register for practice": "Anmelden, um mit dem Üben zu beginnen", + "Apply": "Gerät", + "Register": "Ihren Namen eingeben", + "Login": "sich anmelden", + "Run": "in Bewegung sein", + "Start virtual contest": "Virtuellen Eintrag starten", + "Manage invitations": "Management-Einladungen", + "Disable manager mode": "Vorübergehende Schließung des Verwaltungsmodus", + "Enable manager mode": "Verwaltungsmodus öffnen", + "Clone Contest": "Klonwettbewerb", + "Submit": "einreichen (einen Bericht usw.)", + "Save changes": "Einstellungen speichern", + "Filter": "Filtration", + "Find": "ausfindig machen.", + "Save": "(eine Datei etc.) speichern (Informatik)", + "Create Mashup Contest": "Erstellen Sie einen Mashup-Wettbewerb", + "Delete problem": "Löschen Sie die Frage", + "Restore problem": "Probleme bei der Wiederherstellung", + "Generate": "生成", + "Send": "发送" + } + }, + "InputButton": { + "class": [ + "input[type='button']" + ], + "description": "", + "isStrict": false, + "rules": { + "Reset": "Reprovision", + "Delete contest": "Spiel löschen", + "Preview": "Vorschauen" + } + } + } +} \ No newline at end of file diff --git a/i18n/en/README.md b/i18n/en/README.md new file mode 100644 index 000000000..b4f663148 --- /dev/null +++ b/i18n/en/README.md @@ -0,0 +1 @@ +# OJBetter diff --git a/i18n/en/docs/AtCoderBetter.html b/i18n/en/docs/AtCoderBetter.html new file mode 100644 index 000000000..528d2410f --- /dev/null +++ b/i18n/en/docs/AtCoderBetter.html @@ -0,0 +1,242 @@ +

AtCoder Better!🎈

+

AtCoder interface localization, dark mode support, title translation, markdown view, one-click title copy, jump to Logu

+

functionality

+

The tip:script provides configuration items for some of its features, and you can open the settings panel by clicking the AtCoderBetter Settings button at in the upper right corner of the entire page of.

+

Chinese characterization of the interface

+

The main elements of the site will be Chinese, if there is a mistake or poor translation somewhere, welcome to feedback.

+

You can choose to turn on or off localization in the AtCoderBetter Settings panel in the upper right corner.

+

Translation of title

+

Add a translation button in the upper right corner of the title, blog, comments, etc., and you can translate to Chinese with one click, while making sure not to break the Latex formula!

+

You can choose which translation service you want to use in the AtCoderBetter Settings panel in the upper right corner (default is Deepl)

+

tip:Right click on thetranslatebutton to quickly switch between translation services.

+

The following translation interfaces are available:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  + KEY + Quality of translationdependabilityMaximum number of characters + take a period of (x amount of time)
Deepl translation (✨ recommended)unnecessary⭐️⭐️⭐️⭐️Some areas may be inaccessible or slow5000plain-spoken
Xunfei Hear Translateunnecessary⭐️⭐️⭐️Usually reliable2000plain-spoken
Youtube translationunnecessary⭐️⭐️Usually reliable600plain-spoken
Google Translateunnecessary⭐️⭐️⭐️Requires current internet access to Google5000plain-spoken
Glorious Cloud Translationunnecessary⭐️⭐️Usually reliable5000plain-spoken
Translation using ChatGPT (✨ recommended)Requires API Key⭐️⭐️⭐️⭐️⭐️Depends on the quality of the service provider and how crowded OpenAI isDepends on the modelslower
+

Other Functions

+

Some features can be changed/switched in the AtCoderBetter Settings panel in the upper right corner

+ +

compatibility

+

browser (software)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 be in favor ofminimum version
Chromebe in favor of96
Egdebe in favor of96
Domestic Chromium CaseBasic compatibility, but unexpected errors may occurChromium kernel version ≥96
FireFox (including mobile)be in favor of103
Safariunsupported\
+ +

Script Manager

+

Tested only with Tampermonkey script manager, compatibility with Greasemonkey, Violentmonkey, ScriptCat, etc. is not guaranteed!

+

Other plug-ins

+

There is no compatibility problem with mainstream CF-related plug-ins, if you encounter compatibility problems, welcome to feedback.

+

common problems

+ + + +

Contribute code

+

Feel free to contribute code, go to Github repository Create a PR

+

(express) thanks

+ +

Thank you guys, 0rz.

\ No newline at end of file diff --git a/i18n/en/docs/CodeforcesBetter.html b/i18n/en/docs/CodeforcesBetter.html new file mode 100644 index 000000000..100ce99d3 --- /dev/null +++ b/i18n/en/docs/CodeforcesBetter.html @@ -0,0 +1,475 @@ +

Codeforces Better!🎈

+

Codeforces interface Chinese, dark mode support, title translation, markdown view, one-click title copying, jumping to Logu, comment differentiation page, ClistRating score display, list recoloring

+
+
+
+

Write ahead:Feedback Notes

+
+

If you encounter problems, please read the #FAQ instructions below first.If you encounter problems, please read the #FAQ instructions below first.If this is not resolved, please go to the feedback page or Github issues to give feedback.If you encounter problems, please read the #FAQ instructions below first.If you encounter problems, please read the #FAQ instructions below first.If this is not resolved, please go to the feedback page or Github issues to give feedback.If you encounter problems, please read the #FAQ instructions below first.If this is not resolved, please go to the feedback page or Github issues to give feedback.

+

Please provide a detailed description of the problem, e.g.:link, screenshots, desired results, actual results, reproduction……

+

Friendly discussions as well as feature suggestions are also welcome, but it is not the author's obligation to maintain the scripts and provide help, thank you for your understanding.

+
+
+

functionality

+Tip Some of the features of the:script provide configuration items, you can open the settings panel by clicking on theCodeforcesBetter Settings button at
in the upper right corner of the entire page of . +

Chinese characterization of the interface

+

Sinicize the main elements of the site into Chinese (can be turned off)

+

Translation of title

+

Add a translation button in the upper right corner of the title, blog, comments, etc., and you can translate to Chinese with one click, while making sure not to break the Latex formula!

+

On this basis, the script provides three translation modes:

+ +

You can select the translation service you want to use (DeepL by default) as well as switch the working mode of the script in the CodeforcesBetter settings panel in the upper right corner.

+
+
+

Note:The segmentation/selection mode creates the following problems:

+

- Making it impossible for the translation interface to know the contextual information of the entire text can reduce the quality of the translation.

+

- There will be parts that will not be translated/cannot be selected because they are not<p/>or<i/>elements

+
+
+

The script provides the following translation interfaces to choose from:(default is DeepL)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  + KEY + Quality of translationdependabilityMaximum number of characters + take a period of (x amount of time)
DeepL translation (✨ recommended)unnecessary⭐️⭐️⭐️⭐️Some areas may be inaccessible or slow5000plain-spoken
Xunfei Hear Translateunnecessary⭐️⭐️⭐️Usually reliable2000plain-spoken
Youtube translationunnecessary⭐️⭐️Usually reliable600plain-spoken
Google Translateunnecessary⭐️⭐️⭐️Requires current internet access to Google5000plain-spoken
Glorious Cloud Translationunnecessary⭐️⭐️Usually reliable5000plain-spoken
Translation using ChatGPT (✨ recommended)Requires API Key⭐️⭐️⭐️⭐️⭐️Depends on the quality of the service provider and how crowded OpenAI isDepends on the modelslower
+Tip:Right click on theTranslatebutton to quickly switch translation services! +

automatic translation

+

When "Automatic translation" is enabled, short texts in the.ttypography, .comments area are automatically translated when they enter theviewing areain the browser window.

+

(you can specify how many characters or less is a short text in the settings panel)

+

In addition, when "Quick Translation in Comment Area" is turned on, for short texts in the comment area, automatic translation will randomly select one of the candidate services and carry out quick translation in parallel.

+

Historical translation recovery

+

When "Auto restore historical translations" is enabled, the translation information on thetitle pagewill be automatically saved to the translateData table in the CFBetterDB database of indexDB locally in the browser.

+

Refresh / automatically restores translation information the next time you enter the page.

+

ClistRating

+

Get Rating score data for clist.by website and display it!

+

Note that the credentials needed to work on different pages vary:

+ +The script does not get a specific cookie for clist.by, the cookie information is automatically carried by the browser when it sends the request, and the validity of the cookie is determined by the status code returned by the attempted request. +

Editor and LSP

+

Add editor to title page

+

Add the monaco code editor to the bottom of the title page (enabled by default)

+

Support code auto-save, code fast submission, online test run, LSP, static complementary enhancement and other features

+

Code autosave

+

The code is automatically saved in the editorCode table of IndexedDB's CFBetterDB database local to the browser.

+

Online Test Runs

+

You can run the samples in the title with one click, and you can also customize the test samples, which will be automatically saved in the editorCode table in the CFBetterDB database.

+

The script provides several online code running services:codeforces official, wandbox (third party), rextester (third party), which support different parameter options.

+
+
+

Note:

+
    +
  • +

    Obviously, all online code running services are unable to test interactive topics

    +
  • +
  • +

    Third-party online code running services may run in environments different from codeforces, and code that runs or turns out correctly in a third-party online code running service may not necessarily do so in codeforces.

    +
  • +
  • +

    There is no guarantee that your code will not be leaked in some way by a third-party online code running service

    +
  • +
  • +

    In addition, for wider applicability, the compiler options on the page do not strictly correspond to the actual compiler options of the third-party online code running service, so it is quite possible to get unexpected results.

    +
  • +
+
+
+

LSP

+

After configuring the LSP, you can provide the following functions for the editor (C++ and Python languages only):

+ +

Of course, it does not support local compilation, does not support breakpoint debugging, does not support multiple files, etc.……, the performance is not as good as the local specialized IDEs

+

In short, this feature is not very meaningful or useful, so if you're interested, check out the FAQ section below to learn more!

+

Static Completion Enhancement

+

You can add customized static code completion rules to the monaco editor in Settings Panel - Monaco - Static Completion Enhancements - Customization

+

Completion rules are in JSON format, here is an example (in monaco format).

+
+  {
+    "suggestions": [
+        {
+            "label": "hello world",
+            "kind": 15,
+            "documentation": "The is a hello world snippet",
+            "insertText": "hello world"
+        },
+        // other suggestions... ]
+}
+
+

You can use almost all the properties in CompletionItem , (note: don't fill in the range property, the script will automatically calculate and add it)

+

Other Functions

+ +

compatibility

+

browser (software)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 be in favor ofminimum version
Chromebe in favor of96
Edgebe in favor of96
Domestic Chromium CaseBasic compatibility, but unexpected errors may occurChromium kernel version ≥96
FireFox (including mobile)be in favor of103
Safariunsupported\
+

Script Manager

+

Tested only with Tampermonkey script manager, compatibility with Greasemonkey, Violentmonkey, ScriptCat, etc. is not guaranteed.

+

Other plug-ins

+

There are no compatibility issues with mainstream CF-related plug-ins, so if you encounter compatibility issues, feedback is welcome.

+

mirror (computing)

+

Support official light site m1 / m2 / m3 , official mirror site https://mirror.codeforces.com/, unofficial mirror site https://codeforc.es

+

In addition, it is theoretically compatible with any other mirrors, you just need to add another line of comments // @match your mirror URL and that's it!

+

common problems

+
+
Q. How do I start? +
+ A. You need to install Tampermonkey before installing the script +
+
+
+
Q. Update error? +
+

A. Due to the Greasy Fork platform, when a new version is first released, there may be instances where the actual update/installation is of a previous version.

+

Usually you just need to wait a few minutes and then head over to update/install again.

+

You can also move your mouse over the red question mark in the script's Update Alert box and click the "Don't update yet" button at the bottom of the pop-up message.

+
+
+
+
Q. It keeps showing loading? +
+ A. Please turn on the "Compatibility Options - Do not wait for page resources to load" option in the Settings panel. +
+
+
+
Q. Using DeepL translation error Too many requests? +
+

A. This is usually caused by the fact that you have translated frequently in a short period of time or have translated more than 5,000 characters of text at one time. DeepL has a limit on the number of words and frequency of translations.

+ It's temporary. It'll go back to normal after a while. +
+
+
+
Q. Using DeepL to translate gives an undefind error or keeps showing translation in progress? +
+ A. This is usually because the network you are using does not have proper access to www.deepl.com +
+
+
+
Q. Some formulas are shown as {xx} / [xx] / [xx] in the translation result? +
+ A. When using the common translation interface (DeepL/Youdao/google) for translation, limited by the way the script is implemented, there may be{xx}/[xx]/[xx] +
+
+
+

Script's handling of formulas

+

In order to protect LaTeX formulas from being corrupted during translation, the script first takes out all LaTeX formulas and uses the substitution character{xx}/[xx]/[xx] to place them.

+

Since there is a high probability that these substitutions will not be corrupted during translation, it is possible to restore back to the LaTeX formulas based on the substitutions after translation.

+

This implementation works as expected provided that the substitution character is not broken, which is not a problem in the vast majority of cases.

+

But sometimes the translation service breaks substitutions, e.g. [23] becomes [23 / 23] / [23]/ [23 】/ 23 】, in which case the script will be restored by certain regular rules so that it still works as expected.

+

However, if the translation service also destroys more content and creates ambiguity, for example, if the translation service turns [2] 313 into [2312], which cannot be restored.

+

For each translation service, different substitutions have different probabilities of being corrupted themselves, and you can select different substitutions in the settings panel in the upper right corner of the

+

After testing, {} usually performs better, so this is the default substitution used by the scripts

+
+
+
+
+
+

Tip:

+

This problem does not exist when translating with ChatGPT, as ChatGPT can be told directly to "keep the LaTeX formulas in it untranslated" via a prompt word.

+

A smart ChatGPT can comply with this very well, and this is the recommended way for scripts to be translated.

+
+
+
+
+
+
Q. How do I use ChatGPT translations? +
+ A. If you have direct access to OpenAI's interface and have an account, great, you just need to check "Use ChatGPT Translation (API)" and click the "Add" button below to create a new configuration and fill out the in the "Add" button below and fill in the +

In addition, you can also purchase api proxy service to use ChatGPT, the following table collects some api service providers, you can choose to use +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 official websiteAcquisition method
API2Dhttps://api2d.com/official website
CloseAIhttps://console.closeai-asia.com/official website
OhMyGPThttps://aigptx.top/official website
OpenAI-SBhttps://openai-sb.com/Telegram Bot
API2GPThttps://www.api2gpt.com/official website
AI Proxyhttps://aiproxy.io/official website
+
+
+
+

Disclaimer:

+

The author only collects and shares for the purpose of sharing, does not receive any revenue, and does not guarantee the stability of the above platforms, any behavior of the platforms have nothing to do with the author.

+

It is recommended to top up in small amounts and use it all up, these service providers may run out of business

+
+
+

If you are using a service provided by an api proxy service provider, the KEY in the configuration should be the key provided by the api proxy service provider.

+

In addition, you need to additionally fill in the Proxy API in the configuration, the

+

The Proxy API needs to be filled out in full, here is an example of CloseAI which provides the API + Base:https://api.closeai-proxy.xyz

+

Then the Proxy API should be followed by https://api.closeai-proxy.xyz/v1/chat/completions, the

+ Note:Since you specified a custom API, Tampermonkey will warn you about cross-domain requests, so please click authorize yourself! +
+ Note:If you want to use Azure OpenAI, you can choose to deployazure-openai-proxyon your own to make the switch since its interface parameters are different from the official OpenAI ones +
+
+
+
Q. What is LSP? +
+ A. LSP (Language Server Protocol)is a protocol specification initiated by Microsoft for communication between editors and language servers. +

It separates the code completion, diagnostics, suggestions, documentation and even project management functions that traditional IDEs need to implement from the editor, and uses independent services to accomplish these functions.

+

The editor only needs to communicate with the server according to the protocol specification, which greatly reduces the workload and makes it easy for the editor to support a variety of programming languages

+

At present, the ecology of LSP has been gradually improved, the mainstream editors have supported LSP or have the corresponding plug-ins, such as VSCode, Vim, Emacs, etc. ...

+

However, the major commercial IDE vendors have little interest in this, basically the existing LSP Server are maintained by the open source community, so it is still not as good as professional IDEs and a variety of professional plug-ins.

+
+
+
+
Q. How do I use the LSP? +
+ A. Just two steps: +

The:script provides support for the following two implementations of LSP Server in C++ and Python, which you will need to install as needed:

+ + + + + + + + + + + + + + + + + + + + +
multilingualismLSP ServerInstallation method (under Windows)
C++clangdDownload clangd from clangd release and add the path of clangd to the path of system environment variable, e.g. C:\clangd_16.0.2\bin\
PythonpylspExecute the command: + pip install "python-lsp-server[all]", and it will automatically add the environment variable
+

II:You will also need to download and unzip OJBetter_Bridge from GitHub release or Blue Rhythm Cloud (password:aaaa) , which bridges the communication between scripts and LSP Server.

+

Place the unzipped folder in the root directory of your C drive or any other location you like (note:If you place it in another location, you need to change the "Work Path" in the Settings panel to your actual location).

+

Then you can run OJBetter_Bridge, which provides a GUI version and a terminal version, the recommended use of the GUI version under Windows, run server_gui.exe directly.

+

OJBetter_Bridge automatically checks if the commands clangd and pylsp are valid at startup and gives a prompt.

+ Tip::In the interface of server_gui.exe you can set it to boot itself. +

After completing the above steps, you can turn on "Use LSP" in the settings panel and use it.

+
+
+
+ Learn more? +
+ For clangd, two configuration files are stored in the cpp_workspace folder .clangd,.clang-format +

They define clangd's configuration and code formatting style, which you can edit yourself.

+
+
+
+
+
+
+
+
Q. Why is clangd formatting not working? +
+ A. This is because the LSP working path you filled in the settings panel is not correct +
+
+
+
Q. Why doesn't clangd recognize my <bits/stdc++.h> headers? +
+ A. This is because <bits/stdc++.h> is not a standard header file, so clangd doesn't support it by default, you need to tell clang where to find this non-standard header file by modifying the compiler parameter in the .clangd file in the cpp_workspace + of OJBetter_Bridge (and of course the use of a universal header is not recommended) +
+
+
+
Q. Can I use local JSON files for static completion enhancement? +
+ A. Due to browser security restrictions, you cannot directly access your local JSON file in the browser using a URL such as file:///xxx . +

But you can do it with OJBetter_Bridge, it's very simple, you just need to place the JSON file xxx.json into the /mycomplet folder of OJBetter_Bridge

+

Launching OJBetter_Bridge will allow you to create a new configuration in the Settings panel with a JSON URL of:http://127.0.0.1:2323/mycomplet/xxx.json.

+
+
+

Try it?

+

Start OJBetter_Bridge, initially the /mycomplet folder comes with a sample JSON file:template.json, so you can add a configuration, fill in + http://127.0.0.1:2323/mycomplet/template.json and save!

+

Now type hello in the editor and you will see two complementary entries:hello world, hello world2

+
+
+
+
+
+

Contribute code

+

Feel free to contribute code, go to Github repository Create a PR

+

Other OJ?

+

Due to the author's limited efforts, he doesn't maintain too many similar scripts, so if you want to port this script for your favorite OJ, you are more than welcome to do so, you just need to comply with the GPL-3.0 license license!

+

(express) thanks

+ +

Thank you guys, 0rz.

\ No newline at end of file diff --git a/i18n/en/resources/subs/Codeforces-subs.json b/i18n/en/resources/subs/Codeforces-subs.json new file mode 100644 index 000000000..9b3abe4bf --- /dev/null +++ b/i18n/en/resources/subs/Codeforces-subs.json @@ -0,0 +1,859 @@ +{ + "version": "1.0.0", + "commonReplacements": { + ".datatable": { + "class": [ + ".datatable" + ], + "description": "", + "isStrict": false, + "rules": { + "Virtual participation": "Participate in the virtual reenactment tournament", + "Enter": "go into", + "Current standings": "Current List", + "Final standings": "Final List", + "Preliminary results": "Preliminary results", + "open hacking:": "Open Hacking", + "School/University/City/Region Championship": "School/university/city/regional competitions", + "Official School Contest": "Official school competitions", + "Training Contest": "training match", + "Training Camp Contest": "Training Camp Competition", + "Official ICPC Contest": "ICPC Official Competition", + "Official International Personal Contest": "Official International Individual Competition", + "China": "sino", + "Statements": "Title Description", + "in Chinese": "Chinese", + "Trainings": "train", + "Prepared by": "author", + "Current or upcoming contests": "Current or upcoming competitions", + "Rating: users participated in recent 6 months": "Rating:Users who have participated in the last 6 months", + "Past contests": "Past matches", + "Exclusions": "rule out", + "Before start": "We've got a few minutes to go before the start of the race.", + "Before registration": "There is still time left before registration opens", + "Until closing ": "There is still time to close the registration", + "Before extra registration": "Additional enrollment has not yet begun", + "Register »": "Enrollment \"", + "Registration completed": "Enrolled", + "Registration closed": "Registration is now closed", + "Problems\n": "questionnaire", + "My Submissions": "My Submission", + "Standings": "list of names", + "Questions about problems": "Questions on issues", + "Contest status": "competition status", + "Invited users": "Invited users", + "Invitation links": "Invitation Links", + "API keys": "API key" + } + }, + ".menu-list.main-menu-list": { + "class": [ + ".menu-list.main-menu-list" + ], + "description": "", + "isStrict": false, + "rules": { + "Home": "homepage", + "Top": "in vogue", + "Catalog": "Guide Catalog", + "Contests": "competition (sports etc)", + "Gym": "training camp", + "Problemset": "questionnaire", + "Groups": "organizations", + "Rating": "Rating Rankings", + "Edu": "cultivate", + "Calendar": "calendar", + "ICPC Challenge": "ICPC Challenge", + "Help": "hand" + } + }, + ".nav-links": { + "class": [ + ".nav-links" + ], + "description": "", + "isStrict": false, + "rules": { + "Settings": "set up", + "Blog": "blog (loanword)", + "Teams": "cadre", + "Submissions": "submit (a report etc)", + "Favourites": "favorite", + "Problemsetting": "Problem Setting", + "Talks": "private letter", + "Contests": "competition (sports etc)" + } + }, + ".contest-state-phase": { + "class": [ + ".contest-state-phase" + ], + "description": "", + "isStrict": false, + "rules": { + "Before contest": "upcoming competition", + "Contest is running": "Match in progress" + } + }, + ".notice": { + "class": [ + ".notice" + ], + "description": "", + "isStrict": false, + "rules": { + "has extra registration": "There are additional enrollment periods", + "If you are late to register in 5 minutes before the start, you can register later during the extra registration. Extra registration opens 10 minutes after the contest starts and lasts 25 minutes.": "If you have not signed up by 5 minutes before the start of the race, you can sign up later during the extra sign up period. Extra registration will open 10 minutes after the start of the race and last for 25 minutes.", + "in timezone ([^)]*)": "$1 Time zone", + "Contest will be available for virtual participation when over. Leave this field blank to allow virtual participation at any time": "Virtual entries will be allowed after the contest has ended. Leave this field blank to allow virtual entries at any time", + "Contest duration in minutes": "Duration of the match (minutes)", + "or choose": "or select", + "Standings freeze period in minutes": "List Freeze Time (minutes)", + "Time when final results are available": "Time available for final results", + "Is it allowed to solve contest problems unofficially after the end": "Whether unofficial resolution of match issues is allowed after the match is over", + "Is it allowed to run contest as virtual after the end": "Whether virtual entries are allowed after the contest is over", + "Is it allowed participate in contest out of competition": "Whether non-competitive entries are allowed", + "Are participants allowed to register for the contest themselves": "Whether participants are allowed to self-enroll", + "Can non-registered users and anonyms view contest standings, problems and other statistics": "Whether to allow unregistered and anonymous users to view contest standings, questions and other statistics", + "If unchecked they will view only personal status": "If unchecked, they will only be able to view individual statuses", + "To manage allowed program languages": "Managing allowed programming languages", + "The system will automatically adjust time limits for some languages. Recommended for use only for educational purpose.": "The system will automatically adjust the time limit for certain languages. Recommended for educational purposes only.", + "Check it if you want to allow contestants view statements": "Check this box if you would like to allow participants to view the description of the question.", + "Check it if contestants can view standings": "Check this box if you would like to allow participants to view the leaderboards", + "Where the contest was held originally": "Location where the competition was originally held", + "Official contest site URL": "Official Contest Website URL", + "Enter a name for your new API key. It should describe what this key is used for.": "Enter a name for your new API key. It should describe what this key will be used for.", + "Enter your account password to confirm access. If you do not have password, logout and use password recovery feature.": "Enter your account password to confirm access. If you do not have a password, log out and use the password recovery feature." + } + }, + ".propertyLinks": { + "class": [ + ".propertyLinks" + ], + "description": "", + "isStrict": false, + "rules": { + "Contribution": "dedicate" + } + }, + ".contests-table": { + "class": [ + ".contests-table" + ], + "description": "", + "isStrict": false, + "rules": { + "Contest history": "Competition History" + } + }, + ".roundbox.sidebox.borderTopRound ": { + "class": [ + ".roundbox.sidebox.borderTopRound " + ], + "description": "", + "isStrict": false, + "rules": { + "Register now": "Enroll Now", + "No tag edit access": "No tag editing privileges", + "Problem([\\s]*)$": "问题", + "Verdict": "status of adjudication", + "Language:": "Languages.", + "Participant": "contestants", + "Choose file:": "Select file." + } + }, + ".icon-eye-close.icon-large": { + "class": [ + ".icon-eye-close.icon-large" + ], + "description": "", + "isStrict": false, + "rules": { + "Add to exclusions": "Add to exclusion list" + } + }, + "null": { + "class": [ + null + ], + "description": "", + "isStrict": false, + "rules": { + "Add to exclusions for gym contests filter": "Adding Exclusions to the Boot Camp Filter" + } + }, + ".roundbox.sidebox.sidebar-menu.borderTopRound": { + "class": [ + ".roundbox.sidebox.sidebar-menu.borderTopRound" + ], + "description": "", + "isStrict": false, + "rules": { + "Announcement": "bulletin", + "Statements": "Statistical reports", + "Tutorial": "notes" + } + }, + ".second-level-menu": { + "class": [ + ".second-level-menu" + ], + "description": "", + "isStrict": false, + "rules": { + "Problems": "concern", + "Submit Code": "Submit Code", + "My Submissions": "My Submission", + "Status": "state of affairs", + "Standings": "list of names", + "Adm.": "managerial", + "Edit": "compiler", + "Custom Invocation": "Custom Debugging", + "Common standings": "All Rankings", + "Friends standings": "Friends only.", + "Submit": "submit (a report etc)", + "Hacks": "hacker (computing) (loanword)", + "Room": "cubicles", + "Custom test": "Customized Testing", + "Blog": "blog (loanword)", + "Teams": "cadre", + "Submissions": "Submission of records", + "Groups": "organizations", + "Rating": "grading", + "Friends rating": "Friend rating", + "Favourites": "favorite", + "Contests": "competition (sports etc)", + "Magic": "magical", + "Handle": "username", + "Members": "members", + "问题etting": "Participation in the preparation of issues", + "Streams": "live broadcast (not recorded)", + "Gym": "training camp", + "Mashups": "mix and match (of clothing etc)", + "Posts": "card", + "Comments": "return (to a previous condition)", + "Main": "staple", + "Settings": "set up", + "Lists": "listings", + "General": "fundamental", + "Sidebar": "a side-bar (in software)", + "Social": "social security (pensions, medical insurance)", + "Address": "address", + "Wallets": "purses" + } + }, + ".topic-toggle-collapse": { + "class": [ + ".topic-toggle-collapse" + ], + "description": "", + "isStrict": false, + "rules": { + "Expand": "commencement" + } + }, + ".topic-read-more": { + "class": [ + ".topic-read-more" + ], + "description": "", + "isStrict": false, + "rules": { + "Full text and comments": "Read more/comments" + } + }, + ".toggleEditorCheckboxLabel": { + "class": [ + ".toggleEditorCheckboxLabel" + ], + "description": "", + "isStrict": false, + "rules": { + "Switch off editor": "Turn off editor syntax highlighting" + } + }, + ".submit": { + "class": [ + ".submit" + ], + "description": "", + "isStrict": false, + "rules": { + "Registration for the contest": "Competition Registration" + } + }, + "._FilterByTagsFrame_difficulty": { + "class": [ + "._FilterByTagsFrame_difficulty" + ], + "description": "", + "isStrict": false, + "rules": { + "Difficulty:": "Difficulty." + } + }, + "._FilterByTagsFrame_addTagLink": { + "class": [ + "._FilterByTagsFrame_addTagLink" + ], + "description": "", + "isStrict": false, + "rules": { + "Add tag": "Add Tags" + } + }, + ".alert": { + "class": [ + ".alert" + ], + "description": "", + "isStrict": false, + "rules": { + "Rating changes for last rounds are temporarily rolled back. They will be returned soon.": "The rating changes from the previous round have been temporarily rolled back. They will be restored shortly.", + "Reminder: in case of any technical issues, you can use the lightweight website": "Reminder:If any technical issues arise, you can use the lightweight site", + "Please subscribe to the official Codeforces channel in Telegram via the link ": "Please subscribe to Codeforces' official Telegram channel via the link!" + } + }, + ".lang-chooser": { + "class": [ + ".lang-chooser" + ], + "description": "", + "isStrict": false, + "rules": { + "Enter": "log in", + "Register": "enrollment", + "Contest rating": "Test rating", + "Logout": "Log out" + } + }, + ".userbox": { + "class": [ + ".userbox" + ], + "description": "", + "isStrict": false, + "rules": { + "Change photo": "Replacement of pictures", + "Contest rating": "Racing", + "Contribution": "dedicate", + "My friends": "My best friend.", + "Change settings": "Change settings", + "Last visit": "last access", + "not visible": "不可见的", + "Registered": "registered in", + "Blog entries": "Blog Entries", + "comments": "commentaries", + "Write new entry": "Preparation of new entries", + "View my talks": "View my private messages", + "Talks": "private letter", + "Send message": "send a message" + } + }, + "#vote-reset-filterDifficultyLowerBorder": { + "class": [ + "#vote-reset-filterDifficultyLowerBorder" + ], + "description": "", + "isStrict": false, + "rules": { + "Reset": "reprovision" + } + }, + "#vote-reset-filterDifficultyUpperBorder": { + "class": [ + "#vote-reset-filterDifficultyUpperBorder" + ], + "description": "", + "isStrict": false, + "rules": { + "Reset": "reprovision" + } + }, + ".alert.alert-info": { + "class": [ + ".alert.alert-info" + ], + "description": "", + "isStrict": false, + "rules": { + "The problem statement has recently been changed.": "The title description has recently been changed.", + "View the changes.": "View Changes" + } + }, + ".enterPage": { + "class": [ + ".enterPage" + ], + "description": "", + "isStrict": false, + "rules": { + "Fill in the form to login into Codeforces.": "Fill out the form to log in to Codeforces.", + "You can use": "You can also use the", + "as an alternative way to enter.": "log in" + } + }, + ".notice.small": { + "class": [ + ".notice.small" + ], + "description": "", + "isStrict": false, + "rules": { + "\\* To view the complete list, click ": "* :: To see the full list, click" + } + }, + ".setting-name": { + "class": [ + ".setting-name" + ], + "description": "", + "isStrict": false, + "rules": { + "Contest type:": "Type of competition:", + "Rated:": "Rated:", + "Tried:": "attempted", + "Substring:": "Keywords." + } + }, + ".by-form": { + "class": [ + ".by-form" + ], + "description": "", + "isStrict": false, + "rules": { + "Sort by:": "Sort by:", + "relevance": "(statistics) correlation", + "popularity": "short-lived enthusiasm", + "time": "timing" + } + }, + ".roundbox.borderTopRound": { + "class": [ + ".roundbox.borderTopRound" + ], + "description": "", + "isStrict": false, + "rules": { + "If you invite users to this contest, the contest will become visible to them regardless of its visibility. You can share the contest using the link:": "If you invite a user to participate in this contest, the contest will be visible to the user regardless of their visibility. You can share the contest using the following link:", + "Generate link and share it with other users": "Generate links and share them with other users", + "Show Log »": "Show Journal \"", + "Move all to practice »": "All moved to Practitioner \"", + "Remove All »": "Remove All \"", + "Add »": "Add \"", + "Set »": "Settings \"", + "Download Archive »": "Download Archive \"" + } + }, + ".caption.titled": { + "class": [ + ".caption.titled" + ], + "description": "Sidebar titled Chinese", + "isStrict": false, + "rules": { + "Pay attention": "take note of", + "Top rated": "Ratings Ranking", + "Top contributors": "Contributor ranking", + "Find user": "Find Users", + "Recent actions": "Latest News", + "Training filter": "Filtering and screening", + "Find training": "Search Contests/Questions", + "Virtual participation": "What is a virtual entry", + "Contest materials": "Competition-related information", + "Settings": "set up", + "Create Mashup Contest": "Create a mashup contest", + "Clone Contest to Mashup": "Clone Match to Combo Mashup", + "Invitations": "attend", + "Status filter": "Status Filter", + "Administration": "managerial", + "Submit": "submit (a report etc)", + "Practice": "practice", + "Problem tags": "Question tag", + "Filter Problems": "Filtering issues", + "Last unsolved": "Not resolved last time", + "Attention": "take note of", + "Past contests filter": "Past Match Screening", + "About Contest": "About the competition", + "Last submissions": "Submission History", + "Streams": "live broadcast (not recorded)", + "Coach rights": "Coaching Authority", + "Advices to fill address": "Suggestions for filling in the address", + "Hacks filter": "Hacker Filter", + "Score table": "rating scale", + "Contests": "competition (sports etc)", + "History": "Editorial History", + "Login into Codeforces": "Log in to Codeforces", + "Export the judgment log to DAT-file": "Export the judgment log as a DAT file", + "Contest managers": "Contest Administrator", + "Contest writers": "Competition writers", + "Spectator ranklists": "Audience Ranking List", + "Ghosts:": "ghost player", + "Export Submissions": "Export Submission", + "Register in Codeforces": "注册 Codeforces" + } + }, + "QuestionFilter1": { + "class": [ + "#gym-filter-form div label", + "#gym-filter-form div" + ], + "description": "Title Filter Option Handling", + "isStrict": false, + "rules": { + "Contest type:": "Contest Type.", + "ICPC region:": "ICPC regions.", + "Contest format:": "Competition format.", + "Order by:": "Sort by.", + "Secondary order by:": "Secondary ordering.", + "Hide, if participated:": "Hide the ones I've participated in.", + "Hide excluded gyms": "Hide excluded.", + "Season:": "Time frame (annual)", + "Duration, hours:": "Duration (hours).", + "Difficulty:": "Difficulty." + } + }, + "QuestionFilter2": { + "class": [ + ".setting-value select option", + ".setting-last-value select option" + ], + "description": "", + "isStrict": false, + "rules": { + "Official ACM-ICPC Contest": "ICPC Official Competition", + "Official School Contest": "Official School Competition", + "Opencup Contest": "Opencup Competition", + "School/University/City/Region Championship": "School/University/City/Region Championships", + "Training Camp Contest": "Training Camp Competition", + "Official International Personal Contest": "Official International Individual Competition", + "Training Contest": "training match", + "ID_ASC": "Creation time (ascending order)", + "ID_DESC": "Creation time (descending)", + "RATING_ASC": "Rating (ascending order)", + "RATING_DESC": "Rating (descending)", + "DIFFICULTY_ASC": "Difficulty (ascending order)", + "DIFFICULTY_DESC": "Difficulty (descending)", + "START_TIME_ASC": "Start time (ascending order)", + "START_TIME_DESC": "Start time (descending)", + "DURATION_ASC": "Duration (ascending)", + "DURATION_DESC": "Duration (descending)", + "POPULARITY_ASC": "Heat (ascending order)", + "POPULARITY_DESC": "Heat (descending order)", + "UPDATE_TIME_ASC": "Update time (ascending order)", + "UPDATE_TIME_DESC": "Update time (descending)" + } + }, + "CompetitionFilter": { + "class": [ + ".options li label", + ".CaptionCont span" + ], + "description": "Race Filter Options Chinese", + "isStrict": false, + "rules": { + "Educational": "instructive", + "Global": "the (whole) world", + "VK Cup": "VK Cup", + "Long Rounds": "long round (of negotiations)", + "April Fools": "April fool's day", + "Team Contests": "team competition", + "ICPC Scoring": "ICPC scoring", + "Doesn't matter": "----", + "Any": "possess", + "Yes$": "是", + "No$": "否", + "No submission(s)": "No submission", + "Have submission(s)": "Submitted", + "No solved problem(s)": "No problem solving", + "Have solved problem(s)": "Problem solving." + } + }, + "RightSidebox": { + "class": [ + ".sidebox div label" + ], + "description": "Right sidebox localization", + "isStrict": false, + "rules": { + "Show tags for unsolved problems": "Showing labels for unresolved issues", + "Hide solved problems": "Hide resolved issues" + } + }, + "FormField-name": { + "class": [ + "td.field-name label" + ], + "description": "", + "isStrict": false, + "rules": { + "Postal/zip code": "Postal/zip code", + "Country //(English//)": "Country (English)", + "State //(English//)": "State/Province (English)", + "City //(English//)": "Cities (English)", + "Address //(English//)": "Address (English)", + "Recipient //(English//)": "Recipient's name (English)", + "Country //(Native//)": "Country (local language)", + "State //(Native//)": "State/Province (native language)", + "City //(Native//)": "City (local language)", + "Address //(Native//)": "Address (local language)", + "Recipient //(Native//)": "Recipient's name (local language)", + "Phone": "telephones", + "TON Wallet:": "TON WALLET.", + "Secret Code:": "CAPTCHA.", + "Terms of agreement:": "Terms of Agreement.", + "Choose team:": "Select Team." + } + }, + "QuestionTag": { + "class": [ + "._FilterByTagsFrame_addTagLabel select option", + "._FilterByTagsFrame_tagBoxCaption", + ".notice", + ".tag-box" + ], + "description": "", + "isStrict": false, + "rules": { + "combine tags by OR": "Labels by logic or combination of my choices", + "combine-tags-by-or": "Combine my choice of tags by logic or (combine-tags-by-or)", + "2-sat": "Bipartite graph satisfiability problem (2-sat)", + "binary search": "Binary search", + "bitmasks": "Bitmasks", + "brute force": "Brute force enumeration", + "chinese remainder theorem": "chinese remainder theorem", + "combinatorics": "Combinatorics", + "constructive algorithms": "Constructive algorithms (constructive algorithms)", + "data structures": "Data structures", + "dfs and similar": "Depth-first search and its variants (dfs and similar)", + "divide and conquer": "Divide and conquer algorithms", + "dp": "Dynamic programming (dp)", + "dsu": "Parallel Search Sets (dsu)", + "expression parsing": "Expression parsing", + "fft": "Fast Fourier Transform (fft)", + "flows": "Flows", + "games": "Game theory (games)", + "geometry": "Computational geometry", + "graph matchings": "Graph matchings", + "graphs": "Graph theory (graphs)", + "greedy": "Greedy", + "hashing": "Hash tables (hashing)", + "implementation": "Realization problems, programming techniques, simulation (implementation)", + "interactive": "Interactivity issues (interactive)", + "math": "Mathematics (math)", + "matrices": "Matrices", + "meet-in-the-middle": "meet-in-the-middle algorithm (meet-in-the-middle)", + "number theory": "Number theory", + "probabilities": "Probabilities", + "schedules": "Scheduling algorithms (schedules)", + "shortest paths": "Shortest path algorithms (shortest paths)", + "sortings": "Sorting algorithms (sortings)", + "string suffix structures": "String suffix structures", + "strings": "String handling (strings)", + "ternary search": "Ternary search", + "trees": "Tree structure (trees)", + "two pointers": "The two pointers algorithm (two pointers)" + } + }, + "SettingField-name": { + "class": [ + ".field-name" + ], + "description": "Fields in the Settings page", + "isStrict": false, + "rules": { + "Hide sidebar block \"Find user\"": "Hide the sidebar block \"Find Users\".", + "Hide sidebar block \"Current user\"": "Hide the sidebar block \"Current User\".", + "Hide sidebar block \"Recent аctions\"": "Hide the \"What's New\" block in the sidebar.", + "Hide sidebar block \"Favourite groups\"": "Hide the sidebar block \"Favorite Groups\".", + "Hide sidebar block \"Top contributors\"": "Hide the sidebar block \"Contributor Ranking\".", + "Hide sidebar block \"Top rated\"": "Hide the sidebar block \"Rating Rankings\".", + "Hide sidebar block \"Streams\"": "Hide the sidebar block \"Live\"", + "Old password": "old password", + "New password": "new password", + "Confirm new password": "Confirm new password", + "Contest email notification": "Competition Email Notification", + "Send email on new user talk": "Send an email when a new user has a conversation", + "Send email on new comment": "Send an email when a new comment is added", + "Hide contact information": "Hide contact information", + "Remember me by Gmail, Facebook and etc": "Remember me through Gmail, Facebook, etc.", + "Show tags for unsolved problems": "Showing labels for unresolved issues", + "Hide solved problems from problemset": "Hide resolved issues from the problem set", + "Hide low rated blogs": "Hide blogs with low ratings", + "Offer to publish great rating rises": "Provides an opportunity to demonstrate Rating's significant improvement", + "Enforce https": "Force HTTPS", + "Show private activity in the profile": "Show private activities in profile", + "Show diagnostics": "Displaying diagnostic information" + } + }, + "CloneContestFormField": { + "class": [ + ".field-name" + ], + "description": "Cloning contest to virtual mashup setup form", + "isStrict": false, + "rules": { + "Problem:": "Title.", + "Question": "问题", + "Language:": "Languages.", + "Source code:": "Source Code.", + "Or choose file:": "Or select the file.", + "Choose file:": "Select file.", + "Notice:": "Caution.", + "virtual participation:": "Virtual Participation.", + "Registration for the contest:": "Race Entry.", + "Take part:": "Participation.", + "as individual participant:": "As individual participants.", + "as a team member:": "As a team member.", + "Virtual start time:": "Virtual start time.", + "Complete problemset:": "Complete set of questions.", + "First name \\(English\\)": "Name (English)", + "Last name \\(English\\)": "Surname (English)", + "First name \\(Native\\)": "Name (local language)", + "Last name \\(Native\\)": "Surname (local language)", + "Birth date": "date of birth", + "Country": "nations", + "City": "municipalities", + "Organization": "organization", + "Handle/Email": "Account number/email address", + "Name": "name (of a thing)", + "Handle": "账号", + "Email": "邮箱", + "Confirm": "确认", + "Password": "cryptographic", + "New Rank": "New Rank", + "Training name \\(English\\):": "Name of training (in English).", + "Training name \\(Russian\\):": "Name of training (in Russian).", + "Contest format:": "Contest Format.", + "Start time:": "Starting time.", + "Duration:": "Duration.", + "Visibility:": "Visibility.", + "Attach parent contest\\?:": "Associated Sire Match?", + "Participation type:": "Type of participation.", + "Freeze period:": "Freeze period.", + "Unfreeze time:": "Thawing time: 1 hour", + "Is practice allowed\\?:": "Is practicing allowed?", + "Is virtual allowed\\?:": "Are virtual entries allowed?", + "Is out of competition allowed\\?:": "Are non-competitive entries allowed?", + "Is self-registration allowed\\?:": "Is self-registration allowed?", + "Can non-registered view the contest\\?:": "Can unregistered users view the contest?", + "Can participants view common status\\?:": "Can participants check the sharing status?", + "Contest testdata policy:": "Match Test Data Strategy.", + "Allow view other submissions to:": "Allow to view other submissions to.", + "Manage program languages:": "Managed Programming Languages.", + "Use time limits scaling policy\\?:": "Use a time-limited scaling policy?", + "Allow statements\\?:": "Allow to view the title description?", + "Allow standings\\?:": "Allow to view rankings?", + "Season:": "Season.", + "Contest type:": "Contest Type.", + "ICPC region:": "ICPC Regions.", + "Country:": "Country.", + "City:": "Cities.", + "Contest difficulty:": "Race Difficulty.", + "Website URL:": "Web Link.", + "Description \\(English\\):": "Description (English).", + "Description \\(Russian\\):": "Description (in Russian).", + "Registration confirmation text \\(English\\):": "Registration Confirmation Text (English).", + "Registration confirmation text \\(Russian\\):": "Registration confirmation text (in Russian).", + "Logo \\(English\\):": "Logo (English).", + "Logo \\(Russian\\):": "Logo (Russian).", + "End time:": "End time.", + "Name:": "Name.", + "Contest\\(s\\):": "Race(s).", + "Add contest:": "Add Contest.", + "Show Contestants:": "Show contestants.", + "Show Out of Competition Participants:": "Show non-competition participants.", + "Show Practices:": "Show Exercise.", + "Show Virtuals:": "Show Virtual Players.", + "Show Ghosts:": "Show Ghost Player.", + "Text:": "Text.", + "Rewrite Examples:": "Sample rewrite.", + "Add images:": "Add Image.", + "Do not use:": "Not used.", + "Problem short name:": "Title abbreviation.", + "Source problem:": "Source issue.", + "Problem name \\(English\\):": "Title (in English).", + "Input file name:": "Input filename.", + "Output file name:": "Output file name.", + "Time Limit:": "Time Limit.", + "Memory Limit:": "Memory limitations.", + "Output only:": "Output only." + } + }, + ".ask-question-link": { + "class": [ + ".ask-question-link" + ], + "description": "", + "isStrict": false, + "rules": { + "Ask a question": "Ask a question." + } + }, + "add-announcement-link": { + "class": [ + ".add-announcement-link" + ], + "description": "", + "isStrict": false, + "rules": { + "Add announcement": "Add Announcement" + } + }, + "demo": { + "class": [ + "Class" + ], + "description": "", + "isStrict": false, + "rules": { + "SourceText": "TargetText" + } + } + }, + "InputValueReplacements": { + "InputSubmit": { + "class": [ + "input[type='submit']" + ], + "description": "Submit Chinese", + "isStrict": false, + "rules": { + "Register for virtual participation": "Sign up for virtual entries", + "Register for practice": "Log in to start practicing", + "Apply": "appliance", + "Register": "enroll", + "Login": "log in", + "Run": "(of a computer) run", + "Start virtual contest": "Starting Virtual Entries", + "Manage invitations": "Management Invitation", + "Disable manager mode": "Temporary closure of the management mode", + "Enable manager mode": "Open management mode", + "Clone Contest": "cloning competition", + "Submit": "submit (a report etc)", + "Save changes": "Save Settings", + "Filter": "filtration", + "Find": "find", + "Save": "save (a file etc) (computing)", + "Create Mashup Contest": "Create a mashup contest", + "Delete problem": "Delete the question", + "Restore problem": "Recovery issues", + "Generate": "generating", + "Send": "发送" + } + }, + "InputButton": { + "class": [ + "input[type='button']" + ], + "description": "", + "isStrict": false, + "rules": { + "Reset": "reprovision", + "Delete contest": "Delete Match", + "Preview": "previews" + } + } + } +} \ No newline at end of file diff --git a/i18n/es/README.md b/i18n/es/README.md new file mode 100644 index 000000000..b4f663148 --- /dev/null +++ b/i18n/es/README.md @@ -0,0 +1 @@ +# OJBetter diff --git a/i18n/es/docs/AtCoderBetter.html b/i18n/es/docs/AtCoderBetter.html new file mode 100644 index 000000000..4fecda144 --- /dev/null +++ b/i18n/es/docs/AtCoderBetter.html @@ -0,0 +1,244 @@ +

AtCoder Better!🎈

+

Interfaz de AtCoder en chino, compatibilidad con modo oscuro, traducción de títulos, vista markdown, copia de títulos con un solo clic, salto a Logu

+

funcionalidad

+

El script de consejos:proporciona elementos de configuración para algunas de sus funciones, y puede abrir el panel de configuración haciendo clic en el botón AtCoderBetter Settings en en la esquina superior derecha de toda la página de.

+

Interfaz en chino

+

Los principales elementos del sitio se traducirán al chino, si hay algún error o mala traducción en alguna parte, bienvenidos sean los comentarios.

+

Puede optar por activar o desactivar la localización en el panel AtCoderBetter settings situado en la esquina superior derecha.

+

Traducción del título

+

Añada un botón de traducción en la esquina superior derecha de los títulos, blogs, comentarios, etc. para traducir al chino con un solo clic, ¡sin romper la fórmula Latex!

+

Puede elegir qué servicio de traducción desea utilizar en el panel AtCoderBetter Settings situado en la esquina superior derecha (por defecto es Deepl).

+

consejo:Haga clic con el botón derecho del ratón en el botóntranslatepara cambiar rápidamente de un servicio de traducción a otro.

+

Las siguientes interfaces de traducción están disponibles:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  + KEY + Calidad de la traducciónfiabilidadNúmero máximo de caracteres + tomar un periodo de (x cantidad de tiempo)
Traducción deepl (✨ recomendada)innecesario⭐️⭐️⭐️⭐️Algunas zonas pueden ser inaccesibles o lentas5000afilado (de cuchillos o de ingenio)
Xunfei Hear Traducirinnecesario⭐️⭐️⭐️Normalmente fiable2000afilado (de cuchillos o de ingenio)
Traducción de Youtubeinnecesario⭐️⭐️Normalmente fiable600afilado (de cuchillos o de ingenio)
Google Translateinnecesario⭐️⭐️⭐️Requiere acceso actual a Internet para Google5000afilado (de cuchillos o de ingenio)
Traducción de nubes de coloresinnecesario⭐️⭐️Normalmente fiable5000afilado (de cuchillos o de ingenio)
Traducción mediante ChatGPT (✨ recomendado)Clave API necesaria⭐️⭐️⭐️⭐️⭐️Depende de la calidad del proveedor de servicios y de lo concurrido que esté OpenAIDepende del modelomás lento
+

Otras funciones

+

Algunas características se pueden cambiar/conmutar en el panel AtCoderBetter Settings en la esquina superior derecha.

+ +

compatibilidad

+

navegador (software)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 adyuvanteversión mínima
Chromeadyuvante96
Egdeadyuvante96
Caso doméstico de cromoCompatibilidad básica, pero pueden producirse errores inesperadosVersión del núcleo de cromo ≥96
FireFox (incluido móvil)adyuvante103
Safarisin soporte\
+ +

Gestor de guiones

+

Probado sólo con el gestor de scripts Tampermonkey, ¡no se garantiza la compatibilidad con Greasemonkey, Violentmonkey, ScriptCat, etc.!

+

Otros complementos

+

No hay ningún problema de compatibilidad con los principales plug-ins relacionados con CF, si encuentra problemas de compatibilidad, bienvenidos sean sus comentarios.

+

problemas comunes

+ + + +

Aportar código

+

Siéntase libre de contribuir con código, vaya a repositorio Github Crear un PR

+

agradecido

+ +

Gracias, 0rz.

\ No newline at end of file diff --git a/i18n/es/docs/CodeforcesBetter.html b/i18n/es/docs/CodeforcesBetter.html new file mode 100644 index 000000000..1ce116e04 --- /dev/null +++ b/i18n/es/docs/CodeforcesBetter.html @@ -0,0 +1,477 @@ +

Codeforces Better!🎈

+

Interfaz Codeforces en chino, compatibilidad con modo oscuro, traducción de títulos, vista markdown, copia de títulos con un solo clic, salto a Logu, página de diferenciación de comentarios, visualización de la puntuación ClistRating, recoloreado de listas

+
+
+
+

Escriba antes:Notas de retroalimentación

+
+

如遇问题,请先阅读下方的 #常见问题 说明。如果没有得到解决,请前往 反馈页 或者 Github issues 反馈。如遇问题,请先阅读下方的 #常见问题 说明。如果没有得到解决,请前往 反馈页 或者 Github issues 反馈。如遇问题,请先阅读下方的 #常见问题 说明。如果没有得到解决,请前往 反馈页 或者 Github issues 反馈。Si tiene problemas, lea primero las instrucciones de #FAQ .Si esto no se resuelve, por favor vaya a la página de comentarios o Github issues para dar su opinión.

+

Por favor, proporcione una descripción detallada del problema, por ejemplo::enlace, capturas de pantalla, resultados deseados, resultados reales, reproducción……

+

Las discusiones amistosas y las sugerencias de características también son bienvenidas, pero no es obligación del autor mantener los scripts y proporcionar ayuda, gracias por su comprensión.

+
+
+

funcionalidad

+Consejo Algunas de las funciones del script:proporcionan elementos de configuración, puede abrir el panel de configuración haciendo clic en el botónCodeforcesBetter Settings en
en la esquina superior derecha de toda la página de . +

Interfaz en chino

+

Sinicizar los elementos principales del sitio web al chino (puede desactivarse)

+

Traducción del título

+

Añada un botón de traducción en la esquina superior derecha de los títulos, blogs, comentarios, etc. para traducir al chino con un solo clic, ¡sin romper la fórmula Latex!

+

Sobre esta base, el script ofrece tres modos de traducción:

+ +

Puede seleccionar el servicio de traducción que desea utilizar (DeepL por defecto) así como cambiar el modo de trabajo del script en el panel CodeforcesBetter settings situado en la esquina superior derecha.

+
+
+

Nota:El modo de segmentación/selección crea los siguientes problemas:

+

- Imposibilitar que la interfaz de traducción conozca la información contextual de todo el texto puede reducir la calidad de la traducción.

+

- Habrá partes del contenido que no se traducirán/no se podrán seleccionar porque no son elementos de<p/>o<i/>.

+
+
+

El script proporciona las siguientes interfaces de traducción a elegir:(por defecto es DeepL)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  + KEY + Calidad de la traducciónfiabilidadNúmero máximo de caracteres + tomar un periodo de (x cantidad de tiempo)
Traducción de DeepL (✨ recomendada)innecesario⭐️⭐️⭐️⭐️Algunas zonas pueden ser inaccesibles o lentas5000afilado (de cuchillos o de ingenio)
Xunfei Hear Traducirinnecesario⭐️⭐️⭐️Normalmente fiable2000afilado (de cuchillos o de ingenio)
Traducción de Youtubeinnecesario⭐️⭐️Normalmente fiable600afilado (de cuchillos o de ingenio)
Google Translateinnecesario⭐️⭐️⭐️Requiere acceso actual a Internet para Google5000afilado (de cuchillos o de ingenio)
Traducción de nubes de coloresinnecesario⭐️⭐️Normalmente fiable5000afilado (de cuchillos o de ingenio)
Traducción mediante ChatGPT (✨ recomendado)Clave API necesaria⭐️⭐️⭐️⭐️⭐️Depende de la calidad del proveedor de servicios y de lo concurrido que esté OpenAIDepende del modelomás lento
+Consejo:Haga clic con el botón derecho del ratón en el botónTraducirpara cambiar rápidamente de un servicio de traducción a otro. +

traducción automática

+

Cuando la opción "Traducción automática" está activada, los textos breves del área.ttypography, .comments se traducen automáticamente cuando entran en el área visiblede la ventana del navegador.

+

(Puede especificar cuántos caracteres o menos es un texto corto en el panel de ajustes)

+

Además, cuando la "Traducción rápida en el área de comentarios" está activada, para textos cortos en el área de comentarios, la traducción automática seleccionará aleatoriamente uno de los servicios candidatos y realizará la traducción rápida en paralelo.

+

Recuperación histórica de la traducción

+

Cuando la opción "Restaurar automáticamente las traducciones históricas" está activada, la información de traducción de la página de títulose guardará automáticamente en la tabla translateData de la base de datos CFBetterDB de indexDB localmente en el navegador.

+

Actualizar / restaura automáticamente las traducciones la próxima vez que entre en la página.

+

ClistRating

+

Obtenga los datos de puntuación de la página web clist.by y muéstrelos.

+

Tenga en cuenta que las credenciales necesarias para los diferentes trabajos de página varían:

+ +El script no obtiene una cookie específica para clist.by, la información de la cookie la lleva automáticamente el navegador cuando envía la solicitud, y la validez de la cookie la determina el código de estado devuelto por el intento de solicitud. +

Editor y LSP

+

Añadir editor a la portada

+

Añada el editor de código monaco en la parte inferior de la portada (activado por defecto).

+

Soporta autoguardado de código, envío rápido de código, ejecución de pruebas en línea, LSP, mejoras estáticas complementarias y otras características

+

Autoguardado de código

+

El código se guarda automáticamente en la tabla editorCode de la base de datos CFBetterDB de IndexedDB local del navegador.

+

Prueba de funcionamiento en línea

+

Puede ejecutar las muestras del título con un solo clic, y también puede personalizar las muestras de prueba, que se guardan automáticamente en la tabla editorCode de la base de datos CFBetterDB.

+

El script proporciona varios servicios de ejecución de código en línea:codeforces official, wandbox (3rd party), rextester (3rd party) que admiten diferentes opciones de parámetros.

+
+
+

Nota:

+
    +
  • +

    Obviamente, todos los servicios de ejecución de código en línea son incapaces de probar temas interactivos

    +
  • +
  • +

    Los servicios de ejecución de código en línea de terceros pueden ejecutarse en entornos diferentes a los de codeforces, y el código que funciona o resulta correcto en un servicio de ejecución de código en línea de terceros puede no hacerlo necesariamente en codeforces.

    +
  • +
  • +

    No hay garantía de que su código no sea filtrado de alguna manera por un servicio de ejecución de código en línea de terceros

    +
  • +
  • +

    Además, para una aplicación más amplia, las opciones del compilador de la página no se corresponden estrictamente con las opciones reales del compilador del servicio de ejecución de código en línea de terceros, por lo que es muy posible obtener resultados inesperados.

    +
  • +
+
+
+

LSP

+

Después de configurar el LSP, puede proporcionar las siguientes funciones para el editor (sólo lenguajes C++ y Python):

+ +

Por supuesto, no es compatible con la compilación local, la depuración de puntos de ruptura, los archivos múltiples, etc.……, el rendimiento no es tan bueno como el de los IDE especiales locales.

+

En resumen, esta función no tiene mucho sentido ni es muy útil, así que si le interesa, consulte la sección de preguntas frecuentes que aparece a continuación para obtener más información.

+

Mejora de la finalización estática

+

Puede añadir reglas personalizadas de finalización de código estático al editor monaco en Panel de configuración - Mónaco - Mejoras de finalización estática - Personalizado.

+

Las reglas de finalización están en formato JSON, aquí tiene un ejemplo (en formato monaco).

+
+  {
+    "suggestions": [
+        {
+            "label": "hello world",
+            "kind": 15,
+            "documentation": "The is a hello world snippet",
+            "insertText": "hello world"
+        },
+        // otras sugerencias... ]
+}
+
+

Puede utilizar casi todas las propiedades de CompletionItem , (nota: no rellene la propiedad de rango, el script calculará y añadirá automáticamente esa propiedad).

+

Otras funciones

+ +

compatibilidad

+

navegador (software)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 adyuvanteversión mínima
Chromeadyuvante96
Edgeadyuvante96
Caso doméstico de cromoCompatibilidad básica, pero pueden producirse errores inesperadosVersión del núcleo de cromo ≥96
FireFox (incluido móvil)adyuvante103
Safarisin soporte\
+

Gestor de guiones

+

Probado sólo con el gestor de scripts Tampermonkey, no se garantiza la compatibilidad con Greasemonkey, Violentmonkey, ScriptCat, etc.

+

Otros complementos

+

No hay problemas de compatibilidad con los principales plug-ins relacionados con CF, si encuentra problemas de compatibilidad, agradecemos sus comentarios.

+

espejo (informática)

+

Soporte sitio oficial ligero m1 / m2 / m3 , sitio oficial espejo https://mirror.codeforces.com/, sitio no oficial espejo https://codeforc.es

+

Además, es teóricamente compatible con cualquier otro mirror, sólo tiene que añadir otra línea de comentarios // @match your mirror URL ¡y ya está!

+

problemas comunes

+
+
P. ¿Cómo empiezo? +
+ A. Necesita instalar Tampermonkey antes de instalar el script +
+
+
+
¿Error de actualización? +
+

R. Debido a la plataforma Greasy Fork, cuando se publica una nueva versión, puede ocurrir que la actualización/instalación real sea la de la versión anterior.

+

Normalmente sólo tiene que esperar unos minutos y volver a actualizar/instalar.

+

También puede pasar el ratón por encima del signo de interrogación rojo del cuadro de alerta de actualización del script y hacer clic en el botón "No actualizar todavía" situado en la parte inferior del mensaje emergente.

+
+
+
+
P. ¿Se sigue mostrando cargando? +
+ R. Active la opción "Opciones de compatibilidad - No esperar a que se carguen los recursos de la página" en el panel de configuración. +
+
+
+
Utilizando DeepL error de traducción ¿Demasiadas solicitudes? +
+

R. Esto suele deberse a que ha traducido con frecuencia en un corto periodo de tiempo, o a que ha traducido más de 5.000 caracteres de texto de una sola vez. DeepL tiene un límite en el número de palabras y la frecuencia de las traducciones.

+ Es temporal. Volverá a la normalidad después de un tiempo. +
+
+
+
P. ¿Recibo un error de indefinición al utilizar DeepL o sigue mostrando traducción en curso? +
+ A. Esto suele deberse a que la red que está utilizando no tiene un acceso adecuado a www.deepl.com +
+
+
+
P. ¿Algunas fórmulas aparecen como {xx} / [xx] / [xx] en el resultado de la traducción? +
+ A. Cuando se utiliza la interfaz de traducción común (DeepL/Youdao/google) para la traducción, limitada por la forma en que se implementa el script, puede haber{xx}/[xx]/[xx]. +
+
+
+

Manejo de fórmulas por parte del script

+

Para evitar que las fórmulas LaTeX se corrompan durante la traducción, el script sacará primero todas las fórmulas LaTeX y las colocará utilizando el carácter de sustitución{xx}/[xx]/[xx], el

+

Dado que la probabilidad es que estas sustituciones no se corrompan durante la traducción, es posible restaurar de nuevo a LaTeX fórmulas basadas en las sustituciones después de la traducción.

+

Esta implementación funciona como se espera siempre que no se rompa el carácter de sustitución, lo que no es un problema en la gran mayoría de los casos.

+

Pero a veces los servicios de traducción rompen las sustituciones, por ejemplo, [23] se convierte en [23 / 23] / [23]/ [23 】/ 23 】, en cuyo caso la escritura será restaurada por ciertas reglas regulares para que pueda seguir funcionando como se espera.

+

Sin embargo, si el servicio de traducción también destruye más contenido y crea ambigüedad, por ejemplo, si el servicio de traducción convierte [2] 313 en [2312], entonces no es posible restaurarlo.

+

Para cada servicio de traducción, las diferentes sustituciones tienen diferentes probabilidades de corromperse a sí mismas, y puede seleccionar diferentes sustituciones en el panel de ajustes en la esquina superior derecha del

+

Tras realizar pruebas, {} suele funcionar mejor, por lo que ésta es la sustitución por defecto que utilizan los scripts

+
+
+
+
+
+

Sugerencia:

+

Este problema no existe cuando se traduce con ChatGPT, ya que a ChatGPT se le puede decir directamente que "mantenga las fórmulas LaTeX que contiene sin traducir" mediante una palabra de aviso.

+

Un ChatGPT inteligente puede cumplir con esto muy bien, y esta es la forma recomendada para que los scripts sean traducidos.

+
+
+
+
+
+
P. ¿Cómo traduzco con ChatGPT? +
+ R. Si tiene acceso directo a la interfaz de OpenAI y dispone de una cuenta, entonces estupendo, todo lo que tiene que hacer es marcar "Usar traducción ChatGPT (API)" y hacer clic en el botón "Añadir" de abajo para crear una nueva configuración y rellenar el en el botón "Añadir" de abajo y rellenarla. +

Además, también puede adquirir servicios api proxy para utilizar ChatGPT, la siguiente tabla recoge algunos proveedores de servicios api, puede elegir utilizar +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 sitio web oficialMétodo de adquisición
API2Dhttps://api2d.com/sitio web oficial
CloseAIhttps://console.closeai-asia.com/sitio web oficial
OhMyGPThttps://aigptx.top/sitio web oficial
OpenAI-SBhttps://openai-sb.com/Los bots de Telegram
API2GPThttps://www.api2gpt.com/sitio web oficial
AI Proxyhttps://aiproxy.io/sitio web oficial
+
+
+
+

Descargo de responsabilidad:

+

El autor sólo recopila y comparte con el propósito de compartir, no recibe ningún ingreso y no garantiza la estabilidad de las plataformas mencionadas, y cualquier comportamiento de las plataformas no tiene nada que ver con el autor.

+

Se recomienda recargar en pequeñas cantidades y consumirlo todo, estos proveedores de servicios pueden quedarse sin negocio

+
+
+

Si está utilizando un servicio proporcionado por un proveedor de servicios proxy api, la CLAVE en la configuración debe ser la clave proporcionada por el proveedor de servicios proxy api.

+

Además, debe rellenar adicionalmente en la configuración la API Proxy, el

+

La API Proxy necesita ser rellenada en su totalidad, aquí hay un ejemplo de CloseAI que proporciona la API + Base:https://api.closeai-proxy.xyz

+

A continuación, la API Proxy debe ir seguida de https://api.closeai-proxy.xyz/v1/chat/completions, el

+ Nota:Como ha especificado una API personalizada, Tampermonkey le advertirá sobre las solicitudes entre dominios, por favor haga clic en ¡Autorícese usted mismo! +
+ Nota:Si desea utilizar Azure OpenAI, dado que los parámetros de su interfaz no son los mismos que los de la interfaz oficial de OpenAI, puede optar por desplegarazure-openai-proxypor su cuenta para convertir el +
+
+
+
P. ¿Qué es el PSL? +
+ A. LSP (Protocolo de servidor de idiomas)es una especificación de protocolo iniciada por Microsoft para la comunicación entre editores y servidores de idiomas. +

Separa del editor las funciones de finalización de código, diagnóstico, sugerencias, documentación e incluso gestión de proyectos que los IDE tradicionales deben implementar, y utiliza servicios independientes para llevarlas a cabo.

+

El editor sólo necesita comunicarse con el servidor de acuerdo con la especificación del protocolo, lo que reduce enormemente la carga de trabajo y facilita que el editor admita una gran variedad de lenguajes de programación.

+

En la actualidad, la ecología de LSP ha mejorado gradualmente, los principales editores han soportado LSP o disponen de los plug-ins correspondientes, como VSCode, Vim, Emacs, etc.....

+

Sin embargo, los principales proveedores comerciales de IDE tienen poco interés en esto, básicamente el servidor LSP existente está mantenido por la comunidad de código abierto, por lo que todavía no es tan bueno como los IDE profesionales y una variedad de plug-ins profesionales.

+
+
+
+
P. ¿Cómo se utiliza el PSL? +
+ A. Sólo dos pasos: +

El script:proporciona soporte para las siguientes dos implementaciones del Servidor LSP en C++ y Python, que necesita instalar como se requiere:

+ + + + + + + + + + + + + + + + + + + + +
multilingüismoLSP ServerMétodo de instalación (en Windows)
C++clangdDescargue clangd de clangd release y añada la ruta de clangd a la ruta de la variable de entorno del sistema, por ejemplo C:\clangd_16.0.2\bin
PythonpylspEjecute el comando: + pip install "python-lsp-server[all]"y añadirá automáticamente la variable de entorno
+

II:También tendrá que descargar y descomprimir OJBetter_Bridge de GitHub release o Blue Rhythm Cloud (password:aaaa) , que sirve de puente para la comunicación entre los scripts y el servidor LSP.

+

Coloque la carpeta extraída en el directorio raíz de su unidad C o en cualquier otra ubicación que desee (nota:Si la coloca en otra ubicación, deberá cambiar la "Ruta de trabajo" del panel de configuración a su ubicación real).

+

A continuación, puede ejecutar OJBetter_Bridge, que proporciona una versión GUI y una versión de terminal, la versión GUI se recomienda para Windows, ejecute server_gui.exe directamente.

+

OJBetter_Bridge comprueba automáticamente si los comandos clangd y pylsp son válidos al iniciarse y ofrece un aviso.

+ Consejo::En la interfaz de server_gui.exe puede configurarlo para que arranque. +

Tras completar los pasos anteriores, puede activar "Usar LSP" en el panel de ajustes y utilizarlo.

+
+
+
+ ¿Desea saber más? +
+ Para clangd, hay dos archivos de configuración almacenados en la carpeta cpp_workspace .clangd,.clang-format +

Definen los elementos de configuración y estilo de formato de códigode clangd, que puede editar.

+
+
+
+
+
+
+
+
¿Por qué no funciona el formato clangd? +
+ R. Esto se debe a que ha rellenado una ruta de trabajo LSP incorrecta en el panel de Configuración. +
+
+
+
P. ¿Por qué clangd no reconoce mis cabeceras <bits/stdc++.h> ? +
+ Esto se debe a que <bits/stdc++.h> no es un archivo de cabecera estándar, por lo que clangd no lo soporta por defecto, necesita decirle a clang dónde encontrar este archivo de cabecera no estándar modificando el parámetro del compilador en el archivo .clangd en el cpp_workspace + de OJBetter_Bridge (y por supuesto no se recomienda el uso de una cabecera universal). +
+
+
+
P. ¿Es posible utilizar archivos JSON locales para mejorar la finalización estática? +
+ R. Debido a las restricciones de seguridad del navegador, no puede acceder directamente a su archivo JSON local en el navegador utilizando una URL como file:///xxx . +

Pero puede hacerlo con OJBetter_Bridge, es muy sencillo, sólo tiene que colocar el archivo JSON xxx.json en la carpeta /mycomplet de OJBetter_Bridge

+

Al iniciar OJBetter_Bridge podrá crear una nueva configuración en el panel Configuración con una URL JSON de:http://127.0.0.1:2323/mycomplet/xxx.json.

+
+
+

¿Probarlo?

+

Inicie OJBetter_Bridge, inicialmente la carpeta /mycomplet viene con un archivo JSON de ejemplo:template.json, así que puede añadir una configuración, rellenar + http://127.0.0.1:2323/mycomplet/template.json y ¡guardar!

+

Ahora escriba hola en el editor y verá dos entradas complementarias:hola mundo, hola mundo2

+
+
+
+
+
+

Aportar código

+

Siéntase libre de contribuir con código, vaya a repositorio Github Crear un PR

+

¿Otros OJ?

+

Los autores no mantienen muchos scripts similares debido a la limitación de recursos, así que si desea portar este script para su OJ favorito, es más que bienvenido a hacerlo, ¡sólo tiene que cumplir con la licencia GPL-3.0!

+

agradecido

+ +

Gracias, 0rz.

\ No newline at end of file diff --git a/i18n/es/resources/subs/Codeforces-subs.json b/i18n/es/resources/subs/Codeforces-subs.json new file mode 100644 index 000000000..4b42c9028 --- /dev/null +++ b/i18n/es/resources/subs/Codeforces-subs.json @@ -0,0 +1,859 @@ +{ + "version": "1.0.0", + "commonReplacements": { + ".datatable": { + "class": [ + ".datatable" + ], + "description": "", + "isStrict": false, + "rules": { + "Virtual participation": "Participe en el torneo de recreación virtual", + "Enter": "entrar en", + "Current standings": "Lista actual", + "Final standings": "Lista final", + "Preliminary results": "Resultados preliminares", + "open hacking:": "Hackeo abierto", + "School/University/City/Region Championship": "Competiciones escolares/universitarias/municipales/regionales", + "Official School Contest": "Concursos escolares oficiales", + "Training Contest": "partido de entrenamiento", + "Training Camp Contest": "Competición del campo de entrenamiento", + "Official ICPC Contest": "Concurso oficial del CIPC", + "Official International Personal Contest": "Concurso internacional oficial individual", + "China": "sino", + "Statements": "Título Descripción", + "in Chinese": "Chino", + "Trainings": "tren", + "Prepared by": "autor", + "Current or upcoming contests": "Concursos actuales o próximos", + "Rating: users participated in recent 6 months": "Valoración:Usuarios que han participado en los últimos 6 meses", + "Past contests": "Partidos anteriores", + "Exclusions": "descartar", + "Before start": "Faltan unos minutos para el inicio de la carrera.", + "Before registration": "Aún queda tiempo antes de que se abra el plazo de inscripción", + "Until closing ": "Aún hay tiempo para cerrar la inscripción", + "Before extra registration": "La inscripción adicional aún no está abierta", + "Register »": "Inscripción \"", + "Registration completed": "Inscrito", + "Registration closed": "La inscripción ya está cerrada", + "Problems\n": "问题集", + "My Submissions": "Mi presentación", + "Standings": "lista de nombres", + "Questions about problems": "Preguntas sobre temas", + "Contest status": "estado del juego", + "Invited users": "Usuarios invitados", + "Invitation links": "Enlace de invitación", + "API keys": "API密钥" + } + }, + ".menu-list.main-menu-list": { + "class": [ + ".menu-list.main-menu-list" + ], + "description": "", + "isStrict": false, + "rules": { + "Home": "página de inicio", + "Top": "de moda", + "Catalog": "Catálogo de guías", + "Contests": "competición (deportes, etc.)", + "Gym": "campo de entrenamiento", + "Problemset": "cuestionario", + "Groups": "organizaciones", + "Rating": "Clasificación", + "Edu": "cultive", + "Calendar": "calendario", + "ICPC Challenge": "ICPC挑战赛", + "Help": "mano" + } + }, + ".nav-links": { + "class": [ + ".nav-links" + ], + "description": "", + "isStrict": false, + "rules": { + "Settings": "establecer", + "Blog": "blog (préstamo)", + "Teams": "cola", + "Submissions": "presentar (un informe, etc.)", + "Favourites": "marcador (Internet)", + "Problemsetting": "Planteamiento del problema", + "Talks": "carta privada", + "Contests": "competición (deportes, etc.)" + } + }, + ".contest-state-phase": { + "class": [ + ".contest-state-phase" + ], + "description": "", + "isStrict": false, + "rules": { + "Before contest": "próximo concurso", + "Contest is running": "Partido en curso" + } + }, + ".notice": { + "class": [ + ".notice" + ], + "description": "", + "isStrict": false, + "rules": { + "has extra registration": "Existen periodos de inscripción adicionales", + "If you are late to register in 5 minutes before the start, you can register later during the extra registration. Extra registration opens 10 minutes after the contest starts and lasts 25 minutes.": "Si no se ha inscrito 5 minutos antes del comienzo de la carrera, puede hacerlo más tarde durante el periodo de inscripción extra. Las inscripciones extra se abrirán 10 minutos después del inicio de la carrera y durarán 25 minutos.", + "in timezone ([^)]*)": "1 Zona horaria", + "Contest will be available for virtual participation when over. Leave this field blank to allow virtual participation at any time": "Las entradas virtuales se permitirán una vez finalizado el concurso. Deje este campo en blanco para permitir entradas virtuales en cualquier momento", + "Contest duration in minutes": "Duración del partido (minutos)", + "or choose": "o seleccione", + "Standings freeze period in minutes": "Tiempo de congelación de la lista (minutos)", + "Time when final results are available": "Tiempo disponible para los resultados finales", + "Is it allowed to solve contest problems unofficially after the end": "Si se permite la resolución extraoficial de los problemas del partido una vez finalizado éste.", + "Is it allowed to run contest as virtual after the end": "Si se permiten inscripciones virtuales después del concurso", + "Is it allowed participate in contest out of competition": "Si se permiten inscripciones no competitivas", + "Are participants allowed to register for the contest themselves": "Si los participantes pueden inscribirse por sí mismos", + "Can non-registered users and anonyms view contest standings, problems and other statistics": "Si desea permitir a los usuarios no registrados y anónimos ver las clasificaciones de las carreras, las preguntas y otras estadísticas", + "If unchecked they will view only personal status": "Si no está marcada, sólo podrán ver los estados individuales", + "To manage allowed program languages": "Gestión de lenguajes de programación permitidos", + "The system will automatically adjust time limits for some languages. Recommended for use only for educational purpose.": "El sistema ajustará automáticamente el límite de tiempo para determinados idiomas. Recomendado únicamente con fines educativos.", + "Check it if you want to allow contestants view statements": "Marque esta casilla si desea permitir que el participante vea la descripción de la pregunta.", + "Check it if contestants can view standings": "Marque esta casilla si desea permitir a los participantes ver las tablas de clasificación", + "Where the contest was held originally": "Lugar donde se celebró originalmente el concurso", + "Official contest site URL": "URL del sitio web oficial del concurso", + "Enter a name for your new API key. It should describe what this key is used for.": "为您的新API密钥输入一个名称。它应该描述这个密钥的用途。", + "Enter your account password to confirm access. If you do not have password, logout and use password recovery feature.": "输入您的账户密码以确认访问。如果您没有密码,请注销并使用密码恢复功能。" + } + }, + ".propertyLinks": { + "class": [ + ".propertyLinks" + ], + "description": "", + "isStrict": false, + "rules": { + "Contribution": "dedicar" + } + }, + ".contests-table": { + "class": [ + ".contests-table" + ], + "description": "", + "isStrict": false, + "rules": { + "Contest history": "Historia de la competición" + } + }, + ".roundbox.sidebox.borderTopRound ": { + "class": [ + ".roundbox.sidebox.borderTopRound " + ], + "description": "", + "isStrict": false, + "rules": { + "Register now": "Inscríbase ahora", + "No tag edit access": "Sin privilegios de edición de etiquetas", + "Problem([\\s]*)$": "问题", + "Verdict": "estado de la adjudicación", + "Language:": "Idiomas.", + "Participant": "concursantes", + "Choose file:": "Seleccione el archivo." + } + }, + ".icon-eye-close.icon-large": { + "class": [ + ".icon-eye-close.icon-large" + ], + "description": "", + "isStrict": false, + "rules": { + "Add to exclusions": "Añadir a la lista de exclusión" + } + }, + "null": { + "class": [ + null + ], + "description": "", + "isStrict": false, + "rules": { + "Add to exclusions for gym contests filter": "Añadir exclusiones al filtro Boot Camp" + } + }, + ".roundbox.sidebox.sidebar-menu.borderTopRound": { + "class": [ + ".roundbox.sidebox.sidebar-menu.borderTopRound" + ], + "description": "", + "isStrict": false, + "rules": { + "Announcement": "boletín", + "Statements": "Informes estadísticos", + "Tutorial": "notas" + } + }, + ".second-level-menu": { + "class": [ + ".second-level-menu" + ], + "description": "", + "isStrict": false, + "rules": { + "Problems": "cuestiones", + "Submit Code": "Enviar código", + "My Submissions": "Mi presentación", + "Status": "situación", + "Standings": "lista de nombres", + "Adm.": "dirección", + "Edit": "compilador", + "Custom Invocation": "Depuración personalizada", + "Common standings": "Todas las clasificaciones", + "Friends standings": "Sólo para amigos.", + "Submit": "presentar (un informe, etc.)", + "Hacks": "hacker (informática) (préstamo)", + "Room": "cubículos", + "Custom test": "Pruebas personalizadas", + "Blog": "blog (préstamo)", + "Teams": "cola", + "Submissions": "Presentación de registros", + "Groups": "organizaciones", + "Rating": "clasificaciones", + "Friends rating": "Calificación de amigo", + "Favourites": "marcador (Internet)", + "Contests": "competición (deportes, etc.)", + "Magic": "魔法", + "Handle": "账号", + "Members": "miembros", + "问题etting": "Participación en la preparación de los temas", + "Streams": "difusión directa por Internet", + "Gym": "campo de entrenamiento", + "Mashups": "mezclar y combinar (de ropa, etc.)", + "Posts": "tarjeta", + "Comments": "volver (a una condición anterior)", + "Main": "grapa", + "Settings": "establecer", + "Lists": "listados", + "General": "fundamental", + "Sidebar": "una barra lateral (en software)", + "Social": "seguridad social (pensiones, seguro médico)", + "Address": "dirección", + "Wallets": "monederos" + } + }, + ".topic-toggle-collapse": { + "class": [ + ".topic-toggle-collapse" + ], + "description": "", + "isStrict": false, + "rules": { + "Expand": "comienzo" + } + }, + ".topic-read-more": { + "class": [ + ".topic-read-more" + ], + "description": "", + "isStrict": false, + "rules": { + "Full text and comments": "Leer más/comentarios" + } + }, + ".toggleEditorCheckboxLabel": { + "class": [ + ".toggleEditorCheckboxLabel" + ], + "description": "", + "isStrict": false, + "rules": { + "Switch off editor": "Desactivar el resaltado de sintaxis del editor" + } + }, + ".submit": { + "class": [ + ".submit" + ], + "description": "", + "isStrict": false, + "rules": { + "Registration for the contest": "Inscripción en el concurso" + } + }, + "._FilterByTagsFrame_difficulty": { + "class": [ + "._FilterByTagsFrame_difficulty" + ], + "description": "", + "isStrict": false, + "rules": { + "Difficulty:": "Dificultad." + } + }, + "._FilterByTagsFrame_addTagLink": { + "class": [ + "._FilterByTagsFrame_addTagLink" + ], + "description": "", + "isStrict": false, + "rules": { + "Add tag": "Añadir etiquetas" + } + }, + ".alert": { + "class": [ + ".alert" + ], + "description": "", + "isStrict": false, + "rules": { + "Rating changes for last rounds are temporarily rolled back. They will be returned soon.": "Los cambios de calificación de la ronda anterior se han anulado temporalmente. Se restablecerán en breve.", + "Reminder: in case of any technical issues, you can use the lightweight website": "Recordatorio:Si surge algún problema técnico, puede utilizar el sitio ligero", + "Please subscribe to the official Codeforces channel in Telegram via the link ": "Por favor, ¡suscríbase al canal oficial de Telegram de Codeforces a través del enlace!" + } + }, + ".lang-chooser": { + "class": [ + ".lang-chooser" + ], + "description": "", + "isStrict": false, + "rules": { + "Enter": "Regístrese", + "Register": "inscripción", + "Contest rating": "Clasificación de la prueba", + "Logout": "Cerrar sesión" + } + }, + ".userbox": { + "class": [ + ".userbox" + ], + "description": "", + "isStrict": false, + "rules": { + "Change photo": "Sustitución de imágenes", + "Contest rating": "Carreras", + "Contribution": "dedicar", + "My friends": "Mi mejor amigo.", + "Change settings": "Cambiar ajustes", + "Last visit": "último acceso", + "not visible": "不可见的", + "Registered": "registrado en", + "Blog entries": "Entradas de blog", + "comments": "comentarios", + "Write new entry": "Preparación de nuevas entradas", + "View my talks": "Ver mis mensajes privados", + "Talks": "carta privada", + "Send message": "enviar un mensaje" + } + }, + "#vote-reset-filterDifficultyLowerBorder": { + "class": [ + "#vote-reset-filterDifficultyLowerBorder" + ], + "description": "", + "isStrict": false, + "rules": { + "Reset": "reprovisión" + } + }, + "#vote-reset-filterDifficultyUpperBorder": { + "class": [ + "#vote-reset-filterDifficultyUpperBorder" + ], + "description": "", + "isStrict": false, + "rules": { + "Reset": "reprovisión" + } + }, + ".alert.alert-info": { + "class": [ + ".alert.alert-info" + ], + "description": "", + "isStrict": false, + "rules": { + "The problem statement has recently been changed.": "La descripción del título se ha modificado recientemente.", + "View the changes.": "Ver cambios" + } + }, + ".enterPage": { + "class": [ + ".enterPage" + ], + "description": "", + "isStrict": false, + "rules": { + "Fill in the form to login into Codeforces.": "Rellene el formulario para iniciar sesión en Codeforces.", + "You can use": "También puede utilizar el", + "as an alternative way to enter.": "Regístrese" + } + }, + ".notice.small": { + "class": [ + ".notice.small" + ], + "description": "", + "isStrict": false, + "rules": { + "\\* To view the complete list, click ": "* :: Para ver la lista completa, haga clic en" + } + }, + ".setting-name": { + "class": [ + ".setting-name" + ], + "description": "", + "isStrict": false, + "rules": { + "Contest type:": "Tipo de competición:", + "Rated:": "Clasificado:", + "Tried:": "intento", + "Substring:": "palabras clave" + } + }, + ".by-form": { + "class": [ + ".by-form" + ], + "description": "", + "isStrict": false, + "rules": { + "Sort by:": "Clasificado por:", + "relevance": "(estadística) correlación", + "popularity": "entusiasmo efímero", + "time": "veces" + } + }, + ".roundbox.borderTopRound": { + "class": [ + ".roundbox.borderTopRound" + ], + "description": "", + "isStrict": false, + "rules": { + "If you invite users to this contest, the contest will become visible to them regardless of its visibility. You can share the contest using the link:": "Si invita a un usuario a participar en este concurso, el concurso será visible para el usuario independientemente de su visibilidad. Puede compartir el concurso utilizando el siguiente enlace:", + "Generate link and share it with other users": "Genere enlaces y compártalos con otros usuarios", + "Show Log »": "Mostrar diario \"", + "Move all to practice »": "Todo trasladado a Practitioner \"", + "Remove All »": "Eliminar todo \"", + "Add »": "Añadir \"", + "Set »": "Ajustes \"", + "Download Archive »": "Descargar archivo \"" + } + }, + ".caption.titled": { + "class": [ + ".caption.titled" + ], + "description": "Barra lateral titulada Chino", + "isStrict": false, + "rules": { + "Pay attention": "tome nota de", + "Top rated": "clasificación", + "Top contributors": "Clasificación de los contribuyentes", + "Find user": "Buscar usuarios", + "Recent actions": "Últimas noticias", + "Training filter": "Filtrado y cribado", + "Find training": "Buscar concursos/temas", + "Virtual participation": "Qué es una entrada virtual", + "Contest materials": "Información relacionada con la competencia", + "Settings": "establecer", + "Create Mashup Contest": "Crear un concurso de mashups", + "Clone Contest to Mashup": "Combinación de clones y combos", + "Invitations": "invitaciones", + "Status filter": "Filtro de estado", + "Administration": "dirección", + "Submit": "presentar (un informe, etc.)", + "Practice": "ejercicio", + "Problem tags": "etiqueta de pregunta", + "Filter Problems": "Problemas de filtrado", + "Last unsolved": "No se resolvió la última vez", + "Attention": "tome nota de", + "Past contests filter": "Revisión de partidos anteriores", + "About Contest": "Sobre el concurso", + "Last submissions": "Historial de envíos", + "Streams": "difusión directa por Internet", + "Coach rights": "Autoridad de entrenamiento", + "Advices to fill address": "Sugerencias para rellenar su dirección", + "Hacks filter": "Filtro Hacker", + "Score table": "escala de calificación", + "Contests": "competición (deportes, etc.)", + "History": "Historia editorial", + "Login into Codeforces": "Iniciar sesión en Codeforces", + "Export the judgment log to DAT-file": "Exportar el registro de sentencias como archivo DAT", + "Contest managers": "Administrador del concurso", + "Contest writers": "Escritores de competición", + "Spectator ranklists": "Lista de clasificación de la audiencia", + "Ghosts:": "jugador fantasma", + "Export Submissions": "Exportación", + "Register in Codeforces": "注册 Codeforces" + } + }, + "QuestionFilter1": { + "class": [ + "#gym-filter-form div label", + "#gym-filter-form div" + ], + "description": "Manejo de opciones del filtro de títulos", + "isStrict": false, + "rules": { + "Contest type:": "Tipo de competición.", + "ICPC region:": "Regiones del CIPC.", + "Contest format:": "Formato del concurso.", + "Order by:": "Ordenar por.", + "Secondary order by:": "Pedidos secundarios.", + "Hide, if participated:": "Ocultar aquellos en los que he participado.", + "Hide excluded gyms": "Ocultación excluida.", + "Season:": "Plazo (anual)", + "Duration, hours:": "Duración (horas).", + "Difficulty:": "Dificultad." + } + }, + "QuestionFilter2": { + "class": [ + ".setting-value select option", + ".setting-last-value select option" + ], + "description": "", + "isStrict": false, + "rules": { + "Official ACM-ICPC Contest": "Concurso oficial del CIPC", + "Official School Contest": "Concursos escolares oficiales", + "Opencup Contest": "Concurso Opencup", + "School/University/City/Region Championship": "Campeonatos escolares/universitarios/municipales/regionales", + "Training Camp Contest": "Competición del campo de entrenamiento", + "Official International Personal Contest": "Concurso internacional oficial individual", + "Training Contest": "partido de entrenamiento", + "ID_ASC": "Hora de creación (orden ascendente)", + "ID_DESC": "Tiempo de creación (descendente)", + "RATING_ASC": "Clasificación (orden ascendente)", + "RATING_DESC": "Clasificación (descendente)", + "DIFFICULTY_ASC": "Dificultad (orden ascendente)", + "DIFFICULTY_DESC": "Dificultad (descendente)", + "START_TIME_ASC": "Hora de inicio (orden ascendente)", + "START_TIME_DESC": "Hora de inicio (descendente)", + "DURATION_ASC": "Duración (ascendente)", + "DURATION_DESC": "Duración (descendente)", + "POPULARITY_ASC": "Calor (orden ascendente)", + "POPULARITY_DESC": "Calor (orden descendente)", + "UPDATE_TIME_ASC": "Hora de actualización (orden ascendente)", + "UPDATE_TIME_DESC": "Tiempo de actualización (descendente)" + } + }, + "CompetitionFilter": { + "class": [ + ".options li label", + ".CaptionCont span" + ], + "description": "Opciones de filtro de carrera Chino", + "isStrict": false, + "rules": { + "Educational": "instructivo", + "Global": "globalmente", + "VK Cup": "Copa VK", + "Long Rounds": "largo periodo de tiempo", + "April Fools": "Día de los Inocentes", + "Team Contests": "competición por equipos", + "ICPC Scoring": "Puntuación del CIPC", + "Doesn't matter": "----", + "Any": "propiedad", + "Yes$": "是", + "No$": "否", + "No submission(s)": "No presentación", + "Have submission(s)": "Enviado", + "No solved problem(s)": "Sin resolución de problemas", + "Have solved problem(s)": "Resolución de problemas." + } + }, + "RightSidebox": { + "class": [ + ".sidebox div label" + ], + "description": "Buzón lateral derecho Chino", + "isStrict": false, + "rules": { + "Show tags for unsolved problems": "Mostrando etiquetas para temas sin resolver", + "Hide solved problems": "Ocultar problemas resueltos" + } + }, + "FormField-name": { + "class": [ + "td.field-name label" + ], + "description": "", + "isStrict": false, + "rules": { + "Postal/zip code": "Código postal", + "Country //(English//)": "国家(英文)", + "State //(English//)": "州/省份(英文)", + "City //(English//)": "城市(英文)", + "Address //(English//)": "地址(英文)", + "Recipient //(English//)": "收件人姓名(英文)", + "Country //(Native//)": "国家(本地语言)", + "State //(Native//)": "州/省份(本地语言)", + "City //(Native//)": "城市(本地语言)", + "Address //(Native//)": "地址(本地语言)", + "Recipient //(Native//)": "收件人姓名(本地语言)", + "Phone": "teléfonos", + "TON Wallet:": "BOLSA TON.", + "Secret Code:": "Captcha.", + "Terms of agreement:": "Condiciones del acuerdo.", + "Choose team:": "Seleccionar equipo." + } + }, + "QuestionTag": { + "class": [ + "._FilterByTagsFrame_addTagLabel select option", + "._FilterByTagsFrame_tagBoxCaption", + ".notice", + ".tag-box" + ], + "description": "", + "isStrict": false, + "rules": { + "combine tags by OR": "Etiquetas por lógica o combinación de mis elecciones", + "combine-tags-by-or": "Combinar mi elección de etiquetas por lógica o (combine-tags-by-or)", + "2-sat": "Problema de satisfacción de grafos bipartitos (2-sat)", + "binary search": "Búsqueda binaria", + "bitmasks": "Máscaras de bits", + "brute force": "Enumeración por fuerza bruta.", + "chinese remainder theorem": "teorema chino del resto (中国剩余定理)", + "combinatorics": "Combinatoria", + "constructive algorithms": "Algoritmos constructivos (algoritmos constructivos)", + "data structures": "Estructuras de datos", + "dfs and similar": "Búsqueda en profundidad y sus variantes (dfs y similares)", + "divide and conquer": "Algoritmo \"divide y vencerás\".", + "dp": "Programación dinámica (pd)", + "dsu": "Conjunto de búsqueda paralela (dsu)", + "expression parsing": "Análisis sintáctico de expresiones", + "fft": "Transformada rápida de Fourier (fft)", + "flows": "Flujos", + "games": "Teoría de juegos (juegos)", + "geometry": "Geometría computacional", + "graph matchings": "Coincidencias gráficas", + "graphs": "Teoría de grafos (grafos)", + "greedy": "Codicioso", + "hashing": "Tabla hash (hashing)", + "implementation": "Cuestiones de aplicación, conocimientos de programación, simulación (aplicación)", + "interactive": "Cuestiones de interactividad (interactivo)", + "math": "Matemáticas (math)", + "matrices": "Matrices", + "meet-in-the-middle": "algoritmo meet-in-the-middle (encuentro en el medio)", + "number theory": "Teoría de números", + "probabilities": "Probabilidades", + "schedules": "Algoritmos de programación (horarios)", + "shortest paths": "Algoritmos del camino más corto (caminos más cortos)", + "sortings": "Algoritmos de ordenación (sortings)", + "string suffix structures": "Estructuras de sufijos de cadenas", + "strings": "Manejo de cadenas (strings)", + "ternary search": "Búsqueda ternaria", + "trees": "Estructura arbórea (árboles)", + "two pointers": "Algoritmo de dos punteros (dos punteros)" + } + }, + "SettingField-name": { + "class": [ + ".field-name" + ], + "description": "Configuración de los campos de la página", + "isStrict": false, + "rules": { + "Hide sidebar block \"Find user\"": "Ocultar el bloque de la barra lateral \"Buscar usuarios\".", + "Hide sidebar block \"Current user\"": "Ocultar el bloque de la barra lateral \"Usuario actual\".", + "Hide sidebar block \"Recent аctions\"": "Oculte el bloque \"Novedades\" de la barra lateral.", + "Hide sidebar block \"Favourite groups\"": "Ocultar el bloque de la barra lateral \"Grupos favoritos\".", + "Hide sidebar block \"Top contributors\"": "Ocultar el bloque de la barra lateral \"Ranking de colaboradores\".", + "Hide sidebar block \"Top rated\"": "Ocultar el bloque de la barra lateral \"Clasificación\".", + "Hide sidebar block \"Streams\"": "Ocultar el bloque \"Live\" de la barra lateral", + "Old password": "contraseña antigua", + "New password": "nueva contraseña", + "Confirm new password": "Confirme la nueva contraseña", + "Contest email notification": "Notificación del concurso por correo electrónico", + "Send email on new user talk": "Enviar un correo electrónico cuando haya un nuevo diálogo de usuario", + "Send email on new comment": "Enviar un correo electrónico cuando se añada un nuevo comentario", + "Hide contact information": "Ocultar información de contacto", + "Remember me by Gmail, Facebook and etc": "Recuérdeme en Gmail, Facebook, etc.", + "Show tags for unsolved problems": "Mostrando etiquetas para temas sin resolver", + "Hide solved problems from problemset": "Ocultar las cuestiones resueltas de los conjuntos de problemas", + "Hide low rated blogs": "Ocultar los blogs con valoraciones bajas", + "Offer to publish great rating rises": "Ofrece la oportunidad de demostrar la mejora significativa del Rating", + "Enforce https": "Forzar HTTPS", + "Show private activity in the profile": "Mostrar actividades privadas en el perfil", + "Show diagnostics": "Visualización de la información de diagnóstico" + } + }, + "CloneContestFormField": { + "class": [ + ".field-name" + ], + "description": "Clonación del concurso al formulario de configuración del mashup virtual", + "isStrict": false, + "rules": { + "Problem:": "Título.", + "Question": "问题", + "Language:": "Idiomas.", + "Source code:": "Código fuente.", + "Or choose file:": "O seleccione el archivo.", + "Choose file:": "Seleccione el archivo.", + "Notice:": "Precaución.", + "virtual participation:": "Participación virtual.", + "Registration for the contest:": "Inscripción en la carrera.", + "Take part:": "Participación.", + "as individual participant:": "Como participantes individuales.", + "as a team member:": "Como miembro de un equipo.", + "Virtual start time:": "Hora de inicio virtual.", + "Complete problemset:": "Conjunto completo de preguntas.", + "First name \\(English\\)": "Nombre (inglés)", + "Last name \\(English\\)": "Apellido (inglés)", + "First name \\(Native\\)": "Nombre (lengua local)", + "Last name \\(Native\\)": "Apellidos (lengua local)", + "Birth date": "fecha de nacimiento", + "Country": "naciones", + "City": "municipios", + "Organization": "organizaciones", + "Handle/Email": "Número de cuenta/Correo electrónico", + "Name": "名称", + "Handle": "账号", + "Email": "邮箱", + "Confirm": "确认", + "Password": "criptográfico", + "New Rank": "新的Rank", + "Training name \\(English\\):": "Nombre de la formación (en inglés).", + "Training name \\(Russian\\):": "Nombre de la formación (en ruso).", + "Contest format:": "Formato del concurso.", + "Start time:": "Hora de inicio.", + "Duration:": "Duración.", + "Visibility:": "Visibilidad.", + "Attach parent contest\\?:": "¿Partido de padre asociado?", + "Participation type:": "Tipo de participación.", + "Freeze period:": "Periodo de congelación.", + "Unfreeze time:": "Tiempo de descongelación.", + "Is practice allowed\\?:": "¿Está permitida la práctica?", + "Is virtual allowed\\?:": "¿Están permitidas las entradas virtuales?", + "Is out of competition allowed\\?:": "¿Se permiten inscripciones no competitivas?", + "Is self-registration allowed\\?:": "¿Está permitido el autorregistro?", + "Can non-registered view the contest\\?:": "¿Pueden ver el concurso los usuarios no registrados?", + "Can participants view common status\\?:": "¿Pueden los participantes comprobar el estado del reparto?", + "Contest testdata policy:": "Estrategia de datos de las pruebas de partidos.", + "Allow view other submissions to:": "Permitir ver otros envíos a.", + "Manage program languages:": "Lenguajes de programación gestionados.", + "Use time limits scaling policy\\?:": "¿Utilizar una política de escalado limitada en el tiempo?", + "Allow statements\\?:": "¿Permitir ver la descripción del título?", + "Allow standings\\?:": "¿Permitir ver las clasificaciones?", + "Season:": "Temporada.", + "Contest type:": "Tipo de competición.", + "ICPC region:": "Regiones del CIPC.", + "Country:": "País.", + "City:": "Ciudades.", + "Contest difficulty:": "Dificultad de la carrera.", + "Website URL:": "Enlace web.", + "Description \\(English\\):": "Descripción (inglés).", + "Description \\(Russian\\):": "Descripción (en ruso).", + "Registration confirmation text \\(English\\):": "Texto de confirmación de la inscripción (en inglés).", + "Registration confirmation text \\(Russian\\):": "Texto de confirmación de la inscripción (en ruso).", + "Logo \\(English\\):": "Logotipo (en inglés).", + "Logo \\(Russian\\):": "Logotipo (ruso).", + "End time:": "Hora de finalización.", + "Name:": "Nombre.", + "Contest\\(s\\):": "Competencia.", + "Add contest:": "Añadir concurso.", + "Show Contestants:": "Concursantes del espectáculo.", + "Show Out of Competition Participants:": "Mostrar a los participantes no competidores.", + "Show Practices:": "Mostrar ejercicio.", + "Show Virtuals:": "Mostrar jugadores virtuales.", + "Show Ghosts:": "Mostrar jugador fantasma.", + "Text:": "Texto.", + "Rewrite Examples:": "Muestra de reescritura.", + "Add images:": "Añadir imagen.", + "Do not use:": "No utilizados.", + "Problem short name:": "Abreviatura del título.", + "Source problem:": "Tema fuente.", + "Problem name \\(English\\):": "Título (en inglés).", + "Input file name:": "Nombre del archivo de entrada.", + "Output file name:": "Nombre del archivo de salida.", + "Time Limit:": "Límite de tiempo.", + "Memory Limit:": "Limitaciones de memoria.", + "Output only:": "Sólo salida." + } + }, + ".ask-question-link": { + "class": [ + ".ask-question-link" + ], + "description": "", + "isStrict": false, + "rules": { + "Ask a question": "Formule una pregunta." + } + }, + "add-announcement-link": { + "class": [ + ".add-announcement-link" + ], + "description": "", + "isStrict": false, + "rules": { + "Add announcement": "Añadir anuncio" + } + }, + "demo": { + "class": [ + "Class" + ], + "description": "", + "isStrict": false, + "rules": { + "SourceText": "TargetText" + } + } + }, + "InputValueReplacements": { + "InputSubmit": { + "class": [ + "input[type='submit']" + ], + "description": "Enviar chino", + "isStrict": false, + "rules": { + "Register for virtual participation": "Inscribirse en las entradas virtuales", + "Register for practice": "Inicie sesión para empezar a practicar", + "Apply": "aparato", + "Register": "introduzca su nombre", + "Login": "Regístrese", + "Run": "estar en movimiento", + "Start virtual contest": "Iniciar entrada virtual", + "Manage invitations": "Invitaciones de la dirección", + "Disable manager mode": "Cierre temporal del modo de gestión", + "Enable manager mode": "Modo de gestión abierto", + "Clone Contest": "concurso de clonación", + "Submit": "presentar (un informe, etc.)", + "Save changes": "Guardar ajustes", + "Filter": "filtración", + "Find": "localice", + "Save": "guardar (un archivo, etc.) (informática)", + "Create Mashup Contest": "Crear un concurso de mashups", + "Delete problem": "Borrar la pregunta", + "Restore problem": "Problemas de recuperación", + "Generate": "生成", + "Send": "发送" + } + }, + "InputButton": { + "class": [ + "input[type='button']" + ], + "description": "", + "isStrict": false, + "rules": { + "Reset": "reprovisión", + "Delete contest": "Borrar partido", + "Preview": "avances" + } + } + } +} \ No newline at end of file diff --git a/i18n/fr/README.md b/i18n/fr/README.md new file mode 100644 index 000000000..b4f663148 --- /dev/null +++ b/i18n/fr/README.md @@ -0,0 +1 @@ +# OJBetter diff --git a/i18n/fr/docs/AtCoderBetter.html b/i18n/fr/docs/AtCoderBetter.html new file mode 100644 index 000000000..8343c22c4 --- /dev/null +++ b/i18n/fr/docs/AtCoderBetter.html @@ -0,0 +1,244 @@ +

AtCoder Better!🎈

+

Interface AtCoder en chinois, prise en charge du mode sombre, traduction de titres, vue markdown, copie de titres en un clic, saut vers Logu

+

Fonctionnalité

+

Le script tip:fournit des éléments de configuration pour certaines de ses fonctionnalités, et vous pouvez ouvrir le panneau de configuration en cliquant sur le bouton AtCoderBetter Settings à dans le coin supérieur droit de la page entière de.

+

Interface en langue chinoise

+

Les principaux éléments du site seront traduits en chinois. Si vous constatez une erreur ou une mauvaise traduction, n'hésitez pas à nous faire part de vos commentaires.

+

Vous pouvez choisir d'activer ou de désactiver la localisation dans le panneau AtCoderBetter settings situé dans le coin supérieur droit.

+

Traduction du titre

+

Ajoutez un bouton de traduction dans le coin supérieur droit des titres, blogs, commentaires, etc. pour traduire en chinois en un seul clic, tout en veillant à ce que la formule Latex ne soit pas rompue !

+

Vous pouvez choisir le service de traduction que vous souhaitez utiliser dans le panneau AtCoderBetter Settings situé dans le coin supérieur droit (Deepl par défaut).

+

Astuce:Cliquez avec le bouton droit de la souris surtranslate, vous pouvez rapidement changer de service de traduction !

+

Les interfaces de traduction suivantes sont disponibles:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  + KEY + Qualité de la traductionfiabilitéNombre maximum de caractères + prendre une période de (x temps)
Traduction Deepl (✨ recommandé)inutile⭐️⭐️⭐️⭐️Certaines zones peuvent être inaccessibles ou lentes5000tranchant (des couteaux ou de l'esprit)
Xunfei Hear Translateinutile⭐️⭐️⭐️Généralement fiable2000tranchant (des couteaux ou de l'esprit)
Traduction sur Youtubeinutile⭐️⭐️Généralement fiable600tranchant (des couteaux ou de l'esprit)
Google Translateinutile⭐️⭐️⭐️Nécessite un accès internet à Google5000tranchant (des couteaux ou de l'esprit)
Traduction des nuages colorésinutile⭐️⭐️Généralement fiable5000tranchant (des couteaux ou de l'esprit)
Traduction avec ChatGPT (✨ recommandé)Clé API requise⭐️⭐️⭐️⭐️⭐️Cela dépend de la qualité du fournisseur de services et de l'affluence à l'OpenAI.Dépend du modèleplus lent
+

Autres fonctions

+

Certaines fonctions peuvent être modifiées ou commutées dans le panneau AtCoderBetter Settings situé dans le coin supérieur droit.

+ +

la compatibilité

+

navigateur (logiciel)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 adjuvantversion minimale
Chromeadjuvant96
Egdeadjuvant96
Affaire du chrome domestiqueCompatibilité de base, mais des erreurs inattendues peuvent se produireVersion du noyau Chromium ≥96
FireFox (y compris mobile)adjuvant103
Safarisans soutien\
+ +

Gestionnaire de script

+

Testé uniquement avec le gestionnaire de scripts Tampermonkey, la compatibilité avec Greasemonkey, Violentmonkey, ScriptCat, etc. n'est pas garantie !

+

Autres plug-ins

+

Il n'y a pas de problème de compatibilité avec les principaux plug-ins liés à CF.

+

problèmes courants

+ + + +

Contribuer au code

+

N'hésitez pas à contribuer au code, allez sur Github repository Créez un PR

+

reconnaissant

+ +

Merci, 0rz.

\ No newline at end of file diff --git a/i18n/fr/docs/CodeforcesBetter.html b/i18n/fr/docs/CodeforcesBetter.html new file mode 100644 index 000000000..604cd3224 --- /dev/null +++ b/i18n/fr/docs/CodeforcesBetter.html @@ -0,0 +1,477 @@ +

Codeforces Better!🎈

+

Interface Codeforces en chinois, prise en charge du mode sombre, traduction des titres, vue markdown, copie des titres en un clic, saut vers Logu, page de différenciation des commentaires, affichage du score ClistRating, recoloration des listes

+
+
+
+

Rédigez à l'avance:Notes de retour d'information

+
+

如遇问题,请先阅读下方的 #常见问题 说明。如果没有得到解决,请前往 反馈页 或者 Github issues 反馈。如遇问题,请先阅读下方的 #常见问题 说明。如果没有得到解决,请前往 反馈页 或者 Github issues 反馈。如遇问题,请先阅读下方的 #常见问题 说明。如果没有得到解决,请前往 反馈页 或者 Github issues 反馈。Si vous rencontrez des problèmes, veuillez d'abord lire les instructions #FAQ ci-dessous.Si le problème n'est pas résolu, veuillez consulter la page de commentaires ou Github issues pour faire part de vos commentaires.

+

Veuillez fournir une description détaillée du problème, par exemple ::lien, captures d'écran, résultats souhaités, résultats réels, reproduction……

+

Les discussions amicales et les suggestions de fonctionnalités sont également les bienvenues, mais l'auteur n'est pas tenu de maintenir les scripts et de fournir de l'aide, merci de votre compréhension.

+
+
+

Fonctionnalité

+Astuce Certaines fonctionnalités du script:fournissent des éléments de configuration, vous pouvez ouvrir le panneau de configuration en cliquant sur le boutonCodeforcesBetter Settings à
dans le coin supérieur droit de la page entière de . +

Interface en langue chinoise

+

Siniciser les principaux éléments du site web en chinois (peut être désactivé)

+

Traduction du titre

+

Ajoutez un bouton de traduction dans le coin supérieur droit des titres, blogs, commentaires, etc. pour traduire en chinois en un seul clic, tout en veillant à ce que la formule Latex ne soit pas rompue !

+

Sur cette base, le script prévoit trois modes de traduction:

+ +

Vous pouvez sélectionner le service de traduction que vous souhaitez utiliser (DeepL par défaut) et changer le mode de travail du script dans le panneau CodeforcesBetter settings dans le coin supérieur droit.

+
+
+

Note:Le mode de segmentation/sélection crée les problèmes suivants:

+

- L'impossibilité pour l'interface de traduction de connaître les informations contextuelles de l'ensemble du texte peut réduire la qualité de la traduction.

+

- Certaines parties du contenu ne seront pas traduites/ne pourront pas être sélectionnées parce qu'il ne s'agit pas d'éléments<p/>ou<i/>.

+
+
+

Le script propose les interfaces de traduction suivantes:(la valeur par défaut est DeepL)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  + KEY + Qualité de la traductionfiabilitéNombre maximum de caractères + prendre une période de (x temps)
Traduction de DeepL (✨ recommandé)inutile⭐️⭐️⭐️⭐️Certaines zones peuvent être inaccessibles ou lentes5000tranchant (des couteaux ou de l'esprit)
Xunfei Hear Translateinutile⭐️⭐️⭐️Généralement fiable2000tranchant (des couteaux ou de l'esprit)
Traduction sur Youtubeinutile⭐️⭐️Généralement fiable600tranchant (des couteaux ou de l'esprit)
Google Translateinutile⭐️⭐️⭐️Nécessite un accès internet à Google5000tranchant (des couteaux ou de l'esprit)
Traduction des nuages colorésinutile⭐️⭐️Généralement fiable5000tranchant (des couteaux ou de l'esprit)
Traduction avec ChatGPT (✨ recommandé)Clé API requise⭐️⭐️⭐️⭐️⭐️Cela dépend de la qualité du fournisseur de services et de l'affluence à l'OpenAI.Dépend du modèleplus lent
+Astuce:Cliquez avec le bouton droit de la souris sur le boutonTranslatepour passer rapidement d'un service de traduction à l'autre ! +

traduction automatique

+

Lorsque l'option "Traduction automatique" est activée, les textes courts de la zone.ttypography, .comments sont automatiquement traduits lorsqu'ils entrent dans la zoneconsultablede la fenêtre du navigateur.

+

(Vous pouvez spécifier le nombre de caractères ou moins d'un texte court dans le panneau des paramètres)

+

En outre, lorsque l'option "Traduction rapide dans la zone de commentaires" est activée, pour les textes courts dans la zone de commentaires, la traduction automatique sélectionne de manière aléatoire l'un des services candidats et effectue une traduction rapide en parallèle.

+

Récupération historique des traductions

+

Lorsque l'option "Restauration automatique des traductions historiques" est activée, les informations relatives à la traduction de la page de titresont automatiquement enregistrées dans la table translateData de la base de données CFBetterDB d'indexDB localement dans le navigateur.

+

L'actualisation / rétablit automatiquement les informations relatives à la traduction lorsque vous accédez à nouveau à la page.

+

Note de classement

+

Obtenez les données du Rating score pour le site clist.by et affichez-les !

+

Notez que les informations d'identification requises pour les différents travaux de page varient:

+ +Le script n'obtient pas de cookie spécifique pour clist.by, l'information sur le cookie est automatiquement transmise par le navigateur lorsqu'il envoie la requête, et la validité du cookie est déterminée par le code d'état renvoyé par la tentative de requête. +

Rédacteur et FSL

+

Ajouter un éditeur à la page de titre

+

Ajoutez l'éditeur de code monaco au bas de la page de titre (activé par défaut).

+

Prise en charge de la sauvegarde automatique du code, de la soumission rapide du code, du test en ligne, du LSP, des améliorations complémentaires statiques et d'autres fonctionnalités.

+

Code autosave

+

Le code est automatiquement enregistré dans la table editorCode de la base de données CFBetterDB d'IndexedDB locale au navigateur.

+

Test en ligne

+

Vous pouvez exécuter les échantillons du titre en un seul clic, et vous pouvez également personnaliser les échantillons de test, qui sont automatiquement enregistrés dans la table editorCode de la base de données CFBetterDB.

+

Le script fournit plusieurs services d'exécution de code en ligne:codeforces official, wandbox (3rd party), rextester (3rd party) qui prennent en charge différentes options de paramètres.

+
+
+

Note:

+
    +
  • +

    Il est évident que tous les services d'exécution de code en ligne ne sont pas en mesure de tester les sujets interactifs.

    +
  • +
  • +

    Les services d'exécution de code en ligne de tiers peuvent fonctionner dans des environnements différents des Codeforces, et le code qui fonctionne ou se révèle correct dans un service d'exécution de code en ligne de tiers ne l'est pas nécessairement dans les Codeforces.

    +
  • +
  • +

    Il n'y a aucune garantie que votre code ne sera pas divulgué d'une manière ou d'une autre par un service tiers d'exécution de code en ligne.

    +
  • +
  • +

    En outre, pour une application plus large, les options de compilateur sur la page ne correspondent pas strictement aux options de compilateur réelles du service tiers d'exécution de code en ligne, de sorte qu'il est tout à fait possible d'obtenir des résultats inattendus.

    +
  • +
+
+
+

LSP

+

Après avoir configuré le FSL, vous pouvez fournir les fonctions suivantes à l'éditeur (langages C++ et Python uniquement):

+ +

Bien entendu, il ne prend pas en charge la compilation locale, le débogage par points d'arrêt, les fichiers multiples, etc.……, les performances ne sont pas aussi bonnes que celles des IDE locaux spéciaux.

+

En bref, cette fonction n'est pas très significative ou utile, donc si vous êtes intéressé, consultez la section FAQ ci-dessous pour en savoir plus !

+

Amélioration de la complétion statique

+

Vous pouvez ajouter des règles de complétion de code statique personnalisées à l'éditeur monaco dans Panneau de configuration - Monaco - Améliorations de la complétion statique - Personnalisées.

+

Les règles d'achèvement sont au format JSON, voici un exemple (au format monaco).

+
+  {
+    "suggestions" : [
+        {
+            "label" : "hello world",
+            "kind" : 15,
+            "documentation" : "The is a hello world snippet",
+            "insertText" : "hello world"
+        },
+        // autres suggestions... ]
+}
+
+

Vous pouvez utiliser presque toutes les propriétés de CompletionItem , (note : ne remplissez pas la propriété range, le script la calculera et l'ajoutera automatiquement).

+

Autres fonctions

+ +

la compatibilité

+

navigateur (logiciel)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 adjuvantversion minimale
Chromeadjuvant96
Edgeadjuvant96
Affaire du chrome domestiqueCompatibilité de base, mais des erreurs inattendues peuvent se produireVersion du noyau Chromium ≥96
FireFox (y compris mobile)adjuvant103
Safarisans soutien\
+

Gestionnaire de script

+

Testé uniquement avec le gestionnaire de scripts Tampermonkey, la compatibilité avec Greasemonkey, Violentmonkey, ScriptCat, etc. n'est pas garantie.

+

Autres plug-ins

+

Il n'y a pas de problèmes de compatibilité avec les principaux plug-ins liés à la FC. Si vous rencontrez des problèmes de compatibilité, n'hésitez pas à nous faire part de vos commentaires.

+

miroir (informatique)

+

Soutenez le site léger officiel m1 / m2 / m3 , le site miroir officiel https://mirror.codeforces.com/, le site miroir non officiel https://codeforc.es

+

De plus, il est théoriquement compatible avec n'importe quel autre miroir, il vous suffit d'ajouter une ligne de commentaires // @match your mirror URL et c'est tout !

+

problèmes courants

+
+
Q. Comment commencer ? +
+ A. Vous devez installer Tampermonkey avant d'installer le script. +
+
+
+
Q. Erreur de mise à jour ? +
+

R. En raison de la plateforme Greasy Fork, lorsqu'une nouvelle version est publiée, il peut arriver que la mise à jour/installation actuelle soit la version précédente.

+

En général, il vous suffit d'attendre quelques minutes, puis de procéder à une nouvelle mise à jour/installation.

+

Vous pouvez également déplacer votre souris sur le point d'interrogation rouge dans la boîte d'alerte de mise à jour du script et cliquer sur le bouton "Ne pas mettre à jour maintenant" au bas du message contextuel.

+
+
+
+
Q. Le chargement s'affiche-t-il en permanence ? +
+ R. Veuillez activer l'option "Options de compatibilité - Ne pas attendre le chargement des ressources de la page" dans le panneau des paramètres. +
+
+
+
Q. Utilisation de DeepL erreur de traduction Trop de demandes ? +
+

R. Ce problème est généralement dû au fait que vous avez traduit fréquemment en peu de temps ou que vous avez traduit plus de 5 000 caractères de texte en une seule fois. DeepL a une limite sur le nombre de mots et la fréquence des traductions.

+ C'est temporaire, cela reviendra à la normale au bout d'un moment. +
+
+
+
Q. J'obtiens une erreur de non-définition lorsque j'utilise DeepL ou la traduction est toujours en cours ? +
+ R. Cela est généralement dû au fait que le réseau que vous utilisez ne dispose pas d'un accès approprié à www.deepl.com +
+
+
+
Q. Certaines formules sont présentées comme {xx} / [xx] / [xx] dans le résultat de la traduction ? +
+ A. Lorsque vous utilisez l'interface de traduction commune (DeepL/Youdao/google) pour la traduction, limitée par la manière dont le script est implémenté, il peut y avoir{xx}/[xx]/[xx] +
+
+
+

Traitement des formules par le script

+

Afin d'éviter que les formules LaTeX ne soient corrompues lors de la traduction, le script retire d'abord toutes les formules LaTeX et les place en utilisant le caractère de substitution{xx}/[xx]/[xx], la balise

+

Comme il est probable que ces substitutions ne seront pas corrompues lors de la traduction, il est possible de restaurer les formules LaTeX basées sur les substitutions après la traduction.

+

Cette implémentation fonctionne comme prévu à condition que le caractère de substitution ne soit pas cassé, ce qui ne pose pas de problème dans la grande majorité des cas.

+

Mais il arrive que les services de traduction rompent les substitutions, par exemple, [23] devient [23 / 23] / [23]/ [23 】/ 23 】, auquel cas le script sera restauré par certaines règles régulières de sorte qu'il fonctionne toujours comme prévu.

+

Toutefois, si le service de traduction détruit également davantage de contenu et crée une ambiguïté, par exemple si le service de traduction transforme [2] 313 en [2312], il n'est pas possible de le restaurer.

+

Pour chaque service de traduction, les différentes substitutions ont des probabilités différentes d'être elles-mêmes corrompues. Vous pouvez sélectionner différentes substitutions dans le panneau de configuration situé dans le coin supérieur droit de la fenêtre de traduction.

+

Après des tests, {} donne généralement de meilleurs résultats, c'est donc la substitution par défaut utilisée par les scripts.

+
+
+
+
+
+

Astuce:

+

Ce problème ne se pose pas lors de la traduction avec ChatGPT, car il est possible de demander directement à ChatGPT de "garder les formules LaTeX non traduites" par le biais d'un mot d'invite.

+

Un ChatGPT intelligent peut très bien s'y conformer, et c'est la méthode recommandée pour la traduction des scripts.

+
+
+
+
+
+
Q. Comment traduire avec ChatGPT ? +
+ R. Si vous avez un accès direct à l'interface d'OpenAI et que vous disposez d'un compte, il vous suffit de cocher la case " Utiliser la traduction ChatGPT (API) " et de cliquer sur le bouton " Ajouter " ci-dessous pour créer une nouvelle configuration et remplir le formulaire de configuration. Cliquez sur le bouton "Ajouter" ci-dessous et remplissez-le. +

En outre, vous pouvez également acheter des services proxy api pour utiliser ChatGPT, le tableau suivant rassemble certains fournisseurs de services api, vous pouvez choisir d'utiliser +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 site officielMéthode d'acquisition
API2Dhttps://api2d.com/site officiel
CloseAIhttps://console.closeai-asia.com/site officiel
OhMyGPThttps://aigptx.top/site officiel
OpenAI-SBhttps://openai-sb.com/Bots Telegram
API2GPThttps://www.api2gpt.com/site officiel
AI Proxyhttps://aiproxy.io/site officiel
+
+
+
+

Clause de non-responsabilité:

+

L'auteur collecte et partage uniquement dans le but de partager, ne reçoit aucun revenu et ne garantit pas la stabilité des plateformes susmentionnées, et tout comportement des plateformes n'a rien à voir avec l'auteur.

+

Il est recommandé de recharger par petites quantités et de tout utiliser, car ces fournisseurs de services risquent de faire faillite.

+
+
+

Si vous utilisez un service fourni par un prestataire de services proxy api, la clé KEY dans la configuration doit être la clé fournie par le prestataire de services proxy api.

+

En outre, vous devez compléter l'API Proxy dans la configuration, le champ

+

L'API Proxy doit être remplie dans son intégralité, voici un exemple de CloseAI qui fournit l'API + Base:https://api.closeai-proxy.xyz

+

Ensuite, l'API Proxy doit être suivie de https://api.closeai-proxy.xyz/v1/chat/completions, le

+ Note:Comme vous avez spécifié une API personnalisée, Tampermonkey vous avertira des requêtes inter-domaines, veuillez cliquer sur Autoriser vous-même ! +
+ Note:Si vous souhaitez utiliser Azure OpenAI, comme ses paramètres d'interface ne sont pas les mêmes que l'interface officielle d'OpenAI, vous pouvez choisir de déployerazure-openai-proxypar vous-même afin de convertir l'interface d'Azure OpenAI en interface d'OpenAI. +
+
+
+
Q. Qu'est-ce qu'un LSP ? +
+ A. LSP (Language Server Protocol)est une spécification de protocole initiée par Microsoft pour la communication entre les éditeurs et les serveurs de langues. +

Il sépare de l'éditeur les fonctions de complétion de code, de diagnostic, de suggestions, de documentation et même de gestion de projet que les IDE traditionnels doivent mettre en œuvre, et utilise des services indépendants pour exécuter ces fonctions.

+

L'éditeur n'a qu'à communiquer avec le serveur conformément à la spécification du protocole, ce qui réduit considérablement la charge de travail et permet à l'éditeur de prendre facilement en charge divers langages de programmation.

+

À l'heure actuelle, l'écologie de LSP s'est progressivement améliorée, les principaux éditeurs ont pris en charge LSP ou disposent des plug-ins correspondants, tels que VSCode, Vim, Emacs, etc.....

+

Cependant, les principaux fournisseurs d'IDE commerciaux ne s'intéressent guère à cette question, et le serveur LSP existant est essentiellement maintenu par la communauté open source, de sorte qu'il n'est pas encore aussi performant que les IDE professionnels et une variété de modules d'extension professionnels.

+
+
+
+
Q. Comment utiliser le FSL ? +
+ A. Deux pas seulement: +

Le script:prend en charge les deux implémentations suivantes du serveur LSP en C++ et en Python, que vous devez installer selon les besoins:

+ + + + + + + + + + + + + + + + + + + + +
multilinguismeLSP ServerMéthode d'installation (sous Windows)
C++clangdTéléchargez clangd à partir de clangd release et ajoutez le chemin de clangd au chemin de la variable d'environnement du système, par exemple C:\Nclangd_16.0.2\Nbin\N
PythonpylspExécutez la commande: + pip install "python-lsp-server[all]"et la variable d'environnement sera automatiquement ajoutée.
+

II:Vous devrez également télécharger et décompresser OJBetter_Bridge à partir de GitHub release ou Blue Rhythm Cloud (password:aaaa) , qui assure la communication entre les scripts et le serveur LSP.

+

Placez le dossier extrait dans le répertoire racine de votre disque C ou à tout autre endroit de votre choix (note:Si vous le placez à un autre endroit, vous devez modifier le "Work Path" (chemin de travail) dans le panneau Settings (paramètres) pour l'adapter à votre emplacement réel).

+

Ensuite, vous pouvez exécuter OJBetter_Bridge, qui fournit une version GUI et une version terminal, la version GUI est recommandée pour Windows, exécutez server_gui.exe directement.

+

OJBetter_Bridge vérifie automatiquement si les commandes clangd et pylsp sont valides au démarrage et affiche une invite.

+ Conseil ::Dans l'interface de server_gui.exe vous pouvez le configurer pour qu'il démarre. +

Après avoir effectué les étapes ci-dessus, vous pouvez activer l'option "Use LSP" dans le panneau de configuration et l'utiliser.

+
+
+
+ En savoir plus ? +
+ Pour clangd, il existe deux fichiers de configuration stockés dans le dossier cpp_workspace .clangd,.clang-format +

Ils définissent les éléments de configuration et style de formatage de codede clangd, que vous pouvez modifier.

+
+
+
+
+
+
+
+
Q. Pourquoi le formatage clangd ne fonctionne-t-il pas ? +
+ R. C'est parce que vous avez indiqué un chemin de travail LSP incorrect dans le panneau de configuration. +
+
+
+
Q. Pourquoi clangd ne reconnaît-il pas mes en-têtes <bits/stdc++.h> ? +
+ C'est parce que <bits/stdc++.h> n'est pas un fichier d'en-tête standard, donc clangd ne le supporte pas par défaut, vous devez dire à clang où trouver ce fichier d'en-tête non-standard en modifiant le paramètre de compilation dans le fichier .clangd dans le cpp_workspace + de OJBetter_Bridge (et bien sûr l'utilisation d'un en-tête universel n'est pas recommandée). +
+
+
+
Q. Est-il possible d'utiliser des fichiers JSON locaux pour améliorer la complétion statique ? +
+ R. En raison des restrictions de sécurité du navigateur, vous ne pouvez pas accéder directement à votre fichier JSON local dans le navigateur à l'aide d'une URL telle que file:///xxx . +

Mais vous pouvez le faire avec OJBetter_Bridge, c'est très simple, il vous suffit de placer le fichier JSON xxx.json dans le dossier /mycomplet d'OJBetter_Bridge.

+

En lançant OJBetter_Bridge, vous pourrez créer une nouvelle configuration dans le panneau "Settings" avec une URL JSON de:http://127.0.0.1:2323/mycomplet/xxx.json.

+
+
+

Essayez-le ?

+

Démarrez OJBetter_Bridge, initialement le dossier /mycomplet est livré avec un fichier JSON d'exemple:template.json, vous pouvez donc ajouter une configuration, remplir + http://127.0.0.1:2323/mycomplet/template.json et sauvegarder !

+

Tapez maintenant hello dans l'éditeur et vous verrez deux entrées complémentaires:hello world, hello world2

+
+
+
+
+
+

Contribuer au code

+

N'hésitez pas à contribuer au code, allez sur Github repository Créez un PR

+

Autre JO ?

+

Les auteurs ne maintiennent pas beaucoup de scripts similaires en raison de ressources limitées, donc si vous voulez porter ce script pour votre OJ préféré, vous êtes plus que bienvenu, vous devez juste vous conformer à la licence GPL-3.0 !

+

reconnaissant

+ +

Merci, 0rz.

\ No newline at end of file diff --git a/i18n/fr/resources/subs/Codeforces-subs.json b/i18n/fr/resources/subs/Codeforces-subs.json new file mode 100644 index 000000000..346b5ab6f --- /dev/null +++ b/i18n/fr/resources/subs/Codeforces-subs.json @@ -0,0 +1,859 @@ +{ + "version": "1.0.0", + "commonReplacements": { + ".datatable": { + "class": [ + ".datatable" + ], + "description": "", + "isStrict": false, + "rules": { + "Virtual participation": "Participez au tournoi de reconstitution virtuelle", + "Enter": "entrer dans", + "Current standings": "Liste actuelle", + "Final standings": "Liste finale", + "Preliminary results": "Résultats préliminaires", + "open hacking:": "Piratage ouvert", + "School/University/City/Region Championship": "Compétitions scolaires/universitaires/urbaines/régionales", + "Official School Contest": "Concours scolaires officiels", + "Training Contest": "match d'entraînement", + "Training Camp Contest": "Compétition du camp d'entraînement", + "Official ICPC Contest": "Concours officiel de l'ICPC", + "Official International Personal Contest": "Concours officiel international individuel", + "China": "sino", + "Statements": "Titre Description", + "in Chinese": "Chinois", + "Trainings": "train", + "Prepared by": "auteur", + "Current or upcoming contests": "Concours en cours ou à venir", + "Rating: users participated in recent 6 months": "Rating:Utilisateurs ayant participé au cours des 6 derniers mois", + "Past contests": "Matchs passés", + "Exclusions": "exclure", + "Before start": "Il reste quelques minutes avant le départ de la course.", + "Before registration": "Il reste encore du temps avant l'ouverture des inscriptions", + "Until closing ": "Il est encore temps de clôturer l'inscription", + "Before extra registration": "L'inscription supplémentaire n'est pas encore ouverte", + "Register »": "Inscription \"", + "Registration completed": "Inscrits", + "Registration closed": "L'inscription est maintenant terminée", + "Problems\n": "问题集", + "My Submissions": "Ma soumission", + "Standings": "liste de noms", + "Questions about problems": "Questions sur les thèmes", + "Contest status": "état du jeu", + "Invited users": "Utilisateurs invités", + "Invitation links": "Lien d'invitation", + "API keys": "API密钥" + } + }, + ".menu-list.main-menu-list": { + "class": [ + ".menu-list.main-menu-list" + ], + "description": "", + "isStrict": false, + "rules": { + "Home": "page d'accueil", + "Top": "en vogue", + "Catalog": "Catalogue des guides", + "Contests": "compétition (sports, etc.)", + "Gym": "camp d'entraînement", + "Problemset": "questionnaire", + "Groups": "organisations", + "Rating": "Classement Classement", + "Edu": "cultiver", + "Calendar": "calendrier", + "ICPC Challenge": "ICPC挑战赛", + "Help": "main" + } + }, + ".nav-links": { + "class": [ + ".nav-links" + ], + "description": "", + "isStrict": false, + "rules": { + "Settings": "mettre en place", + "Blog": "blog (mot d'emprunt)", + "Teams": "file d'attente", + "Submissions": "soumettre (un rapport, etc.)", + "Favourites": "signet (Internet)", + "Problemsetting": "Définition du problème", + "Talks": "lettre privée", + "Contests": "compétition (sports, etc.)" + } + }, + ".contest-state-phase": { + "class": [ + ".contest-state-phase" + ], + "description": "", + "isStrict": false, + "rules": { + "Before contest": "prochain concours", + "Contest is running": "Match en cours" + } + }, + ".notice": { + "class": [ + ".notice" + ], + "description": "", + "isStrict": false, + "rules": { + "has extra registration": "Il existe des périodes d'inscription supplémentaires", + "If you are late to register in 5 minutes before the start, you can register later during the extra registration. Extra registration opens 10 minutes after the contest starts and lasts 25 minutes.": "Si vous ne vous êtes pas inscrit 5 minutes avant le départ de la course, vous pouvez vous inscrire plus tard pendant la période d'inscription supplémentaire. Les inscriptions supplémentaires débuteront 10 minutes après le départ de la course et dureront 25 minutes.", + "in timezone ([^)]*)": "1 Fuseau horaire", + "Contest will be available for virtual participation when over. Leave this field blank to allow virtual participation at any time": "Les participations virtuelles seront autorisées après la fin du concours. Laissez ce champ vide pour autoriser les participations virtuelles à tout moment.", + "Contest duration in minutes": "Durée du match (minutes)", + "or choose": "ou sélectionnez", + "Standings freeze period in minutes": "Temps d'arrêt de la liste (minutes)", + "Time when final results are available": "Temps disponible pour les résultats finaux", + "Is it allowed to solve contest problems unofficially after the end": "Si la résolution non officielle des problèmes liés au match est autorisée après la fin du match", + "Is it allowed to run contest as virtual after the end": "Si les inscriptions virtuelles sont autorisées après le concours", + "Is it allowed participate in contest out of competition": "Si les inscriptions non compétitives sont autorisées", + "Are participants allowed to register for the contest themselves": "Si les participants sont autorisés à s'inscrire eux-mêmes", + "Can non-registered users and anonyms view contest standings, problems and other statistics": "Autoriser ou non les utilisateurs non enregistrés et anonymes à consulter les classements des courses, les questions et d'autres statistiques.", + "If unchecked they will view only personal status": "Si la case n'est pas cochée, ils ne pourront consulter que les statuts individuels.", + "To manage allowed program languages": "Gestion des langages de programmation autorisés", + "The system will automatically adjust time limits for some languages. Recommended for use only for educational purpose.": "Le système ajustera automatiquement la limite de temps pour certaines langues. Recommandé à des fins éducatives uniquement.", + "Check it if you want to allow contestants view statements": "Cochez cette case si vous souhaitez permettre au participant de voir la description de la question.", + "Check it if contestants can view standings": "Cochez cette case si vous souhaitez permettre aux participants de consulter les classements.", + "Where the contest was held originally": "Lieu où le concours a été organisé à l'origine", + "Official contest site URL": "URL du site officiel du concours", + "Enter a name for your new API key. It should describe what this key is used for.": "为您的新API密钥输入一个名称。它应该描述这个密钥的用途。", + "Enter your account password to confirm access. If you do not have password, logout and use password recovery feature.": "输入您的账户密码以确认访问。如果您没有密码,请注销并使用密码恢复功能。" + } + }, + ".propertyLinks": { + "class": [ + ".propertyLinks" + ], + "description": "", + "isStrict": false, + "rules": { + "Contribution": "dédier" + } + }, + ".contests-table": { + "class": [ + ".contests-table" + ], + "description": "", + "isStrict": false, + "rules": { + "Contest history": "Historique du concours" + } + }, + ".roundbox.sidebox.borderTopRound ": { + "class": [ + ".roundbox.sidebox.borderTopRound " + ], + "description": "", + "isStrict": false, + "rules": { + "Register now": "S'inscrire maintenant", + "No tag edit access": "Pas de privilèges d'édition de tags", + "Problem([\\s]*)$": "问题", + "Verdict": "état d'avancement de l'adjudication", + "Language:": "Langues.", + "Participant": "candidats", + "Choose file:": "Sélectionnez un fichier." + } + }, + ".icon-eye-close.icon-large": { + "class": [ + ".icon-eye-close.icon-large" + ], + "description": "", + "isStrict": false, + "rules": { + "Add to exclusions": "Ajouter à la liste d'exclusion" + } + }, + "null": { + "class": [ + null + ], + "description": "", + "isStrict": false, + "rules": { + "Add to exclusions for gym contests filter": "Ajouter des exclusions au filtre Boot Camp" + } + }, + ".roundbox.sidebox.sidebar-menu.borderTopRound": { + "class": [ + ".roundbox.sidebox.sidebar-menu.borderTopRound" + ], + "description": "", + "isStrict": false, + "rules": { + "Announcement": "bulletin", + "Statements": "Rapports statistiques", + "Tutorial": "notes" + } + }, + ".second-level-menu": { + "class": [ + ".second-level-menu" + ], + "description": "", + "isStrict": false, + "rules": { + "Problems": "questions", + "Submit Code": "Soumettre le code", + "My Submissions": "Ma soumission", + "Status": "état des lieux", + "Standings": "liste de noms", + "Adm.": "managérial", + "Edit": "compilateur", + "Custom Invocation": "Débogage personnalisé", + "Common standings": "Tous les classements", + "Friends standings": "Réservé aux amis.", + "Submit": "soumettre (un rapport, etc.)", + "Hacks": "hacker (informatique) (mot d'emprunt)", + "Room": "cabines", + "Custom test": "Tests personnalisés", + "Blog": "blog (mot d'emprunt)", + "Teams": "file d'attente", + "Submissions": "Soumission des dossiers", + "Groups": "organisations", + "Rating": "classements", + "Friends rating": "Note des amis", + "Favourites": "signet (Internet)", + "Contests": "compétition (sports, etc.)", + "Magic": "魔法", + "Handle": "账号", + "Members": "membres", + "问题etting": "Participation à la préparation des questions", + "Streams": "diffusion directe sur l'internet", + "Gym": "camp d'entraînement", + "Mashups": "mélanger et assortir (des vêtements, etc.)", + "Posts": "carte", + "Comments": "retour (à un état antérieur)", + "Main": "agrafe", + "Settings": "mettre en place", + "Lists": "listes", + "General": "fondamental", + "Sidebar": "une barre latérale (dans un logiciel)", + "Social": "la sécurité sociale (pensions, assurance médicale)", + "Address": "adresse", + "Wallets": "sacs à main" + } + }, + ".topic-toggle-collapse": { + "class": [ + ".topic-toggle-collapse" + ], + "description": "", + "isStrict": false, + "rules": { + "Expand": "commencement" + } + }, + ".topic-read-more": { + "class": [ + ".topic-read-more" + ], + "description": "", + "isStrict": false, + "rules": { + "Full text and comments": "Lire la suite/commentaires" + } + }, + ".toggleEditorCheckboxLabel": { + "class": [ + ".toggleEditorCheckboxLabel" + ], + "description": "", + "isStrict": false, + "rules": { + "Switch off editor": "Désactiver la coloration syntaxique de l'éditeur" + } + }, + ".submit": { + "class": [ + ".submit" + ], + "description": "", + "isStrict": false, + "rules": { + "Registration for the contest": "Inscription au concours" + } + }, + "._FilterByTagsFrame_difficulty": { + "class": [ + "._FilterByTagsFrame_difficulty" + ], + "description": "", + "isStrict": false, + "rules": { + "Difficulty:": "Difficulté." + } + }, + "._FilterByTagsFrame_addTagLink": { + "class": [ + "._FilterByTagsFrame_addTagLink" + ], + "description": "", + "isStrict": false, + "rules": { + "Add tag": "Ajouter des tags" + } + }, + ".alert": { + "class": [ + ".alert" + ], + "description": "", + "isStrict": false, + "rules": { + "Rating changes for last rounds are temporarily rolled back. They will be returned soon.": "Les changements de notation du tour précédent ont été temporairement annulés. Elles seront rétablies sous peu.", + "Reminder: in case of any technical issues, you can use the lightweight website": "Rappel:En cas de problème technique, vous pouvez utiliser le site léger", + "Please subscribe to the official Codeforces channel in Telegram via the link ": "Veuillez vous abonner au canal Telegram officiel de Codeforces via le lien !" + } + }, + ".lang-chooser": { + "class": [ + ".lang-chooser" + ], + "description": "", + "isStrict": false, + "rules": { + "Enter": "s'inscrire", + "Register": "inscription", + "Contest rating": "Note d'essai", + "Logout": "Déconnexion" + } + }, + ".userbox": { + "class": [ + ".userbox" + ], + "description": "", + "isStrict": false, + "rules": { + "Change photo": "Remplacement des images", + "Contest rating": "Course", + "Contribution": "dédier", + "My friends": "Ma meilleure amie.", + "Change settings": "Modifier les paramètres", + "Last visit": "dernier accès", + "not visible": "不可见的", + "Registered": "enregistré en", + "Blog entries": "Articles de blog", + "comments": "commentaires", + "Write new entry": "Préparation des nouvelles entrées", + "View my talks": "Voir mes messages privés", + "Talks": "lettre privée", + "Send message": "envoyer un message" + } + }, + "#vote-reset-filterDifficultyLowerBorder": { + "class": [ + "#vote-reset-filterDifficultyLowerBorder" + ], + "description": "", + "isStrict": false, + "rules": { + "Reset": "reprovision" + } + }, + "#vote-reset-filterDifficultyUpperBorder": { + "class": [ + "#vote-reset-filterDifficultyUpperBorder" + ], + "description": "", + "isStrict": false, + "rules": { + "Reset": "reprovision" + } + }, + ".alert.alert-info": { + "class": [ + ".alert.alert-info" + ], + "description": "", + "isStrict": false, + "rules": { + "The problem statement has recently been changed.": "La description du titre a été récemment modifiée.", + "View the changes.": "Voir les changements" + } + }, + ".enterPage": { + "class": [ + ".enterPage" + ], + "description": "", + "isStrict": false, + "rules": { + "Fill in the form to login into Codeforces.": "Remplissez le formulaire pour vous connecter à Codeforces.", + "You can use": "Vous pouvez également utiliser la fonction", + "as an alternative way to enter.": "s'inscrire" + } + }, + ".notice.small": { + "class": [ + ".notice.small" + ], + "description": "", + "isStrict": false, + "rules": { + "\\* To view the complete list, click ": "* : : Pour voir la liste complète, cliquez sur" + } + }, + ".setting-name": { + "class": [ + ".setting-name" + ], + "description": "", + "isStrict": false, + "rules": { + "Contest type:": "Type de concours:", + "Rated:": "Classé:", + "Tried:": "tenté", + "Substring:": "mots-clés" + } + }, + ".by-form": { + "class": [ + ".by-form" + ], + "description": "", + "isStrict": false, + "rules": { + "Sort by:": "Classé par:", + "relevance": "(statistiques) corrélation", + "popularity": "un enthousiasme de courte durée", + "time": "fois" + } + }, + ".roundbox.borderTopRound": { + "class": [ + ".roundbox.borderTopRound" + ], + "description": "", + "isStrict": false, + "rules": { + "If you invite users to this contest, the contest will become visible to them regardless of its visibility. You can share the contest using the link:": "Si vous invitez un utilisateur à participer à ce concours, le concours sera visible pour l'utilisateur, quelle que soit sa visibilité. Vous pouvez partager le concours en utilisant le lien suivant:", + "Generate link and share it with other users": "Créez des liens et partagez-les avec d'autres utilisateurs", + "Show Log »": "Journal de bord \"", + "Move all to practice »": "Tous déplacés vers Praticien \"", + "Remove All »": "Supprimer tout \"", + "Add »": "Ajouter \"", + "Set »": "Paramètres \"", + "Download Archive »": "Télécharger les archives \"" + } + }, + ".caption.titled": { + "class": [ + ".caption.titled" + ], + "description": "Encadré intitulé \"Le chinois", + "isStrict": false, + "rules": { + "Pay attention": "prenez note", + "Top rated": "classement des notes", + "Top contributors": "Classement des contributeurs", + "Find user": "Trouver des utilisateurs", + "Recent actions": "Dernières nouvelles", + "Training filter": "Filtrage et tamisage", + "Find training": "Recherche de concours/problèmes", + "Virtual participation": "Qu'est-ce qu'une entrée virtuelle ?", + "Contest materials": "Informations relatives à la concurrence", + "Settings": "mettre en place", + "Create Mashup Contest": "Créez un concours de mashups", + "Clone Contest to Mashup": "Le match des clones au Mashup des combos", + "Invitations": "invitations", + "Status filter": "Filtre d'état", + "Administration": "managérial", + "Submit": "soumettre (un rapport, etc.)", + "Practice": "exercice", + "Problem tags": "étiquette de question", + "Filter Problems": "Problèmes de filtrage", + "Last unsolved": "Non résolu la dernière fois", + "Attention": "prenez note", + "Past contests filter": "Dépistage des anciens matches", + "About Contest": "À propos du concours", + "Last submissions": "Historique de la soumission", + "Streams": "diffusion directe sur l'internet", + "Coach rights": "Autorité organisatrice", + "Advices to fill address": "Suggestions pour compléter votre adresse", + "Hacks filter": "Filtre anti-piratage", + "Score table": "échelle de notation", + "Contests": "compétition (sports, etc.)", + "History": "Histoire éditoriale", + "Login into Codeforces": "Connectez-vous à Codeforces", + "Export the judgment log to DAT-file": "Exportation du journal des décisions sous forme de fichier DAT", + "Contest managers": "Administrateur du concours", + "Contest writers": "Rédacteurs de concours", + "Spectator ranklists": "Liste de classement de l'audience", + "Ghosts:": "joueur fantôme", + "Export Submissions": "Soumission à l'exportation", + "Register in Codeforces": "注册 Codeforces" + } + }, + "QuestionFilter1": { + "class": [ + "#gym-filter-form div label", + "#gym-filter-form div" + ], + "description": "Traitement des options du filtre de titre", + "isStrict": false, + "rules": { + "Contest type:": "Type de concours.", + "ICPC region:": "Régions de l'ICPC.", + "Contest format:": "Format du concours.", + "Order by:": "Trier par.", + "Secondary order by:": "Commande secondaire.", + "Hide, if participated:": "Cachez ceux auxquels j'ai participé.", + "Hide excluded gyms": "Cachez les exclusions.", + "Season:": "Calendrier (annuel)", + "Duration, hours:": "Durée (heures).", + "Difficulty:": "Difficulté." + } + }, + "QuestionFilter2": { + "class": [ + ".setting-value select option", + ".setting-last-value select option" + ], + "description": "", + "isStrict": false, + "rules": { + "Official ACM-ICPC Contest": "Concours officiel de l'ICPC", + "Official School Contest": "Concours scolaires officiels", + "Opencup Contest": "Concours de l'Opencup", + "School/University/City/Region Championship": "Championnats d'école/d'université/de ville/de région", + "Training Camp Contest": "Compétition du camp d'entraînement", + "Official International Personal Contest": "Concours officiel international individuel", + "Training Contest": "match d'entraînement", + "ID_ASC": "Heure de création (ordre croissant)", + "ID_DESC": "Heure de création (par ordre décroissant)", + "RATING_ASC": "Classement (ordre croissant)", + "RATING_DESC": "Classement (décroissant)", + "DIFFICULTY_ASC": "Difficulté (ordre croissant)", + "DIFFICULTY_DESC": "Difficulté (par ordre décroissant)", + "START_TIME_ASC": "Heure de début (ordre croissant)", + "START_TIME_DESC": "Heure de début (par ordre décroissant)", + "DURATION_ASC": "Durée (par ordre croissant)", + "DURATION_DESC": "Durée (par ordre décroissant)", + "POPULARITY_ASC": "Chaleur (ordre croissant)", + "POPULARITY_DESC": "Chaleur (ordre décroissant)", + "UPDATE_TIME_ASC": "Heure de mise à jour (ordre croissant)", + "UPDATE_TIME_DESC": "Heure de mise à jour (par ordre décroissant)" + } + }, + "CompetitionFilter": { + "class": [ + ".options li label", + ".CaptionCont span" + ], + "description": "Options du filtre de course chinois", + "isStrict": false, + "rules": { + "Educational": "instructif", + "Global": "globalement", + "VK Cup": "Coupe VK", + "Long Rounds": "longue période de temps", + "April Fools": "Poisson d'avril", + "Team Contests": "concours par équipe", + "ICPC Scoring": "Notation de l'ICPC", + "Doesn't matter": "----", + "Any": "propriété", + "Yes$": "是", + "No$": "否", + "No submission(s)": "Pas de soumission", + "Have submission(s)": "Soumis", + "No solved problem(s)": "Pas de résolution de problèmes", + "Have solved problem(s)": "Résolution de problèmes." + } + }, + "RightSidebox": { + "class": [ + ".sidebox div label" + ], + "description": "Encadré latéral droit en chinois", + "isStrict": false, + "rules": { + "Show tags for unsolved problems": "Afficher les étiquettes pour les questions non résolues", + "Hide solved problems": "Cacher les problèmes résolus" + } + }, + "FormField-name": { + "class": [ + "td.field-name label" + ], + "description": "", + "isStrict": false, + "rules": { + "Postal/zip code": "Code postal", + "Country //(English//)": "国家(英文)", + "State //(English//)": "州/省份(英文)", + "City //(English//)": "城市(英文)", + "Address //(English//)": "地址(英文)", + "Recipient //(English//)": "收件人姓名(英文)", + "Country //(Native//)": "国家(本地语言)", + "State //(Native//)": "州/省份(本地语言)", + "City //(Native//)": "城市(本地语言)", + "Address //(Native//)": "地址(本地语言)", + "Recipient //(Native//)": "收件人姓名(本地语言)", + "Phone": "téléphones", + "TON Wallet:": "PORTEFEUILLE TON.", + "Secret Code:": "Captcha.", + "Terms of agreement:": "Conditions de l'accord.", + "Choose team:": "Sélectionnez l'équipe." + } + }, + "QuestionTag": { + "class": [ + "._FilterByTagsFrame_addTagLabel select option", + "._FilterByTagsFrame_tagBoxCaption", + ".notice", + ".tag-box" + ], + "description": "", + "isStrict": false, + "rules": { + "combine tags by OR": "Étiquettes par logique ou combinaison de mes choix", + "combine-tags-by-or": "Combiner mon choix de balises par logique ou (combine-tags-by-or)", + "2-sat": "Problème de satisfiabilité d'un graphe bipartite (2-sat)", + "binary search": "Recherche binaire", + "bitmasks": "Bitmasks", + "brute force": "Dénombrement par force brute.", + "chinese remainder theorem": "théorème du reste chinois (中国剩余定理)", + "combinatorics": "Combinatoire", + "constructive algorithms": "Algorithmes constructifs (algorithmes constructifs)", + "data structures": "Structures de données", + "dfs and similar": "Recherche en profondeur et ses variantes (dfs et similaires)", + "divide and conquer": "Algorithme de division et de conquête.", + "dp": "Programmation dynamique (dp)", + "dsu": "Ensemble de recherche parallèle (dsu)", + "expression parsing": "Analyse des expressions", + "fft": "Transformée de Fourier rapide (fft)", + "flows": "Flux", + "games": "Théorie des jeux (jeux)", + "geometry": "Géométrie informatique", + "graph matchings": "Correspondance des graphes", + "graphs": "Théorie des graphes (graphes)", + "greedy": "Gourmande", + "hashing": "Table de hachage (hashing)", + "implementation": "Questions de mise en œuvre, compétences en programmation, simulation (mise en œuvre)", + "interactive": "Questions relatives à l'interactivité (interactive)", + "math": "Mathématiques (math)", + "matrices": "Matrices", + "meet-in-the-middle": "algorithme de rencontre au milieu (meet-in-the-middle)", + "number theory": "Théorie des nombres", + "probabilities": "Probabilités", + "schedules": "Algorithmes d'ordonnancement (horaires)", + "shortest paths": "Algorithmes du plus court chemin (chemins les plus courts)", + "sortings": "Algorithmes de tri (tris)", + "string suffix structures": "Structures de suffixes de chaînes", + "strings": "Traitement des chaînes de caractères (chaînes)", + "ternary search": "Recherche ternaire", + "trees": "Arborescence (arbres)", + "two pointers": "Algorithme des deux pointeurs (deux pointeurs)" + } + }, + "SettingField-name": { + "class": [ + ".field-name" + ], + "description": "Configurer les champs de la page", + "isStrict": false, + "rules": { + "Hide sidebar block \"Find user\"": "Cachez le bloc de la barre latérale \"Trouver des utilisateurs\".", + "Hide sidebar block \"Current user\"": "Cachez le bloc de la barre latérale \"Current User\".", + "Hide sidebar block \"Recent аctions\"": "Masquer le bloc \"Quoi de neuf\" dans la barre latérale.", + "Hide sidebar block \"Favourite groups\"": "Cachez le bloc de la barre latérale \"Groupes favoris\".", + "Hide sidebar block \"Top contributors\"": "Masquer le bloc de la barre latérale \"Classement des contributeurs\".", + "Hide sidebar block \"Top rated\"": "Cachez le bloc de la barre latérale \"Classement\".", + "Hide sidebar block \"Streams\"": "Masquer le bloc \"Live\" de la barre latérale", + "Old password": "ancien mot de passe", + "New password": "nouveau mot de passe", + "Confirm new password": "Confirmez le nouveau mot de passe", + "Contest email notification": "Notification par courriel du concours", + "Send email on new user talk": "Envoyez un courrier électronique lorsqu'un nouvel utilisateur dialogue avec vous.", + "Send email on new comment": "Envoyez un courrier électronique lorsqu'un nouveau commentaire est ajouté", + "Hide contact information": "Cacher les informations de contact", + "Remember me by Gmail, Facebook and etc": "Souvenez-vous de moi sur Gmail, Facebook, etc.", + "Show tags for unsolved problems": "Afficher les étiquettes pour les questions non résolues", + "Hide solved problems from problemset": "Masquer les questions résolues dans les ensembles de problèmes", + "Hide low rated blogs": "Masquer les blogs mal notés", + "Offer to publish great rating rises": "Permet de démontrer l'amélioration significative de la notation", + "Enforce https": "Forcer HTTPS", + "Show private activity in the profile": "Afficher les activités privées dans le profil", + "Show diagnostics": "Affichage des informations de diagnostic" + } + }, + "CloneContestFormField": { + "class": [ + ".field-name" + ], + "description": "Clonage du concours vers le formulaire de configuration du mashup virtuel", + "isStrict": false, + "rules": { + "Problem:": "Titre.", + "Question": "问题", + "Language:": "Langues.", + "Source code:": "Code source.", + "Or choose file:": "Ou sélectionnez le fichier.", + "Choose file:": "Sélectionnez un fichier.", + "Notice:": "Attention.", + "virtual participation:": "Participation virtuelle.", + "Registration for the contest:": "Inscription à la course.", + "Take part:": "Participation.", + "as individual participant:": "En tant que participants individuels.", + "as a team member:": "En tant que membre d'une équipe.", + "Virtual start time:": "Heure de début virtuelle.", + "Complete problemset:": "Série complète de questions.", + "First name \\(English\\)": "Nom (anglais)", + "Last name \\(English\\)": "Nom de famille (anglais)", + "First name \\(Native\\)": "Nom (langue locale)", + "Last name \\(Native\\)": "Nom de famille (langue locale)", + "Birth date": "la date de naissance", + "Country": "nations", + "City": "municipalités", + "Organization": "organisations", + "Handle/Email": "Numéro de compte/Email", + "Name": "名称", + "Handle": "账号", + "Email": "邮箱", + "Confirm": "确认", + "Password": "cryptographique", + "New Rank": "新的Rank", + "Training name \\(English\\):": "Nom de la formation (anglais).", + "Training name \\(Russian\\):": "Nom de la formation (en russe).", + "Contest format:": "Format du concours.", + "Start time:": "Heure de début.", + "Duration:": "La durée de l'opération est de deux ans.", + "Visibility:": "Visibilité.", + "Attach parent contest\\?:": "Match de sire associé ?", + "Participation type:": "Type de participation.", + "Freeze period:": "Période de gel.", + "Unfreeze time:": "Temps de décongélation.", + "Is practice allowed\\?:": "La pratique est-elle autorisée ?", + "Is virtual allowed\\?:": "Les entrées virtuelles sont-elles autorisées ?", + "Is out of competition allowed\\?:": "Les candidatures non compétitives sont-elles autorisées ?", + "Is self-registration allowed\\?:": "L'auto-inscription est-elle autorisée ?", + "Can non-registered view the contest\\?:": "Les utilisateurs non enregistrés peuvent-ils voir le concours ?", + "Can participants view common status\\?:": "Les participants peuvent-ils vérifier l'état du partage ?", + "Contest testdata policy:": "Stratégie en matière de données de test de match.", + "Allow view other submissions to:": "Permettre de voir d'autres soumissions à.", + "Manage program languages:": "Langages de programmation gérés.", + "Use time limits scaling policy\\?:": "Utiliser une politique d'échelonnement limitée dans le temps ?", + "Allow statements\\?:": "Permettre l'affichage de la description du titre ?", + "Allow standings\\?:": "Permettre de consulter les classements ?", + "Season:": "Saison.", + "Contest type:": "Type de concours.", + "ICPC region:": "Régions de l'ICPC.", + "Country:": "Pays.", + "City:": "Villes.", + "Contest difficulty:": "Difficulté de la course.", + "Website URL:": "Lien web.", + "Description \\(English\\):": "Description (en anglais).", + "Description \\(Russian\\):": "Description (en russe).", + "Registration confirmation text \\(English\\):": "Texte de confirmation de l'enregistrement (anglais).", + "Registration confirmation text \\(Russian\\):": "Texte de confirmation de l'enregistrement (en russe).", + "Logo \\(English\\):": "Logo (anglais).", + "Logo \\(Russian\\):": "Logo (russe).", + "End time:": "Heure de fin.", + "Name:": "Nom.", + "Contest\\(s\\):": "Concours.", + "Add contest:": "Ajouter un concours.", + "Show Contestants:": "Les candidats à l'émission.", + "Show Out of Competition Participants:": "Les participants à l'exposition qui ne participent pas à la compétition.", + "Show Practices:": "Exercice d'exposition.", + "Show Virtuals:": "Afficher les joueurs virtuels.", + "Show Ghosts:": "Montrer Ghost Player.", + "Text:": "Texte.", + "Rewrite Examples:": "Exemple de réécriture.", + "Add images:": "Ajouter une image.", + "Do not use:": "Non utilisés.", + "Problem short name:": "Abréviation du titre.", + "Source problem:": "Numéro de la source.", + "Problem name \\(English\\):": "Titre (en anglais).", + "Input file name:": "Nom du fichier d'entrée.", + "Output file name:": "Nom du fichier de sortie.", + "Time Limit:": "Limite de temps.", + "Memory Limit:": "Limitations de la mémoire.", + "Output only:": "Sortie uniquement." + } + }, + ".ask-question-link": { + "class": [ + ".ask-question-link" + ], + "description": "", + "isStrict": false, + "rules": { + "Ask a question": "Posez une question." + } + }, + "add-announcement-link": { + "class": [ + ".add-announcement-link" + ], + "description": "", + "isStrict": false, + "rules": { + "Add announcement": "Ajouter une annonce" + } + }, + "demo": { + "class": [ + "Class" + ], + "description": "", + "isStrict": false, + "rules": { + "SourceText": "TargetText" + } + } + }, + "InputValueReplacements": { + "InputSubmit": { + "class": [ + "input[type='submit']" + ], + "description": "Soumettre le chinois", + "isStrict": false, + "rules": { + "Register for virtual participation": "S'inscrire aux entrées virtuelles", + "Register for practice": "Connectez-vous pour commencer à pratiquer", + "Apply": "appareil", + "Register": "inscrire son nom", + "Login": "s'inscrire", + "Run": "être en mouvement", + "Start virtual contest": "Démarrer la saisie virtuelle", + "Manage invitations": "Invitations à la gestion", + "Disable manager mode": "Fermeture temporaire du mode de gestion", + "Enable manager mode": "Mode de gestion ouvert", + "Clone Contest": "concours de clonage", + "Submit": "soumettre (un rapport, etc.)", + "Save changes": "Sauvegarder les paramètres", + "Filter": "filtration", + "Find": "localiser", + "Save": "enregistrer (un fichier, etc.) (informatique)", + "Create Mashup Contest": "Créez un concours de mashups", + "Delete problem": "Supprimer la question", + "Restore problem": "Questions relatives à la récupération", + "Generate": "生成", + "Send": "发送" + } + }, + "InputButton": { + "class": [ + "input[type='button']" + ], + "description": "", + "isStrict": false, + "rules": { + "Reset": "reprovision", + "Delete contest": "Supprimer la correspondance", + "Preview": "avant-premières" + } + } + } +} \ No newline at end of file diff --git a/i18n/hi/README.md b/i18n/hi/README.md new file mode 100644 index 000000000..b4f663148 --- /dev/null +++ b/i18n/hi/README.md @@ -0,0 +1 @@ +# OJBetter diff --git a/i18n/hi/docs/AtCoderBetter.html b/i18n/hi/docs/AtCoderBetter.html new file mode 100644 index 000000000..352154eb3 --- /dev/null +++ b/i18n/hi/docs/AtCoderBetter.html @@ -0,0 +1,242 @@ +

AtCoder Better!🎈

+

एटकोडर इंटरफ़ेस का चीनीकरण, डार्क मोड समर्थन, प्रश्न अनुवाद, मार्कडाउन दृश्य, प्रश्न की एक-क्लिक प्रतिलिपि, लुओगु पर जाएं

+

समारोह

+

टिप:स्क्रिप्ट के कुछ फ़ंक्शन कॉन्फ़िगरेशन आइटम प्रदान करते हैं। आप सेटिंग्स पैनल खोलने के लिए पूरे पृष्ठ के ऊपरी दाएं कोने एटकोडरबेटर सेटिंग्स बटन पर क्लिक कर सकते हैं।

+

चीनी इंटरफ़ेस

+

वेबसाइट के मुख्य तत्वों का चीनी भाषा में अनुवाद करें। यदि कहीं कोई त्रुटि या खराब अनुवाद है, तो कृपया प्रतिक्रिया दें।

+

आप ऊपरी दाएं कोने में AtCoderBetter सेटिंग्स पैनल में चीनी को चालू या बंद करना चुन सकते हैं

+

शीर्षक अनुवाद

+

प्रश्नों, ब्लॉगों, टिप्पणियों आदि के ऊपरी दाएं कोने में एक अनुवाद बटन जोड़ें, और आप यह सुनिश्चित करते हुए कि लेटेक्स फॉर्मूला नष्ट नहीं हुआ है, एक क्लिक से इसका चीनी में अनुवाद कर सकते हैं।

+

आप ऊपरी दाएं कोने में AtCoderBetter सेटिंग्स पैनल में उस अनुवाद सेवा का चयन कर सकते हैं जिसका आप उपयोग करना चाहते हैं (डिफ़ॉल्ट Deepl है)

+

टिप:अनुवाद सेवाओं के बीच शीघ्रता से स्विच करने के लिएअनुवादबटन पर राइट-क्लिक करें।

+

:के लिए निम्नलिखित अनुवाद इंटरफ़ेस उपलब्ध कराए गए हैं

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  + KEY + अनुवाद गुणवत्ताविश्वसनीयतावर्णों की अधिकतम संख्या + बहुत समय लगेगा
गहरा अनुवाद (✨अनुशंसित)अनावश्यक⭐️⭐️⭐️⭐️कुछ क्षेत्र दुर्गम या धीमे हो सकते हैं5000जल्दी
आईफ्लाईटेक अनुवादअनावश्यक⭐️⭐️⭐️आमतौर पर विश्वसनीय2000जल्दी
Youdao अनुवादअनावश्यक⭐️⭐️आमतौर पर विश्वसनीय600जल्दी
गूगल अनुवादअनावश्यक⭐️⭐️⭐️वर्तमान नेटवर्क को Google तक सुचारू रूप से पहुंचने में सक्षम होना चाहिए।5000जल्दी
कैयुन अनुवादअनावश्यक⭐️⭐️आमतौर पर विश्वसनीय5000जल्दी
ChatGPT का उपयोग करके अनुवाद करें (✨अनुशंसित)एपीआई कुंजी आवश्यक है⭐️⭐️⭐️⭐️⭐️सेवा प्रदाता की गुणवत्ता और OpenAI की भीड़ पर निर्भर करता हैमॉडल पर निर्भर करता हैऔर धीमा
+

अन्य कार्य

+

कुछ फ़ंक्शन को ऊपरी दाएं कोने में AtCoderBetter सेटिंग्स पैनल में बदला/स्विच किया जा सकता है

+ +

अनुकूलता

+

ब्राउज़र

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 सहायतान्यूनतम संस्करण
Chromeसहायता96
Egdeसहायता96
घरेलू क्रोमियम मामलामूल रूप से संगत, लेकिन अप्रत्याशित त्रुटियाँ हो सकती हैंक्रोमियम कर्नेल संस्करण ≥96
फ़ायरफ़ॉक्स (मोबाइल संस्करण सहित)सहायता103
Safariसमर्थन नहीं\
+ +

स्क्रिप्ट मैनेजर

+

केवल टैम्परमोनकी स्क्रिप्ट मैनेजर में परीक्षण किया गया, ग्रीसमोनकी, वायलेंटमोनकी, स्क्रिप्टकैट आदि में अनुकूलता की कोई गारंटी नहीं है।

+

अन्य प्लगइन्स

+

मुख्यधारा सीएफ-संबंधित प्लग-इन के साथ कोई संगतता समस्याएँ नहीं हैं। यदि आपको संगतता समस्याएँ आती हैं, तो कृपया प्रतिक्रिया दें।

+

आम समस्या

+ + + +

कोड योगदान करें

+

योगदान कोड में आपका स्वागत है, कृपया पीआर बनाने के लिए जीथब रिपॉजिटरी पर जाएं

+

आभारी

+ +

धन्यवाद, 0rz

\ No newline at end of file diff --git a/i18n/hi/docs/CodeforcesBetter.html b/i18n/hi/docs/CodeforcesBetter.html new file mode 100644 index 000000000..733bb1127 --- /dev/null +++ b/i18n/hi/docs/CodeforcesBetter.html @@ -0,0 +1,472 @@ +

Codeforces Better!🎈

+

कोडफोर्स इंटरफ़ेस चीनीकरण, डार्क मोड समर्थन, प्रश्न अनुवाद, मार्कडाउन दृश्य, प्रश्न की एक-क्लिक प्रतिलिपि, लुओगु पर जाएं, टिप्पणी अनुभाग पृष्ठ, क्लिस्टरेटिंग स्कोर डिस्प्ले, सूची पुनः रंगना

+
+
+
+

सामने:फीडबैक निर्देश लिखें

+
+

यदि आपको कोई समस्या आती है, तो कृपया पहले नीचे दिए गए #FAQ निर्देश पढ़ें।यदि इसका समाधान नहीं हुआ है, तो कृपया फीडबैक पृष्ठ या जीथब अंक फीडबैक पर जाएं।

+

कृपया समस्या का विस्तृत विवरण प्रदान करें, जैसे:लिंक, स्क्रीनशॉट, अपेक्षित परिणाम, वास्तविक परिणाम और पुनरुत्पादन विधि……

+

मैत्रीपूर्ण चर्चाओं और फीचर सुझावों का भी स्वागत है, लेकिन स्क्रिप्ट को बनाए रखना और सहायता प्रदान करना लेखक का दायित्व नहीं है, आपकी समझ के लिए धन्यवाद।

+
+
+

समारोह

+टिप:स्क्रिप्ट के कुछ फ़ंक्शन कॉन्फ़िगरेशन आइटम प्रदान करते हैं। आप सेटिंग पैनल खोलने के लिए पूरे पृष्ठ के ऊपरी दाएं
में कोडफोर्सबेटर सेटिंग्स बटन पर क्लिक कर सकते हैं। +

चीनी इंटरफ़ेस

+

वेबसाइट के मुख्य तत्वों को चीनी में चीनीकृत करें (बंद किया जा सकता है)

+

शीर्षक अनुवाद

+

प्रश्नों, ब्लॉगों, टिप्पणियों आदि के ऊपरी दाएं कोने में एक अनुवाद बटन जोड़ें, और आप यह सुनिश्चित करते हुए कि लेटेक्स फॉर्मूला नष्ट नहीं हुआ है, एक क्लिक से इसका चीनी में अनुवाद कर सकते हैं।

+

इस आधार पर, स्क्रिप्ट तीन अनुवाद:प्रदान करती है

+ +

आप उस अनुवाद सेवा का चयन कर सकते हैं जिसका आप उपयोग करना चाहते हैं (डिफ़ॉल्ट रूप से डीपएल) और ऊपरी दाएं कोने में कोडफोर्सबेटर सेटिंग्स पैनल में स्क्रिप्ट के कार्य मोड को स्विच कर सकते हैं।

+
+
+

नोट:खंड/चयन मोड निम्नलिखित समस्याओं का कारण बनेगा:

+

- अनुवाद इंटरफ़ेस पूरे पाठ की प्रासंगिक जानकारी नहीं जान सकता, जिससे अनुवाद की गुणवत्ता कम हो जाएगी।

+

- कुछ सामग्री ऐसी होगी जिसका अनुवाद नहीं किया जाएगा/चयन नहीं किया जा सकता क्योंकि वे<p/>या<i/>तत्व नहीं हैं

+
+
+

स्क्रिप्ट:से चुनने के लिए निम्नलिखित अनुवाद इंटरफ़ेस प्रदान करती है (डिफ़ॉल्ट डीपएल है)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  + KEY + अनुवाद गुणवत्ताविश्वसनीयतावर्णों की अधिकतम संख्या + बहुत समय लगेगा
डीपएल अनुवाद (✨अनुशंसित)अनावश्यक⭐️⭐️⭐️⭐️कुछ क्षेत्र दुर्गम या धीमे हो सकते हैं5000जल्दी
आईफ्लाईटेक अनुवादअनावश्यक⭐️⭐️⭐️आमतौर पर विश्वसनीय2000जल्दी
Youdao अनुवादअनावश्यक⭐️⭐️आमतौर पर विश्वसनीय600जल्दी
गूगल अनुवादअनावश्यक⭐️⭐️⭐️वर्तमान नेटवर्क को Google तक सुचारू रूप से पहुंचने में सक्षम होना चाहिए।5000जल्दी
कैयुन अनुवादअनावश्यक⭐️⭐️आमतौर पर विश्वसनीय5000जल्दी
ChatGPT का उपयोग करके अनुवाद करें (✨अनुशंसित)एपीआई कुंजी आवश्यक है⭐️⭐️⭐️⭐️⭐️सेवा प्रदाता की गुणवत्ता और OpenAI की भीड़ पर निर्भर करता हैमॉडल पर निर्भर करता हैऔर धीमा
+युक्ति:अनुवाद सेवाओं को शीघ्रता से बदलने के लिएअनुवादबटन पर राइट क्लिक करें +

स्वचालित अनुवाद

+

"स्वचालित अनुवाद" चालू होने के बाद,.ttypography, .comments क्षेत्र में लघु पाठ ब्राउज़र विंडो केदृश्य क्षेत्रमें प्रवेश करने पर स्वचालित रूप से अनुवादित हो जाएगा।

+

(आप सेटिंग पैनल में संक्षिप्त पाठ के भीतर वर्णों की संख्या निर्दिष्ट कर सकते हैं)

+

इसके अलावा, टिप्पणी क्षेत्र में संक्षिप्त पाठ के लिए "टिप्पणी क्षेत्र में त्वरित अनुवाद" चालू करने के बाद, स्वचालित अनुवाद के लिए उम्मीदवार सेवाओं में से एक को यादृच्छिक रूप से चुना जाएगा और समानांतर में त्वरित अनुवाद किया जाएगा।

+

ऐतिहासिक अनुवाद बहाली

+

"ऐतिहासिक अनुवादों को स्वचालित रूप से पुनर्स्थापित करें" चालू होने के बाद, प्रश्नपृष्ठपर अनुवाद जानकारी स्वचालित रूप से ब्राउज़र के स्थानीय इंडेक्सडीबी में CFBetterDB डेटाबेस की ट्रांसलेटडेटा तालिका में सहेजी जाएगी।

+

ताज़ा करें/अगली बार जब आप पृष्ठ में प्रवेश करेंगे तो अनुवाद जानकारी स्वचालित रूप से बहाल हो जाएगी।

+

क्लिस्टरेटिंग अंक

+

Clist.by वेबसाइट का रेटिंग स्कोर डेटा प्राप्त करें और उसे प्रदर्शित करें

+

ध्यान दें:अलग-अलग पेजों पर काम करने के लिए अलग-अलग क्रेडेंशियल की आवश्यकता होती है।0

+ +स्क्रिप्ट clist.by की विशिष्ट कुकी प्राप्त नहीं करती है। अनुरोध भेजते समय कुकी जानकारी स्वचालित रूप से ब्राउज़र द्वारा ले ली जाती है। कुकी की वैधता प्रयास किए गए अनुरोध द्वारा लौटाए गए स्थिति कोड द्वारा तय की जाती है। +

संपादक और एलएसपी

+

प्रश्न पृष्ठ पर संपादक जोड़ें

+

प्रश्न पृष्ठ के नीचे मोनाको कोड संपादक जोड़ें (डिफ़ॉल्ट रूप से सक्षम)

+

स्वचालित कोड सेविंग, त्वरित कोड सबमिशन, ऑनलाइन टेस्ट रनिंग, एलएसपी, स्टेटिक पूर्णता वृद्धि और अन्य कार्यों का समर्थन करता है

+

कोड स्वचालित रूप से सहेजा गया

+

कोड स्वचालित रूप से ब्राउज़र के स्थानीय IndexedDB में CFBetterDB डेटाबेस के संपादककोड तालिका में सहेजा जाएगा।

+

ऑनलाइन टेस्ट रन

+

आप एक क्लिक से प्रश्न में नमूनों का परीक्षण और चला सकते हैं, और आप परीक्षण नमूनों को अनुकूलित भी कर सकते हैं। नमूना डेटा स्वचालित रूप से CFBetterDB डेटाबेस के संपादककोड तालिका में सहेजा जाएगा।

+

स्क्रिप्ट कई ऑनलाइन कोड रनिंग सेवाएं प्रदान करती है:कोडफोर्स ऑफिशियल, वैंडबॉक्स (थर्ड पार्टी), रेक्सटेस्टर (थर्ड पार्टी), और उनके द्वारा समर्थित पैरामीटर विकल्प अलग-अलग हैं।

+
+
+

नोट:

+
    +
  • +

    जाहिर है, सभी ऑनलाइन कोड चलाने वाली सेवाएँ इंटरैक्टिव प्रश्नों का परीक्षण नहीं कर सकती हैं

    +
  • +
  • +

    थर्ड-पार्टी ऑनलाइन कोड रनिंग सेवाओं का रनिंग वातावरण कोडफोर्स से भिन्न हो सकता है। जो कोड थर्ड-पार्टी ऑनलाइन कोड रनिंग सेवाओं में चलाया जा सकता है या जिसके परिणाम सही हैं, जरूरी नहीं कि कोडफोर्स में भी वही हो।

    +
  • +
  • +

    इस बात की कोई गारंटी नहीं है कि किसी तृतीय-पक्ष ऑनलाइन कोड-रनिंग सेवा द्वारा आपके कोड से किसी तरह से समझौता नहीं किया जाएगा

    +
  • +
  • +

    इसके अलावा, एप्लिकेशन के दायरे का विस्तार करने के लिए, पृष्ठ पर कंपाइलर विकल्प तीसरे पक्ष की ऑनलाइन कोड रनिंग सेवा के वास्तविक कंपाइलर विकल्पों से कड़ाई से मेल नहीं खाते हैं, इसलिए अप्रत्याशित परिणाम प्राप्त करना संभव है।

    +
  • +
+
+
+

LSP

+

एलएसपी को कॉन्फ़िगर करने के बाद, संपादक के लिए निम्नलिखित फ़ंक्शन प्रदान किए जा सकते हैं (सी++ और पायथन भाषाओं तक सीमित):

+ +

बेशक, यह स्थानीय संकलन, ब्रेकपॉइंट डिबगिंग, एकाधिक फ़ाइलों आदि का समर्थन नहीं करता है।……, और इसका प्रदर्शन स्थानीय विशिष्ट आईडीई जितना अच्छा नहीं है।

+

संक्षेप में, इस सुविधा का वास्तविक महत्व और उपयोगिता बहुत अच्छी नहीं है। यदि आप इसमें रुचि रखते हैं, तो अधिक जानने के लिए कृपया नीचे दिए गए अक्सर पूछे जाने वाले प्रश्न अनुभाग देखें।

+

स्थैतिक पूर्णता संवर्द्धन

+

आप सेटिंग पैनल में मोनाको संपादक के लिए कस्टम स्थिर कोड पूर्णता नियम जोड़ सकते हैं-मोनाको-स्थैतिक पूर्णता वृद्धि-अनुकूलन

+

पूर्णता नियम JSON प्रारूप में हैं। यहां एक उदाहरण है (मोनाको प्रारूप):

+
+  {
+    "सुझाव": [
+        {
+            "लेबल": "हैलो वर्ल्ड",
+            "प्रकार": 15,
+            "दस्तावेज़ीकरण": "यह एक हैलो वर्ल्ड स्निपेट है",
+            "इंसर्टटेक्स्ट": "हैलो वर्ल्ड"
+        },
+        // अन्य सुझाव...
+    ]
+}
+
+

आप CompletionItem में लगभग सभी संपत्तियों का उपयोग कर सकते हैं, (ध्यान दें: श्रेणी संपत्ति न भरें, स्क्रिप्ट स्वचालित रूप से इस संपत्ति की गणना करेगी और जोड़ देगी)

+

अन्य कार्य

+ +

अनुकूलता

+

ब्राउज़र

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 सहायतान्यूनतम संस्करण
Chromeसहायता96
Edgeसहायता96
घरेलू क्रोमियम मामलामूल रूप से संगत, लेकिन अप्रत्याशित त्रुटियाँ हो सकती हैंक्रोमियम कर्नेल संस्करण ≥96
फ़ायरफ़ॉक्स (मोबाइल संस्करण सहित)सहायता103
Safariसमर्थन नहीं\
+

स्क्रिप्ट मैनेजर

+

केवल टैम्परमोनकी स्क्रिप्ट मैनेजर में परीक्षण किया गया, ग्रीसमोनकी, वायलेंटमोनकी, स्क्रिप्टकैट आदि में अनुकूलता की कोई गारंटी नहीं है।

+

अन्य प्लगइन्स

+

मुख्यधारा सीएफ-संबंधित प्लग-इन के साथ कोई संगतता समस्याएँ नहीं हैं। यदि आपको संगतता समस्याएँ आती हैं, तो कृपया प्रतिक्रिया दें।

+

मिरर साइट

+

आधिकारिक लाइटवेट साइट एम1 एम2 एम , आधिकारिक मिरर साइट https://mirror.codeforces.com/, अनौपचारिक मिरर साइट https://codeforc.esका समर्थन करता है

+

इसके अलावा, यह सैद्धांतिक रूप से किसी भी अन्य मिरर साइट के साथ संगत है। आपको केवल टिप्पणियों की एक और पंक्ति जोड़ने की आवश्यकता है // @अपनी मिरर साइट यूआरएल से मेल करें।

+

आम समस्या

+
+
प्र. शुरुआत कैसे करें? +
+ उ. आपको पहले टैम्परमॉन्की इंस्टॉल करना होगा, और फिर स्क्रिप्ट इंस्टॉल करनी होगी +
+
+
+
प्र. अद्यतन त्रुटि? +
+

उ. ग्रीसी फोर्क प्लेटफॉर्म के कारण, जब कोई नया संस्करण जारी किया जाता है, तो ऐसा हो सकता है कि पिछला संस्करण वास्तव में अपडेट/इंस्टॉल किया गया हो।

+

आमतौर पर आपको बस कुछ मिनट इंतजार करना होगा और फिर से अपडेट/इंस्टॉल पर जाना होगा।

+

आप माउस को स्क्रिप्ट के अपडेट प्रॉम्प्ट बॉक्स में लाल प्रश्न चिह्न पर भी ले जा सकते हैं, और फिर पॉप-अप संदेश के नीचे "अभी तक अपडेट न करें" बटन पर क्लिक कर सकते हैं।

+
+
+
+
प्र. यह लोडिंग दिखाता रहता है? +
+ उ. कृपया सेटिंग पैनल में "संगतता विकल्प-पेज संसाधनों के लोड होने की प्रतीक्षा न करें" विकल्प चालू करें +
+
+
+
प्र. डीपएल अनुवाद का उपयोग करते समय बहुत अधिक अनुरोध त्रुटियां हैं? +
+

उ. यह आमतौर पर आपके द्वारा कम समय में बार-बार अनुवाद करने, या एक समय में पाठ के 5,000 से अधिक अक्षरों का अनुवाद करने के कारण होता है। डीपएल में अनुवाद शब्दों की संख्या और आवृत्ति पर सीमाएं हैं।

+ यह अस्थायी है और कुछ समय बाद सामान्य हो जाएगा +
+
+
+
प्र. डीपएल अनुवाद का उपयोग करते समय, एक त्रुटि को अपरिभाषित के रूप में रिपोर्ट किया जाता है या अनुवाद हमेशा प्रदर्शित होता है? +
+ उ. ऐसा आमतौर पर इसलिए होता है क्योंकि आप जिस नेटवर्क का उपयोग कर रहे हैं वह सामान्य रूप से www.depl.comतक नहीं पहुंच पाता है +
+
+
+
प्र. अनुवाद परिणामों में कुछ सूत्र {xx} / [xx] / [xx] के रूप में प्रदर्शित होते हैं? +
+ A. अनुवाद के लिए सामान्य अनुवाद इंटरफ़ेस (DeepL/Youdao/google) का उपयोग करते समय, स्क्रिप्ट के कार्यान्वयन द्वारा सीमित,{xx}/[xx]/[xx] दिखाई दे सकता है। +
+
+
+

स्क्रिप्ट सूत्रों को कैसे संभालती है

+

अनुवाद के दौरान LaTeX फ़ार्मुलों को क्षतिग्रस्त होने से बचाने के लिए, स्क्रिप्ट पहले सभी LaTeX फ़ार्मुलों को निकालेगी और स्थान लेने के लिए प्रतिस्थापन वर्ण{xx}/[xx]/[xx] का उपयोग करेगी।

+

चूँकि ये प्रतिस्थापन वर्ण अनुवाद प्रक्रिया के दौरान क्षतिग्रस्त नहीं होंगे, इसलिए अनुवाद के बाद प्रतिस्थापन वर्णों के आधार पर LaTeX सूत्र को पुनर्स्थापित किया जा सकता है।

+

इस कार्यान्वयन के अपेक्षा के अनुरूप काम करने की शर्त यह है कि प्रतिस्थापन चरित्र नष्ट न हो, जो कि ज्यादातर मामलों में कोई समस्या नहीं है।

+

लेकिन कभी-कभी अनुवाद सेवा प्रतिस्थापन वर्णों को नष्ट कर देती है, उदाहरण के लिए, [23] बन जाता है [23/23] / [23]/ [23 ] / 23 ]। इन मामलों में, स्क्रिप्ट को कुछ नियमित नियमों के माध्यम से पुनर्स्थापित किया जाएगा ताकि यह अभी भी उपयोग किया जा सकता है। निर्धारित अनुसार कार्य करें

+

लेकिन यदि अनुवाद सेवा अधिक सामग्री को नष्ट कर देती है और अस्पष्टता पैदा करती है, उदाहरण के लिए, अनुवाद सेवा [2] 313 को [2312] में बदल देती है, तो इसे पुनर्स्थापित नहीं किया जा सकता है।

+

प्रत्येक अनुवाद सेवा के लिए, अलग-अलग प्रतिस्थापन वर्णों के क्षतिग्रस्त होने की अलग-अलग संभावनाएँ होती हैं। आप ऊपरी दाएं कोने में सेटिंग पैनल में विभिन्न प्रतिस्थापन वर्णों का चयन कर सकते हैं।

+

परीक्षण के बाद, {} आमतौर पर बेहतर प्रदर्शन करता है, इसलिए यह स्क्रिप्ट द्वारा उपयोग किया जाने वाला डिफ़ॉल्ट प्रतिस्थापन वर्ण भी है।

+
+
+
+
+
+

टिप:

+

अनुवाद के लिए चैटजीपीटी का उपयोग करते समय यह समस्या मौजूद नहीं है, क्योंकि आप चैटजीपीटी को सीधे संकेत शब्द "इसमें लाटेक्स फॉर्मूला को अअनुवादित रखें" के माध्यम से बता सकते हैं।

+

स्मार्ट चैटजीपीटी इसका अच्छी तरह से पालन कर सकता है, और यह स्क्रिप्ट के लिए अनुशंसित अनुवाद विधि भी है।

+
+
+
+
+
+
प्र. चैटजीपीटी अनुवाद का उपयोग कैसे करें? +
+ उ. यदि आप सीधे OpenAI इंटरफ़ेस तक पहुंच सकते हैं और आपके पास एक खाता है, तो यह बहुत अच्छा है। आपको केवल "चैटजीपीटी ट्रांसलेशन (एपीआई) का उपयोग करें" का चयन करना होगा, फिर एक नया कॉन्फ़िगरेशन बनाने और उसे भरने के लिए नीचे "जोड़ें" बटन पर क्लिक करें। +

इसके अलावा, आप ChatGPT का उपयोग करने के लिए एक एपीआई प्रॉक्सी सेवा भी खरीद सकते हैं। निम्न तालिका कुछ एपीआई सेवा प्रदाताओं को एकत्रित करती है जिन्हें आप उपयोग करना चुन सकते हैं। +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 आधिकारिक वेबसाइटप्राप्त करने की विधि
API2Dhttps://api2d.com/आधिकारिक वेबसाइट
CloseAIhttps://console.closeai-asia.com/आधिकारिक वेबसाइट
OhMyGPThttps://aigptx.top/आधिकारिक वेबसाइट
OpenAI-SBhttps://openai-sb.com/टेलीग्राम बॉट
API2GPThttps://www.api2gpt.com/आधिकारिक वेबसाइट
AI Proxyhttps://aiproxy.io/आधिकारिक वेबसाइट
+
+
+
+

अस्वीकरण:

+

लेखक केवल एकत्र करता है और साझा करता है, कोई आय प्राप्त नहीं करता है, और उपर्युक्त प्लेटफ़ॉर्म की स्थिरता की गारंटी नहीं देता है। प्लेटफ़ॉर्म के किसी भी व्यवहार का लेखक से कोई लेना-देना नहीं है।

+

यह अनुशंसा की जाती है कि थोड़ी राशि के साथ रिचार्ज करें और फिर उपयोग के बाद रिचार्ज करें। ये सेवा प्रदाता भाग सकते हैं।

+
+
+

यदि आप एपीआई प्रॉक्सी सेवा प्रदाता द्वारा प्रदान की गई सेवा का उपयोग कर रहे हैं, तो कॉन्फ़िगरेशन में कुंजी एपीआई प्रॉक्सी सेवा प्रदाता द्वारा प्रदान की गई कुंजी से भरी जानी चाहिए।

+

इसके अलावा, आपको कॉन्फ़िगरेशन में प्रॉक्सी एपीआई भी भरना होगा।

+

प्रॉक्सी एपीआई को पूरा पता भरने की आवश्यकता है। यहां हम उदाहरण के तौर पर क्लोजएआई लेते हैं, जो एपीआई + बेस:https://api.closeai-proxy.xyzप्रदान करता है।

+

फिर प्रॉक्सी एपीआई के बाद क्या भरना चाहिए https://api.closeai-proxy.xyz/v1/chat/completions,

+ ध्यान दें:चूंकि आपने एक कस्टम एपीआई निर्दिष्ट किया है, टैम्परमॉन्की आपको क्रॉस-डोमेन अनुरोधों के बारे में चेतावनी देगा। कृपया स्वयं को अधिकृत करें पर क्लिक करें। +
+ नोट:यदि आप Azure OpenAI का उपयोग करना चाहते हैं, क्योंकि इसके आधिकारिक इंटरफ़ेस पैरामीटर OpenAI से भिन्न हैं, तो आप रूपांतरण के लिएAzure-openai-प्रॉक्सीको तैनात करना चुन सकते हैं। +
+
+
+
प्र. एलएसपी क्या है? +
+ A. एलएसपी (भाषा सर्वर प्रोटोकॉल)माइक्रोसॉफ्ट द्वारा शुरू किए गए संपादकों और भाषा सर्वरों के बीच संचार के लिए एक प्रोटोकॉल विनिर्देश है। +

यह कोड पूर्णता, निदान, सुझाव, दस्तावेज़ीकरण और यहां तक कि परियोजना प्रबंधन कार्यों को अलग करता है जिन्हें पारंपरिक आईडीई को संपादक से लागू करने की आवश्यकता होती है, और इन कार्यों को पूरा करने के लिए स्वतंत्र सेवाओं का उपयोग करता है।

+

संपादक को केवल प्रोटोकॉल विनिर्देशों के अनुसार सर्वर के साथ संवाद करने की आवश्यकता होती है, जो कार्यभार को काफी कम कर देता है और संपादक को विभिन्न प्रोग्रामिंग भाषाओं का आसानी से समर्थन करने की अनुमति देता है।

+

वर्तमान में, एलएसपी पारिस्थितिकी तंत्र में धीरे-धीरे सुधार किया गया है, और मुख्यधारा के संपादकों ने एलएसपी का समर्थन किया है या उनके पास संबंधित प्लग-इन हैं, जैसे वीएससीओडी, विम, एमएसीएस इत्यादि...

+

हालाँकि, प्रमुख वाणिज्यिक आईडीई निर्माताओं की इसमें बहुत कम रुचि है। मूल रूप से, मौजूदा एलएसपी सर्वर का रखरखाव ओपन सोर्स समुदाय द्वारा किया जाता है, इसलिए यह अभी भी पेशेवर आईडीई और विभिन्न पेशेवर प्लग-इन से कमतर है।

+
+
+
+
प्र. एलएसपी का उपयोग कैसे करें? +
+ उ. बस दो चरण: +

:स्क्रिप्ट C++ और Python भाषाओं में निम्नलिखित दो LSP सर्वर कार्यान्वयन के लिए समर्थन प्रदान करती है। आपको उन्हें:स्थापित करना होगा1

+ + + + + + + + + + + + + + + + + + + + +
भाषाLSP Serverस्थापना विधि (विंडोज़ के अंतर्गत)
C++clangdक्लैंगड रिलीज़ में क्लैंगड डाउनलोड करें, और फिर सिस्टम पर्यावरण चर के पथ में क्लैंगड का पथ जोड़ें, उदाहरण के लिए C:\clangd_16.0.2\bin\
Pythonpylspकमांड: + pip install "python-lsp-server[all]"निष्पादित करें, जो स्वचालित रूप से पर्यावरण चर जोड़ देगा
+

:आपको GitHub रिलीज़ या Lanzuoyun (पासवर्ड: AAAA) में OJBetter_Bridge को डाउनलोड और अनज़िप करना होगा। यह सॉफ़्टवेयर स्क्रिप्ट और LSP सर्वर के बीच संचार के लिए एक पुल है।

+

अनज़िप किए गए फ़ोल्डर को ड्राइव C के रूट डायरेक्टरी या अपनी पसंद के किसी अन्य स्थान पर रखें (ध्यान दें:यदि आप इसे किसी अन्य स्थान पर रखते हैं, तो आपको सेटिंग पैनल में "वर्किंग पाथ" को अपने वास्तविक स्थान पर संशोधित करना होगा।)

+

फिर आप OJBetter_Bridge चला सकते हैं, जो एक GUI संस्करण और एक टर्मिनल संस्करण प्रदान करता है। विंडोज़ के तहत GUI संस्करण का उपयोग करने की अनुशंसा की जाती है। बस सर्वर_gui.exe सीधे चलाएं।

+

जब OJBetter_Bridge प्रारंभ होता है, तो यह स्वचालित रूप से जांच करेगा कि क्या क्लैंगड और पाइलस्प कमांड वैध हैं और एक संकेत देगा।

+ टिप: सर्वर_गुई.exe के इंटरफ़ेस में, आप इसे बूटिंग के बाद स्वचालित रूप से प्रारंभ करने के लिए सेट कर सकते हैं। +

उपरोक्त चरणों को पूरा करने के बाद, आप सेटिंग पैनल में "एलएसपी का उपयोग करें" चालू कर सकते हैं और इसका उपयोग कर सकते हैं।

+
+
+
+ और अधिक जानें? +
+ क्लैंगड के लिए, दो कॉन्फ़िगरेशन फ़ाइलें और-प्रारूपसीपीपी_वर्कस्पेस फ़ोल्डर में संग्रहीत हैं। +

वे क्रमशः क्लैंगड के कॉन्फ़िगरेशन आइटम और कोड फ़ॉर्मेटिंग शैलीको परिभाषित करते हैं। आप उन्हें स्वयं संपादित और संशोधित कर सकते हैं।

+
+
+
+
+
+
+
+
प्र. क्लैंगड फ़ॉर्मेटिंग काम क्यों नहीं करती? +
+ उ. ऐसा इसलिए है क्योंकि आपने सेटिंग पैनल में जो एलएसपी कार्य पथ भरा है वह गलत है। +
+
+
+
प्र. क्लैंगड मेरी <bits/std++.h> हेडर फ़ाइलों कोcनहीं पहचानता? +
+ उ. ऐसा इसलिए है क्योंकि <bits/stdc++.h एक मानक हेडर फ़ाइल नहीं>, इसलिए clangd डिफ़ॉल्ट रूप से इसका समर्थन नहीं करता है। आपको इसे फ़ाइल में संशोधित करने की आवश्यकता है OJBetter_Bridge कंपाइलर पैरामीटर के cpp_workspace + में क्लैंग को यह बताने के लिए कि इस गैर-मानक हेडर फ़ाइल को कहां ढूंढें (निश्चित रूप से यूनिवर्सल हेडर का उपयोग करने की अनुशंसा नहीं की जाती है) +
+
+
+
प्र. क्या मैं स्थैतिक पूर्णता संवर्द्धन के लिए स्थानीय JSON फ़ाइलों का उपयोग कर सकता हूँ? +
+ उ. ब्राउज़र सुरक्षा प्रतिबंधों के कारण, आप ब्राउज़र में अपनी स्थानीय JSON फ़ाइल तक पहुँचने के लिए सीधे फॉर्म फ़ाइल:///xxx में URL का उपयोग नहीं कर सकते। +

लेकिन आप इसे OJBetter_Bridge की मदद से कर सकते हैं। यह बहुत आसान है। आपको बस JSON फ़ाइल xxx.json को OJBetter_Bridge के /mycomplet फ़ोल्डर में रखना होगा।

+

OJBetter_Bridge प्रारंभ करें और आप सेटिंग पैनल में एक नया कॉन्फ़िगरेशन बना सकते हैं। JSON URL:http://127.0.0.1:2323/mycomplet/xxx.jsonहै।

+
+
+

इसे आज़माइए?

+

OJBetter_Bridge प्रारंभ करें। प्रारंभ में, /mycomplet फ़ोल्डर एक नमूना JSON फ़ाइल:template.jsonके साथ आता है, ताकि आप एक कॉन्फ़िगरेशन जोड़ सकें और + http://127.0.0.1:2323/mycomplet/template.json भर सकें और बचाना

+

अब एडिटर में हैलो टाइप करें, आपको दो पूर्ण आइटम:हेलो वर्ल्ड, हैलो वर्ल्ड2 दिखाई देंगे

+
+
+
+
+
+

कोड योगदान करें

+

योगदान कोड में आपका स्वागत है, कृपया पीआर बनाने के लिए जीथब रिपॉजिटरी पर जाएं

+

अन्य ओजे?

+

लेखक की सीमित ऊर्जा के कारण, वह बहुत अधिक समान स्क्रिप्ट नहीं बनाए रखेगा। यदि आप इस स्क्रिप्ट को अपने पसंदीदा OJ के लिए पोर्ट करना चाहते हैं, तो आपका बहुत स्वागत है। आपको केवल GPL-3.0 लाइसेंस का अनुपालन करना होगा।

+

आभारी

+ +

धन्यवाद, 0rz

\ No newline at end of file diff --git a/i18n/hi/resources/subs/Codeforces-subs.json b/i18n/hi/resources/subs/Codeforces-subs.json new file mode 100644 index 000000000..c06d91e37 --- /dev/null +++ b/i18n/hi/resources/subs/Codeforces-subs.json @@ -0,0 +1,859 @@ +{ + "version": "1.0.0", + "commonReplacements": { + ".datatable": { + "class": [ + ".datatable" + ], + "description": "", + "isStrict": false, + "rules": { + "Virtual participation": "एक आभासी पुनर्मूल्यांकन प्रतियोगिता में भाग लें", + "Enter": "प्रवेश करना", + "Current standings": "वर्तमान सूची", + "Final standings": "अंतिम सूची", + "Preliminary results": "प्रारंभिक परिणाम", + "open hacking:": "हैकर्स के लिए खुला", + "School/University/City/Region Championship": "स्कूल/विश्वविद्यालय/शहर/क्षेत्रीय प्रतियोगिता", + "Official School Contest": "आधिकारिक स्कूल प्रतियोगिता", + "Training Contest": "प्रशिक्षण मैच", + "Training Camp Contest": "प्रशिक्षण शिविर खेल", + "Official ICPC Contest": "आईसीपीसी आधिकारिक प्रतियोगिता", + "Official International Personal Contest": "आधिकारिक अंतर्राष्ट्रीय व्यक्तिगत प्रतियोगिता", + "China": "चीन", + "Statements": "प्रश्न विवरण", + "in Chinese": "चीनी", + "Trainings": "रेलगाड़ी", + "Prepared by": "संपादक", + "Current or upcoming contests": "वर्तमान या आगामी प्रतियोगिताएँ", + "Rating: users participated in recent 6 months": "रेटिंग:उपयोगकर्ता जिन्होंने पिछले 6 महीनों में भाग लिया है", + "Past contests": "पिछले खेल", + "Exclusions": "निकालना", + "Before start": "खेल शुरू होने में अभी समय है", + "Before registration": "रजिस्ट्रेशन शुरू होने में अभी समय है", + "Until closing ": "रजिस्ट्रेशन बंद होने में अभी भी समय बाकी है", + "Before extra registration": "अतिरिक्त पंजीकरण अभी शुरू नहीं हुआ है", + "Register »": "साइन अप करें\"", + "Registration completed": "दर्ज कराई", + "Registration closed": "पंजीकरण समाप्त हो गया है", + "Problems\n": "问题集", + "My Submissions": "मेरा समर्पण", + "Standings": "सूची", + "Questions about problems": "समस्या के बारे में प्रश्न", + "Contest status": "खेल की स्थिति", + "Invited users": "उपयोगकर्ताओं को आमंत्रित किया गया", + "Invitation links": "आमंत्रण लिंक", + "API keys": "API密钥" + } + }, + ".menu-list.main-menu-list": { + "class": [ + ".menu-list.main-menu-list" + ], + "description": "", + "isStrict": false, + "rules": { + "Home": "होम पेज", + "Top": "लोकप्रिय", + "Catalog": "सामग्री की गाइड तालिका", + "Contests": "प्रतियोगिता", + "Gym": "प्रशिक्षण शिविर", + "Problemset": "प्रश्न पत्र", + "Groups": "समूह", + "Rating": "रेटिंग रैंकिंग सूची", + "Edu": "प्रशिक्षण", + "Calendar": "पंचांग", + "ICPC Challenge": "ICPC挑战赛", + "Help": "मदद" + } + }, + ".nav-links": { + "class": [ + ".nav-links" + ], + "description": "", + "isStrict": false, + "rules": { + "Settings": "स्थापित करना", + "Blog": "ब्लॉग", + "Teams": "टीम", + "Submissions": "जमा करना", + "Favourites": "इकट्ठा करना", + "Problemsetting": "प्रश्न सेटिंग", + "Talks": "निजी पत्र", + "Contests": "प्रतियोगिता" + } + }, + ".contest-state-phase": { + "class": [ + ".contest-state-phase" + ], + "description": "", + "isStrict": false, + "rules": { + "Before contest": "आगामी मैच", + "Contest is running": "खेल प्रगति पर है" + } + }, + ".notice": { + "class": [ + ".notice" + ], + "description": "", + "isStrict": false, + "rules": { + "has extra registration": "एक अतिरिक्त पंजीकरण अवधि है", + "If you are late to register in 5 minutes before the start, you can register later during the extra registration. Extra registration opens 10 minutes after the contest starts and lasts 25 minutes.": "यदि आपने खेल शुरू होने से 5 मिनट पहले पंजीकरण नहीं कराया है, तो आप बाद में अतिरिक्त पंजीकरण अवधि के दौरान पंजीकरण कर सकते हैं। अतिरिक्त पंजीकरण खेल शुरू होने के 10 मिनट बाद खुलेगा और 25 मिनट तक चलेगा।", + "in timezone ([^)]*)": "$1 समय क्षेत्र", + "Contest will be available for virtual participation when over. Leave this field blank to allow virtual participation at any time": "प्रतियोगिता के बाद वर्चुअल प्रविष्टियों की अनुमति दी जाएगी। किसी भी समय आभासी प्रविष्टियों की अनुमति देने के लिए इस फ़ील्ड को खाली छोड़ दें", + "Contest duration in minutes": "मैच की अवधि (मिनट)", + "or choose": "या चुनें", + "Standings freeze period in minutes": "सूची जमने का समय (मिनट)", + "Time when final results are available": "अंतिम परिणाम उपलब्ध समय", + "Is it allowed to solve contest problems unofficially after the end": "क्या खेल समाप्त होने के बाद खेल के मुद्दों के अनौपचारिक समाधान की अनुमति है", + "Is it allowed to run contest as virtual after the end": "क्या प्रतियोगिता के बाद आभासी प्रविष्टियों की अनुमति दी जाएगी?", + "Is it allowed participate in contest out of competition": "क्या गैर-प्रतियोगिता प्रविष्टियों की अनुमति है", + "Are participants allowed to register for the contest themselves": "क्या प्रतियोगियों को स्वयं पंजीकरण करने की अनुमति है", + "Can non-registered users and anonyms view contest standings, problems and other statistics": "क्या अपंजीकृत और गुमनाम उपयोगकर्ताओं को प्रतियोगिता लीडरबोर्ड, प्रश्न और अन्य आँकड़े देखने की अनुमति दी जाए", + "If unchecked they will view only personal status": "यदि अनियंत्रित है, तो वे केवल व्यक्तिगत स्थिति देख पाएंगे", + "To manage allowed program languages": "अनुमत प्रोग्रामिंग भाषाएँ प्रबंधित करें", + "The system will automatically adjust time limits for some languages. Recommended for use only for educational purpose.": "सिस्टम कुछ भाषाओं के लिए समय सीमा को स्वचालित रूप से समायोजित कर देगा। केवल शैक्षिक उद्देश्यों के लिए अनुशंसित।", + "Check it if you want to allow contestants view statements": "यदि आप प्रतियोगियों को समस्या विवरण देखने की अनुमति देना चाहते हैं तो कृपया इस बॉक्स को चेक करें।", + "Check it if contestants can view standings": "यदि प्रतियोगियों को लीडरबोर्ड देखने की अनुमति है तो कृपया इस बॉक्स को चेक करें", + "Where the contest was held originally": "प्रतियोगिता का मूल स्थान", + "Official contest site URL": "आधिकारिक प्रतियोगिता वेबसाइट यूआरएल", + "Enter a name for your new API key. It should describe what this key is used for.": "为您的新API密钥输入一个名称。它应该描述这个密钥的用途。", + "Enter your account password to confirm access. If you do not have password, logout and use password recovery feature.": "输入您的账户密码以确认访问。如果您没有密码,请注销并使用密码恢复功能。" + } + }, + ".propertyLinks": { + "class": [ + ".propertyLinks" + ], + "description": "", + "isStrict": false, + "rules": { + "Contribution": "योगदान देना" + } + }, + ".contests-table": { + "class": [ + ".contests-table" + ], + "description": "", + "isStrict": false, + "rules": { + "Contest history": "मैच का इतिहास" + } + }, + ".roundbox.sidebox.borderTopRound ": { + "class": [ + ".roundbox.sidebox.borderTopRound " + ], + "description": "", + "isStrict": false, + "rules": { + "Register now": "अभी साइनअप करें", + "No tag edit access": "कोई टैग संपादन अनुमति नहीं", + "Problem([\\s]*)$": "问题", + "Verdict": "फैसले की स्थिति", + "Language:": "भाषा:", + "Participant": "प्रतियोगियों", + "Choose file:": "एक दस्तावेज़ चुनें:" + } + }, + ".icon-eye-close.icon-large": { + "class": [ + ".icon-eye-close.icon-large" + ], + "description": "", + "isStrict": false, + "rules": { + "Add to exclusions": "बहिष्करण सूची में जोड़ें" + } + }, + "null": { + "class": [ + null + ], + "description": "", + "isStrict": false, + "rules": { + "Add to exclusions for gym contests filter": "बूटकैम्प फ़िल्टर के लिए बहिष्करण जोड़ें" + } + }, + ".roundbox.sidebox.sidebar-menu.borderTopRound": { + "class": [ + ".roundbox.sidebox.sidebar-menu.borderTopRound" + ], + "description": "", + "isStrict": false, + "rules": { + "Announcement": "घोषणा", + "Statements": "सांख्यिकीय रिपोर्ट", + "Tutorial": "उत्तर" + } + }, + ".second-level-menu": { + "class": [ + ".second-level-menu" + ], + "description": "", + "isStrict": false, + "rules": { + "Problems": "सवाल", + "Submit Code": "कोड प्रस्तुत करें", + "My Submissions": "मेरा समर्पण", + "Status": "राज्य", + "Standings": "सूची", + "Adm.": "प्रबंधित करना", + "Edit": "संपादन करना", + "Custom Invocation": "कस्टम डिबगिंग", + "Common standings": "सभी रैंकिंग", + "Friends standings": "केवल दोस्तों को देखें", + "Submit": "जमा करना", + "Hacks": "हैकर", + "Room": "कमरा", + "Custom test": "कस्टम परीक्षण", + "Blog": "ब्लॉग", + "Teams": "टीम", + "Submissions": "रिकॉर्ड जमा करें", + "Groups": "समूह", + "Rating": "रेटिंग", + "Friends rating": "मित्र की रेटिंग", + "Favourites": "इकट्ठा करना", + "Contests": "प्रतियोगिता", + "Magic": "魔法", + "Handle": "账号", + "Members": "सदस्य", + "问题etting": "लेखन मुद्दों में भाग लें", + "Streams": "सीधा आ रहा है", + "Gym": "प्रशिक्षण शिविर", + "Mashups": "मिश्रण और मैच", + "Posts": "डाक", + "Comments": "जवाब", + "Main": "मुख्य", + "Settings": "स्थापित करना", + "Lists": "सूची", + "General": "बुनियादी", + "Sidebar": "साइड बार", + "Social": "सामाजिक जानकारी", + "Address": "पता", + "Wallets": "बटुआ" + } + }, + ".topic-toggle-collapse": { + "class": [ + ".topic-toggle-collapse" + ], + "description": "", + "isStrict": false, + "rules": { + "Expand": "बढ़ाना" + } + }, + ".topic-read-more": { + "class": [ + ".topic-read-more" + ], + "description": "", + "isStrict": false, + "rules": { + "Full text and comments": "पूरा लेख/टिप्पणियाँ पढ़ें" + } + }, + ".toggleEditorCheckboxLabel": { + "class": [ + ".toggleEditorCheckboxLabel" + ], + "description": "", + "isStrict": false, + "rules": { + "Switch off editor": "संपादक सिंटैक्स हाइलाइटिंग बंद करें" + } + }, + ".submit": { + "class": [ + ".submit" + ], + "description": "", + "isStrict": false, + "rules": { + "Registration for the contest": "प्रतियोगिता पंजीकरण" + } + }, + "._FilterByTagsFrame_difficulty": { + "class": [ + "._FilterByTagsFrame_difficulty" + ], + "description": "", + "isStrict": false, + "rules": { + "Difficulty:": "कठिनाई:" + } + }, + "._FilterByTagsFrame_addTagLink": { + "class": [ + "._FilterByTagsFrame_addTagLink" + ], + "description": "", + "isStrict": false, + "rules": { + "Add tag": "टैग जोड़ो" + } + }, + ".alert": { + "class": [ + ".alert" + ], + "description": "", + "isStrict": false, + "rules": { + "Rating changes for last rounds are temporarily rolled back. They will be returned soon.": "रेटिंग परिवर्तन के पिछले दौर को अस्थायी रूप से वापस ले लिया गया है। वे जल्द ही ठीक हो जायेंगे.", + "Reminder: in case of any technical issues, you can use the lightweight website": "अनुस्मारक:यदि कोई तकनीकी समस्या आती है, तो आप एक हल्की वेबसाइट का उपयोग कर सकते हैं", + "Please subscribe to the official Codeforces channel in Telegram via the link ": "कृपया लिंक के माध्यम से कोडफोर्स के आधिकारिक टेलीग्राम चैनल की सदस्यता लें" + } + }, + ".lang-chooser": { + "class": [ + ".lang-chooser" + ], + "description": "", + "isStrict": false, + "rules": { + "Enter": "लॉग इन करें", + "Register": "पंजीकरण करवाना", + "Contest rating": "परीक्षण रेटिंग", + "Logout": "साइन आउट" + } + }, + ".userbox": { + "class": [ + ".userbox" + ], + "description": "", + "isStrict": false, + "rules": { + "Change photo": "चित्र बदलें", + "Contest rating": "प्रतिस्पर्धा रेटिंग", + "Contribution": "योगदान देना", + "My friends": "मेरी अच्छी दोस्त", + "Change settings": "सेटिंग्स परिवर्तित करना", + "Last visit": "अंतिम बार दौरा किया", + "not visible": "不可见的", + "Registered": "पर पंजीकृत", + "Blog entries": "ब्लॉग प्रविष्टि", + "comments": "टिप्पणी", + "Write new entry": "नई प्रविष्टि लिखें", + "View my talks": "मेरे निजी संदेश देखें", + "Talks": "निजी पत्र", + "Send message": "एक संदेश भेजो" + } + }, + "#vote-reset-filterDifficultyLowerBorder": { + "class": [ + "#vote-reset-filterDifficultyLowerBorder" + ], + "description": "", + "isStrict": false, + "rules": { + "Reset": "रीसेट" + } + }, + "#vote-reset-filterDifficultyUpperBorder": { + "class": [ + "#vote-reset-filterDifficultyUpperBorder" + ], + "description": "", + "isStrict": false, + "rules": { + "Reset": "रीसेट" + } + }, + ".alert.alert-info": { + "class": [ + ".alert.alert-info" + ], + "description": "", + "isStrict": false, + "rules": { + "The problem statement has recently been changed.": "प्रश्न विवरण हाल ही में बदल दिया गया है।", + "View the changes.": "परिवर्तन देखें" + } + }, + ".enterPage": { + "class": [ + ".enterPage" + ], + "description": "", + "isStrict": false, + "rules": { + "Fill in the form to login into Codeforces.": "कोडफोर्सेस में लॉग इन करने के लिए फॉर्म भरें।", + "You can use": "आप भी उपयोग कर सकते हैं", + "as an alternative way to enter.": "लॉग इन करें" + } + }, + ".notice.small": { + "class": [ + ".notice.small" + ], + "description": "", + "isStrict": false, + "rules": { + "\\* To view the complete list, click ": "* पूरी सूची देखने के लिए क्लिक करें" + } + }, + ".setting-name": { + "class": [ + ".setting-name" + ], + "description": "", + "isStrict": false, + "rules": { + "Contest type:": "खेल प्रकार:", + "Rated:": "रेटेड:", + "Tried:": "कोशिश की", + "Substring:": "कीवर्ड" + } + }, + ".by-form": { + "class": [ + ".by-form" + ], + "description": "", + "isStrict": false, + "rules": { + "Sort by:": ":के अनुसार क्रमबद्ध करें", + "relevance": "संबंधित", + "popularity": "गर्मी", + "time": "समय" + } + }, + ".roundbox.borderTopRound": { + "class": [ + ".roundbox.borderTopRound" + ], + "description": "", + "isStrict": false, + "rules": { + "If you invite users to this contest, the contest will become visible to them regardless of its visibility. You can share the contest using the link:": "यदि आप किसी उपयोगकर्ता को इस प्रतियोगिता में आमंत्रित करते हैं, तो प्रतियोगिता उपयोगकर्ता को उनकी दृश्यता की परवाह किए बिना दिखाई देगी। आप:लिंक का उपयोग करके मैच साझा कर सकते हैं", + "Generate link and share it with other users": "लिंक बनाएं और उन्हें अन्य उपयोगकर्ताओं के साथ साझा करें", + "Show Log »": "प्रवेश देखें \"", + "Move all to practice »": "सभी को प्रैक्टिशनर्स में ले जाएँ »", + "Remove All »": "सभी हटाएं \"", + "Add »": "इसमें जोड़ें\"", + "Set »": "स्थापित करना\"", + "Download Archive »": "पुरालेख डाउनलोड करें »" + } + }, + ".caption.titled": { + "class": [ + ".caption.titled" + ], + "description": "चीनी साइडबार शीर्षक", + "isStrict": false, + "rules": { + "Pay attention": "सूचना", + "Top rated": "रेटिंग रैंकिंग", + "Top contributors": "योगदानकर्ता रैंकिंग", + "Find user": "उपयोगकर्ता खोजें", + "Recent actions": "ताजा खबर", + "Training filter": "फ़िल्टर फ़िल्टर", + "Find training": "प्रतियोगिता/प्रश्न खोजें", + "Virtual participation": "वर्चुअल एंट्री क्या है", + "Contest materials": "प्रतियोगिता संबंधी जानकारी", + "Settings": "स्थापित करना", + "Create Mashup Contest": "एक मैशअप मैच बनाएं", + "Clone Contest to Mashup": "क्लोन कॉम्बो मैशअप में मेल खाता है", + "Invitations": "आमंत्रित करना", + "Status filter": "स्थिति फ़िल्टर", + "Administration": "प्रबंधित करना", + "Submit": "जमा करना", + "Practice": "अभ्यास", + "Problem tags": "प्रश्न टैग", + "Filter Problems": "फ़िल्टरिंग मुद्दे", + "Last unsolved": "पिछली बार अनसुलझा", + "Attention": "सूचना", + "Past contests filter": "पिछले खेलों के आधार पर फ़िल्टर करें", + "About Contest": "प्रतियोगिता के बारे में", + "Last submissions": "इतिहास प्रतिबद्ध करें", + "Streams": "सीधा आ रहा है", + "Coach rights": "कोचिंग अनुमतियाँ", + "Advices to fill address": "अपना पता भरने के लिए सुझाव", + "Hacks filter": "हैकर फ़िल्टर", + "Score table": "मूल्यांकन प्रपत्र", + "Contests": "प्रतियोगिता", + "History": "इतिहास संपादित करें", + "Login into Codeforces": "कोडफोर्सेस में लॉग इन करें", + "Export the judgment log to DAT-file": "निर्णय लॉग को DAT फ़ाइल के रूप में निर्यात करें", + "Contest managers": "टूर्नामेंट प्रशासक", + "Contest writers": "प्रतियोगिता लेखक", + "Spectator ranklists": "दर्शकों की रैंकिंग सूची", + "Ghosts:": "भूत खिलाड़ी", + "Export Submissions": "निर्यात प्रस्तुतीकरण", + "Register in Codeforces": "注册 Codeforces" + } + }, + "QuestionFilter1": { + "class": [ + "#gym-filter-form div label", + "#gym-filter-form div" + ], + "description": "प्रश्न फ़िल्टर विकल्पों का चीनी संस्करण", + "isStrict": false, + "rules": { + "Contest type:": "प्रतियोगिता का प्रकार:", + "ICPC region:": "आईसीपीसी क्षेत्र:", + "Contest format:": "प्रतियोगिता प्रारूप:", + "Order by:": "इसके अनुसार क्रमबद्ध करें:", + "Secondary order by:": "माध्यमिक छँटाई:", + "Hide, if participated:": "इसमें मेरी भागीदारी छिपाएँ:", + "Hide excluded gyms": "छिपाएँ बहिष्कृत:", + "Season:": "समय सीमा (वार्षिक)", + "Duration, hours:": "अवधि (घंटे):", + "Difficulty:": "कठिनाई:" + } + }, + "QuestionFilter2": { + "class": [ + ".setting-value select option", + ".setting-last-value select option" + ], + "description": "", + "isStrict": false, + "rules": { + "Official ACM-ICPC Contest": "आईसीपीसी आधिकारिक प्रतियोगिता", + "Official School Contest": "आधिकारिक स्कूल प्रतियोगिता", + "Opencup Contest": "ओपनकप प्रतियोगिता", + "School/University/City/Region Championship": "स्कूल/कॉलेज/शहर/क्षेत्रीय चैम्पियनशिप", + "Training Camp Contest": "प्रशिक्षण शिविर खेल", + "Official International Personal Contest": "आधिकारिक अंतर्राष्ट्रीय व्यक्तिगत प्रतियोगिता", + "Training Contest": "प्रशिक्षण खेल", + "ID_ASC": "निर्माण समय (आरोही क्रम)", + "ID_DESC": "निर्माण समय (घटते क्रम)", + "RATING_ASC": "रेटिंग (आरोही)", + "RATING_DESC": "रेटिंग (घटते क्रम)", + "DIFFICULTY_ASC": "कठिनाई (आरोही क्रम)", + "DIFFICULTY_DESC": "कठिनाई (घटते क्रम)", + "START_TIME_ASC": "प्रारंभ समय (आरोही क्रम)", + "START_TIME_DESC": "प्रारंभ समय (घटते क्रम)", + "DURATION_ASC": "अवधि (आरोही क्रम)", + "DURATION_DESC": "अवधि (घटते क्रम)", + "POPULARITY_ASC": "लोकप्रियता (आरोही क्रम)", + "POPULARITY_DESC": "लोकप्रियता (अवरोही क्रम)", + "UPDATE_TIME_ASC": "अद्यतन समय (आरोही क्रम)", + "UPDATE_TIME_DESC": "अद्यतन समय (अवरोही क्रम)" + } + }, + "CompetitionFilter": { + "class": [ + ".options li label", + ".CaptionCont span" + ], + "description": "मिलान फ़िल्टर विकल्पों का चीनी संस्करण", + "isStrict": false, + "rules": { + "Educational": "शिक्षात्मक", + "Global": "दुनिया भर", + "VK Cup": "वीके कप", + "Long Rounds": "लंबा दौर", + "April Fools": "अप्रैल मूर्ख दिवस", + "Team Contests": "टीम खेल", + "ICPC Scoring": "आईसीपीसी स्कोरिंग", + "Doesn't matter": "----", + "Any": "सभी", + "Yes$": "是", + "No$": "否", + "No submission(s)": "कोई समर्पण नहीं", + "Have submission(s)": "प्रस्तुत", + "No solved problem(s)": "कोई समस्या हल नहीं हुई", + "Have solved problem(s)": "समस्या का समाधान हो गया" + } + }, + "RightSidebox": { + "class": [ + ".sidebox div label" + ], + "description": "दाएँ साइडबॉक्स का चीनी संस्करण", + "isStrict": false, + "rules": { + "Show tags for unsolved problems": "अनसुलझे मुद्दों के लिए लेबल दिखाएं", + "Hide solved problems": "सुलझे हुए मुद्दे छुपाएं" + } + }, + "FormField-name": { + "class": [ + "td.field-name label" + ], + "description": "", + "isStrict": false, + "rules": { + "Postal/zip code": "पोस्टल कोड/डाक कोड", + "Country //(English//)": "国家(英文)", + "State //(English//)": "州/省份(英文)", + "City //(English//)": "城市(英文)", + "Address //(English//)": "地址(英文)", + "Recipient //(English//)": "收件人姓名(英文)", + "Country //(Native//)": "国家(本地语言)", + "State //(Native//)": "州/省份(本地语言)", + "City //(Native//)": "城市(本地语言)", + "Address //(Native//)": "地址(本地语言)", + "Recipient //(Native//)": "收件人姓名(本地语言)", + "Phone": "टेलीफ़ोन", + "TON Wallet:": "टन बटुआ:", + "Secret Code:": "सत्यापन कोड:", + "Terms of agreement:": "समझौते की शर्तें:", + "Choose team:": "एक टीम चुनें:" + } + }, + "QuestionTag": { + "class": [ + "._FilterByTagsFrame_addTagLabel select option", + "._FilterByTagsFrame_tagBoxCaption", + ".notice", + ".tag-box" + ], + "description": "", + "isStrict": false, + "rules": { + "combine tags by OR": "तार्किक रूप से या मेरे चयनित टैग को संयोजित करें", + "combine-tags-by-or": "मेरे चयनित टैग को तार्किक OR द्वारा संयोजित करें (combine-tags-by-or)", + "2-sat": "द्विदलीय ग्राफ संतुष्टि समस्या (2-शनि)", + "binary search": "द्विआधारी खोज", + "bitmasks": "बिटमास्क", + "brute force": "पाशविक बल", + "chinese remainder theorem": "चीनी शेषफल प्रमेय", + "combinatorics": "साहचर्य", + "constructive algorithms": "रचनात्मक एल्गोरिदम", + "data structures": "डेटा संरचनाएं", + "dfs and similar": "गहराई-पहली खोज और उसके प्रकार (dfs और समान)", + "divide and conquer": "फूट डालो और जीतो एल्गोरिथ्म", + "dp": "गतिशील प्रोग्रामिंग (डीपी)", + "dsu": "संघ खोज (डीएसयू)", + "expression parsing": "अभिव्यक्ति विश्लेषण", + "fft": "फास्ट फूरियर ट्रांसफॉर्म (एफएफटी)", + "flows": "प्रवाह", + "games": "खेल सिद्धांत(खेल)", + "geometry": "कम्प्यूटेशनल ज्यामिति", + "graph matchings": "ग्राफ मिलान", + "graphs": "रेखांकन", + "greedy": "लालची रणनीति (लालची)", + "hashing": "हैशिंग", + "implementation": "कार्यान्वयन के मुद्दे, प्रोग्रामिंग कौशल, सिमुलेशन (कार्यान्वयन)", + "interactive": "इंटरैक्टिव मुद्दे", + "math": "अंक शास्त्र", + "matrices": "मैट्रिक्स", + "meet-in-the-middle": "बीच में मिलो एल्गोरिथ्म (बीच में मिलो)", + "number theory": "संख्या सिद्धांत", + "probabilities": "संभावनाओं", + "schedules": "शेड्यूलिंग एल्गोरिदम (शेड्यूल)", + "shortest paths": "सबसे छोटा पथ एल्गोरिदम", + "sortings": "सॉर्टिंग एल्गोरिदम (सॉर्टिंग)", + "string suffix structures": "स्ट्रिंग प्रत्यय संरचनाएँ", + "strings": "स्ट्रिंग प्रोसेसिंग (स्ट्रिंग्स)", + "ternary search": "त्रिगुट खोज", + "trees": "पेड़", + "two pointers": "दोहरा सूचक अंकगणित (दो सूचक)" + } + }, + "SettingField-name": { + "class": [ + ".field-name" + ], + "description": "पृष्ठ पर फ़ील्ड सेट करें", + "isStrict": false, + "rules": { + "Hide sidebar block \"Find user\"": "साइडबार छुपाएं ब्लॉक \"उपयोगकर्ता ढूंढें\"", + "Hide sidebar block \"Current user\"": "साइडबार ब्लॉक \"वर्तमान उपयोगकर्ता\" छुपाएं", + "Hide sidebar block \"Recent аctions\"": "साइडबार ब्लॉक छुपाएं \"नवीनतम समाचार\"", + "Hide sidebar block \"Favourite groups\"": "साइडबार ब्लॉक \"पसंदीदा समूह\" छुपाएं", + "Hide sidebar block \"Top contributors\"": "साइडबार ब्लॉक \"योगदानकर्ता रैंकिंग\" छुपाएं", + "Hide sidebar block \"Top rated\"": "साइडबार ब्लॉक \"रेटिंग\" छुपाएं", + "Hide sidebar block \"Streams\"": "साइडबार ब्लॉक छिपाएँ \"लाइव प्रसारण\"", + "Old password": "पुराना पासवर्ड", + "New password": "नया पासवर्ड", + "Confirm new password": "नये पासवर्ड की पुष्टि करें", + "Contest email notification": "प्रतियोगिता ईमेल अधिसूचना", + "Send email on new user talk": "जब कोई नया उपयोगकर्ता वार्तालाप हो तो ईमेल भेजें", + "Send email on new comment": "नई टिप्पणियाँ आने पर ईमेल भेजें", + "Hide contact information": "संपर्क जानकारी छिपाएँ", + "Remember me by Gmail, Facebook and etc": "मुझे जीमेल, फेसबुक आदि के माध्यम से याद रखें।", + "Show tags for unsolved problems": "अनसुलझे मुद्दों के लिए लेबल दिखाएं", + "Hide solved problems from problemset": "समस्या सेट से हल किए गए मुद्दों को छिपाएँ", + "Hide low rated blogs": "कम रेटिंग वाले ब्लॉग छुपाएं", + "Offer to publish great rating rises": "रेटिंग में महत्वपूर्ण सुधार प्रदर्शित करने का अवसर प्रदान करें", + "Enforce https": "बलपूर्वक HTTPS", + "Show private activity in the profile": "प्रोफ़ाइल पर निजी ईवेंट दिखाएं", + "Show diagnostics": "निदान संबंधी जानकारी दिखाएँ" + } + }, + "CloneContestFormField": { + "class": [ + ".field-name" + ], + "description": "वर्चुअल मैशअप सेटअप फॉर्म से क्लोन का मिलान", + "isStrict": false, + "rules": { + "Problem:": "विषय:", + "Question": "问题", + "Language:": "भाषा:", + "Source code:": "सोर्स कोड:", + "Or choose file:": "या एक फ़ाइल चुनें:", + "Choose file:": "एक दस्तावेज़ चुनें:", + "Notice:": "सूचना:", + "virtual participation:": "आभासी भागीदारी:", + "Registration for the contest:": "प्रतियोगिता पंजीकरण:", + "Take part:": "हिस्सा लेना:", + "as individual participant:": "एक व्यक्तिगत भागीदार के रूप में:", + "as a team member:": "एक टीम सदस्य के रूप में:", + "Virtual start time:": "आभासी प्रारंभ समय:", + "Complete problemset:": "पूरा प्रश्न सेट:", + "First name \\(English\\)": "नाम (अंग्रेजी)", + "Last name \\(English\\)": "अंतिम नाम (अंग्रेजी)", + "First name \\(Native\\)": "प्रथम नाम (स्थानीय भाषा)", + "Last name \\(Native\\)": "अंतिम नाम (स्थानीय भाषा)", + "Birth date": "जन्म की तारीख", + "Country": "राष्ट्र", + "City": "शहर", + "Organization": "आयोजन", + "Handle/Email": "खाता ई - मेल", + "Name": "名称", + "Handle": "账号", + "Email": "邮箱", + "Confirm": "确认", + "Password": "पासवर्ड", + "New Rank": "新的Rank", + "Training name \\(English\\):": "प्रशिक्षण का नाम (अंग्रेजी):", + "Training name \\(Russian\\):": "प्रशिक्षण का नाम (रूसी):", + "Contest format:": "प्रतियोगिता प्रारूप:", + "Start time:": "प्रारम्भ का समय:", + "Duration:": "अवधि:", + "Visibility:": "दृश्यता:", + "Attach parent contest\\?:": "पेरेंट मैच लिंक करें?", + "Participation type:": "भागीदारी प्रकार:", + "Freeze period:": "फ्रीज अवधि:", + "Unfreeze time:": "पिघलने का समय:", + "Is practice allowed\\?:": "क्या अभ्यास की अनुमति है?", + "Is virtual allowed\\?:": "क्या आभासी प्रविष्टियों की अनुमति है?", + "Is out of competition allowed\\?:": "क्या गैर-प्रतियोगिता प्रविष्टियों की अनुमति है?", + "Is self-registration allowed\\?:": "क्या स्व-सेवा पंजीकरण की अनुमति है?", + "Can non-registered view the contest\\?:": "क्या अपंजीकृत उपयोगकर्ता प्रतियोगिता देख सकते हैं?", + "Can participants view common status\\?:": "क्या प्रतियोगी साझाकरण स्थिति की जाँच कर सकते हैं?", + "Contest testdata policy:": "प्रतियोगिता परीक्षण डेटा रणनीति:", + "Allow view other submissions to:": "अन्य सबमिशन देखने की अनुमति दें:", + "Manage program languages:": "प्रबंधन प्रोग्रामिंग भाषा:", + "Use time limits scaling policy\\?:": "समय-सीमित स्केलिंग रणनीति का उपयोग कर रहे हैं?", + "Allow statements\\?:": "प्रश्न विवरण देखने की अनुमति दें?", + "Allow standings\\?:": "रैंकिंग देखने की अनुमति दें?", + "Season:": "मौसम:", + "Contest type:": "प्रतियोगिता का प्रकार:", + "ICPC region:": "आईसीपीसी क्षेत्र:", + "Country:": "राष्ट्र:", + "City:": "शहर:", + "Contest difficulty:": "खेल कठिनाई:", + "Website URL:": "वेबसाइट की लिंक:", + "Description \\(English\\):": "विवरण (अंग्रेजी):", + "Description \\(Russian\\):": "विवरण (रूसी):", + "Registration confirmation text \\(English\\):": "पंजीकरण पुष्टिकरण पाठ (अंग्रेजी):", + "Registration confirmation text \\(Russian\\):": "पंजीकरण पुष्टिकरण पाठ (रूसी):", + "Logo \\(English\\):": "लोगो (अंग्रेजी):", + "Logo \\(Russian\\):": "लोगो (रूसी):", + "End time:": "अंत समय:", + "Name:": "नाम:", + "Contest\\(s\\):": "प्रतियोगिताएं):", + "Add contest:": "एक प्रतियोगिता जोड़ें:", + "Show Contestants:": "प्रतियोगी दिखाएं:", + "Show Out of Competition Participants:": "गैर-प्रतियोगिता प्रतिभागियों को दिखाएँ:", + "Show Practices:": "व्यायाम दिखाएँ:", + "Show Virtuals:": "आभासी खिलाड़ी दिखाएँ:", + "Show Ghosts:": "भूत खिलाड़ी दिखाएँ:", + "Text:": "मूलपाठ:", + "Rewrite Examples:": "उदाहरण पुनः लिखें:", + "Add images:": "चित्र जोड़ें:", + "Do not use:": "उपयोग नहीं करो:", + "Problem short name:": "शीर्षक संक्षिप्तीकरण:", + "Source problem:": "स्रोत प्रश्न:", + "Problem name \\(English\\):": "विषय का शीर्षक (अंग्रेजी):", + "Input file name:": "फ़ाइल नाम दर्ज करें:", + "Output file name:": "आउटपुट फ़ाइल नाम:", + "Time Limit:": "समय सीमा:", + "Memory Limit:": "मेमोरी सीमा:", + "Output only:": "केवल आउटपुट:" + } + }, + ".ask-question-link": { + "class": [ + ".ask-question-link" + ], + "description": "", + "isStrict": false, + "rules": { + "Ask a question": "प्रश्न पूछें" + } + }, + "add-announcement-link": { + "class": [ + ".add-announcement-link" + ], + "description": "", + "isStrict": false, + "rules": { + "Add announcement": "घोषणा जोड़ें" + } + }, + "demo": { + "class": [ + "Class" + ], + "description": "", + "isStrict": false, + "rules": { + "SourceText": "TargetText" + } + } + }, + "InputValueReplacements": { + "InputSubmit": { + "class": [ + "input[type='submit']" + ], + "description": "सबमिट करेंचीनी", + "isStrict": false, + "rules": { + "Register for virtual participation": "वर्चुअल प्रविष्टि के लिए साइन अप करें", + "Register for practice": "अभ्यास शुरू करने के लिए साइन इन करें", + "Apply": "आवेदन", + "Register": "साइन अप करें", + "Login": "लॉग इन करें", + "Run": "दौड़ना", + "Start virtual contest": "आभासी प्रविष्टि प्रारंभ करें", + "Manage invitations": "निमंत्रण प्रबंधित करें", + "Disable manager mode": "प्रबंधन मोड को अस्थायी रूप से बंद करें", + "Enable manager mode": "प्रबंधन मोड सक्षम करें", + "Clone Contest": "क्लोन प्रतियोगिता", + "Submit": "जमा करना", + "Save changes": "सेटिंग्स सेव करें", + "Filter": "फ़िल्टर", + "Find": "खोजो", + "Save": "बचाना", + "Create Mashup Contest": "एक मैशअप मैच बनाएं", + "Delete problem": "प्रश्न हटाएं", + "Restore problem": "पुनर्प्राप्ति मुद्दे", + "Generate": "生成", + "Send": "发送" + } + }, + "InputButton": { + "class": [ + "input[type='button']" + ], + "description": "", + "isStrict": false, + "rules": { + "Reset": "रीसेट", + "Delete contest": "मिलान हटाएँ", + "Preview": "पूर्व दर्शन" + } + } + } +} \ No newline at end of file diff --git a/i18n/it/README.md b/i18n/it/README.md new file mode 100644 index 000000000..b4f663148 --- /dev/null +++ b/i18n/it/README.md @@ -0,0 +1 @@ +# OJBetter diff --git a/i18n/it/docs/AtCoderBetter.html b/i18n/it/docs/AtCoderBetter.html new file mode 100644 index 000000000..40daf58e2 --- /dev/null +++ b/i18n/it/docs/AtCoderBetter.html @@ -0,0 +1,244 @@ +

AtCoder Better!🎈

+

L'interfaccia di AtCoder è in cinese, supporto della modalità scura, traduzione del titolo, visualizzazione markdown, copia del titolo con un solo clic, salto a Logu

+

funzionalità

+

Lo script del suggerimento:fornisce elementi di configurazione per alcune delle sue funzioni e può aprire il pannello delle impostazioni cliccando sul pulsante AtCoderBetter Settings su nell'angolo superiore destro dell'intera pagina di.

+

Interfaccia in lingua cinese

+

Gli elementi principali del sito saranno tradotti in cinese, se c'è un errore o una cattiva traduzione da qualche parte, la invitiamo a fornire un feedback.

+

Può scegliere di attivare o disattivare la localizzazione nel pannello AtCoderBetter settings nell'angolo superiore destro.

+

Traduzione del titolo

+

Aggiunga un pulsante di traduzione nell'angolo in alto a destra dei titoli, dei blog, dei commenti, ecc. per tradurre in cinese con un solo clic, assicurandosi che la formula Latex non venga infranta!

+

Può scegliere quale servizio di traduzione desidera utilizzare nel pannello AtCoderBetter Settings nell'angolo in alto a destra (l'impostazione predefinita è Deepl).

+

tip:Cliccando con il tasto destro del mouse sul pulsantetranslate, può passare rapidamente da un servizio di traduzione all'altro.

+

Sono disponibili le seguenti interfacce di traduzione:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  + KEY + Qualità della traduzioneaffidabilitàNumero massimo di caratteri + richiede un periodo di (x quantità di tempo)
Traduzione Deepl (✨ consigliata)inutile⭐️⭐️⭐️⭐️Alcune aree potrebbero essere inaccessibili o lente5000affilato (di coltelli o di ingegno)
Xunfei sente tradurreinutile⭐️⭐️⭐️Di solito è affidabile2000affilato (di coltelli o di ingegno)
Traduzione su Youtubeinutile⭐️⭐️Di solito è affidabile600affilato (di coltelli o di ingegno)
Google Translateinutile⭐️⭐️⭐️Richiede l'accesso a Internet a Google5000affilato (di coltelli o di ingegno)
Traduzione di nuvole colorateinutile⭐️⭐️Di solito è affidabile5000affilato (di coltelli o di ingegno)
Traduzione con ChatGPT (✨ consigliato)È richiesta la chiave API⭐️⭐️⭐️⭐️⭐️Dipende dalla qualità del fornitore di servizi e dall'affollamento di OpenAI.Dipende dal modellopiù lento
+

Altre funzioni

+

Alcune funzioni possono essere modificate/interrotte nel pannello AtCoderBetter Settings nell'angolo superiore destro.

+ +

compatibilità

+

browser (software)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 coadiuvanteversione minima
Chromecoadiuvante96
Egdecoadiuvante96
Caso di cromo domesticoCompatibilità di base, ma possono verificarsi errori inaspettatiVersione del kernel Chromium ≥96
FireFox (incluso mobile)coadiuvante103
Safarinon supportato\
+ +

Manager di script

+

Testato solo con lo script manager Tampermonkey, la compatibilità con Greasemonkey, Violentmonkey, ScriptCat, ecc. non è garantita!

+

Altri plug-in

+

Non c'è alcun problema di compatibilità con i plug-in mainstream legati a CF, se riscontra problemi di compatibilità, è benvenuto a fornire un feedback.

+

Problemi comuni

+ + + +

Contribuire al codice

+

Si senta libero di contribuire al codice, vada al repository Github Crei un PR

+

riconoscente

+ +

Grazie, 0rz.

\ No newline at end of file diff --git a/i18n/it/docs/CodeforcesBetter.html b/i18n/it/docs/CodeforcesBetter.html new file mode 100644 index 000000000..6e9eccc63 --- /dev/null +++ b/i18n/it/docs/CodeforcesBetter.html @@ -0,0 +1,477 @@ +

Codeforces Better!🎈

+

Interfaccia Codeforces in cinese, supporto della modalità scura, traduzione del titolo, visualizzazione markdown, copia del titolo con un solo clic, salto a Logu, pagina di differenziazione dei commenti, visualizzazione del punteggio ClistRating, ricolorazione dell'elenco

+
+
+
+

Scriva in anticipo:Note di feedback

+
+

如遇问题,请先阅读下方的 #常见问题 说明。如果没有得到解决,请前往 反馈页 或者 Github issues 反馈。如遇问题,请先阅读下方的 #常见问题 说明。如果没有得到解决,请前往 反馈页 或者 Github issues 反馈。如遇问题,请先阅读下方的 #常见问题 说明。如果没有得到解决,请前往 反馈页 或者 Github issues 反馈。In caso di problemi, legga prima le istruzioni #FAQ qui sotto.Se il problema non viene risolto, la invitiamo a visitare la pagina di feedback o Github issues per fornire un feedback.

+

Fornisca una descrizione dettagliata del problema, ad esempio:link, screenshot, risultati desiderati, risultati effettivi, riproduzione……

+

Anche le discussioni amichevoli e i suggerimenti di funzionalità sono benvenuti, ma non è obbligo dell'autore mantenere gli script e fornire aiuto, grazie per la sua comprensione.

+
+
+

funzionalità

+Suggerimento Alcune funzioni dello script:forniscono elementi di configurazione; può aprire il pannello delle impostazioni facendo clic sul pulsanteCodeforcesBetter Settings a
nell'angolo superiore destro dell'intera pagina di . +

Interfaccia in lingua cinese

+

Sinicizza gli elementi principali del sito web in cinese (può essere disattivato)

+

Traduzione del titolo

+

Aggiunga un pulsante di traduzione nell'angolo in alto a destra dei titoli, dei blog, dei commenti, ecc. per tradurre in cinese con un solo clic, assicurandosi che la formula Latex non venga infranta!

+

Su questa base, lo script offre tre modalità di traduzione:

+ +

Può selezionare il servizio di traduzione che desidera utilizzare (DeepL per impostazione predefinita) e cambiare la modalità di lavoro dello script nel pannello Impostazioni di CodeforcesBetter nell'angolo superiore destro.

+
+
+

Nota:La modalità di segmentazione/selezione crea i seguenti problemi:

+

- L'impossibilità per l'interfaccia di traduzione di conoscere le informazioni contestuali dell'intero testo può ridurre la qualità della traduzione.

+

- Ci saranno parti del contenuto che non saranno tradotte/non potranno essere selezionate perché non sono elementi di<p/>o<i/>.

+
+
+

Lo script fornisce le seguenti interfacce di traduzione tra cui scegliere:(l'impostazione predefinita è DeepL)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  + KEY + Qualità della traduzioneaffidabilitàNumero massimo di caratteri + richiede un periodo di (x quantità di tempo)
Traduzione di DeepL (✨ consigliato)inutile⭐️⭐️⭐️⭐️Alcune aree potrebbero essere inaccessibili o lente5000affilato (di coltelli o di ingegno)
Xunfei sente tradurreinutile⭐️⭐️⭐️Di solito è affidabile2000affilato (di coltelli o di ingegno)
Traduzione su Youtubeinutile⭐️⭐️Di solito è affidabile600affilato (di coltelli o di ingegno)
Google Translateinutile⭐️⭐️⭐️Richiede l'accesso a Internet a Google5000affilato (di coltelli o di ingegno)
Traduzione di nuvole colorateinutile⭐️⭐️Di solito è affidabile5000affilato (di coltelli o di ingegno)
Traduzione con ChatGPT (✨ consigliato)È richiesta la chiave API⭐️⭐️⭐️⭐️⭐️Dipende dalla qualità del fornitore di servizi e dall'affollamento di OpenAI.Dipende dal modellopiù lento
+Suggerimento:Clicchi con il tasto destro del mouse sul pulsanteTranslateper passare rapidamente da un servizio di traduzione all'altro! +

traduzione automatica

+

Quando la funzione "Traduzione automatica" è attivata, i testi brevi nell'area.ttypography, .comments vengono tradotti automaticamente quando entrano nell'area visualizzabilenella finestra del browser.

+

(Può specificare il numero di caratteri o meno di un testo breve nel pannello delle impostazioni).

+

Inoltre, quando è attivata la funzione "Traduzione rapida nell'area commenti", per i testi brevi nell'area commenti, la traduzione automatica selezionerà in modo casuale uno dei servizi candidati ed eseguirà la traduzione rapida in parallelo.

+

Recupero storico della traduzione

+

Quando "Ripristino automatico delle traduzioni storiche" è abilitato, le informazioni di traduzione della pagina del titolosaranno salvate automaticamente nella tabella translateData del database CFBetterDB di indexDB localmente nel browser.

+

L'aggiornamento / ripristina automaticamente le informazioni sulla traduzione al successivo accesso alla pagina.

+

Valutazione Clist

+

Ottenga i dati del punteggio di valutazione del sito web clist.by e li visualizzi!

+

Si noti che le credenziali richieste per i diversi lavori di pagina variano:

+ +Lo script non ottiene un cookie specifico per clist.by, l'informazione sul cookie viene trasportata automaticamente dal browser quando invia la richiesta e la validità del cookie è determinata dal codice di stato restituito dalla richiesta tentata. +

Editore e LSP

+

Aggiunga l'editore alla pagina del titolo

+

Aggiunga l'editor di codice monaco alla parte inferiore della pagina del titolo (abilitato per impostazione predefinita).

+

Supporta il salvataggio automatico del codice, l'invio rapido del codice, l'esecuzione di test online, l'LSP, i miglioramenti statici complementari e altre funzioni.

+

Codice autosave

+

Il codice viene automaticamente salvato nella tabella editorCode del database CFBetterDB di IndexedDB locale al browser.

+

Esecuzione del test online

+

Può eseguire i campioni del titolo con un solo clic e può anche personalizzare i campioni di prova, che vengono salvati automaticamente nella tabella EditorCode del database CFBetterDB.

+

Lo script fornisce diversi servizi di esecuzione del codice online:codeforces official, wandbox (3rd party), rextester (3rd party) che supportano diverse opzioni di parametri.

+
+
+

Nota:

+
    +
  • +

    Ovviamente, tutti i servizi di esecuzione del codice online non sono in grado di testare gli argomenti interattivi.

    +
  • +
  • +

    I servizi di esecuzione di codice online di terze parti possono essere eseguiti in ambienti diversi da codeforces, e il codice che funziona o risulta corretto in un servizio di esecuzione di codice online di terze parti potrebbe non esserlo necessariamente in codeforces.

    +
  • +
  • +

    Non c'è alcuna garanzia che il suo codice non venga divulgato in qualche modo da un servizio di esecuzione di codice online di terze parti.

    +
  • +
  • +

    Inoltre, per le applicazioni più ampie, le opzioni di compilazione della pagina non corrispondono strettamente alle opzioni di compilazione effettive del servizio di esecuzione di codice online di terze parti, quindi è possibile ottenere risultati inaspettati.

    +
  • +
+
+
+

LSP

+

Dopo aver configurato l'LSP, può fornire le seguenti funzioni per l'editor (solo per i linguaggi C++ e Python):

+ +

Naturalmente, non supporta la compilazione locale, il debug dei punti di interruzione, i file multipli, ecc.……, le prestazioni non sono buone come quelle degli IDE speciali locali.

+

In breve, questa funzione non è molto significativa o utile, quindi se è interessato, consulti la sezione FAQ qui sotto per saperne di più!

+

Miglioramento del completamento statico

+

Può aggiungere regole di completamento del codice statico personalizzate all'editor monaco in Pannello impostazioni - Monaco - Miglioramenti del completamento statico - Personalizzato.

+

Le regole di completamento sono in formato JSON, ecco un esempio (in formato monaco).

+
+  {
+    "suggerimenti": [
+        {
+            "label": "hello world",
+            "kind": 15,
+            "documentation": "The is a hello world snippet",
+            "insertText": "hello world"
+        },
+        // altro suggerimenti... ]
+}
+
+

Può utilizzare quasi tutte le proprietà di CompletionItem , (nota: non compili la proprietà range, lo script la calcolerà e la aggiungerà automaticamente).

+

Altre funzioni

+ +

compatibilità

+

browser (software)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 coadiuvanteversione minima
Chromecoadiuvante96
Edgecoadiuvante96
Caso di cromo domesticoCompatibilità di base, ma possono verificarsi errori inaspettatiVersione del kernel Chromium ≥96
FireFox (incluso mobile)coadiuvante103
Safarinon supportato\
+

Manager di script

+

Testato solo con lo script manager Tampermonkey, la compatibilità con Greasemonkey, Violentmonkey, ScriptCat, ecc. non è garantita.

+

Altri plug-in

+

Non ci sono problemi di compatibilità con i plug-in tradizionali legati a CF, quindi se riscontra problemi di compatibilità, il feedback è benvenuto.

+

specchio (informatica)

+

Supporto sito luce ufficiale m1 / m2 / m3 , sito specchio ufficiale https://mirror.codeforces.com/, sito specchio non ufficiale https://codeforc.es

+

Inoltre, è teoricamente compatibile con qualsiasi altro mirror, basta aggiungere un'altra riga di commento // @corrispondere all'URL del suo mirror e il gioco è fatto!

+

Problemi comuni

+
+
D. Come posso iniziare? +
+ A. Prima di installare lo script, deve installare Tampermonkey . +
+
+
+
Errore di aggiornamento? +
+

R. A causa della piattaforma Greasy Fork, quando viene rilasciata una nuova versione, può accadere che l'aggiornamento/installazione effettiva sia la versione precedente.

+

Di solito è sufficiente attendere qualche minuto e poi aggiornare/installare di nuovo.

+

Può anche spostare il mouse sul punto interrogativo rosso nella casella Avviso di aggiornamento dello script e fare clic sul pulsante "Non aggiornare ancora" in fondo al messaggio pop-up.

+
+
+
+
D. Continua a mostrare il caricamento? +
+ A. Abiliti l'opzione "Opzioni di compatibilità - Non attendere il caricamento delle risorse della pagina" nel pannello delle impostazioni. +
+
+
+
Utilizzo di DeepL Errore di traduzione Troppe richieste? +
+

R. Di solito questo è dovuto al fatto che ha tradotto frequentemente in un breve periodo di tempo, oppure ha tradotto più di 5.000 caratteri di testo in una sola volta. DeepL ha un limite sul numero di parole e sulla frequenza delle traduzioni.

+ È temporaneo. Tornerà alla normalità dopo un po'. +
+
+
+
Ricevo un errore di undefind quando utilizzo DeepL o continua a mostrare la traduzione in corso? +
+ A. Di solito questo accade perché la rete che si sta utilizzando non ha un accesso adeguato a www.deepl.com +
+
+
+
D. Alcune formule sono indicate come {xx} / [xx] / [xx] nel risultato della traduzione? +
+ A. Quando si utilizza l'interfaccia di traduzione comune (DeepL/Youdao/google) per la traduzione, limitata dal modo in cui lo script è implementato, ci possono essere{xx}/[xx]/[xx] +
+
+
+

Gestione delle formule da parte dello script

+

Al fine di proteggere le formule LaTeX dall'essere corrotte durante la traduzione, lo script prima di tutto estrarrà tutte le formule LaTeX e le inserirà utilizzando il carattere di sostituzione{xx}/[xx]/[xx], il carattere

+

Poiché la probabilità è che queste sostituzioni non vengano danneggiate durante la traduzione, è possibile ripristinare le formule LaTeX basate sulle sostituzioni dopo la traduzione.

+

Questa implementazione funziona come previsto, a condizione che il carattere di sostituzione non sia interrotto, il che non è un problema nella stragrande maggioranza dei casi.

+

Ma a volte i servizi di traduzione interrompono le sostituzioni, ad esempio, [23] diventa [23 / 23] / [23]/ [23 】/ 23 】, nel qual caso lo script sarà ripristinato da alcune regole regolari in modo che funzioni ancora come previsto.

+

Tuttavia, se il servizio di traduzione distrugge anche altri contenuti e crea ambiguità, ad esempio se il servizio di traduzione trasforma [2] 313 in [2312], non è possibile ripristinarlo.

+

Per ogni servizio di traduzione, le diverse sostituzioni hanno diverse probabilità di essere corrotte a loro volta, e può selezionare diverse sostituzioni nel pannello delle impostazioni nell'angolo in alto a destra di

+

Dopo aver effettuato dei test, {} di solito funziona meglio, quindi questa è la sostituzione predefinita utilizzata dagli script

+
+
+
+
+
+

Suggerimento:

+

Questo problema non esiste quando si traduce con ChatGPT, in quanto a ChatGPT si può dire direttamente di "mantenere le formule LaTeX non tradotte" tramite una parola di richiesta.

+

Un ChatGPT intelligente è in grado di soddisfare questo aspetto molto bene, e questo è il modo consigliato per tradurre gli script.

+
+
+
+
+
+
Come faccio a tradurre con ChatGPT? +
+ A. Se ha accesso diretto all'interfaccia di OpenAI e dispone di un account, allora è perfetto, tutto ciò che deve fare è selezionare "Usa ChatGPT Translation (API)" e fare clic sul pulsante "Aggiungi" qui sotto per creare una nuova configurazione e riempire il nel pulsante "Aggiungi" qui sotto e compilarlo. +

Inoltre, può anche acquistare servizi di proxy api per utilizzare ChatGPT, la seguente tabella raccoglie alcuni fornitori di servizi api, che può scegliere di utilizzare +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 sito web ufficialeMetodo di acquisizione
API2Dhttps://api2d.com/sito web ufficiale
CloseAIhttps://console.closeai-asia.com/sito web ufficiale
OhMyGPThttps://aigptx.top/sito web ufficiale
OpenAI-SBhttps://openai-sb.com/Bot di Telegram
API2GPThttps://www.api2gpt.com/sito web ufficiale
AI Proxyhttps://aiproxy.io/sito web ufficiale
+
+
+
+

Disclaimer:

+

L'autore raccoglie e condivide solo a scopo di condivisione, non riceve alcun guadagno e non garantisce la stabilità delle piattaforme di cui sopra, e qualsiasi comportamento delle piattaforme non ha nulla a che fare con l'autore.

+

Si consiglia di effettuare piccole ricariche e di consumarle tutte, perché questi fornitori di servizi potrebbero chiudere l'attività.

+
+
+

Se utilizza un servizio fornito da un fornitore di servizi proxy api, la CHIAVE nella configurazione deve essere la chiave fornita dal fornitore di servizi proxy api.

+

Inoltre, è necessario inserire nella configurazione anche l'API Proxy, il

+

L'API Proxy deve essere compilata in ogni sua parte; ecco un esempio di CloseAI che fornisce l'API + Base:https://api.closeai-proxy.xyz

+

Poi l'API Proxy dovrebbe essere seguita da https://api.closeai-proxy.xyz/v1/chat/completions, il

+ Nota:Poiché ha specificato un'API personalizzata, Tampermonkey la avvertirà delle richieste cross-domain, la preghiamo di cliccare su Autorizza tu stesso! +
+ Nota:Se desidera utilizzare Azure OpenAI, poiché i parametri dell'interfaccia non sono uguali a quelli dell'interfaccia ufficiale di OpenAI, può scegliere di distribuireazure-openai-proxyper conto proprio, per convertire l'interfaccia di Azure OpenAI. +
+
+
+
Che cos'è l'LSP? +
+ A. LSP (Language Server Protocol)è una specifica di protocollo avviata da Microsoft per la comunicazione tra editori e server linguistici. +

Separa le funzioni di completamento del codice, diagnostica, suggerimenti, documentazione e persino gestione del progetto che gli IDE tradizionali devono implementare dall'editor, e utilizza servizi indipendenti per svolgere queste funzioni.

+

L'editor deve solo comunicare con il server in base alle specifiche del protocollo, il che riduce notevolmente il carico di lavoro e facilita il supporto di diversi linguaggi di programmazione da parte dell'editor.

+

Attualmente, l'ecologia di LSP è stata gradualmente migliorata, gli editor mainstream hanno supportato LSP o hanno i plug-in corrispondenti, come VSCode, Vim, Emacs, ecc....

+

Tuttavia, i principali fornitori di IDE commerciali sono poco interessati a questo aspetto, e fondamentalmente il server LSP esistente è mantenuto dalla comunità open source, quindi non è ancora all'altezza degli IDE professionali e di una serie di plug-in professionali.

+
+
+
+
Come si usa l'LSP? +
+ A. Solo due passi: +

Lo script:fornisce il supporto per le seguenti due implementazioni di LSP Server in C++ e Python, che deve installare come richiesto:

+ + + + + + + + + + + + + + + + + + + + +
multilinguismoLSP ServerMetodo di installazione (in Windows)
C++clangdScarichi clangd dal sito , rilasci clangd e aggiunga il percorso di clangd al percorso della variabile d'ambiente del sistema, ad esempio C:\clangd_16.0.2\bin\
PythonpylspEsegua il comando: + pip install "python-lsp-server[all]"e aggiungerà automaticamente la variabile d'ambiente
+

II:Dovrà anche scaricare e decomprimere OJBetter_Bridge da GitHub release o Blue Rhythm Cloud (password:aaaa) , che fa da ponte per la comunicazione tra gli script e il server LSP.

+

Posizioni la cartella estratta nella directory principale della sua unità C o in qualsiasi altra posizione di suo gradimento (nota:Se la posiziona in un'altra posizione, deve cambiare il "Percorso di lavoro" nel pannello Impostazioni con la sua posizione effettiva).

+

Poi può eseguire OJBetter_Bridge, che offre una versione GUI e una versione terminale; la versione GUI è consigliata per Windows, eseguire direttamente server_gui.exe .

+

OJBetter_Bridge controlla automaticamente se i comandi clangd e pylsp sono validi all'avvio e fornisce un prompt.

+ Suggerimento::Nell'interfaccia di server_gui.exe può impostare l'avvio. +

Dopo aver completato i passaggi sopra descritti, può attivare "Usa LSP" nel pannello delle impostazioni e utilizzarlo.

+
+
+
+ Per saperne di più? +
+ Per clangd, ci sono due file di configurazione memorizzati nella cartella cpp_workspace .clangd,.clang-format +

Definiscono le voci di configurazione e stile di formattazione del codicedi clangd, che può modificare.

+
+
+
+
+
+
+
+
D. Perché la formattazione clangd non funziona? +
+ A. Ciò è dovuto al fatto che ha inserito un percorso di lavoro LSP non corretto nel pannello di configurazione. +
+
+
+
D. Perché clangd non riconosce le mie intestazioni di <bits/stdc++.h> ? +
+ R. Questo perché <bits/stdc++.h> non è un file di intestazione standard, quindi clangd non lo supporta per impostazione predefinita; deve dire a clang dove trovare questo file di intestazione non standard modificando il parametro del compilatore nel file .clangd nel cpp_workspace + di OJBetter_Bridge (e naturalmente l'uso di un'intestazione universale non è raccomandato). +
+
+
+
È possibile utilizzare i file JSON locali per i miglioramenti del completamento statico? +
+ A causa delle restrizioni di sicurezza del browser, non può accedere direttamente al suo file JSON locale nel browser utilizzando un URL come file:///xxx . +

Ma può farlo con OJBetter_Bridge, è molto semplice, deve solo inserire il file JSON xxx.json nella cartella /mycomplet di OJBetter_Bridge.

+

Avviando OJBetter_Bridge potrà creare una nuova configurazione nel pannello Impostazioni con un URL JSON di:http://127.0.0.1:2323/mycomplet/xxx.json.

+
+
+

Provare?

+

Avvia OJBetter_Bridge, inizialmente la cartella /mycomplet viene fornita con un file JSON di esempio:template.json, quindi può aggiungere una configurazione, compilare + http://127.0.0.1:2323/mycomplet/template.json e salvare!

+

Ora digiti hello nell'editor e vedrà due voci complementari:hello world, hello world2

+
+
+
+
+
+

Contribuire al codice

+

Si senta libero di contribuire al codice, vada al repository Github Crei un PR

+

Un altro OJ?

+

Gli autori non mantengono molti script simili a causa delle risorse limitate, quindi se vuole fare il porting di questo script per il suo OJ preferito, è più che benvenuto a farlo, deve solo rispettare la licenza GPL-3.0!

+

riconoscente

+ +

Grazie, 0rz.

\ No newline at end of file diff --git a/i18n/it/resources/subs/Codeforces-subs.json b/i18n/it/resources/subs/Codeforces-subs.json new file mode 100644 index 000000000..3b00a22a9 --- /dev/null +++ b/i18n/it/resources/subs/Codeforces-subs.json @@ -0,0 +1,859 @@ +{ + "version": "1.0.0", + "commonReplacements": { + ".datatable": { + "class": [ + ".datatable" + ], + "description": "", + "isStrict": false, + "rules": { + "Virtual participation": "Partecipi al torneo di rievocazione virtuale", + "Enter": "entrare in", + "Current standings": "Elenco attuale", + "Final standings": "Elenco finale", + "Preliminary results": "Risultati preliminari", + "open hacking:": "Open Hacking", + "School/University/City/Region Championship": "Concorsi scolastici/universitari/cittadini/regionali", + "Official School Contest": "Competizioni scolastiche ufficiali", + "Training Contest": "partita di allenamento", + "Training Camp Contest": "Competizione del Campo di addestramento", + "Official ICPC Contest": "Concorso ufficiale ICPC", + "Official International Personal Contest": "Concorso Internazionale Ufficiale Individuale", + "China": "sino", + "Statements": "Titolo Descrizione", + "in Chinese": "Cinese", + "Trainings": "treno", + "Prepared by": "autore", + "Current or upcoming contests": "Concorsi in corso o imminenti", + "Rating: users participated in recent 6 months": "Valutazione:Utenti che hanno partecipato negli ultimi 6 mesi", + "Past contests": "Le partite passate", + "Exclusions": "escludere", + "Before start": "Mancano pochi minuti all'inizio della gara.", + "Before registration": "C'è ancora tempo prima dell'apertura delle iscrizioni", + "Until closing ": "C'è ancora tempo per chiudere la registrazione", + "Before extra registration": "La registrazione aggiuntiva non è ancora aperta", + "Register »": "Iscrizione \"", + "Registration completed": "Iscritta", + "Registration closed": "Le iscrizioni sono chiuse", + "Problems\n": "问题集", + "My Submissions": "La mia presentazione", + "Standings": "elenco dei nomi", + "Questions about problems": "Domande sui problemi", + "Contest status": "Stato del gioco", + "Invited users": "Utenti invitati", + "Invitation links": "Link per l'invito", + "API keys": "API密钥" + } + }, + ".menu-list.main-menu-list": { + "class": [ + ".menu-list.main-menu-list" + ], + "description": "", + "isStrict": false, + "rules": { + "Home": "homepage", + "Top": "in voga", + "Catalog": "Catalogo delle guide", + "Contests": "competizione (sport, ecc.)", + "Gym": "campo di addestramento", + "Problemset": "questionario", + "Groups": "organizzazioni", + "Rating": "Classifiche di valutazione", + "Edu": "coltivare", + "Calendar": "calendario", + "ICPC Challenge": "ICPC挑战赛", + "Help": "mano" + } + }, + ".nav-links": { + "class": [ + ".nav-links" + ], + "description": "", + "isStrict": false, + "rules": { + "Settings": "impostare", + "Blog": "blog (parola d'ordine)", + "Teams": "coda", + "Submissions": "presentare (un rapporto, ecc.)", + "Favourites": "segnalibro (Internet)", + "Problemsetting": "Impostazione del problema", + "Talks": "lettera privata", + "Contests": "competizione (sport, ecc.)" + } + }, + ".contest-state-phase": { + "class": [ + ".contest-state-phase" + ], + "description": "", + "isStrict": false, + "rules": { + "Before contest": "Concorso imminente", + "Contest is running": "Partita in corso" + } + }, + ".notice": { + "class": [ + ".notice" + ], + "description": "", + "isStrict": false, + "rules": { + "has extra registration": "Ci sono ulteriori periodi di iscrizione", + "If you are late to register in 5 minutes before the start, you can register later during the extra registration. Extra registration opens 10 minutes after the contest starts and lasts 25 minutes.": "Se non si è iscritto entro 5 minuti prima dell'inizio della gara, può iscriversi successivamente durante il periodo di iscrizione extra. Le iscrizioni extra si apriranno 10 minuti dopo l'inizio della gara e dureranno 25 minuti.", + "in timezone ([^)]*)": "1 Fuso orario", + "Contest will be available for virtual participation when over. Leave this field blank to allow virtual participation at any time": "Le iscrizioni virtuali saranno consentite dopo la conclusione del concorso. Lasci questo campo vuoto per consentire le iscrizioni virtuali in qualsiasi momento.", + "Contest duration in minutes": "Durata della partita (minuti)", + "or choose": "o selezionare", + "Standings freeze period in minutes": "Tempo di congelamento della lista (minuti)", + "Time when final results are available": "Tempo disponibile per i risultati finali", + "Is it allowed to solve contest problems unofficially after the end": "Se la risoluzione non ufficiale dei problemi della partita è consentita dopo la fine della stessa.", + "Is it allowed to run contest as virtual after the end": "Se le iscrizioni virtuali sono consentite dopo il concorso", + "Is it allowed participate in contest out of competition": "Se sono ammesse iscrizioni non competitive", + "Are participants allowed to register for the contest themselves": "Se i partecipanti possono registrarsi da soli", + "Can non-registered users and anonyms view contest standings, problems and other statistics": "Se consentire agli utenti non registrati e anonimi di visualizzare le classifiche di gara, le domande e altre statistiche.", + "If unchecked they will view only personal status": "Se è deselezionato, potrà visualizzare solo gli stati individuali.", + "To manage allowed program languages": "Gestione dei linguaggi di programmazione consentiti", + "The system will automatically adjust time limits for some languages. Recommended for use only for educational purpose.": "Il sistema regolerà automaticamente il limite di tempo per alcune lingue. Consigliato solo per scopi educativi.", + "Check it if you want to allow contestants view statements": "Spunti questa casella se desidera consentire al partecipante di visualizzare la descrizione della domanda.", + "Check it if contestants can view standings": "Spunti questa casella se desidera consentire ai partecipanti di visualizzare le classifiche.", + "Where the contest was held originally": "Luogo in cui si è svolta originariamente la competizione", + "Official contest site URL": "URL del sito web ufficiale del concorso", + "Enter a name for your new API key. It should describe what this key is used for.": "为您的新API密钥输入一个名称。它应该描述这个密钥的用途。", + "Enter your account password to confirm access. If you do not have password, logout and use password recovery feature.": "输入您的账户密码以确认访问。如果您没有密码,请注销并使用密码恢复功能。" + } + }, + ".propertyLinks": { + "class": [ + ".propertyLinks" + ], + "description": "", + "isStrict": false, + "rules": { + "Contribution": "dedicare" + } + }, + ".contests-table": { + "class": [ + ".contests-table" + ], + "description": "", + "isStrict": false, + "rules": { + "Contest history": "Storia della competizione" + } + }, + ".roundbox.sidebox.borderTopRound ": { + "class": [ + ".roundbox.sidebox.borderTopRound " + ], + "description": "", + "isStrict": false, + "rules": { + "Register now": "Si iscriva ora", + "No tag edit access": "Nessun privilegio di modifica dei tag", + "Problem([\\s]*)$": "问题", + "Verdict": "stato di giudizio", + "Language:": "Lingue.", + "Participant": "concorrenti", + "Choose file:": "Selezioni il file." + } + }, + ".icon-eye-close.icon-large": { + "class": [ + ".icon-eye-close.icon-large" + ], + "description": "", + "isStrict": false, + "rules": { + "Add to exclusions": "Aggiungi alla lista di esclusione" + } + }, + "null": { + "class": [ + null + ], + "description": "", + "isStrict": false, + "rules": { + "Add to exclusions for gym contests filter": "Aggiunta di esclusioni al filtro Boot Camp" + } + }, + ".roundbox.sidebox.sidebar-menu.borderTopRound": { + "class": [ + ".roundbox.sidebox.sidebar-menu.borderTopRound" + ], + "description": "", + "isStrict": false, + "rules": { + "Announcement": "bollettino", + "Statements": "Rapporti statistici", + "Tutorial": "note" + } + }, + ".second-level-menu": { + "class": [ + ".second-level-menu" + ], + "description": "", + "isStrict": false, + "rules": { + "Problems": "problemi", + "Submit Code": "Invia il codice", + "My Submissions": "La mia presentazione", + "Status": "stato delle cose", + "Standings": "elenco dei nomi", + "Adm.": "manageriale", + "Edit": "compilatore", + "Custom Invocation": "Debug personalizzato", + "Common standings": "Tutte le classifiche", + "Friends standings": "Solo per gli amici.", + "Submit": "presentare (un rapporto, ecc.)", + "Hacks": "hacker (informatica) (parola d'ordine)", + "Room": "cubicoli", + "Custom test": "Test personalizzati", + "Blog": "blog (parola d'ordine)", + "Teams": "coda", + "Submissions": "Presentazione dei registri", + "Groups": "organizzazioni", + "Rating": "classificazioni", + "Friends rating": "Valutazione degli amici", + "Favourites": "segnalibro (Internet)", + "Contests": "competizione (sport, ecc.)", + "Magic": "魔法", + "Handle": "账号", + "Members": "membri", + "问题etting": "Partecipa alla preparazione dei temi", + "Streams": "trasmissione in diretta (non registrata)", + "Gym": "campo di addestramento", + "Mashups": "mix and match (di abbigliamento, ecc.)", + "Posts": "carta", + "Comments": "ritorno (a una condizione precedente)", + "Main": "punto metallico", + "Settings": "impostare", + "Lists": "elenchi", + "General": "fondamentale", + "Sidebar": "una barra laterale (nel software)", + "Social": "sicurezza sociale (pensioni, assicurazione medica)", + "Address": "indirizzo", + "Wallets": "borse" + } + }, + ".topic-toggle-collapse": { + "class": [ + ".topic-toggle-collapse" + ], + "description": "", + "isStrict": false, + "rules": { + "Expand": "inizio" + } + }, + ".topic-read-more": { + "class": [ + ".topic-read-more" + ], + "description": "", + "isStrict": false, + "rules": { + "Full text and comments": "Leggi di più/commenti" + } + }, + ".toggleEditorCheckboxLabel": { + "class": [ + ".toggleEditorCheckboxLabel" + ], + "description": "", + "isStrict": false, + "rules": { + "Switch off editor": "Disattiva l'evidenziazione della sintassi dell'editor" + } + }, + ".submit": { + "class": [ + ".submit" + ], + "description": "", + "isStrict": false, + "rules": { + "Registration for the contest": "Registrazione alla competizione" + } + }, + "._FilterByTagsFrame_difficulty": { + "class": [ + "._FilterByTagsFrame_difficulty" + ], + "description": "", + "isStrict": false, + "rules": { + "Difficulty:": "Difficoltà." + } + }, + "._FilterByTagsFrame_addTagLink": { + "class": [ + "._FilterByTagsFrame_addTagLink" + ], + "description": "", + "isStrict": false, + "rules": { + "Add tag": "Aggiungi tag" + } + }, + ".alert": { + "class": [ + ".alert" + ], + "description": "", + "isStrict": false, + "rules": { + "Rating changes for last rounds are temporarily rolled back. They will be returned soon.": "Le modifiche alle valutazioni del turno precedente sono state temporaneamente annullate. Saranno ripristinate a breve.", + "Reminder: in case of any technical issues, you can use the lightweight website": "Promemoria:Se si verificano problemi tecnici, può utilizzare il sito leggero", + "Please subscribe to the official Codeforces channel in Telegram via the link ": "Si iscriva al canale Telegram ufficiale di Codeforces tramite il link!" + } + }, + ".lang-chooser": { + "class": [ + ".lang-chooser" + ], + "description": "", + "isStrict": false, + "rules": { + "Enter": "accedi", + "Register": "iscrizione", + "Contest rating": "Valutazione del test", + "Logout": "Esca dal sito" + } + }, + ".userbox": { + "class": [ + ".userbox" + ], + "description": "", + "isStrict": false, + "rules": { + "Change photo": "Sostituzione delle immagini", + "Contest rating": "Corsa", + "Contribution": "dedicare", + "My friends": "Il mio migliore amico.", + "Change settings": "Modificare le impostazioni", + "Last visit": "ultimo accesso", + "not visible": "不可见的", + "Registered": "registrato in", + "Blog entries": "Voci del blog", + "comments": "commenti", + "Write new entry": "Preparazione di nuove voci", + "View my talks": "Visualizza i miei messaggi privati", + "Talks": "lettera privata", + "Send message": "inviare un messaggio" + } + }, + "#vote-reset-filterDifficultyLowerBorder": { + "class": [ + "#vote-reset-filterDifficultyLowerBorder" + ], + "description": "", + "isStrict": false, + "rules": { + "Reset": "riproposizione" + } + }, + "#vote-reset-filterDifficultyUpperBorder": { + "class": [ + "#vote-reset-filterDifficultyUpperBorder" + ], + "description": "", + "isStrict": false, + "rules": { + "Reset": "riproposizione" + } + }, + ".alert.alert-info": { + "class": [ + ".alert.alert-info" + ], + "description": "", + "isStrict": false, + "rules": { + "The problem statement has recently been changed.": "La descrizione del titolo è stata recentemente modificata.", + "View the changes.": "Visualizza le modifiche" + } + }, + ".enterPage": { + "class": [ + ".enterPage" + ], + "description": "", + "isStrict": false, + "rules": { + "Fill in the form to login into Codeforces.": "Compili il modulo per accedere a Codeforces.", + "You can use": "Può anche utilizzare la funzione", + "as an alternative way to enter.": "accedi" + } + }, + ".notice.small": { + "class": [ + ".notice.small" + ], + "description": "", + "isStrict": false, + "rules": { + "\\* To view the complete list, click ": "* :: Per vedere l'elenco completo, clicchi su" + } + }, + ".setting-name": { + "class": [ + ".setting-name" + ], + "description": "", + "isStrict": false, + "rules": { + "Contest type:": "Tipo di competizione:", + "Rated:": ":", + "Tried:": "tentato", + "Substring:": "parole chiave" + } + }, + ".by-form": { + "class": [ + ".by-form" + ], + "description": "", + "isStrict": false, + "rules": { + "Sort by:": "Ordinato per:", + "relevance": "(statistica) correlazione", + "popularity": "entusiasmo di breve durata", + "time": "tempi" + } + }, + ".roundbox.borderTopRound": { + "class": [ + ".roundbox.borderTopRound" + ], + "description": "", + "isStrict": false, + "rules": { + "If you invite users to this contest, the contest will become visible to them regardless of its visibility. You can share the contest using the link:": "Se invita un utente a partecipare a questo concorso, il concorso sarà visibile all'utente indipendentemente dalla sua visibilità. Può condividere il concorso utilizzando il seguente link:", + "Generate link and share it with other users": "Genera link e li condivide con altri utenti", + "Show Log »": "Mostra il Diario \"", + "Move all to practice »": "Tutti spostati a Practitioner \"", + "Remove All »": "Rimuovi tutto \"", + "Add »": "Aggiungi \"", + "Set »": "Impostazioni \"", + "Download Archive »": "Scarica l'archivio \"" + } + }, + ".caption.titled": { + "class": [ + ".caption.titled" + ], + "description": "Barra laterale intitolata Cinese", + "isStrict": false, + "rules": { + "Pay attention": "prendere nota di", + "Top rated": "classifica delle valutazioni", + "Top contributors": "Classifica dei collaboratori", + "Find user": "Trova gli utenti", + "Recent actions": "Ultime notizie", + "Training filter": "Filtraggio e screening", + "Find training": "Ricerca concorsi/argomenti", + "Virtual participation": "Che cos'è una voce virtuale", + "Contest materials": "Informazioni relative alla concorrenza", + "Settings": "impostare", + "Create Mashup Contest": "Creare un concorso mashup", + "Clone Contest to Mashup": "Abbinamento clone a Combo Mashup", + "Invitations": "inviti", + "Status filter": "Filtro di stato", + "Administration": "manageriale", + "Submit": "presentare (un rapporto, ecc.)", + "Practice": "esercizio", + "Problem tags": "tag domanda", + "Filter Problems": "Problemi di filtraggio", + "Last unsolved": "Non risolto l'ultima volta", + "Attention": "prendere nota di", + "Past contests filter": "Screening degli abbinamenti passati", + "About Contest": "Informazioni sul concorso", + "Last submissions": "Storia della presentazione", + "Streams": "trasmissione in diretta (non registrata)", + "Coach rights": "Autorità di coaching", + "Advices to fill address": "Suggerimenti per la compilazione del suo indirizzo", + "Hacks filter": "Filtro Hacker", + "Score table": "scala di valutazione", + "Contests": "competizione (sport, ecc.)", + "History": "Storia editoriale", + "Login into Codeforces": "Accedi a Codeforces", + "Export the judgment log to DAT-file": "Esportazione del registro dei giudizi come file DAT", + "Contest managers": "Amministratore del concorso", + "Contest writers": "Scrittori a concorso", + "Spectator ranklists": "Lista di classificazione del pubblico", + "Ghosts:": "giocatore fantasma", + "Export Submissions": "Esportazione di documenti", + "Register in Codeforces": "注册 Codeforces" + } + }, + "QuestionFilter1": { + "class": [ + "#gym-filter-form div label", + "#gym-filter-form div" + ], + "description": "Gestione delle opzioni del filtro del titolo", + "isStrict": false, + "rules": { + "Contest type:": "Tipo di competizione.", + "ICPC region:": "Regioni ICPC.", + "Contest format:": "Formato della competizione.", + "Order by:": "Ordina per.", + "Secondary order by:": "Ordinazione secondaria.", + "Hide, if participated:": "Nascondi quelli a cui ho partecipato.", + "Hide excluded gyms": "Nascondere escluso.", + "Season:": "Tempistica (annuale)", + "Duration, hours:": "Durata (ore).", + "Difficulty:": "Difficoltà." + } + }, + "QuestionFilter2": { + "class": [ + ".setting-value select option", + ".setting-last-value select option" + ], + "description": "", + "isStrict": false, + "rules": { + "Official ACM-ICPC Contest": "Concorso ufficiale ICPC", + "Official School Contest": "Competizioni scolastiche ufficiali", + "Opencup Contest": "Concorso Opencup", + "School/University/City/Region Championship": "Campionati scolastici/universitari/cittadini/regionali", + "Training Camp Contest": "Competizione del Campo di addestramento", + "Official International Personal Contest": "Concorso Internazionale Ufficiale Individuale", + "Training Contest": "partita di allenamento", + "ID_ASC": "Tempo di creazione (ordine crescente)", + "ID_DESC": "Tempo di creazione (decrescente)", + "RATING_ASC": "Valutazione (ordine crescente)", + "RATING_DESC": "Valutazione (decrescente)", + "DIFFICULTY_ASC": "Difficoltà (ordine crescente)", + "DIFFICULTY_DESC": "Difficoltà (in discesa)", + "START_TIME_ASC": "Ora di inizio (ordine crescente)", + "START_TIME_DESC": "Ora di inizio (decrescente)", + "DURATION_ASC": "Durata (ascendente)", + "DURATION_DESC": "Durata (decrescente)", + "POPULARITY_ASC": "Calore (ordine crescente)", + "POPULARITY_DESC": "Calore (ordine decrescente)", + "UPDATE_TIME_ASC": "Ora di aggiornamento (ordine crescente)", + "UPDATE_TIME_DESC": "Tempo di aggiornamento (decrescente)" + } + }, + "CompetitionFilter": { + "class": [ + ".options li label", + ".CaptionCont span" + ], + "description": "Opzioni del filtro gara cinese", + "isStrict": false, + "rules": { + "Educational": "istruttivo", + "Global": "globalmente", + "VK Cup": "Coppa VK", + "Long Rounds": "lungo giro (di negoziati)", + "April Fools": "Pesce d'aprile", + "Team Contests": "competizione a squadre", + "ICPC Scoring": "Punteggio ICPC", + "Doesn't matter": "----", + "Any": "proprietà", + "Yes$": "是", + "No$": "否", + "No submission(s)": "Nessuna presentazione", + "Have submission(s)": "Presentato", + "No solved problem(s)": "Nessuna risoluzione dei problemi", + "Have solved problem(s)": "Risolvere i problemi." + } + }, + "RightSidebox": { + "class": [ + ".sidebox div label" + ], + "description": "Riquadro laterale destro cinese", + "isStrict": false, + "rules": { + "Show tags for unsolved problems": "Mostra le etichette per le questioni irrisolte", + "Hide solved problems": "Nascondere i problemi risolti" + } + }, + "FormField-name": { + "class": [ + "td.field-name label" + ], + "description": "", + "isStrict": false, + "rules": { + "Postal/zip code": "Codice postale", + "Country //(English//)": "国家(英文)", + "State //(English//)": "州/省份(英文)", + "City //(English//)": "城市(英文)", + "Address //(English//)": "地址(英文)", + "Recipient //(English//)": "收件人姓名(英文)", + "Country //(Native//)": "国家(本地语言)", + "State //(Native//)": "州/省份(本地语言)", + "City //(Native//)": "城市(本地语言)", + "Address //(Native//)": "地址(本地语言)", + "Recipient //(Native//)": "收件人姓名(本地语言)", + "Phone": "telefoni", + "TON Wallet:": "PORTAFOGLIO TON.", + "Secret Code:": "Captcha.", + "Terms of agreement:": "Termini del contratto.", + "Choose team:": "Selezioni la squadra." + } + }, + "QuestionTag": { + "class": [ + "._FilterByTagsFrame_addTagLabel select option", + "._FilterByTagsFrame_tagBoxCaption", + ".notice", + ".tag-box" + ], + "description": "", + "isStrict": false, + "rules": { + "combine tags by OR": "Etichette in base alla logica o alla combinazione delle mie scelte", + "combine-tags-by-or": "Combina la mia scelta di tag per logica o (combina-tag per o)", + "2-sat": "Problema di soddisfabilità del grafo bipartito (2-sat)", + "binary search": "Ricerca binaria", + "bitmasks": "Bitmaschere", + "brute force": "Enumerazione a forza bruta.", + "chinese remainder theorem": "teorema del resto cinese (中国剩余定理)", + "combinatorics": "Combinatoria", + "constructive algorithms": "Algoritmi costruttivi (algoritmi costruttivi)", + "data structures": "Strutture dati", + "dfs and similar": "Ricerca in profondità e le sue varianti (dfs e simili)", + "divide and conquer": "Algoritmo \"dividi e conquista\".", + "dp": "Programmazione dinamica (dp)", + "dsu": "Set di ricerca parallelo (dsu)", + "expression parsing": "Parsing delle espressioni", + "fft": "Trasformata di Fourier veloce (fft)", + "flows": "Flussi", + "games": "Teoria dei giochi (giochi)", + "geometry": "Geometria computazionale", + "graph matchings": "Abbinamenti grafici", + "graphs": "Teoria dei grafici (grafici)", + "greedy": "Avido", + "hashing": "Tabella hash (hashing)", + "implementation": "Problemi di implementazione, capacità di programmazione, simulazione (implementazione)", + "interactive": "Problemi di interattività (interattivo)", + "math": "Matematica (matematica)", + "matrices": "Matrici", + "meet-in-the-middle": "algoritmo meet-in-the-middle (meet-in-the-middle)", + "number theory": "Teoria dei numeri", + "probabilities": "Probabilità", + "schedules": "Algoritmi di pianificazione (schedulazioni)", + "shortest paths": "Algoritmi del percorso più breve (percorsi più brevi)", + "sortings": "Algoritmi di ordinamento (ordinamenti)", + "string suffix structures": "Strutture di suffissi di stringhe", + "strings": "Gestione delle stringhe (stringhe)", + "ternary search": "Ricerca ternaria", + "trees": "Struttura ad albero (alberi)", + "two pointers": "Algoritmo dei due puntatori (due puntatori)" + } + }, + "SettingField-name": { + "class": [ + ".field-name" + ], + "description": "Impostazione dei campi nella pagina", + "isStrict": false, + "rules": { + "Hide sidebar block \"Find user\"": "Nasconda il blocco della barra laterale \"Trova utenti\".", + "Hide sidebar block \"Current user\"": "Nasconde il blocco della barra laterale \"Utente corrente\".", + "Hide sidebar block \"Recent аctions\"": "Nascondere il blocco \"Novità\" nella barra laterale.", + "Hide sidebar block \"Favourite groups\"": "Nascondere il blocco della barra laterale \"Gruppi preferiti\".", + "Hide sidebar block \"Top contributors\"": "Nasconde il blocco della barra laterale \"Classifica dei collaboratori\".", + "Hide sidebar block \"Top rated\"": "Nascondere il blocco della barra laterale \"Classifica di valutazione\".", + "Hide sidebar block \"Streams\"": "Nasconda il blocco della barra laterale \"Live\".", + "Old password": "vecchia password", + "New password": "nuova password", + "Confirm new password": "Confermare la nuova password", + "Contest email notification": "Notifica via e-mail del concorso", + "Send email on new user talk": "Invia un'e-mail quando c'è un dialogo con un nuovo utente", + "Send email on new comment": "Invia un'e-mail quando viene aggiunto un nuovo commento", + "Hide contact information": "Nascondere le informazioni di contatto", + "Remember me by Gmail, Facebook and etc": "Si ricordi di me su Gmail, Facebook, ecc.", + "Show tags for unsolved problems": "Mostra le etichette per le questioni irrisolte", + "Hide solved problems from problemset": "Nascondere i problemi risolti dai set di problemi", + "Hide low rated blogs": "Nascondere i blog con valutazioni basse", + "Offer to publish great rating rises": "Offre l'opportunità di dimostrare il miglioramento significativo del Rating.", + "Enforce https": "Forza HTTPS", + "Show private activity in the profile": "Mostra le attività private nel profilo", + "Show diagnostics": "Visualizzazione delle informazioni diagnostiche" + } + }, + "CloneContestFormField": { + "class": [ + ".field-name" + ], + "description": "Clonazione del concorso nel modulo di impostazione del mashup virtuale", + "isStrict": false, + "rules": { + "Problem:": "Titolo.", + "Question": "问题", + "Language:": "Lingue.", + "Source code:": "Codice sorgente.", + "Or choose file:": "Oppure selezioni il file.", + "Choose file:": "Selezioni il file.", + "Notice:": "Attenzione.", + "virtual participation:": "Partecipazione virtuale.", + "Registration for the contest:": "Iscrizione alla gara.", + "Take part:": "Partecipazione.", + "as individual participant:": "Come partecipanti individuali.", + "as a team member:": "Come membro del team.", + "Virtual start time:": "Orario di inizio virtuale.", + "Complete problemset:": "Set completo di domande.", + "First name \\(English\\)": "Nome (inglese)", + "Last name \\(English\\)": "Cognome (inglese)", + "First name \\(Native\\)": "Nome (lingua locale)", + "Last name \\(Native\\)": "Cognome (lingua locale)", + "Birth date": "data di nascita", + "Country": "nazioni", + "City": "Comuni", + "Organization": "organizzazioni", + "Handle/Email": "Numero di conto/Email", + "Name": "名称", + "Handle": "账号", + "Email": "邮箱", + "Confirm": "确认", + "Password": "crittografico", + "New Rank": "新的Rank", + "Training name \\(English\\):": "Nome della formazione (inglese).", + "Training name \\(Russian\\):": "Nome della formazione (in russo).", + "Contest format:": "Formato della competizione.", + "Start time:": "Orario di inizio.", + "Duration:": "Durata.", + "Visibility:": "Visibilità.", + "Attach parent contest\\?:": "Corrispondenza tra sirene associate?", + "Participation type:": "Tipo di partecipazione.", + "Freeze period:": "Periodo di congelamento.", + "Unfreeze time:": "Tempo di scongelamento.", + "Is practice allowed\\?:": "La pratica è consentita?", + "Is virtual allowed\\?:": "Sono consentite le iscrizioni virtuali?", + "Is out of competition allowed\\?:": "Sono ammesse iscrizioni non competitive?", + "Is self-registration allowed\\?:": "È consentita l'autoregistrazione?", + "Can non-registered view the contest\\?:": "Gli utenti non registrati possono vedere il concorso?", + "Can participants view common status\\?:": "I partecipanti possono controllare lo stato di condivisione?", + "Contest testdata policy:": "Strategia dei dati dei test delle partite.", + "Allow view other submissions to:": "Consenti di visualizzare altri invii a.", + "Manage program languages:": "Linguaggi di programmazione gestiti.", + "Use time limits scaling policy\\?:": "Utilizza una politica di scalabilità limitata nel tempo?", + "Allow statements\\?:": "Permette di visualizzare la descrizione del titolo?", + "Allow standings\\?:": "Permette di visualizzare le classifiche?", + "Season:": "Stagione.", + "Contest type:": "Tipo di competizione.", + "ICPC region:": "Regioni ICPC.", + "Country:": "Paese.", + "City:": "Città.", + "Contest difficulty:": "Difficoltà della gara.", + "Website URL:": "Link web.", + "Description \\(English\\):": "Descrizione (inglese).", + "Description \\(Russian\\):": "Descrizione (in russo).", + "Registration confirmation text \\(English\\):": "Testo di conferma della registrazione (inglese).", + "Registration confirmation text \\(Russian\\):": "Testo di conferma della registrazione (in russo).", + "Logo \\(English\\):": "Logo (inglese).", + "Logo \\(Russian\\):": "Logo (russo).", + "End time:": "Orario di fine.", + "Name:": "Nome.", + "Contest\\(s\\):": "Competizione.", + "Add contest:": "Aggiunga il concorso.", + "Show Contestants:": "I concorrenti dello show.", + "Show Out of Competition Participants:": "Mostra dei partecipanti non competitivi.", + "Show Practices:": "Mostra Esercizio.", + "Show Virtuals:": "Mostra i giocatori virtuali.", + "Show Ghosts:": "Mostra il Giocatore Fantasma.", + "Text:": "Testo.", + "Rewrite Examples:": "Campione di riscrittura.", + "Add images:": "Aggiunga l'immagine.", + "Do not use:": "Non utilizzato.", + "Problem short name:": "Abbreviazione del titolo.", + "Source problem:": "Problema della fonte.", + "Problem name \\(English\\):": "Titolo (in inglese).", + "Input file name:": "Nome del file di ingresso.", + "Output file name:": "Nome del file di output.", + "Time Limit:": "Limite di tempo.", + "Memory Limit:": "Limiti di memoria.", + "Output only:": "Solo in uscita." + } + }, + ".ask-question-link": { + "class": [ + ".ask-question-link" + ], + "description": "", + "isStrict": false, + "rules": { + "Ask a question": "Faccia una domanda." + } + }, + "add-announcement-link": { + "class": [ + ".add-announcement-link" + ], + "description": "", + "isStrict": false, + "rules": { + "Add announcement": "Aggiungi annuncio" + } + }, + "demo": { + "class": [ + "Class" + ], + "description": "", + "isStrict": false, + "rules": { + "SourceText": "TargetText" + } + } + }, + "InputValueReplacements": { + "InputSubmit": { + "class": [ + "input[type='submit']" + ], + "description": "Presenta il cinese", + "isStrict": false, + "rules": { + "Register for virtual participation": "Si iscriva alle iscrizioni virtuali", + "Register for practice": "Effettui il login per iniziare a esercitarsi", + "Apply": "apparecchio", + "Register": "inserire il proprio nome", + "Login": "accedi", + "Run": "essere in movimento", + "Start virtual contest": "Avviare l'iscrizione virtuale", + "Manage invitations": "Inviti della direzione", + "Disable manager mode": "Chiusura temporanea della modalità di gestione", + "Enable manager mode": "Modalità di gestione aperta", + "Clone Contest": "Concorso di clonazione", + "Submit": "presentare (un rapporto, ecc.)", + "Save changes": "Salva le impostazioni", + "Filter": "filtrazione", + "Find": "localizzare", + "Save": "salvare (un file, ecc.) (informatica)", + "Create Mashup Contest": "Creare un concorso mashup", + "Delete problem": "Cancellare la domanda", + "Restore problem": "Problemi di recupero", + "Generate": "生成", + "Send": "发送" + } + }, + "InputButton": { + "class": [ + "input[type='button']" + ], + "description": "", + "isStrict": false, + "rules": { + "Reset": "riproposizione", + "Delete contest": "Elimina partita", + "Preview": "anteprime" + } + } + } +} \ No newline at end of file diff --git a/i18n/ja/README.md b/i18n/ja/README.md new file mode 100644 index 000000000..b4f663148 --- /dev/null +++ b/i18n/ja/README.md @@ -0,0 +1 @@ +# OJBetter diff --git a/i18n/ja/docs/AtCoderBetter.html b/i18n/ja/docs/AtCoderBetter.html new file mode 100644 index 000000000..80c73d561 --- /dev/null +++ b/i18n/ja/docs/AtCoderBetter.html @@ -0,0 +1,245 @@ +

AtCoder Better!🎈

+

AtCoderインターフェイス中国語、ダークモードサポート、タイトル翻訳、マークダウンビュー、ワンクリックでタイトルコピー、Loguへジャンプ

+

官能性

+

ヒント:スクリプトは、いくつかの機能の設定項目を提供しています。 AtCoderBetter Settings のページ全体の右上隅にある のボタンをクリックすると、設定パネルを開くことができます。

+

中国語インターフェース

+

サイトの主な要素は中国語に翻訳されます。 もしどこかに間違いや不十分な翻訳があれば、フィードバックを歓迎します。

+

AtCoderBetter設定 右上のパネルで、ローカリゼーションのオン/オフを選択できます。

+

タイトルの翻訳

+

タイトル、ブログ、コメントなどの右上に翻訳ボタンを追加し、Latexの公式が崩れないようにしながら、ワンクリックで中国語に翻訳!

+

右上にある AtCoderBetter設定 パネルで、使用する翻訳サービスを選択できます (デフォルトはDeepl)

+

tip:translateボタンを右クリックすると、翻訳サービスをすぐに切り替えることができます!

+

:以下の翻訳インターフェースが利用可能です。

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  + KEY + 翻訳の質信頼性最大文字数 + かける
ディープル翻訳(✨推奨)不要⭐️⭐️⭐️⭐️エリアによってはアクセスできない、または速度が遅い場合がある5000切れる
宣飛翻訳を聞く不要⭐️⭐️⭐️通常は信頼できる2000切れる
Youtube翻訳不要⭐️⭐️通常は信頼できる600切れる
グーグル翻訳不要⭐️⭐️⭐️Googleへのインターネット接続が必要5000切れる
カラフルな雲の翻訳不要⭐️⭐️通常は信頼できる5000切れる
ChatGPTを使った翻訳(✨推奨)APIキーが必要⭐️⭐️⭐️⭐️⭐️サービス・プロバイダーの質とOpenAIの混み具合によるモデルによる低調
+

その他の機能

+

いくつかの機能は、右上の AtCoderBetter Settings パネルで変更/スイッチできます。

+ +

互換性

+

ブラウザ

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 アジュバント最小バージョン
Chromeアジュバント96
Egdeアジュバント96
国内クロムケース基本的な互換性はあるが、予期せぬエラーが発生する可能性があるChromiumカーネル・バージョン ≥96
FireFox(モバイルを含む)アジュバント103
Safari非対応\
+ +

スクリプト・マネージャー

+

Greasemonkey、Violentmonkey、ScriptCatなどとの互換性は保証されません!

+

その他のプラグイン

+

主流のCF関連プラグインとの互換性の問題はありません。 もし互換性の問題が発生したら、フィードバックを歓迎します。

+

一般的な問題

+ + + +

コードを投稿する

+

Github リポジトリ PR を作成してください。

+

有り難い

+ +

ありがとう、0rz。

\ No newline at end of file diff --git a/i18n/ja/docs/CodeforcesBetter.html b/i18n/ja/docs/CodeforcesBetter.html new file mode 100644 index 000000000..57de6b480 --- /dev/null +++ b/i18n/ja/docs/CodeforcesBetter.html @@ -0,0 +1,471 @@ +

Codeforces Better!🎈

+

Codeforcesインターフェース中国語、ダークモードサポート、タイトル翻訳、マークダウンビュー、ワンクリックでタイトルコピー、Loguへジャンプ、コメント差別化ページ、ClistRatingスコア表示、リスト再カラーリング

+
+
+
+

:フィードバックノート

+
+

問題がある場合は、まず以下の #FAQ の説明をお読みください。解決しない場合は、 フィードバックページ または Github issues にアクセスしてフィードバックしてください。

+

問題の詳細(例::リンク、スクリーンショット、希望する結果、実際の結果、再現例:…… )をご記入ください。

+

友好的な議論や機能の提案も歓迎しますが、スクリプトのメンテナンスやヘルプを提供することは作者の義務ではありません。

+
+
+

官能性

+ヒント:スクリプトのいくつかの機能には設定項目があります。 CodeforcesBetter Settings のページ全体の右上隅にある のボタンをクリックすると、設定パネルを開くことができます。 +

中国語インターフェース

+

ウェブサイトの主な要素を中国語に翻訳する(オフにすることもできます)

+

タイトルの翻訳

+

タイトル、ブログ、コメントなどの右上に翻訳ボタンを追加し、Latexの公式が崩れないようにしながら、ワンクリックで中国語に翻訳!

+

これに基づいて、スクリプトは3つの翻訳モードを提供します。 :

+ +

右上隅の CodeforcesBetter設定 パネルで、使用する翻訳サービス(デフォルトではDeepL)を選択したり、スクリプトの作業モードを切り替えたりできます。

+
+
+

注:セグメンテーション/セレクション・モードは、以下の問題を引き起こす:

+

- 翻訳インターフェイスがテキスト全体の文脈情報を知ることを不可能にすることは、翻訳の質を低下させる可能性がある。

+

-<p/>、<i/>要素でないため、翻訳されない/選択できないコンテンツがある。

+
+
+

スクリプトは、:(既定は DeepL) から選択できる以下の翻訳インタフェースを提供します。

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  + KEY + 翻訳の質信頼性最大文字数 + かける
DeepLの翻訳(✨推奨)不要⭐️⭐️⭐️⭐️エリアによってはアクセスできない、または速度が遅い場合がある5000切れる
宣飛翻訳を聞く不要⭐️⭐️⭐️通常は信頼できる2000切れる
Youtube翻訳不要⭐️⭐️通常は信頼できる600切れる
グーグル翻訳不要⭐️⭐️⭐️Googleへのインターネット接続が必要5000切れる
カラフルな雲の翻訳不要⭐️⭐️通常は信頼できる5000切れる
ChatGPTを使った翻訳(✨推奨)APIキーが必要⭐️⭐️⭐️⭐️⭐️サービス・プロバイダーの質とOpenAIの混み具合によるモデルによる低調
+ヒント:Translateボタンを右クリックすると、翻訳サービスをすばやく切り替えることができます! +

自動翻訳

+

自動翻訳」を有効にすると、.ttypography.comments エリアにある短いテキストは、ブラウザウィンドウの表示可能エリアに入ると自動的に翻訳されます。

+

(設定パネルで何文字以下を短文とするか指定できます)

+

また、「コメントエリアでのクイック翻訳」を有効にすると、コメントエリアの短い文章に対して、自動翻訳が候補サービスの中からランダムに選択し、並行してクイック翻訳を行います。

+

歴史的翻訳回復

+

Auto restore historical translations "を有効にすると、タイトルページの翻訳情報が、ブラウザのローカルにある indexDB の CFBetterDB データベースの translateData テーブルに自動的に保存されます。

+

Refresh / 次回ページに入ると自動的に翻訳が復元されます。

+

クライストレイティング

+

clist.byサイトのレーティングスコアデータを取得し、表示する!

+

ページ・ジョブによって必要な認証情報は異なることに注意:

+ +スクリプトは、clist.byの特定のクッキーを取得しません。 クッキー情報は、リクエストを送信するときにブラウザによって自動的に運ばれ、クッキーの有効性は、試行されたリクエストによって返されたステータスコードによって決定されます。 +

編集者とLSP

+

タイトルページにエディターを追加

+

タイトルページの下にモナコ・コード・エディターを追加する(デフォルトで有効)。

+

コード自動保存、コード高速送信、オンラインテスト実行、LSP、静的補完機能およびその他の機能をサポートします。

+

コードの自動保存

+

コードは自動的にブラウザにローカルなIndexedDBのCFBetterDBデータベースのeditorCodeテーブルに保存されます。

+

オンライン・テスト走行

+

また、CFBetterDBデータベースのeditorCodeテーブルに自動的に保存されるテストサンプルをカスタマイズすることもできます。

+

このスクリプトは、:codeforces official, wandbox (third party), rextester (third party) などのオンライン・コード実行サービスを提供しており、さまざまなパラメータ・オプションをサポートしている。

+
+
+

注:

+
    +
  • +

    明らかに、すべてのオンラインコード実行サービスは、インタラクティブなトピックをテストすることはできません。

    +
  • +
  • +

    サードパーティのオンライン・コード実行サービスは、codeforcesとは異なる環境で実行される可能性があり、サードパーティのオンライン・コード実行サービスで動作するコードや正しく動作するコードが、codeforcesで動作するとは限りません。

    +
  • +
  • +

    サードパーティのオンラインコード実行サービスによって、あなたのコードが何らかの形で流出しないという保証はありません。

    +
  • +
  • +

    加えて、より広い用途の場合、ページ上のコンパイラ・オプションは、サードパーティのオンライン・コード実行サービスの実際のコンパイラ・オプションと厳密には一致しないので、予期せぬ結果を得る可能性は十分にある。

    +
  • +
+
+
+

LSP

+

LSPを設定した後、エディタ(C++およびPython言語のみ):に以下の機能を提供できます。

+ +

もちろん、ローカルコンパイル、ブレークポイントデバッグ、複数ファイルなどはサポートされていません。…… 、パフォーマンスはローカルの特別なIDEほど良くありません。

+

要するに、この機能はあまり意味がなく、役に立つものでもないので、興味のある方は以下のFAQセクションをチェックしてみてください!

+

スタティック・コンプリートの強化

+

設定パネル - Monaco - 静的コード補完機能 - カスタムで、モナコエディタにカスタムの静的コード補完ルールを追加できます。

+

補完ルールはJSON形式である。 以下はその例である(モナコ形式)。

+
+  {
+    "suggestions": [
+        {
+            "label": "hello world",
+            "kind": 15,
+            "documentation": "The is a hello world snippet",
+            "insertText": "hello world"
+        },
+        // その他提案... ]
+}.
+
+

CompletionItem のほぼすべてのプロパティを使用できます(注意:範囲プロパティは記入しないでください、スクリプトが自動的に計算して追加します)。

+

その他の機能

+ +

互換性

+

ブラウザ

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 アジュバント最小バージョン
Chromeアジュバント96
Edgeアジュバント96
国内クロムケース基本的な互換性はあるが、予期せぬエラーが発生する可能性があるChromiumカーネル・バージョン ≥96
FireFox(モバイルを含む)アジュバント103
Safari非対応\
+

スクリプト・マネージャー

+

Greasemonkey、Violentmonkey、ScriptCatなどとの互換性は保証されません。

+

その他のプラグイン

+

主流のCF関連プラグインとの互換性の問題はないので、互換性の問題が発生した場合はフィードバックを歓迎する。

+

ミラー

+

公式ライトサイト m1 / m2 / m3 、公式ミラーサイト https://mirror.codeforces.com/、非公式ミラーサイト https://codeforc.esをサポート。

+

さらに、理論的には他のどのミラーとも互換性がある。 // @match your mirror URL というコメントをもう1行追加すればいいだけだ!

+

一般的な問題

+
+
Q. 何から始めればいいですか? +
+ A. スクリプトをインストールする前に、 Tampermonkey をインストールする必要があります。 +
+
+
+
Q. アップデートエラーは? +
+

A. Greasy Forkプラットフォームのため、新しいバージョンがリリースされた場合、実際のアップデート/インストールは以前のバージョンになることがあります。

+

通常は、数分待ってから再度アップデート/インストールを行う必要がある。

+

また、スクリプトの更新アラートボックスの赤いクエスチョンマークにマウスを合わせ、ポップアップメッセージの下にある「Don't update yet(まだ更新しないでください)」ボタンをクリックすることもできます。

+
+
+
+
Q. ローディング中と表示され続けますか? +
+ A. 設定パネルの「互換性オプション - ページリソースの読み込みを待たない」オプションを有効にしてください。 +
+
+
+
Q. DeepL翻訳エラーの使用 リクエストが多すぎますか? +
+

A. これは通常、短期間に頻繁に翻訳しているか、一度に 5,000 文字以上のテキストを翻訳していることが原因です。 DeepL には、翻訳の単語数と頻度に制限があります。

+ 一時的なもので、しばらくすれば元に戻るよ。 +
+
+
+
Q. DeepLを使用すると、undefindエラーが発生したり、翻訳中と表示されたりします。 +
+ A. これは通常、使用しているネットワークが www.deepl.comに正しくアクセスしていないことが原因です。 +
+
+
+
Q. 翻訳結果で {xx} / [xx] / [xx] と表示される数式がありますが? +
+ A. 翻訳に共通の翻訳インターフェース(DeepL/Youdao/google)を使用する場合、スクリプトの実装方法によって制限されますが、{xx}/[xx]/[xx] が発生する可能性があります。 +
+
+
+

スクリプトによる数式の処理

+

LaTeXの数式が翻訳中に壊れないようにするため、スクリプトは最初にすべてのLaTeXの数式を取り出し、置換文字{xx}/[xx]/[xx]を使って配置します。

+

これらの置換は翻訳中に破損しない確率が高いので、翻訳後に置換に基づいてLaTeXの数式に戻すことが可能です。

+

この実装は、置換文字が壊れていなければ期待通りに機能する。

+

しかし、翻訳サービスが置換を壊してしまうことがある。 例えば、[23]が[23 / 23] / [23]/ [23 】/ [23 】になってしまう。

+

しかし、翻訳サービスによってさらに内容が破壊され、曖昧さが生じた場合、例えば、翻訳サービスによって[2] 313が[2312]になった場合、それを復元することはできません。

+

各翻訳サービスでは、異なる置換はそれ自体が破損する確率が異なります。

+

テストした結果、 {} の方が通常性能が良いので、これがスクリプトで使われるデフォルトの置換である。

+
+
+
+
+
+

ヒント:

+

この問題はChatGPTで翻訳する場合には存在しません。 ChatGPTはプロンプトワードで直接「LaTeXの数式を翻訳せずに保持する」ように指示できるからです。

+

スマートなChatGPTはこれに非常によく対応でき、これはスクリプトを翻訳するための推奨方法です。

+
+
+
+
+
+
Q. ChatGPTで翻訳するには? +
+ A. もしOpenAIのインターフェースに直接アクセスでき、アカウントを持っているのであれば、"ChatGPT Translation (API) "にチェックを入れ、下の "Add "ボタンをクリックして新しい設定を作成し、必要事項を記入してください。 +

また、ChatGPTを使用するためにAPIプロキシサービスを購入することができます、次の表は、いくつかのAPIサービスプロバイダを収集し、あなたが使用することを選択できます。 +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 公式サイト取得方法
API2Dhttps://api2d.com/公式サイト
CloseAIhttps://console.closeai-asia.com/公式サイト
OhMyGPThttps://aigptx.top/公式サイト
OpenAI-SBhttps://openai-sb.com/テレグラムのボット
API2GPThttps://www.api2gpt.com/公式サイト
AI Proxyhttps://aiproxy.io/公式サイト
+
+
+
+

免責事項:

+

筆者は共有の目的で収集・共有しているだけであり、いかなる収益も受け取っておらず、上記プラットフォームの安定性を保証するものではなく、プラットフォームのいかなる挙動も筆者とは無関係である。

+

このようなサービス・プロバイダーは廃業する可能性がある。

+
+
+

apiプロキシ・サービス・プロバイダーが提供するサービスを使用する場合、コンフィギュレーションのKEYはapiプロキシ・サービス・プロバイダーが提供するKEYでなければならない。

+

さらに、プロキシAPIをコンフィギュレーションに追加入力する必要があります。

+

プロキシAPIは全項目を入力する必要があります。 以下は、APIを提供する CloseAI の例です。 + Base:https://api.closeai-proxy.xyz

+

そして、プロキシAPIの後には、 https://api.closeai-proxy.xyz/v1/chat/completionsが続くはずである。

+ 注意:カスタムAPIを指定しているため、Tampermonkeyはクロスドメインリクエストについて警告を表示します! +
+ 注:Azure OpenAI を使いたい場合、そのインターフェース・パラメータは公式の OpenAI インターフェースと同じではないので、azure-openai-proxyを自分でデプロイして変換することができます。 +
+
+
+
Q. LSPとは何ですか? +
+ A. LSP (Language Server Protocol)は、エディターと言語サーバー間の通信のために、マイクロソフトによって始められたプロトコル仕様です。 +

従来のIDEが実装する必要があったコード補完、診断、提案、文書化、さらにはプロジェクト管理機能をエディタから切り離し、独立したサービスを使ってこれらの機能を実行する。

+

エディタはプロトコル仕様に従ってサーバーと通信するだけでよいので、作業負荷が大幅に軽減され、さまざまなプログラミング言語を簡単にサポートできる。

+

現在、LSPの生態系は徐々に改善され、VSCode、Vim、Emacsなど、主流のエディタがLSPをサポートしたり、対応するプラグインを持っている。

+

しかし、主要な商用IDEベンダーはこれにほとんど関心を持っておらず、基本的に既存のLSPサーバーはオープンソースコミュニティによってメンテナンスされているため、プロフェッショナルなIDEや様々なプロフェッショナルなプラグインにはまだ及ばない。

+
+
+
+
Q. LSPの使い方は? +
+ A. 2歩だけ: +

:スクリプトは、C++ と Python による LSP Server の次の 2 つの実装をサポートしています。 :必要に応じてインストールする必要があります。

+ + + + + + + + + + + + + + + + + + + + +
多言語主義LSP Serverインストール方法(Windowsの場合)
C++clangdclangd release からclangdをダウンロードし、システム環境変数のパスにclangdのパスを追加する。 例えば、 C:˶clangd_16.0.2bin
Pythonpylspコマンド: + pip install "python-lsp-server[all]"を実行すると、環境変数が自動的に追加されます。
+

II:また、スクリプトとLSPサーバー間の通信を橋渡しするOJBetter_Bridgeを GitHubリリース または Blue Rhythm Cloud (password:aaaa) からダウンロードして解凍する必要があります。

+

解凍したフォルダーをCドライブのルート・ディレクトリー、または他のお好きな場所に置きます。 (注意:他の場所に置く場合は、設定パネルの「作業パス」を実際の場所に変更する必要があります)

+

OJBetter_BridgeはGUI版とターミナル版があり、WindowsではGUI版をお勧めします。 server_gui.exe を直接実行してください。

+

OJBetter_Bridgeは、起動時にclangdとpylspコマンドが有効かどうかを自動的にチェックし、プロンプトを表示する。

+ ヒント:: server_gui.exe のインターフェースで、起動するように設定できる。 +

以上の手順が完了したら、設定パネルで「LSPを使用する」をオンにして使用することができます。

+
+
+
+ 詳しくは? +
+ clangdの場合、cpp_workspaceフォルダに2つの設定ファイルが格納されている .clangd,.clang-format +

これらは、 設定項目clangdのコード書式スタイルを定義しており、編集することができます。

+
+
+
+
+
+
+
+
Q. クラングド・フォーマットが機能しないのはなぜですか? +
+ A. これは、設定パネルのLSP作業パスが正しくないためです。 +
+
+
+
Q. clangdが私の <bits/stdc++.h> ヘッダーを認識できないのはなぜですか? +
+ A. これは <bits/stdc++.h> が標準のヘッダファイルではないためで、clangdはデフォルトではサポートしていません。 OJBetter_Bridgeのcpp_workspace + にある .clangd ファイルのコンパイラパラメータを修正することで、clangにこの非標準のヘッダファイルがどこにあるかを教える必要があります(もちろん、ユニバーサルヘッダの使用は推奨されません)。 +
+
+
+
Q. 静的補完の強化にローカルのJSONファイルを使用することは可能ですか? +
+ A. ブラウザのセキュリティ制限により、 file:///xxx のようなURLを使用して、ブラウザでローカルのJSONファイルに直接アクセスすることはできません。 +

OJBetter_Bridgeの/mycompletフォルダにJSONファイル xxx.json を置くだけです。

+

OJBetter_Bridgeを起動すると、:http://127.0.0.1:2323/mycomplet/xxx.jsonのJSON URLで設定パネルに新しい設定を作成できます。

+
+
+

試してみる?

+

OJBetter_Bridgeを起動し、最初は/mycompletフォルダにサンプルのJSONファイル:template.jsonが入っているので、設定を追加し、 + http://127.0.0.1:2323/mycomplet/template.json を埋めて保存します!

+

エディターでhelloと入力すると、:hello world, hello world2の2つの補完的なエントリーが表示される。

+
+
+
+
+
+

コードを投稿する

+

Github リポジトリ PR を作成してください。

+

他のOJ?

+

もしこのスクリプトをあなたの好きなOJ用に移植したいのであれば、GPL-3.0ライセンスに従うだけでよい!

+

有り難い

+ +

ありがとう、0rz。

\ No newline at end of file diff --git a/i18n/ja/resources/subs/Codeforces-subs.json b/i18n/ja/resources/subs/Codeforces-subs.json new file mode 100644 index 000000000..2b6ffef58 --- /dev/null +++ b/i18n/ja/resources/subs/Codeforces-subs.json @@ -0,0 +1,859 @@ +{ + "version": "1.0.0", + "commonReplacements": { + ".datatable": { + "class": [ + ".datatable" + ], + "description": "", + "isStrict": false, + "rules": { + "Virtual participation": "バーチャル再現トーナメントに参加する", + "Enter": "入る", + "Current standings": "現在のリスト", + "Final standings": "最終リスト", + "Preliminary results": "速報結果", + "open hacking:": "オープン・ハッキング", + "School/University/City/Region Championship": "学校/大学/都市/地域の大会", + "Official School Contest": "学校公式大会", + "Training Contest": "練習試合", + "Training Camp Contest": "トレーニングキャンプ競技", + "Official ICPC Contest": "ICPC公式競技会", + "Official International Personal Contest": "公式国際個人戦", + "China": "中国", + "Statements": "タイトル", + "in Chinese": "中国語", + "Trainings": "電車", + "Prepared by": "著者", + "Current or upcoming contests": "現在または今後の大会", + "Rating: users participated in recent 6 months": "評価:過去6ヶ月間に参加したユーザー", + "Past contests": "過去の試合", + "Exclusions": "除く", + "Before start": "スタートまであと数分だ。", + "Before registration": "登録開始までまだ時間がある", + "Until closing ": "登録終了までまだ時間がある", + "Before extra registration": "追加登録はまだ始まっていない", + "Register »": "登録 \"", + "Registration completed": "在籍", + "Registration closed": "登録は締め切られました", + "Problems\n": "问题集", + "My Submissions": "私の投稿", + "Standings": "名簿", + "Questions about problems": "問題に関する質問", + "Contest status": "ゲームステート", + "Invited users": "招待ユーザー", + "Invitation links": "招待リンク", + "API keys": "API密钥" + } + }, + ".menu-list.main-menu-list": { + "class": [ + ".menu-list.main-menu-list" + ], + "description": "", + "isStrict": false, + "rules": { + "Home": "ホームページ", + "Top": "流行中", + "Catalog": "ガイドカタログ", + "Contests": "競技", + "Gym": "トレーニングキャンプ", + "Problemset": "アンケート", + "Groups": "組織", + "Rating": "格付けランキング", + "Edu": "耕す", + "Calendar": "カレンダー", + "ICPC Challenge": "ICPC挑战赛", + "Help": "手" + } + }, + ".nav-links": { + "class": [ + ".nav-links" + ], + "description": "", + "isStrict": false, + "rules": { + "Settings": "セットアップ", + "Blog": "ブログ", + "Teams": "キュー", + "Submissions": "だす", + "Favourites": "ブックマーク", + "Problemsetting": "問題設定", + "Talks": "ししょ", + "Contests": "競技" + } + }, + ".contest-state-phase": { + "class": [ + ".contest-state-phase" + ], + "description": "", + "isStrict": false, + "rules": { + "Before contest": "今後のコンペティション", + "Contest is running": "試合中" + } + }, + ".notice": { + "class": [ + ".notice" + ], + "description": "", + "isStrict": false, + "rules": { + "has extra registration": "追加登録期間がある", + "If you are late to register in 5 minutes before the start, you can register later during the extra registration. Extra registration opens 10 minutes after the contest starts and lasts 25 minutes.": "スタート5分前までに申し込みが完了していない場合は、追加申し込み期間中に申し込むことができる。追加登録はスタート10分後から25分間行われる。", + "in timezone ([^)]*)": "1 タイムゾーン", + "Contest will be available for virtual participation when over. Leave this field blank to allow virtual participation at any time": "バーチャルエントリーはコンテスト終了後に許可されます。いつでもバーチャルエントリーを許可する場合は、このフィールドを空白のままにしてください。", + "Contest duration in minutes": "試合時間(分)", + "or choose": "または", + "Standings freeze period in minutes": "リスト凍結時間(分)", + "Time when final results are available": "最終結果が出るまでの時間", + "Is it allowed to solve contest problems unofficially after the end": "試合終了後の非公式な問題解決の可否", + "Is it allowed to run contest as virtual after the end": "大会終了後のバーチャルエントリーの可否", + "Is it allowed participate in contest out of competition": "非競技エントリーの可否", + "Are participants allowed to register for the contest themselves": "参加者自身の登録の可否", + "Can non-registered users and anonyms view contest standings, problems and other statistics": "未登録の匿名ユーザーにレースのリーダーボード、質問、その他の統計の閲覧を許可するかどうか", + "If unchecked they will view only personal status": "チェックを外すと、個々のステータスのみ閲覧可能になる", + "To manage allowed program languages": "許可されたプログラミング言語の管理", + "The system will automatically adjust time limits for some languages. Recommended for use only for educational purpose.": "言語によっては、システムが自動的に制限時間を調整します。教育目的のみにお勧めします。", + "Check it if you want to allow contestants view statements": "参加者がトピックの説明を閲覧できるようにする場合は、このボックスにチェックを入れてください。", + "Check it if contestants can view standings": "参加者にリーダーボードの閲覧を許可する場合は、このボックスにチェックを入れてください。", + "Where the contest was held originally": "大会が開催された場所", + "Official contest site URL": "コンテスト公式ウェブサイトURL", + "Enter a name for your new API key. It should describe what this key is used for.": "为您的新API密钥输入一个名称。它应该描述这个密钥的用途。", + "Enter your account password to confirm access. If you do not have password, logout and use password recovery feature.": "输入您的账户密码以确认访问。如果您没有密码,请注销并使用密码恢复功能。" + } + }, + ".propertyLinks": { + "class": [ + ".propertyLinks" + ], + "description": "", + "isStrict": false, + "rules": { + "Contribution": "捧げる" + } + }, + ".contests-table": { + "class": [ + ".contests-table" + ], + "description": "", + "isStrict": false, + "rules": { + "Contest history": "競技の歴史" + } + }, + ".roundbox.sidebox.borderTopRound ": { + "class": [ + ".roundbox.sidebox.borderTopRound " + ], + "description": "", + "isStrict": false, + "rules": { + "Register now": "今すぐ登録", + "No tag edit access": "タグの編集権限がない", + "Problem([\\s]*)$": "问题", + "Verdict": "裁定状況", + "Language:": "言語。", + "Participant": "出場者", + "Choose file:": "ファイルを選択する。" + } + }, + ".icon-eye-close.icon-large": { + "class": [ + ".icon-eye-close.icon-large" + ], + "description": "", + "isStrict": false, + "rules": { + "Add to exclusions": "除外リストに追加" + } + }, + "null": { + "class": [ + null + ], + "description": "", + "isStrict": false, + "rules": { + "Add to exclusions for gym contests filter": "Boot Campフィルターに除外項目を追加する" + } + }, + ".roundbox.sidebox.sidebar-menu.borderTopRound": { + "class": [ + ".roundbox.sidebox.sidebar-menu.borderTopRound" + ], + "description": "", + "isStrict": false, + "rules": { + "Announcement": "会報", + "Statements": "統計レポート", + "Tutorial": "備考" + } + }, + ".second-level-menu": { + "class": [ + ".second-level-menu" + ], + "description": "", + "isStrict": false, + "rules": { + "Problems": "課題", + "Submit Code": "コードを送信", + "My Submissions": "私の投稿", + "Status": "情勢", + "Standings": "名簿", + "Adm.": "経営上", + "Edit": "コンパイラ", + "Custom Invocation": "カスタムデバッグ", + "Common standings": "すべてのランキング", + "Friends standings": "友人のみ。", + "Submit": "だす", + "Hacks": "ハッカー", + "Room": "キュービクル", + "Custom test": "カスタムテスト", + "Blog": "ブログ", + "Teams": "キュー", + "Submissions": "記録の提出", + "Groups": "組織", + "Rating": "採点", + "Friends rating": "友人評価", + "Favourites": "ブックマーク", + "Contests": "競技", + "Magic": "魔法", + "Handle": "账号", + "Members": "メンバー", + "问题etting": "問題作成への参加", + "Streams": "インターネット直接放送", + "Gym": "トレーニングキャンプ", + "Mashups": "お揃い", + "Posts": "カード", + "Comments": "もどす", + "Main": "ステープル", + "Settings": "セットアップ", + "Lists": "リスティング", + "General": "基本的", + "Sidebar": "サイドバー", + "Social": "しゃかいほしょう", + "Address": "住所", + "Wallets": "財布" + } + }, + ".topic-toggle-collapse": { + "class": [ + ".topic-toggle-collapse" + ], + "description": "", + "isStrict": false, + "rules": { + "Expand": "開始" + } + }, + ".topic-read-more": { + "class": [ + ".topic-read-more" + ], + "description": "", + "isStrict": false, + "rules": { + "Full text and comments": "続きを読む/コメント" + } + }, + ".toggleEditorCheckboxLabel": { + "class": [ + ".toggleEditorCheckboxLabel" + ], + "description": "", + "isStrict": false, + "rules": { + "Switch off editor": "エディタのシンタックスハイライトをオフにする" + } + }, + ".submit": { + "class": [ + ".submit" + ], + "description": "", + "isStrict": false, + "rules": { + "Registration for the contest": "大会登録" + } + }, + "._FilterByTagsFrame_difficulty": { + "class": [ + "._FilterByTagsFrame_difficulty" + ], + "description": "", + "isStrict": false, + "rules": { + "Difficulty:": "難易度が高い。" + } + }, + "._FilterByTagsFrame_addTagLink": { + "class": [ + "._FilterByTagsFrame_addTagLink" + ], + "description": "", + "isStrict": false, + "rules": { + "Add tag": "タグを追加" + } + }, + ".alert": { + "class": [ + ".alert" + ], + "description": "", + "isStrict": false, + "rules": { + "Rating changes for last rounds are temporarily rolled back. They will be returned soon.": "前回のレーティング変更は一時的に戻されました。まもなく元に戻ります。", + "Reminder: in case of any technical issues, you can use the lightweight website": "備考:技術的な問題が発生した場合は、軽量サイトをご利用ください。", + "Please subscribe to the official Codeforces channel in Telegram via the link ": "リンクからCodeforcesの公式テレグラムチャンネルを購読してください!" + } + }, + ".lang-chooser": { + "class": [ + ".lang-chooser" + ], + "description": "", + "isStrict": false, + "rules": { + "Enter": "サインイン", + "Register": "在籍", + "Contest rating": "テスト評価", + "Logout": "ログアウト" + } + }, + ".userbox": { + "class": [ + ".userbox" + ], + "description": "", + "isStrict": false, + "rules": { + "Change photo": "写真の差し替え", + "Contest rating": "レース", + "Contribution": "捧げる", + "My friends": "親友だよ。", + "Change settings": "設定の変更", + "Last visit": "ラストアクセス", + "not visible": "不可见的", + "Registered": "登録", + "Blog entries": "ブログエントリー", + "comments": "解説", + "Write new entry": "新規エントリーの準備", + "View my talks": "プライベートメッセージを見る", + "Talks": "ししょ", + "Send message": "メッセージを送る" + } + }, + "#vote-reset-filterDifficultyLowerBorder": { + "class": [ + "#vote-reset-filterDifficultyLowerBorder" + ], + "description": "", + "isStrict": false, + "rules": { + "Reset": "リビジョン" + } + }, + "#vote-reset-filterDifficultyUpperBorder": { + "class": [ + "#vote-reset-filterDifficultyUpperBorder" + ], + "description": "", + "isStrict": false, + "rules": { + "Reset": "リビジョン" + } + }, + ".alert.alert-info": { + "class": [ + ".alert.alert-info" + ], + "description": "", + "isStrict": false, + "rules": { + "The problem statement has recently been changed.": "最近、タイトルの説明が変更された。", + "View the changes.": "変更を見る" + } + }, + ".enterPage": { + "class": [ + ".enterPage" + ], + "description": "", + "isStrict": false, + "rules": { + "Fill in the form to login into Codeforces.": "フォームに記入してCodeforcesにログインしてください。", + "You can use": "を使用することもできます。", + "as an alternative way to enter.": "サインイン" + } + }, + ".notice.small": { + "class": [ + ".notice.small" + ], + "description": "", + "isStrict": false, + "rules": { + "\\* To view the complete list, click ": "* :: 全リストを見るには、クリックしてください。" + } + }, + ".setting-name": { + "class": [ + ".setting-name" + ], + "description": "", + "isStrict": false, + "rules": { + "Contest type:": "競技の種類:", + "Rated:": "定格:", + "Tried:": "未遂", + "Substring:": "キーワード" + } + }, + ".by-form": { + "class": [ + ".by-form" + ], + "description": "", + "isStrict": false, + "rules": { + "Sort by:": ":。", + "relevance": "(そうかんせい", + "popularity": "一過性の熱狂", + "time": "回" + } + }, + ".roundbox.borderTopRound": { + "class": [ + ".roundbox.borderTopRound" + ], + "description": "", + "isStrict": false, + "rules": { + "If you invite users to this contest, the contest will become visible to them regardless of its visibility. You can share the contest using the link:": "このコンテストに参加するためにユーザーを招待した場合、コンテストはそのユーザーの可視性に関係なく表示されます。以下のリンク:を使用してコンテストを共有することができます。", + "Generate link and share it with other users": "リンクを作成し、他のユーザーと共有する", + "Show Log »": "ショージャーナル \"", + "Move all to practice »": "すべてプラクティショナーに移行 \"", + "Remove All »": "すべて削除 \"", + "Add »": "追加 \"", + "Set »": "設定 \"", + "Download Archive »": "ダウンロード・アーカイブ \"" + } + }, + ".caption.titled": { + "class": [ + ".caption.titled" + ], + "description": "中国語と題されたサイドバー", + "isStrict": false, + "rules": { + "Pay attention": "銘記する", + "Top rated": "格付けランキング", + "Top contributors": "貢献者ランキング", + "Find user": "ユーザーを探す", + "Recent actions": "最新ニュース", + "Training filter": "フィルタリングとスクリーニング", + "Find training": "検索コンテスト/問題", + "Virtual participation": "バーチャルエントリーとは", + "Contest materials": "競技関連情報", + "Settings": "セットアップ", + "Create Mashup Contest": "マッシュアップコンテストを開催", + "Clone Contest to Mashup": "クローンマッチからコンボ・マッシュアップへ", + "Invitations": "招待状", + "Status filter": "ステータスフィルター", + "Administration": "経営上", + "Submit": "だす", + "Practice": "エクササイズ", + "Problem tags": "質問タグ", + "Filter Problems": "フィルタリングの問題", + "Last unsolved": "前回未解決", + "Attention": "銘記する", + "Past contests filter": "過去のマッチング", + "About Contest": "コンペティションについて", + "Last submissions": "投稿履歴", + "Streams": "インターネット直接放送", + "Coach rights": "コーチングの権威", + "Advices to fill address": "住所の記入に関する提案", + "Hacks filter": "ハッカーフィルター", + "Score table": "評価尺度", + "Contests": "競技", + "History": "編集履歴", + "Login into Codeforces": "Codeforcesにログイン", + "Export the judgment log to DAT-file": "判定ログをDATファイルとして書き出す", + "Contest managers": "コンテスト管理者", + "Contest writers": "コンペティション作家", + "Spectator ranklists": "観客動員数ランキング", + "Ghosts:": "ゴーストプレーヤー", + "Export Submissions": "輸出申請", + "Register in Codeforces": "注册 Codeforces" + } + }, + "QuestionFilter1": { + "class": [ + "#gym-filter-form div label", + "#gym-filter-form div" + ], + "description": "タイトルフィルターのオプション処理", + "isStrict": false, + "rules": { + "Contest type:": "コンペティションのタイプ", + "ICPC region:": "ICPCの地域。", + "Contest format:": "競技形式。", + "Order by:": "並べ替え", + "Secondary order by:": "二次オーダー。", + "Hide, if participated:": "参加したものは隠す。", + "Hide excluded gyms": "除外されている。", + "Season:": "期間(年間)", + "Duration, hours:": "所要時間(時間)。", + "Difficulty:": "難易度が高い。" + } + }, + "QuestionFilter2": { + "class": [ + ".setting-value select option", + ".setting-last-value select option" + ], + "description": "", + "isStrict": false, + "rules": { + "Official ACM-ICPC Contest": "ICPC公式競技会", + "Official School Contest": "学校公式大会", + "Opencup Contest": "オープンカップ・コンペティション", + "School/University/City/Region Championship": "学校/大学/都市/地域選手権", + "Training Camp Contest": "トレーニングキャンプ競技", + "Official International Personal Contest": "公式国際個人戦", + "Training Contest": "練習試合", + "ID_ASC": "作成時間(昇順)", + "ID_DESC": "作成時間(降順)", + "RATING_ASC": "評価(昇順)", + "RATING_DESC": "格付け(降順)", + "DIFFICULTY_ASC": "難易度(昇順)", + "DIFFICULTY_DESC": "難易度(降順)", + "START_TIME_ASC": "開始時間(昇順)", + "START_TIME_DESC": "開始時間(降順)", + "DURATION_ASC": "期間(昇順)", + "DURATION_DESC": "期間(降順)", + "POPULARITY_ASC": "暑さ(昇順)", + "POPULARITY_DESC": "暑さ(降順)", + "UPDATE_TIME_ASC": "更新時間(昇順)", + "UPDATE_TIME_DESC": "更新時間(降順)" + } + }, + "CompetitionFilter": { + "class": [ + ".options li label", + ".CaptionCont span" + ], + "description": "レースフィルターオプション 中国語", + "isStrict": false, + "rules": { + "Educational": "教訓的", + "Global": "グローバル", + "VK Cup": "VKカップ", + "Long Rounds": "長期間", + "April Fools": "四月馬鹿", + "Team Contests": "団体戦", + "ICPC Scoring": "ICPC採点", + "Doesn't matter": "----", + "Any": "所有権", + "Yes$": "是", + "No$": "否", + "No submission(s)": "提出なし", + "Have submission(s)": "提出済み", + "No solved problem(s)": "問題解決なし", + "Have solved problem(s)": "問題解決。" + } + }, + "RightSidebox": { + "class": [ + ".sidebox div label" + ], + "description": "右サイドボックス 中国語", + "isStrict": false, + "rules": { + "Show tags for unsolved problems": "未解決問題のラベルを表示しています", + "Hide solved problems": "解決済みの問題を隠す" + } + }, + "FormField-name": { + "class": [ + "td.field-name label" + ], + "description": "", + "isStrict": false, + "rules": { + "Postal/zip code": "郵便番号", + "Country //(English//)": "国家(英文)", + "State //(English//)": "州/省份(英文)", + "City //(English//)": "城市(英文)", + "Address //(English//)": "地址(英文)", + "Recipient //(English//)": "收件人姓名(英文)", + "Country //(Native//)": "国家(本地语言)", + "State //(Native//)": "州/省份(本地语言)", + "City //(Native//)": "城市(本地语言)", + "Address //(Native//)": "地址(本地语言)", + "Recipient //(Native//)": "收件人姓名(本地语言)", + "Phone": "電話機", + "TON Wallet:": "トン・ウォレット", + "Secret Code:": "キャプチャ", + "Terms of agreement:": "契約条件。", + "Choose team:": "セレクト・チーム" + } + }, + "QuestionTag": { + "class": [ + "._FilterByTagsFrame_addTagLabel select option", + "._FilterByTagsFrame_tagBoxCaption", + ".notice", + ".tag-box" + ], + "description": "", + "isStrict": false, + "rules": { + "combine tags by OR": "ロジックまたは私の選択の組み合わせによるラベル", + "combine-tags-by-or": "選んだタグをロジックで組み合わせるか(combine-tags-by-or)", + "2-sat": "二部グラフの充足可能性問題 (2-sat)", + "binary search": "バイナリサーチ", + "bitmasks": "ビットマスク", + "brute force": "ブルートフォース列挙。", + "chinese remainder theorem": "中国剩余定理", + "combinatorics": "組み合わせ論", + "constructive algorithms": "構成的アルゴリズム(構成的アルゴリズム)", + "data structures": "データ構造", + "dfs and similar": "深さ優先探索とその亜種(dsfとそれに類するもの)", + "divide and conquer": "分割統治アルゴリズム。", + "dp": "動的計画法(dp)", + "dsu": "パラレル・サーチ・セット(dsu)", + "expression parsing": "式の解析", + "fft": "高速フーリエ変換 (fft)", + "flows": "フロー", + "games": "ゲーム理論(ゲーム)", + "geometry": "計算幾何学", + "graph matchings": "グラフのマッチング", + "graphs": "グラフ理論(グラフ)", + "greedy": "貪欲", + "hashing": "ハッシュテーブル(ハッシュ)", + "implementation": "実装問題、プログラミングスキル、シミュレーション(実装)", + "interactive": "双方向性の問題(インタラクティブ)", + "math": "数学", + "matrices": "マトリックス", + "meet-in-the-middle": "ミート・イン・ザ・ミドルアルゴリズム(meet-in-the-middle algorithm)", + "number theory": "整数論", + "probabilities": "確率", + "schedules": "スケジューリング・アルゴリズム(スケジュール)", + "shortest paths": "最短経路アルゴリズム(ショートパス)", + "sortings": "ソートアルゴリズム(ソート)", + "string suffix structures": "文字列接尾辞構造", + "strings": "文字列の取り扱い(文字列)", + "ternary search": "三項検索", + "trees": "木の構造(樹木)", + "two pointers": "2ポインタ・アルゴリズム(2つのポインタ)" + } + }, + "SettingField-name": { + "class": [ + ".field-name" + ], + "description": "ページ内のフィールドの設定", + "isStrict": false, + "rules": { + "Hide sidebar block \"Find user\"": "サイドバーのブロック「ユーザーを探す」を非表示にする。", + "Hide sidebar block \"Current user\"": "サイドバーのブロック「現在のユーザー」を非表示にする。", + "Hide sidebar block \"Recent аctions\"": "サイドバーの \"What's New \"ブロックを隠す。", + "Hide sidebar block \"Favourite groups\"": "サイドバーのブロック「お気に入りグループ」を非表示にする。", + "Hide sidebar block \"Top contributors\"": "サイドバーのブロック「投稿者ランキング」を非表示にする。", + "Hide sidebar block \"Top rated\"": "サイドバーのブロック「評価ランキング」を非表示にする。", + "Hide sidebar block \"Streams\"": "サイドバー \"ライブ \"ブロックを隠す", + "Old password": "旧パスワード", + "New password": "新しいパスワード", + "Confirm new password": "新しいパスワードの確認", + "Contest email notification": "コンペメール通知", + "Send email on new user talk": "新規ユーザーのダイアログがあったときにメールを送信する", + "Send email on new comment": "新しいコメントが追加されたらメールを送信する", + "Hide contact information": "連絡先を隠す", + "Remember me by Gmail, Facebook and etc": "GmailやFacebookなどで私を覚えておいてください。", + "Show tags for unsolved problems": "未解決問題のラベルを表示しています", + "Hide solved problems from problemset": "問題セットから解決済みの問題を隠す", + "Hide low rated blogs": "評価の低いブログを隠す", + "Offer to publish great rating rises": "レイティングの著しい改善を証明する機会を提供する", + "Enforce https": "HTTPSを強制する", + "Show private activity in the profile": "プロフィールにプライベートな活動を表示する", + "Show diagnostics": "診断情報の表示" + } + }, + "CloneContestFormField": { + "class": [ + ".field-name" + ], + "description": "コンテストをバーチャル・マッシュアップ設定フォームにクローンする", + "isStrict": false, + "rules": { + "Problem:": "タイトル", + "Question": "问题", + "Language:": "言語。", + "Source code:": "ソースコード", + "Or choose file:": "またはファイルを選択します。", + "Choose file:": "ファイルを選択する。", + "Notice:": "注意。", + "virtual participation:": "バーチャル参加。", + "Registration for the contest:": "レースエントリー", + "Take part:": "参加する。", + "as individual participant:": "個人参加者として。", + "as a team member:": "チームメンバーとして。", + "Virtual start time:": "仮想スタート時間。", + "Complete problemset:": "質問一式", + "First name \\(English\\)": "名前(英語)", + "Last name \\(English\\)": "苗字(英語)", + "First name \\(Native\\)": "氏名(現地語)", + "Last name \\(Native\\)": "姓(現地語)", + "Birth date": "生年月日", + "Country": "列国", + "City": "市町村", + "Organization": "組織", + "Handle/Email": "口座番号/Eメール", + "Name": "名称", + "Handle": "账号", + "Email": "邮箱", + "Confirm": "确认", + "Password": "暗号化", + "New Rank": "新的Rank", + "Training name \\(English\\):": "研修名(英語)。", + "Training name \\(Russian\\):": "研修名(ロシア語)。", + "Contest format:": "競技形式。", + "Start time:": "開始時間", + "Duration:": "期間", + "Visibility:": "視認性。", + "Attach parent contest\\?:": "サイアーマッチ?", + "Participation type:": "参加タイプ。", + "Freeze period:": "凍結期間。", + "Unfreeze time:": "解凍時間。", + "Is practice allowed\\?:": "練習は許可されているのか?", + "Is virtual allowed\\?:": "バーチャルエントリーは可能ですか?", + "Is out of competition allowed\\?:": "競技以外のエントリーは可能ですか?", + "Is self-registration allowed\\?:": "自己登録は可能ですか?", + "Can non-registered view the contest\\?:": "未登録のユーザーが大会を見ることはできますか?", + "Can participants view common status\\?:": "参加者は共有状況を確認できますか?", + "Contest testdata policy:": "マッチテストのデータ戦略。", + "Allow view other submissions to:": "他の投稿の閲覧を許可する。", + "Manage program languages:": "マネージド・プログラミング言語。", + "Use time limits scaling policy\\?:": "期間限定のスケーリング・ポリシーを使うか?", + "Allow statements\\?:": "タイトルの説明を表示できますか?", + "Allow standings\\?:": "ランキングの閲覧を許可するか?", + "Season:": "シーズンだ。", + "Contest type:": "コンペティションのタイプ", + "ICPC region:": "ICPCの地域", + "Country:": "国", + "City:": "都市。", + "Contest difficulty:": "レースの難易度", + "Website URL:": "ウェブリンク", + "Description \\(English\\):": "説明(英語)。", + "Description \\(Russian\\):": "説明(ロシア語)。", + "Registration confirmation text \\(English\\):": "登録確認テキスト(英語)。", + "Registration confirmation text \\(Russian\\):": "登録確認テキスト(ロシア語)。", + "Logo \\(English\\):": "ロゴ(英語)。", + "Logo \\(Russian\\):": "ロゴ(ロシア語)。", + "End time:": "終了時間", + "Name:": "名前", + "Contest\\(s\\):": "コンペティションだ。", + "Add contest:": "コンテストを追加する。", + "Show Contestants:": "ショーの出場者", + "Show Out of Competition Participants:": "非コンペティション参加者", + "Show Practices:": "エクササイズを見せる。", + "Show Virtuals:": "バーチャルプレーヤーを表示する。", + "Show Ghosts:": "ゴースト・プレーヤーを表示する。", + "Text:": "テキスト", + "Rewrite Examples:": "リライトのサンプル。", + "Add images:": "画像を追加", + "Do not use:": "不使用。", + "Problem short name:": "タイトルの略称。", + "Source problem:": "ソースの問題", + "Problem name \\(English\\):": "タイトル(英語)", + "Input file name:": "入力ファイル名。", + "Output file name:": "出力ファイル名。", + "Time Limit:": "タイムリミット。", + "Memory Limit:": "メモリの制限。", + "Output only:": "出力のみ。" + } + }, + ".ask-question-link": { + "class": [ + ".ask-question-link" + ], + "description": "", + "isStrict": false, + "rules": { + "Ask a question": "質問する" + } + }, + "add-announcement-link": { + "class": [ + ".add-announcement-link" + ], + "description": "", + "isStrict": false, + "rules": { + "Add announcement": "お知らせを追加" + } + }, + "demo": { + "class": [ + "Class" + ], + "description": "", + "isStrict": false, + "rules": { + "SourceText": "TargetText" + } + } + }, + "InputValueReplacements": { + "InputSubmit": { + "class": [ + "input[type='submit']" + ], + "description": "中国語を投稿する", + "isStrict": false, + "rules": { + "Register for virtual participation": "バーチャルエントリー登録", + "Register for practice": "ログインして練習を開始する", + "Apply": "アプライアンス", + "Register": "名前を書く", + "Login": "サインイン", + "Run": "うごきだす", + "Start virtual contest": "バーチャルエントリー開始", + "Manage invitations": "経営陣の招待", + "Disable manager mode": "管理モードの一時閉鎖", + "Enable manager mode": "オープン管理モード", + "Clone Contest": "クローン・コンペティション", + "Submit": "だす", + "Save changes": "設定の保存", + "Filter": "ろ過", + "Find": "見つける", + "Save": "セーブ", + "Create Mashup Contest": "マッシュアップコンテストを開催", + "Delete problem": "質問を削除する", + "Restore problem": "リカバリーの問題", + "Generate": "生成", + "Send": "发送" + } + }, + "InputButton": { + "class": [ + "input[type='button']" + ], + "description": "", + "isStrict": false, + "rules": { + "Reset": "リビジョン", + "Delete contest": "マッチ削除", + "Preview": "プレビュー" + } + } + } +} \ No newline at end of file diff --git a/i18n/ko/README.md b/i18n/ko/README.md new file mode 100644 index 000000000..b4f663148 --- /dev/null +++ b/i18n/ko/README.md @@ -0,0 +1 @@ +# OJBetter diff --git a/i18n/ko/docs/AtCoderBetter.html b/i18n/ko/docs/AtCoderBetter.html new file mode 100644 index 000000000..ddd0b500e --- /dev/null +++ b/i18n/ko/docs/AtCoderBetter.html @@ -0,0 +1,244 @@ +

AtCoder Better!🎈

+

AtCoder 인터페이스 중국어, 다크 모드 지원, 제목 번역, 마크다운 보기, 원클릭 제목 복사, Logu로 건너뛰기

+

기능

+

팁:스크립트는 일부 기능에 대한 설정 항목을 제공하며, 전체 페이지()의 오른쪽 상단 모서리에 있는 AtCoderBetter 설정 버튼( )을 클릭하여 설정 패널을 열 수 있습니다.

+

중국어 인터페이스

+

사이트의 주요 요소는 중국어로 번역되며, 어딘가에 실수가 있거나 번역이 잘못된 부분이 있으면 피드백을 환영합니다.

+

오른쪽 상단의 AtCoderBetter 설정 패널에서 현지화를 켜거나 끌 수 있습니다.

+

제목 번역

+

제목, 블로그, 댓글 등의 오른쪽 상단에 번역 버튼을 추가하여 라텍스 공식이 깨지지 않도록 하면서 클릭 한 번으로 중국어로 번역할 수 있습니다!

+

오른쪽 상단의 AtCoderBetter 설정 패널에서 사용하려는 번역 서비스를 선택할 수 있습니다(기본값은 Deepl).

+

팁:번역하기버튼을 마우스 오른쪽 버튼으로 클릭하면 번역 서비스를 빠르게 전환할 수 있습니다!

+

다음 번역 인터페이스를 사용할 수 있습니다:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  + KEY + 번역 품질신뢰성최대 글자 수 + (x 시간)의 기간이 소요됩니다.
심층 번역(✨ 권장)불필요⭐️⭐️⭐️⭐️일부 영역에 액세스하지 못하거나 속도가 느릴 수 있습니다.5000날카로운 (칼 또는 재치)
쉰페이 듣기 번역불필요⭐️⭐️⭐️일반적으로 안정적2000날카로운 (칼 또는 재치)
유튜브 번역불필요⭐️⭐️일반적으로 안정적600날카로운 (칼 또는 재치)
Google 번역불필요⭐️⭐️⭐️현재 Google에 인터넷 연결이 필요합니다.5000날카로운 (칼 또는 재치)
다채로운 클라우드 번역불필요⭐️⭐️일반적으로 안정적5000날카로운 (칼 또는 재치)
ChatGPT를 사용한 번역(✨ 권장)API 키 필요⭐️⭐️⭐️⭐️⭐️서비스 제공업체의 품질과 OpenAI의 혼잡도에 따라 달라집니다.모델에 따라 다름느린
+

기타 기능

+

일부 기능은 오른쪽 상단의 AtCoderBetter 설정 패널에서 변경/전환할 수 있습니다.

+ +

호환성

+

브라우저(소프트웨어)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 보조제최소 버전
Chrome보조제96
Egde보조제96
국내 크롬 케이스기본적으로 호환되지만 예기치 않은 오류가 발생할 수 있습니다.크롬 커널 버전 ≥96
FireFox(모바일 포함)보조제103
Safari지원되지 않음\
+ +

스크립트 관리자

+

Tampermonkey 스크립트 관리자로만 테스트되었으며, Greasemonkey, Violentmonkey, ScriptCat 등과의 호환성은 보장되지 않습니다!

+

기타 플러그인

+

주요 CF 관련 플러그인과의 호환성 문제는 없으며, 호환성 문제가 발생하면 피드백을 환영합니다.

+

일반적인 문제

+ + + +

코드 기여

+

코드를 자유롭게 기여하려면 Github 리포지토리 PR 만들기

+

감사한

+ +

고마워요, 0rz.

\ No newline at end of file diff --git a/i18n/ko/docs/CodeforcesBetter.html b/i18n/ko/docs/CodeforcesBetter.html new file mode 100644 index 000000000..053c1fe22 --- /dev/null +++ b/i18n/ko/docs/CodeforcesBetter.html @@ -0,0 +1,477 @@ +

Codeforces Better!🎈

+

코드포스 인터페이스 중국어, 다크 모드 지원, 제목 번역, 마크다운 보기, 원클릭 제목 복사, 로구 이동, 댓글 차별화 페이지, 클리스트레이팅 점수 표시, 목록 색상 변경

+
+
+
+

미리 작성:피드백 노트

+
+

如遇问题,请先阅读下方的 #常见问题 说明。如果没有得到解决,请前往 反馈页 或者 Github issues 反馈。如遇问题,请先阅读下方的 #常见问题 说明。如果没有得到解决,请前往 反馈页 或者 Github issues 反馈。如遇问题,请先阅读下方的 #常见问题 说明。如果没有得到解决,请前往 反馈页 或者 Github issues 反馈。문제가 있는 경우 아래의 #FAQ 지침을 먼저 읽어보세요.문제가 해결되지 않으면 피드백 페이지 또는 Github 이슈 로 이동하여 피드백을 보내주세요.

+

문제에 대한 자세한 설명(예::링크, 스크린샷, 원하는 결과, 실제 결과, 재현……)을 제공해 주세요.

+

우호적인 토론과 기능 제안도 환영하지만, 스크립트를 유지 관리하고 도움을 제공하는 것은 작성자의 의무가 아니므로 양해해 주시기 바랍니다.

+
+
+

기능

+팁:스크립트의 일부 기능은 설정 항목을 제공하며, 전체 페이지( )의 오른쪽 상단에 있는 에서CodeforcesBetter 설정 버튼을 클릭하여 설정 패널을 열 수 있습니다. +

중국어 인터페이스

+

웹사이트의 주요 요소를 중국어로 바꾸기(끄기 가능)

+

제목 번역

+

제목, 블로그, 댓글 등의 오른쪽 상단에 번역 버튼을 추가하여 라텍스 공식이 깨지지 않도록 하면서 클릭 한 번으로 중국어로 번역할 수 있습니다!

+

이를 기반으로 스크립트는 세 가지 번역 모드를 제공합니다.:

+ +

사용하려는 번역 서비스(기본값은 DeepL)를 선택할 수 있으며, 오른쪽 상단의 CodeforcesBetter 설정 패널에서 스크립트의 작업 모드를 전환할 수도 있습니다.

+
+
+

참고:세분화/선택 모드에서는 다음과 같은 문제가 발생합니다.:

+

- 번역 인터페이스가 전체 텍스트의 문맥 정보를 알 수 없게 만들면 번역 품질이 저하될 수 있습니다.

+

- 콘텐츠의 일부가<p/>또는<i/>요소가 아니기 때문에 번역되지 않거나 선택할 수 없는 부분이 있을 수 있습니다.

+
+
+

이 스크립트는 다음 번역 인터페이스 중에서 선택할 수 있습니다:(기본값은 DeepL).

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  + KEY + 번역 품질신뢰성최대 글자 수 + (x 시간)의 기간이 소요됩니다.
DeepL 번역(✨ 권장)불필요⭐️⭐️⭐️⭐️일부 영역에 액세스하지 못하거나 속도가 느릴 수 있습니다.5000날카로운 (칼 또는 재치)
쉰페이 듣기 번역불필요⭐️⭐️⭐️일반적으로 안정적2000날카로운 (칼 또는 재치)
유튜브 번역불필요⭐️⭐️일반적으로 안정적600날카로운 (칼 또는 재치)
Google 번역불필요⭐️⭐️⭐️현재 Google에 인터넷 연결이 필요합니다.5000날카로운 (칼 또는 재치)
다채로운 클라우드 번역불필요⭐️⭐️일반적으로 안정적5000날카로운 (칼 또는 재치)
ChatGPT를 사용한 번역(✨ 권장)API 키 필요⭐️⭐️⭐️⭐️⭐️서비스 제공업체의 품질과 OpenAI의 혼잡도에 따라 달라집니다.모델에 따라 다름느린
+팁:번역버튼을 마우스 오른쪽 버튼으로 클릭하면 번역 서비스 간에 빠르게 전환할 수 있습니다! +

자동 번역

+

'자동 번역'을 사용 설정하면 브라우저 창에서보기 영역()에 들어가면.ttypography, .comments 영역에 있는 짧은 텍스트가 자동으로 번역됩니다.

+

(설정 패널에서 짧은 텍스트의 글자 수를 몇 자 이하로 지정할 수 있습니다).

+

또한 '댓글 영역 빠른 번역'을 활성화하면 댓글 영역의 짧은 텍스트에 대해 자동 번역이 후보 서비스 중 하나를 무작위로 선택해 빠른 번역을 병행합니다.

+

과거 번역 복구

+

'이전 번역 자동 복원'을 활성화하면제목 페이지()의 번역 정보가 브라우저 로컬에 있는 indexDB의 CFBetterDB 데이터베이스에 있는 translateData 테이블에 자동으로 저장됩니다.

+

새로 고침/다음에 페이지에 들어갈 때 번역을 자동으로 복원합니다.

+

ClistRating

+

clist.by 웹사이트의 평점 점수 데이터를 가져와서 표시하세요!

+

페이지 작업마다 필요한 자격 증명이 다르다는 점에 유의하세요:

+ +스크립트는 clist.by에 대한 특정 쿠키를 얻지 않으며, 쿠키 정보는 요청을 보낼 때 브라우저가 자동으로 전달하며, 쿠키의 유효성은 시도된 요청에서 반환된 상태 코드에 의해 결정됩니다. +

편집기 및 LSP

+

제목 페이지에 편집기 추가

+

제목 페이지 하단에 모나코 코드 편집기를 추가합니다(기본적으로 활성화됨).

+

코드 자동 저장, 코드 빠른 제출, 온라인 테스트 실행, LSP, 정적 보완 개선 사항 및 기타 기능 지원

+

코드 자동 저장

+

코드는 브라우저에 로컬로 인덱싱된 데이터베이스의 편집기 코드 테이블에 자동으로 저장됩니다.

+

온라인 테스트 실행

+

클릭 한 번으로 제목에 있는 샘플을 실행할 수 있으며, 테스트 샘플을 사용자 지정할 수도 있으며, 이 샘플은 CFBetterDB 데이터베이스의 editorCode 테이블에 자동으로 저장됩니다.

+

이 스크립트는 다양한 매개변수 옵션을 지원하는 여러 온라인 코드 실행 서비스:codeforces 공식, wandbox(타사), rextester(타사)를 제공합니다.

+
+
+

참고:

+
    +
  • +

    물론 모든 온라인 코드 실행 서비스는 대화형 주제를 테스트할 수 없습니다.

    +
  • +
  • +

    타사 온라인 코드 실행 서비스는 코드포스와 다른 환경에서 실행될 수 있으며, 타사 온라인 코드 실행 서비스에서 작동하거나 올바르게 표시되는 코드가 반드시 코드포스에서는 그렇지 않을 수도 있습니다.

    +
  • +
  • +

    타사 온라인 코드 실행 서비스에 의해 코드가 어떤 식으로든 유출되지 않는다는 보장은 없습니다.

    +
  • +
  • +

    또한 더 광범위한 애플리케이션의 경우 페이지의 컴파일러 옵션이 타사 온라인 코드 실행 서비스의 실제 컴파일러 옵션과 엄격하게 일치하지 않으므로 예기치 않은 결과가 발생할 수 있습니다.

    +
  • +
+
+
+

LSP

+

LSP를 구성한 후 편집기에 다음 기능을 제공할 수 있습니다(C++ 및 Python 언어만 해당):.

+ +

물론 로컬 컴파일, 중단점 디버깅, 다중 파일 등은 지원하지 않습니다……, 성능은 로컬 특수 IDE만큼 좋지 않습니다.

+

요컨대, 이 기능은 그다지 의미 있거나 유용하지 않으므로 관심이 있으시다면 아래 FAQ 섹션에서 자세히 알아보세요!

+

정적 완성도 향상

+

설정 패널 - 모나코 - 정적 완성 기능 향상 - 사용자 지정에서 모나코 편집기에 사용자 지정 정적 코드 완성 규칙을 추가할 수 있습니다.

+

완성 규칙은 JSON 형식이며, 다음은 예시입니다(모나코 형식).

+
+  {
+    "suggestions": [
+        {
+            "label": "hello world",
+            "kind": 15,
+            "documentation": "헬로 월드 스니펫입니다",
+            "insertText": "헬로 월드"
+        },
+        // other 제안... ]
+}
+
+

CompletionItem (참고: 범위 속성을 입력하지 않으면 스크립트에서 자동으로 계산하여 추가합니다)의 거의 모든 속성을 사용할 수 있습니다.

+

기타 기능

+ +

호환성

+

브라우저(소프트웨어)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 보조제최소 버전
Chrome보조제96
Edge보조제96
국내 크롬 케이스기본적으로 호환되지만 예기치 않은 오류가 발생할 수 있습니다.크롬 커널 버전 ≥96
FireFox(모바일 포함)보조제103
Safari지원되지 않음\
+

스크립트 관리자

+

Tampermonkey 스크립트 관리자로만 테스트되었으며 Greasemonkey, Violentmonkey, ScriptCat 등과의 호환성은 보장되지 않습니다.

+

기타 플러그인

+

주요 CF 관련 플러그인과의 호환성 문제는 없으므로 호환성 문제가 발생하면 피드백을 환영합니다.

+

미러(컴퓨팅)

+

지원 공식 라이트 사이트 m1 / m2 / m3 , 공식 미러 사이트 https://mirror.codeforces.com/, 비공식 미러 사이트 https://codeforc.es

+

또한 이론적으로 다른 미러와도 호환되므로 // @match your mirror URL 에 댓글 한 줄만 추가하면 됩니다!

+

일반적인 문제

+
+
Q. 어떻게 시작하나요? +
+ A. 스크립트를 설치하기 전에 Tampermonkey 를 설치해야 합니다. +
+
+
+
Q. 업데이트 오류가 발생했나요? +
+

A. 그리시 포크 플랫폼의 특성상 새 버전이 출시되면 실제 업데이트/설치 버전이 이전 버전일 수 있습니다.

+

일반적으로 몇 분 정도 기다렸다가 업데이트/설치로 다시 이동하면 됩니다.

+

스크립트의 업데이트 알림 상자에서 빨간색 물음표 위로 마우스를 이동하여 팝업 메시지 하단에 있는 '아직 업데이트하지 않음' 버튼을 클릭할 수도 있습니다.

+
+
+
+
Q. 로딩 중이라는 메시지가 계속 표시되나요? +
+ A. 설정 패널에서 '호환성 옵션 - 페이지 리소스가 로드될 때까지 기다리지 않음' 옵션을 활성화하세요. +
+
+
+
Q. DeepL 번역 오류 요청이 너무 많나요? +
+

A. 일반적으로 단기간에 자주 번역하거나 한 번에 5,000자 이상의 텍스트를 번역했기 때문에 발생하는 문제입니다. DeepL 에는 단어 수와 번역 빈도에 대한 제한이 있습니다.

+ 일시적인 현상이며 잠시 후 정상으로 돌아올 것입니다. +
+
+
+
Q. DeepL 사용 시 찾을 수 없음 오류가 발생하거나 번역이 진행 중이라는 메시지가 계속 표시되나요? +
+ A. 일반적으로 사용 중인 네트워크에서 www.deepl.com에 제대로 액세스할 수 없기 때문입니다. +
+
+
+
Q. 번역 결과에서 일부 수식이 {xx} / [xx] / [xx]로 표시되나요? +
+ A. 번역을 위해 공통 번역 인터페이스(DeepL/Youdao/google)를 사용하는 경우 스크립트 구현 방식에 따라 제한적으로{xx}/[xx]/[xx]가 있을 수 있습니다. +
+
+
+

스크립트의 수식 처리

+

번역 중 LaTeX 수식이 손상되는 것을 방지하기 위해 스크립트에서는 먼저 모든 LaTeX 수식을 꺼내어 대체 문자{xx}/[xx]/[xx]를 사용하여 배치합니다.

+

번역 중에 이러한 치환이 손상되지 않을 확률이 높기 때문에 번역 후 치환을 기반으로 LaTeX 수식으로 다시 복원할 수 있습니다.

+

이 구현은 대체 문자가 깨지지 않는 한 예상대로 작동하며, 대부분의 경우 문제가 되지 않습니다.

+

그러나 때때로 번역 서비스에서 [23]이 [23 / 23] / [23]/ [23 】 / 23]이 되는 등 대체가 깨지는 경우가 있는데, 이 경우 스크립트는 특정 규칙에 따라 복원되어 여전히 예상대로 작동합니다.

+

그러나 번역 서비스가 [2] 313을 [2312]로 바꾸는 등 더 많은 콘텐츠를 파괴하고 모호성을 유발하는 경우에는 복원할 수 없습니다.

+

번역 서비스마다 대체어 자체가 손상될 확률이 다르며, 오른쪽 상단의 설정 패널에서 다른 대체어를 선택할 수 있습니다.

+

테스트 결과 {} 이 일반적으로 더 나은 성능을 보였으므로 스크립트에서 이 대체어를 기본으로 사용합니다.

+
+
+
+
+
+

팁:

+

ChatGPT로 번역할 때는 프롬프트 단어를 통해 ChatGPT에 "라텍스 수식을 번역하지 않은 상태로 유지"하라고 직접 지시할 수 있으므로 이 문제가 발생하지 않습니다.

+

스마트한 ChatGPT는 이를 매우 잘 준수할 수 있으며, 스크립트 번역을 위해 권장되는 방식입니다.

+
+
+
+
+
+
Q. ChatGPT로 번역하려면 어떻게 하나요? +
+ A. OpenAI의 인터페이스에 직접 액세스할 수 있고 계정이 있는 경우, "ChatGPT 번역(API) 사용"에 체크하고 아래의 "추가" 버튼을 클릭하여 새 구성을 생성하고 를 입력하고 입력하기만 하면 됩니다. +

또한, 다음 표에는 몇 가지 API 서비스 제공업체가 나와 있으며, 이 중 선택하여 사용할 수 있는 API 프록시 서비스를 구매할 수도 있습니다. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 공식 웹사이트획득 방법
API2Dhttps://api2d.com/공식 웹사이트
CloseAIhttps://console.closeai-asia.com/공식 웹사이트
OhMyGPThttps://aigptx.top/공식 웹사이트
OpenAI-SBhttps://openai-sb.com/텔레그램 봇
API2GPThttps://www.api2gpt.com/공식 웹사이트
AI Proxyhttps://aiproxy.io/공식 웹사이트
+
+
+
+

면책 조항:

+

작성자는 공유를 목적으로 수집 및 공유할 뿐, 어떠한 수익도 받지 않으며, 위 플랫폼의 안정성을 보장하지 않으며, 플랫폼의 어떠한 행위도 작성자와는 무관합니다.

+

소량으로 충전하여 모두 사용하는 것이 좋으며, 이러한 서비스 제공업체는 영업을 중단할 수 있습니다.

+
+
+

API 프록시 서비스 제공업체에서 제공하는 서비스를 사용하는 경우 구성의 KEY는 API 프록시 서비스 제공업체에서 제공한 키여야 합니다.

+

또한 구성에서 프록시 API를 추가로 입력해야 합니다.

+

프록시 API를 완전히 작성해야 하며, 다음은 CloseAI API를 제공하는 + Base:https://api.closeai-proxy.xyz예시입니다.

+

그런 다음 프록시 API 뒤에 https://api.closeai-proxy.xyz/v1/chat/completions를 입력해야 합니다.

+ 참고:사용자 지정 API를 지정했으므로 도메인 간 요청에 대한 경고가 표시되므로 직접 승인을 클릭하세요! +
+ 참고:Azure OpenAI를 사용하려는 경우 인터페이스 매개 변수가 공식 OpenAI 인터페이스와 동일하지 않으므로azure-openai-proxy를 직접 배포하여 변환할 수 있습니다. +
+
+
+
Q. LSP란 무엇인가요? +
+ A. LSP(언어 서버 프로토콜)는 편집자와 언어 서버 간의 통신을 위해 Microsoft에서 시작한 프로토콜 사양입니다. +

기존 IDE가 구현해야 하는 코드 완성, 진단, 제안, 문서화, 프로젝트 관리 기능까지 에디터에서 분리하고 독립적인 서비스를 사용하여 이러한 기능을 수행합니다.

+

에디터는 프로토콜 사양에 따라 서버와 통신하기만 하면 되므로 작업량이 크게 줄어들고 에디터가 다양한 프로그래밍 언어를 쉽게 지원할 수 있습니다.

+

현재 LSP의 생태는 점차 개선되고 있으며, 주류 편집자는 LSP를 지원하거나 VSCode, Vim, Emacs 등과 같은 해당 플러그인을 보유하고 있습니다 ...

+

하지만 주요 상용 IDE 벤더들은 이에 대한 관심이 거의 없고, 기본적으로 기존 LSP 서버는 오픈소스 커뮤니티에서 유지보수하고 있어 전문 IDE와 다양한 전문 플러그인에 비해서는 아직 미흡한 수준입니다.

+
+
+
+
Q. LSP는 어떻게 사용하나요? +
+ A. 두 단계만 거치면 됩니다: +

:스크립트는 필요에 따라 설치해야 하는 C++ 및 Python의 다음 두 가지 LSP 서버 구현에 대한 지원을 제공합니다(:).

+ + + + + + + + + + + + + + + + + + + + +
다국어 지원LSP Server설치 방법(Windows에서)
C++clangdclangd 릴리스 에서 clangd를 다운로드하고 시스템 환경 변수 경로에 clangd 경로를 추가합니다(예: C:\clangd_16.0.2\bin\).
Pythonpylsp: + pip install "python-lsp-server[all]"명령을 실행하면 환경 변수가 자동으로 추가됩니다.
+

II:또한 스크립트와 LSP 서버 간의 통신을 연결해 주는 GitHub 릴리스 또는 블루 리듬 클라우드(비밀번호:aaaa) 에서 OJBetter_Bridge를 다운로드하여 압축을 풀어야 합니다.

+

압축을 푼 폴더를 C 드라이브의 루트 디렉터리 또는 원하는 다른 위치에 놓습니다(참고:다른 위치에 놓는 경우 설정 패널의 '작업 경로'를 실제 위치로 변경해야 합니다).

+

그런 다음 GUI 버전과 터미널 버전을 제공하는 OJBetter_Bridge를 실행할 수 있으며, Windows의 경우 GUI 버전이 권장되며 server_gui.exe 를 직접 실행합니다.

+

OJBetter_Bridge는 시작 시 clangd 및 pylsp 명령이 유효한지 자동으로 확인하고 메시지를 표시합니다.

+ 팁:: server_gui.exe 의 인터페이스에서 부팅하도록 설정할 수 있습니다. +

위 단계를 완료한 후 설정 패널에서 'LSP 사용'을 켜서 사용할 수 있습니다.

+
+
+
+ 자세히 알아보시겠습니까? +
+ clangd의 경우, cpp_workspace 폴더에 두 개의 구성 파일이 저장되어 있습니다( .clangd,.clang-format). +

이들은 편집할 수 있는 clangd의 구성 항목코드 서식 스타일을 정의합니다.

+
+
+
+
+
+
+
+
Q. 클랭드 포맷이 작동하지 않는 이유는 무엇인가요? +
+ A. 설정 패널에서 잘못된 LSP 작업 경로를 입력했기 때문입니다. +
+
+
+
Q. 클랭드가 내 <bits/stdc++.h> 헤더를 인식하지 못하는 이유는 무엇인가요? +
+ A. <bits/stdc++.h> 는 표준 헤더 파일이 아니기 때문에 clangd가 기본적으로 지원하지 않기 때문에, OJBetter_Bridge의 cpp_workspace + 의 .clangd 파일에서 컴파일러 파라미터를 수정하여 이 비표준 헤더 파일을 찾을 위치를 clang에게 알려주어야 합니다(물론 범용 헤더의 사용은 권장하지 않습니다). +
+
+
+
Q. 정적 완성도 향상에 로컬 JSON 파일을 사용할 수 있나요? +
+ A. 브라우저 보안 제한으로 인해 file:///xxx 등의 URL을 사용하여 브라우저에서 로컬 JSON 파일에 직접 액세스할 수 없습니다. +

하지만 OJBetter_Bridge를 사용하면 매우 간단하게 할 수 있습니다. xxx.json JSON 파일을 OJBetter_Bridge의 /mycomplet 폴더에 넣기만 하면 됩니다.

+

OJBetter_Bridge를 실행하면 설정 패널에서:http://127.0.0.1:2323/mycomplet/xxx.jsonJSON URL을 사용하여 새 구성을 만들 수 있습니다.

+
+
+

해보시겠습니까?

+

OJBetter_Bridge를 시작하면 처음에 /mycomplete 폴더에 샘플 JSON 파일:template.json이 제공되므로 구성을 추가하고 + http://127.0.0.1:2323/mycomplet/template.json 을 입력한 후 저장하면 됩니다!

+

이제 편집기에 hello를 입력하면 두 개의 상호 보완적인 항목:hello world, hello world2가 표시됩니다.

+
+
+
+
+
+

코드 기여

+

코드를 자유롭게 기여하려면 Github 리포지토리 PR 만들기

+

다른 OJ?

+

작성자는 제한된 리소스로 인해 유사한 스크립트를 많이 유지 관리하지 않으므로 이 스크립트를 좋아하는 OJ에 이식하고 싶다면 GPL-3.0 라이선스를 준수하기만 하면 됩니다!

+

감사한

+ +

고마워요, 0rz.

\ No newline at end of file diff --git a/i18n/ko/resources/subs/Codeforces-subs.json b/i18n/ko/resources/subs/Codeforces-subs.json new file mode 100644 index 000000000..6fb10e844 --- /dev/null +++ b/i18n/ko/resources/subs/Codeforces-subs.json @@ -0,0 +1,859 @@ +{ + "version": "1.0.0", + "commonReplacements": { + ".datatable": { + "class": [ + ".datatable" + ], + "description": "", + "isStrict": false, + "rules": { + "Virtual participation": "가상 재연 토너먼트에 참여하기", + "Enter": "로 이동", + "Current standings": "현재 목록", + "Final standings": "최종 목록", + "Preliminary results": "예비 결과", + "open hacking:": "오픈 해킹", + "School/University/City/Region Championship": "학교/대학/도시/지역 대회", + "Official School Contest": "공식 학교 대회", + "Training Contest": "트레이닝 경기", + "Training Camp Contest": "훈련 캠프 경쟁", + "Official ICPC Contest": "ICPC 공식 대회", + "Official International Personal Contest": "공식 국제 개인전", + "China": "sino", + "Statements": "제목 설명", + "in Chinese": "중국어", + "Trainings": "기차", + "Prepared by": "작성자", + "Current or upcoming contests": "현재 진행 중이거나 예정된 대회", + "Rating: users participated in recent 6 months": "평가:지난 6개월 동안 참여한 적이 있는 사용자", + "Past contests": "지난 경기", + "Exclusions": "제외", + "Before start": "레이스 시작까지 몇 분 남지 않았습니다.", + "Before registration": "등록이 시작되기까지 아직 시간이 남아 있습니다.", + "Until closing ": "아직 등록을 마감할 시간이 남아 있습니다.", + "Before extra registration": "추가 등록은 아직 열려 있지 않습니다.", + "Register »": "등록 \"", + "Registration completed": "등록", + "Registration closed": "등록이 마감되었습니다.", + "Problems\n": "问题集", + "My Submissions": "내 제출물", + "Standings": "이름 목록", + "Questions about problems": "이슈에 대한 질문", + "Contest status": "게임 상태", + "Invited users": "초대된 사용자", + "Invitation links": "초대 링크", + "API keys": "API密钥" + } + }, + ".menu-list.main-menu-list": { + "class": [ + ".menu-list.main-menu-list" + ], + "description": "", + "isStrict": false, + "rules": { + "Home": "홈페이지", + "Top": "유행 중", + "Catalog": "가이드 카탈로그", + "Contests": "대회(스포츠 등)", + "Gym": "훈련 캠프", + "Problemset": "설문지", + "Groups": "조직", + "Rating": "평가 순위", + "Edu": "재배", + "Calendar": "캘린더", + "ICPC Challenge": "ICPC挑战赛", + "Help": "손" + } + }, + ".nav-links": { + "class": [ + ".nav-links" + ], + "description": "", + "isStrict": false, + "rules": { + "Settings": "설정", + "Blog": "블로그(외래어)", + "Teams": "대기열", + "Submissions": "제출(보고서 등)", + "Favourites": "북마크(인터넷)", + "Problemsetting": "문제 설정", + "Talks": "비공개 편지", + "Contests": "대회(스포츠 등)" + } + }, + ".contest-state-phase": { + "class": [ + ".contest-state-phase" + ], + "description": "", + "isStrict": false, + "rules": { + "Before contest": "다가오는 대회", + "Contest is running": "경기 진행 중" + } + }, + ".notice": { + "class": [ + ".notice" + ], + "description": "", + "isStrict": false, + "rules": { + "has extra registration": "추가 등록 기간이 있습니다.", + "If you are late to register in 5 minutes before the start, you can register later during the extra registration. Extra registration opens 10 minutes after the contest starts and lasts 25 minutes.": "레이스 시작 5분 전까지 등록하지 않은 경우, 추가 등록 기간 동안 나중에 등록할 수 있습니다. 추가 등록은 레이스 시작 10분 후부터 시작되어 25분 동안 진행됩니다.", + "in timezone ([^)]*)": "1 시간대", + "Contest will be available for virtual participation when over. Leave this field blank to allow virtual participation at any time": "콘테스트가 종료된 후 가상 참가가 허용됩니다. 언제든지 가상 참가를 허용하려면 이 필드를 비워 두세요.", + "Contest duration in minutes": "경기 시간(분)", + "or choose": "를 클릭하거나", + "Standings freeze period in minutes": "목록 고정 시간(분)", + "Time when final results are available": "최종 결과를 확인할 수 있는 시간", + "Is it allowed to solve contest problems unofficially after the end": "경기 종료 후 비공식적인 경기 문제 해결이 허용되는지 여부", + "Is it allowed to run contest as virtual after the end": "대회 후 가상 참가 허용 여부", + "Is it allowed participate in contest out of competition": "비경쟁 출품작 허용 여부", + "Are participants allowed to register for the contest themselves": "참가자가 직접 등록할 수 있는지 여부", + "Can non-registered users and anonyms view contest standings, problems and other statistics": "미등록 및 익명 사용자가 레이스 순위표, 질문 및 기타 통계를 볼 수 있도록 허용할지 여부", + "If unchecked they will view only personal status": "이 옵션을 선택하지 않으면 개별 상태만 볼 수 있습니다.", + "To manage allowed program languages": "허용된 프로그래밍 언어 관리", + "The system will automatically adjust time limits for some languages. Recommended for use only for educational purpose.": "특정 언어의 경우 시스템이 자동으로 시간 제한을 조정합니다. 교육 목적으로만 사용하는 것이 좋습니다.", + "Check it if you want to allow contestants view statements": "참가자가 문제의 설명을 볼 수 있도록 하려면 이 확인란을 선택합니다.", + "Check it if contestants can view standings": "참가자가 순위표를 볼 수 있도록 허용하려면 이 확인란을 선택합니다.", + "Where the contest was held originally": "원래 대회가 열렸던 장소", + "Official contest site URL": "공식 콘테스트 웹사이트 URL", + "Enter a name for your new API key. It should describe what this key is used for.": "为您的新API密钥输入一个名称。它应该描述这个密钥的用途。", + "Enter your account password to confirm access. If you do not have password, logout and use password recovery feature.": "输入您的账户密码以确认访问。如果您没有密码,请注销并使用密码恢复功能。" + } + }, + ".propertyLinks": { + "class": [ + ".propertyLinks" + ], + "description": "", + "isStrict": false, + "rules": { + "Contribution": "헌신" + } + }, + ".contests-table": { + "class": [ + ".contests-table" + ], + "description": "", + "isStrict": false, + "rules": { + "Contest history": "대회 기록" + } + }, + ".roundbox.sidebox.borderTopRound ": { + "class": [ + ".roundbox.sidebox.borderTopRound " + ], + "description": "", + "isStrict": false, + "rules": { + "Register now": "지금 등록하기", + "No tag edit access": "태그 편집 권한 없음", + "Problem([\\s]*)$": "问题", + "Verdict": "판결 상태", + "Language:": "언어.", + "Participant": "참가자", + "Choose file:": "파일을 선택합니다." + } + }, + ".icon-eye-close.icon-large": { + "class": [ + ".icon-eye-close.icon-large" + ], + "description": "", + "isStrict": false, + "rules": { + "Add to exclusions": "제외 목록에 추가" + } + }, + "null": { + "class": [ + null + ], + "description": "", + "isStrict": false, + "rules": { + "Add to exclusions for gym contests filter": "Boot Camp 필터에 제외 항목 추가하기" + } + }, + ".roundbox.sidebox.sidebar-menu.borderTopRound": { + "class": [ + ".roundbox.sidebox.sidebar-menu.borderTopRound" + ], + "description": "", + "isStrict": false, + "rules": { + "Announcement": "게시판", + "Statements": "통계 보고서", + "Tutorial": "메모" + } + }, + ".second-level-menu": { + "class": [ + ".second-level-menu" + ], + "description": "", + "isStrict": false, + "rules": { + "Problems": "이슈", + "Submit Code": "코드 제출", + "My Submissions": "내 제출물", + "Status": "상태", + "Standings": "이름 목록", + "Adm.": "관리", + "Edit": "컴파일러", + "Custom Invocation": "사용자 지정 디버깅", + "Common standings": "모든 순위", + "Friends standings": "친구 전용.", + "Submit": "제출(보고서 등)", + "Hacks": "해커 (컴퓨팅) (외래어)", + "Room": "큐비클", + "Custom test": "사용자 지정 테스트", + "Blog": "블로그(외래어)", + "Teams": "대기열", + "Submissions": "기록 제출", + "Groups": "조직", + "Rating": "등급", + "Friends rating": "친구 평가", + "Favourites": "북마크(인터넷)", + "Contests": "대회(스포츠 등)", + "Magic": "魔法", + "Handle": "账号", + "Members": "멤버", + "问题etting": "이슈 준비에 참여", + "Streams": "직접 인터넷 방송", + "Gym": "훈련 캠프", + "Mashups": "믹스 앤 매치(의류 등)", + "Posts": "카드", + "Comments": "반환(이전 조건으로)", + "Main": "스테이플", + "Settings": "설정", + "Lists": "리스팅", + "General": "기본", + "Sidebar": "사이드바(소프트웨어)", + "Social": "사회 보장(연금, 의료 보험)", + "Address": "주소", + "Wallets": "지갑" + } + }, + ".topic-toggle-collapse": { + "class": [ + ".topic-toggle-collapse" + ], + "description": "", + "isStrict": false, + "rules": { + "Expand": "시작" + } + }, + ".topic-read-more": { + "class": [ + ".topic-read-more" + ], + "description": "", + "isStrict": false, + "rules": { + "Full text and comments": "자세히 보기/댓글 달기" + } + }, + ".toggleEditorCheckboxLabel": { + "class": [ + ".toggleEditorCheckboxLabel" + ], + "description": "", + "isStrict": false, + "rules": { + "Switch off editor": "편집기 구문 강조 표시 끄기" + } + }, + ".submit": { + "class": [ + ".submit" + ], + "description": "", + "isStrict": false, + "rules": { + "Registration for the contest": "대회 등록" + } + }, + "._FilterByTagsFrame_difficulty": { + "class": [ + "._FilterByTagsFrame_difficulty" + ], + "description": "", + "isStrict": false, + "rules": { + "Difficulty:": "난이도." + } + }, + "._FilterByTagsFrame_addTagLink": { + "class": [ + "._FilterByTagsFrame_addTagLink" + ], + "description": "", + "isStrict": false, + "rules": { + "Add tag": "태그 추가" + } + }, + ".alert": { + "class": [ + ".alert" + ], + "description": "", + "isStrict": false, + "rules": { + "Rating changes for last rounds are temporarily rolled back. They will be returned soon.": "이전 라운드의 등급 변경 사항이 일시적으로 롤백되었습니다. 곧 복구될 예정입니다.", + "Reminder: in case of any technical issues, you can use the lightweight website": "알림:기술적인 문제가 발생하면 라이트웨이트 사이트를 이용할 수 있습니다.", + "Please subscribe to the official Codeforces channel in Telegram via the link ": "링크를 통해 코드포스의 공식 텔레그램 채널을 구독해 주세요!" + } + }, + ".lang-chooser": { + "class": [ + ".lang-chooser" + ], + "description": "", + "isStrict": false, + "rules": { + "Enter": "로그인", + "Register": "등록", + "Contest rating": "테스트 평가", + "Logout": "로그아웃" + } + }, + ".userbox": { + "class": [ + ".userbox" + ], + "description": "", + "isStrict": false, + "rules": { + "Change photo": "사진 교체", + "Contest rating": "레이싱", + "Contribution": "헌신", + "My friends": "내 가장 친한 친구.", + "Change settings": "설정 변경", + "Last visit": "마지막 액세스", + "not visible": "不可见的", + "Registered": "에 등록", + "Blog entries": "블로그 항목", + "comments": "해설", + "Write new entry": "새 항목 준비", + "View my talks": "내 비공개 메시지 보기", + "Talks": "비공개 편지", + "Send message": "메시지 보내기" + } + }, + "#vote-reset-filterDifficultyLowerBorder": { + "class": [ + "#vote-reset-filterDifficultyLowerBorder" + ], + "description": "", + "isStrict": false, + "rules": { + "Reset": "재프로비저닝" + } + }, + "#vote-reset-filterDifficultyUpperBorder": { + "class": [ + "#vote-reset-filterDifficultyUpperBorder" + ], + "description": "", + "isStrict": false, + "rules": { + "Reset": "재프로비저닝" + } + }, + ".alert.alert-info": { + "class": [ + ".alert.alert-info" + ], + "description": "", + "isStrict": false, + "rules": { + "The problem statement has recently been changed.": "제목 설명이 최근 변경되었습니다.", + "View the changes.": "변경 사항 보기" + } + }, + ".enterPage": { + "class": [ + ".enterPage" + ], + "description": "", + "isStrict": false, + "rules": { + "Fill in the form to login into Codeforces.": "양식을 작성하여 코드포스에 로그인하세요.", + "You can use": "또한", + "as an alternative way to enter.": "로그인" + } + }, + ".notice.small": { + "class": [ + ".notice.small" + ], + "description": "", + "isStrict": false, + "rules": { + "\\* To view the complete list, click ": "* :: 전체 목록을 보려면 다음을 클릭하세요." + } + }, + ".setting-name": { + "class": [ + ".setting-name" + ], + "description": "", + "isStrict": false, + "rules": { + "Contest type:": "대회 유형:", + "Rated:": "평가:", + "Tried:": "시도됨", + "Substring:": "키워드" + } + }, + ".by-form": { + "class": [ + ".by-form" + ], + "description": "", + "isStrict": false, + "rules": { + "Sort by:": "정렬 기준:", + "relevance": "(통계) 상관관계", + "popularity": "단명하는 열정", + "time": "times" + } + }, + ".roundbox.borderTopRound": { + "class": [ + ".roundbox.borderTopRound" + ], + "description": "", + "isStrict": false, + "rules": { + "If you invite users to this contest, the contest will become visible to them regardless of its visibility. You can share the contest using the link:": "이 콘테스트에 사용자를 초대하면 해당 사용자의 공개 여부와 관계없이 콘테스트가 해당 사용자에게 표시됩니다. 다음 링크(:)를 사용하여 콘테스트를 공유할 수 있습니다.", + "Generate link and share it with other users": "링크를 생성하여 다른 사용자와 공유", + "Show Log »": "저널 표시 \"", + "Move all to practice »": "모두 실무자로 이동 \"", + "Remove All »": "모두 제거 \"", + "Add »": "추가\"", + "Set »": "설정 \"", + "Download Archive »": "아카이브 다운로드 \"" + } + }, + ".caption.titled": { + "class": [ + ".caption.titled" + ], + "description": "중국어 제목의 사이드바", + "isStrict": false, + "rules": { + "Pay attention": "다음 사항에 유의하세요.", + "Top rated": "평점 순위", + "Top contributors": "기여자 순위", + "Find user": "사용자 찾기", + "Recent actions": "최신 뉴스", + "Training filter": "필터링 및 심사", + "Find training": "콘테스트/이슈 검색", + "Virtual participation": "가상 항목이란 무엇인가요?", + "Contest materials": "대회 관련 정보", + "Settings": "설정", + "Create Mashup Contest": "매시업 콘테스트 만들기", + "Clone Contest to Mashup": "클론 매치에서 콤보 매시업으로", + "Invitations": "초대장", + "Status filter": "상태 필터", + "Administration": "관리", + "Submit": "제출(보고서 등)", + "Practice": "운동", + "Problem tags": "질문 태그", + "Filter Problems": "필터링 문제", + "Last unsolved": "지난번에 해결되지 않음", + "Attention": "다음 사항에 유의하세요.", + "Past contests filter": "지난 경기 심사", + "About Contest": "대회 정보", + "Last submissions": "제출 기록", + "Streams": "직접 인터넷 방송", + "Coach rights": "코칭 권한", + "Advices to fill address": "주소 입력을 위한 제안 사항", + "Hacks filter": "해커 필터", + "Score table": "평가 척도", + "Contests": "대회(스포츠 등)", + "History": "편집 역사", + "Login into Codeforces": "코드포스에 로그인", + "Export the judgment log to DAT-file": "심사 로그를 DAT 파일로 내보내기", + "Contest managers": "콘테스트 관리자", + "Contest writers": "공모전 작가", + "Spectator ranklists": "관객 순위 목록", + "Ghosts:": "고스트 플레이어", + "Export Submissions": "내보내기 제출", + "Register in Codeforces": "注册 Codeforces" + } + }, + "QuestionFilter1": { + "class": [ + "#gym-filter-form div label", + "#gym-filter-form div" + ], + "description": "제목 필터 옵션 처리", + "isStrict": false, + "rules": { + "Contest type:": "경쟁 유형.", + "ICPC region:": "ICPC 지역.", + "Contest format:": "경쟁 형식.", + "Order by:": "정렬 기준.", + "Secondary order by:": "보조 주문.", + "Hide, if participated:": "내가 참여한 것을 숨깁니다.", + "Hide excluded gyms": "제외된 숨기기.", + "Season:": "기간(연간)", + "Duration, hours:": "기간(시간).", + "Difficulty:": "난이도." + } + }, + "QuestionFilter2": { + "class": [ + ".setting-value select option", + ".setting-last-value select option" + ], + "description": "", + "isStrict": false, + "rules": { + "Official ACM-ICPC Contest": "ICPC 공식 대회", + "Official School Contest": "공식 학교 대회", + "Opencup Contest": "오픈컵 대회", + "School/University/City/Region Championship": "학교/대학/도시/지역 챔피언십", + "Training Camp Contest": "훈련 캠프 경쟁", + "Official International Personal Contest": "공식 국제 개인전", + "Training Contest": "트레이닝 경기", + "ID_ASC": "생성 시간(오름차순)", + "ID_DESC": "생성 시간(내림차순)", + "RATING_ASC": "등급(오름차순)", + "RATING_DESC": "등급(내림차순)", + "DIFFICULTY_ASC": "난이도(오름차순)", + "DIFFICULTY_DESC": "난이도(내림차순)", + "START_TIME_ASC": "시작 시간(오름차순)", + "START_TIME_DESC": "시작 시간(내림차순)", + "DURATION_ASC": "기간(오름차순)", + "DURATION_DESC": "기간(내림차순)", + "POPULARITY_ASC": "열(오름차순)", + "POPULARITY_DESC": "열(내림차순)", + "UPDATE_TIME_ASC": "업데이트 시간(오름차순)", + "UPDATE_TIME_DESC": "업데이트 시간(내림차순)" + } + }, + "CompetitionFilter": { + "class": [ + ".options li label", + ".CaptionCont span" + ], + "description": "인종 필터 옵션 중국어", + "isStrict": false, + "rules": { + "Educational": "유익한 정보", + "Global": "전 세계", + "VK Cup": "VK컵", + "Long Rounds": "오랜 기간", + "April Fools": "만우절", + "Team Contests": "팀 경쟁", + "ICPC Scoring": "ICPC 점수", + "Doesn't matter": "----", + "Any": "소유권", + "Yes$": "是", + "No$": "否", + "No submission(s)": "제출하지 않음", + "Have submission(s)": "제출됨", + "No solved problem(s)": "문제 해결 없음", + "Have solved problem(s)": "문제 해결." + } + }, + "RightSidebox": { + "class": [ + ".sidebox div label" + ], + "description": "오른쪽 사이드박스 중국어", + "isStrict": false, + "rules": { + "Show tags for unsolved problems": "해결되지 않은 문제에 대한 레이블 표시", + "Hide solved problems": "해결된 문제 숨기기" + } + }, + "FormField-name": { + "class": [ + "td.field-name label" + ], + "description": "", + "isStrict": false, + "rules": { + "Postal/zip code": "우편/우편 번호", + "Country //(English//)": "国家(英文)", + "State //(English//)": "州/省份(英文)", + "City //(English//)": "城市(英文)", + "Address //(English//)": "地址(英文)", + "Recipient //(English//)": "收件人姓名(英文)", + "Country //(Native//)": "国家(本地语言)", + "State //(Native//)": "州/省份(本地语言)", + "City //(Native//)": "城市(本地语言)", + "Address //(Native//)": "地址(本地语言)", + "Recipient //(Native//)": "收件人姓名(本地语言)", + "Phone": "전화", + "TON Wallet:": "톤 월렛.", + "Secret Code:": "캡차.", + "Terms of agreement:": "계약 조건.", + "Choose team:": "팀을 선택합니다." + } + }, + "QuestionTag": { + "class": [ + "._FilterByTagsFrame_addTagLabel select option", + "._FilterByTagsFrame_tagBoxCaption", + ".notice", + ".tag-box" + ], + "description": "", + "isStrict": false, + "rules": { + "combine tags by OR": "논리 또는 내가 선택한 조합으로 레이블 지정하기", + "combine-tags-by-or": "내가 선택한 태그를 논리 또는 (결합-태그-기준 또는)으로 결합하기", + "2-sat": "이분 그래프 만족도 문제 (2 수능)", + "binary search": "이진 검색", + "bitmasks": "비트 마스크", + "brute force": "무차별 강제 열거.", + "chinese remainder theorem": "중국 나머지 정리(中国剩余定理)", + "combinatorics": "조합학", + "constructive algorithms": "건설적 알고리즘(건설적 알고리즘)", + "data structures": "데이터 구조", + "dfs and similar": "심도 우선 검색 및 그 변형(DFS 및 유사)", + "divide and conquer": "분할 및 정복 알고리즘.", + "dp": "동적 프로그래밍(dp)", + "dsu": "병렬 검색 세트(DSU)", + "expression parsing": "표현식 구문 분석", + "fft": "고속 푸리에 변환(fft)", + "flows": "흐름", + "games": "게임 이론(게임)", + "geometry": "계산 기하학", + "graph matchings": "그래프 매칭", + "graphs": "그래프 이론(그래프)", + "greedy": "욕심쟁이", + "hashing": "해시 테이블(해싱)", + "implementation": "구현 문제, 프로그래밍 기술, 시뮬레이션(구현)", + "interactive": "상호 작용 문제(대화형)", + "math": "수학(수학)", + "matrices": "행렬", + "meet-in-the-middle": "중간에서 만나기 알고리즘(중간에서 만나기)", + "number theory": "수 이론", + "probabilities": "확률", + "schedules": "스케줄링 알고리즘(일정)", + "shortest paths": "최단 경로 알고리즘(최단 경로)", + "sortings": "정렬 알고리즘(정렬)", + "string suffix structures": "문자열 접미사 구조", + "strings": "문자열 처리(문자열)", + "ternary search": "삼항식 검색", + "trees": "트리 구조(나무)", + "two pointers": "두 개의 포인터 알고리즘(두 개의 포인터)" + } + }, + "SettingField-name": { + "class": [ + ".field-name" + ], + "description": "페이지에서 필드 설정", + "isStrict": false, + "rules": { + "Hide sidebar block \"Find user\"": "사이드바 블록 '사용자 찾기'를 숨깁니다.", + "Hide sidebar block \"Current user\"": "사이드바 블록 '현재 사용자'를 숨깁니다.", + "Hide sidebar block \"Recent аctions\"": "사이드바에서 '새로운 소식' 블록을 숨깁니다.", + "Hide sidebar block \"Favourite groups\"": "사이드바 블록 '즐겨찾는 그룹'을 숨깁니다.", + "Hide sidebar block \"Top contributors\"": "사이드바 블록 \"기여자 순위\"를 숨깁니다.", + "Hide sidebar block \"Top rated\"": "사이드바 블록 \"평점 순위\"를 숨깁니다.", + "Hide sidebar block \"Streams\"": "사이드바 블록 \"라이브\" 숨기기", + "Old password": "이전 비밀번호", + "New password": "새 비밀번호", + "Confirm new password": "새 비밀번호 확인", + "Contest email notification": "대회 이메일 알림", + "Send email on new user talk": "새 사용자 대화가 있을 때 이메일 보내기", + "Send email on new comment": "새 댓글이 추가되면 이메일 보내기", + "Hide contact information": "연락처 정보 숨기기", + "Remember me by Gmail, Facebook and etc": "Gmail, Facebook 등에서 저를 기억하세요.", + "Show tags for unsolved problems": "해결되지 않은 문제에 대한 레이블 표시", + "Hide solved problems from problemset": "문제 세트에서 해결된 문제 숨기기", + "Hide low rated blogs": "평점이 낮은 블로그 숨기기", + "Offer to publish great rating rises": "등급이 크게 개선되었음을 입증할 수 있는 기회 제공", + "Enforce https": "HTTPS 강제 적용", + "Show private activity in the profile": "프로필에 비공개 활동 표시", + "Show diagnostics": "진단 정보 표시" + } + }, + "CloneContestFormField": { + "class": [ + ".field-name" + ], + "description": "가상 매시업 설정 양식에 대한 복제 콘테스트", + "isStrict": false, + "rules": { + "Problem:": "제목.", + "Question": "问题", + "Language:": "언어.", + "Source code:": "소스 코드.", + "Or choose file:": "또는 파일을 선택합니다.", + "Choose file:": "파일을 선택합니다.", + "Notice:": "주의.", + "virtual participation:": "가상 참여.", + "Registration for the contest:": "레이스 참가.", + "Take part:": "참여.", + "as individual participant:": "개별 참가자로서.", + "as a team member:": "팀원으로서.", + "Virtual start time:": "가상 시작 시간.", + "Complete problemset:": "전체 질문 세트.", + "First name \\(English\\)": "이름 (영어)", + "Last name \\(English\\)": "성 (영어)", + "First name \\(Native\\)": "이름(현지 언어)", + "Last name \\(Native\\)": "성(현지 언어)", + "Birth date": "생년월일", + "Country": "국가", + "City": "지자체", + "Organization": "조직", + "Handle/Email": "계정 번호/이메일", + "Name": "名称", + "Handle": "账号", + "Email": "邮箱", + "Confirm": "确认", + "Password": "암호화", + "New Rank": "新的Rank", + "Training name \\(English\\):": "교육 이름(영어).", + "Training name \\(Russian\\):": "교육 이름(러시아어).", + "Contest format:": "경쟁 형식.", + "Start time:": "시작 시간.", + "Duration:": "지속 시간.", + "Visibility:": "가시성.", + "Attach parent contest\\?:": "연관된 사이어 매치?", + "Participation type:": "참여 유형.", + "Freeze period:": "동결 기간.", + "Unfreeze time:": "해동 시간.", + "Is practice allowed\\?:": "연습이 허용되나요?", + "Is virtual allowed\\?:": "가상 출품이 허용되나요?", + "Is out of competition allowed\\?:": "비경쟁 출품작도 허용되나요?", + "Is self-registration allowed\\?:": "셀프 등록이 가능한가요?", + "Can non-registered view the contest\\?:": "등록하지 않은 사용자도 대회를 볼 수 있나요?", + "Can participants view common status\\?:": "참가자가 공유 상태를 확인할 수 있나요?", + "Contest testdata policy:": "매치 테스트 데이터 전략.", + "Allow view other submissions to:": "다른 제출물을 볼 수 있도록 허용합니다.", + "Manage program languages:": "관리형 프로그래밍 언어.", + "Use time limits scaling policy\\?:": "시간 제한 확장 정책을 사용하시나요?", + "Allow statements\\?:": "제목 설명을 볼 수 있도록 허용하시겠습니까?", + "Allow standings\\?:": "순위 보기를 허용하시겠습니까?", + "Season:": "시즌.", + "Contest type:": "경쟁 유형.", + "ICPC region:": "ICPC 지역.", + "Country:": "국가.", + "City:": "도시.", + "Contest difficulty:": "종족 난이도.", + "Website URL:": "웹 링크.", + "Description \\(English\\):": "설명 (영어).", + "Description \\(Russian\\):": "설명(러시아어).", + "Registration confirmation text \\(English\\):": "등록 확인 텍스트(영어).", + "Registration confirmation text \\(Russian\\):": "등록 확인 텍스트(러시아어).", + "Logo \\(English\\):": "로고(영어).", + "Logo \\(Russian\\):": "로고(러시아어).", + "End time:": "종료 시간.", + "Name:": "이름.", + "Contest\\(s\\):": "경쟁.", + "Add contest:": "콘테스트 추가.", + "Show Contestants:": "참가자를 표시합니다.", + "Show Out of Competition Participants:": "비경쟁 참가자를 표시합니다.", + "Show Practices:": "운동 표시.", + "Show Virtuals:": "가상 플레이어 표시.", + "Show Ghosts:": "고스트 플레이어 표시.", + "Text:": "텍스트.", + "Rewrite Examples:": "샘플을 다시 작성합니다.", + "Add images:": "이미지를 추가합니다.", + "Do not use:": "사용되지 않음.", + "Problem short name:": "제목 약어입니다.", + "Source problem:": "소스 문제.", + "Problem name \\(English\\):": "제목(영문).", + "Input file name:": "파일 이름을 입력합니다.", + "Output file name:": "출력 파일 이름입니다.", + "Time Limit:": "시간 제한.", + "Memory Limit:": "메모리 제한.", + "Output only:": "출력 전용입니다." + } + }, + ".ask-question-link": { + "class": [ + ".ask-question-link" + ], + "description": "", + "isStrict": false, + "rules": { + "Ask a question": "질문하기." + } + }, + "add-announcement-link": { + "class": [ + ".add-announcement-link" + ], + "description": "", + "isStrict": false, + "rules": { + "Add announcement": "공지 사항 추가" + } + }, + "demo": { + "class": [ + "Class" + ], + "description": "", + "isStrict": false, + "rules": { + "SourceText": "TargetText" + } + } + }, + "InputValueReplacements": { + "InputSubmit": { + "class": [ + "input[type='submit']" + ], + "description": "중국어 제출", + "isStrict": false, + "rules": { + "Register for virtual participation": "가상 참가 신청하기", + "Register for practice": "로그인하여 연습 시작하기", + "Apply": "어플라이언스", + "Register": "이름 입력", + "Login": "로그인", + "Run": "움직이고 있음", + "Start virtual contest": "가상 입장 시작", + "Manage invitations": "경영진 초대", + "Disable manager mode": "관리 모드 임시 종료", + "Enable manager mode": "개방형 관리 모드", + "Clone Contest": "복제 경쟁", + "Submit": "제출(보고서 등)", + "Save changes": "설정 저장", + "Filter": "필터링", + "Find": "찾기", + "Save": "(파일 등) 저장(컴퓨팅)", + "Create Mashup Contest": "매시업 콘테스트 만들기", + "Delete problem": "질문 삭제하기", + "Restore problem": "복구 문제", + "Generate": "生成", + "Send": "发送" + } + }, + "InputButton": { + "class": [ + "input[type='button']" + ], + "description": "", + "isStrict": false, + "rules": { + "Reset": "재프로비저닝", + "Delete contest": "경기 삭제", + "Preview": "미리 보기" + } + } + } +} \ No newline at end of file diff --git a/i18n/pt/README.md b/i18n/pt/README.md new file mode 100644 index 000000000..b4f663148 --- /dev/null +++ b/i18n/pt/README.md @@ -0,0 +1 @@ +# OJBetter diff --git a/i18n/pt/docs/AtCoderBetter.html b/i18n/pt/docs/AtCoderBetter.html new file mode 100644 index 000000000..a36c5bf30 --- /dev/null +++ b/i18n/pt/docs/AtCoderBetter.html @@ -0,0 +1,244 @@ +

AtCoder Better!🎈

+

Interface AtCoder em chinês, suporte para modo escuro, tradução de títulos, visualização de anotações, cópia de títulos com um clique, salto para Logu

+

funcionalidade

+

O script da dica:fornece itens de configuração para algumas das suas funcionalidades e pode abrir o painel de definições clicando no botão AtCoderBetter Settings em no canto superior direito de toda a página de.

+

Interface em chinês

+

Os principais elementos do sítio são chineses. Se houver um erro ou uma má tradução algures, agradecemos o seu feedback.

+

Pode optar por ativar ou desativar a localização no painel AtCoderBetter settings no canto superior direito.

+

Tradução do título

+

Adicione um botão de tradução ao canto superior direito dos títulos, blogues, comentários, etc. para traduzir para chinês com um clique, garantindo que a fórmula Latex não é quebrada!

+

Pode escolher o serviço de tradução que pretende utilizar no painel AtCoderBetter Settings no canto superior direito (a predefinição é Deepl)

+

dica:Clique com o botão direito do rato no botãotranslate, pode alternar rapidamente entre serviços de tradução.

+

Estão disponíveis as seguintes interfaces de tradução:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  + KEY + Qualidade da traduçãofiabilidadeNúmero máximo de caracteres + demorar um período de (x tempo)
Tradução de Deepl (✨ recomendado)desnecessário⭐️⭐️⭐️⭐️Algumas áreas podem ser inacessíveis ou lentas5000afiado (de facas ou de inteligência)
Xunfei Ouça Traduzirdesnecessário⭐️⭐️⭐️Normalmente fiável2000afiado (de facas ou de inteligência)
Tradução do Youtubedesnecessário⭐️⭐️Normalmente fiável600afiado (de facas ou de inteligência)
Google Tradutordesnecessário⭐️⭐️⭐️Necessita de acesso atual à Internet para aceder ao Google5000afiado (de facas ou de inteligência)
Tradução de nuvens coloridasdesnecessário⭐️⭐️Normalmente fiável5000afiado (de facas ou de inteligência)
Tradução utilizando ChatGPT (✨ recomendado)Chave API necessária⭐️⭐️⭐️⭐️⭐️Depende da qualidade do fornecedor de serviços e do número de utilizadores da OpenAIDepende do modelomais lento
+

Outras funções

+

Algumas funcionalidades podem ser alteradas/alteradas no painel AtCoderBetter Settings no canto superior direito

+ +

compatibilidade

+

navegador (software)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 adjuvanteversão mínima
Chromeadjuvante96
Egdeadjuvante96
Caso doméstico do crómioCompatibilidade básica, mas podem ocorrer erros inesperadosVersão do kernel do Chromium ≥96
FireFox (incluindo telemóvel)adjuvante103
Safarinão suportado\
+ +

Gestor de guiões

+

Testado apenas com o gestor de scripts Tampermonkey, a compatibilidade com Greasemonkey, Violentmonkey, ScriptCat, etc. não é garantida!

+

Outros plug-ins

+

Não existe qualquer problema de compatibilidade com os plug-ins mais comuns relacionados com o CF. Se tiver problemas de compatibilidade, pode enviar-nos os seus comentários.

+

problemas comuns

+ + + +

Contribua com o código

+

Sinta-se à vontade para contribuir com código, aceda ao repositório Github Criar um PR

+

agradecido

+ +

Obrigado, 0rz.

\ No newline at end of file diff --git a/i18n/pt/docs/CodeforcesBetter.html b/i18n/pt/docs/CodeforcesBetter.html new file mode 100644 index 000000000..37f06944f --- /dev/null +++ b/i18n/pt/docs/CodeforcesBetter.html @@ -0,0 +1,477 @@ +

Codeforces Better!🎈

+

Interface do Codeforces em chinês, suporte para modo escuro, tradução de títulos, visualização de markdown, cópia de títulos com um clique, salto para o Logu, página de diferenciação de comentários, apresentação da pontuação ClistRating, recoloração de listas

+
+
+
+

Escreva com antecedência:Notas de feedback

+
+

如遇问题,请先阅读下方的 #常见问题 说明。如果没有得到解决,请前往 反馈页 或者 Github issues 反馈。如遇问题,请先阅读下方的 #常见问题 说明。如果没有得到解决,请前往 反馈页 或者 Github issues 反馈。如遇问题,请先阅读下方的 #常见问题 说明。如果没有得到解决,请前往 反馈页 或者 Github issues 反馈。Se isso não for resolvido, acesse a página de comentários ou os problemas do Github para enviar comentários.

+

Forneça uma descrição pormenorizada do problema, por exemplo, ligação:, capturas de ecrã, resultados pretendidos, resultados reais, reprodução……

+

Discussões amigáveis e sugestões de funcionalidades também são bem-vindas, mas não é obrigação do autor manter os scripts e fornecer ajuda, obrigado pela sua compreensão.

+
+
+

funcionalidade

+Sugestão Algumas das funcionalidades do script:fornecem itens de configuração, pode abrir o painel de definições clicando no botãoCodeforcesBetter Settings em
no canto superior direito de toda a página de . +

Interface em chinês

+

Sinicize os principais elementos do sítio Web para chinês (pode ser desativado)

+

Tradução do título

+

Adicione um botão de tradução ao canto superior direito dos títulos, blogues, comentários, etc. para traduzir para chinês com um clique, garantindo que a fórmula Latex não é quebrada!

+

Nesta base, o guião oferece três modos de tradução:

+ +

Pode selecionar o serviço de tradução que pretende utilizar (DeepL por defeito), bem como mudar o modo de funcionamento do script no painel CodeforcesBetter settings no canto superior direito.

+
+
+

Nota:O modo de segmentação/seleção cria os seguintes problemas:

+

- O facto de a interface de tradução não poder conhecer a informação contextual de todo o texto pode reduzir a qualidade da tradução.

+

- Haverá partes do conteúdo que não serão traduzidas/não poderão ser seleccionadas porque não são elementos<p/>ou<i/>

+
+
+

O script fornece as seguintes interfaces de tradução para escolher entre:(a predefinição é DeepL)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  + KEY + Qualidade da traduçãofiabilidadeNúmero máximo de caracteres + demorar um período de (x tempo)
Tradução de DeepL (✨ recomendado)desnecessário⭐️⭐️⭐️⭐️Algumas áreas podem ser inacessíveis ou lentas5000afiado (de facas ou de inteligência)
Xunfei Ouça Traduzirdesnecessário⭐️⭐️⭐️Normalmente fiável2000afiado (de facas ou de inteligência)
Tradução do Youtubedesnecessário⭐️⭐️Normalmente fiável600afiado (de facas ou de inteligência)
Google Tradutordesnecessário⭐️⭐️⭐️Necessita de acesso atual à Internet para aceder ao Google5000afiado (de facas ou de inteligência)
Tradução de nuvens coloridasdesnecessário⭐️⭐️Normalmente fiável5000afiado (de facas ou de inteligência)
Tradução utilizando ChatGPT (✨ recomendado)Chave API necessária⭐️⭐️⭐️⭐️⭐️Depende da qualidade do fornecedor de serviços e do número de utilizadores da OpenAIDepende do modelomais lento
+Sugestão:Clique com o botão direito do rato no botãoTranslatepara alternar rapidamente entre serviços de tradução! +

tradução automática

+

Quando a opção "Tradução automática" está activada, os textos curtos na área.ttypography, .comments são automaticamente traduzidos quando entram na área de visualizaçãona janela do browser.

+

(Pode especificar quantos caracteres ou menos é um texto curto no painel de definições)

+

Além disso, quando a opção "Tradução rápida na área de comentários" está activada, para textos curtos na área de comentários, a tradução automática selecciona aleatoriamente um dos serviços candidatos e efectua uma tradução rápida em paralelo.

+

Recuperação histórica da tradução

+

Quando a opção "Restaurar automaticamente traduções históricas" está activada, as informações de tradução na página de títuloserão automaticamente guardadas na tabela translateData da base de dados CFBetterDB do indexDB localmente no browser.

+

Atualizar / restaura automaticamente a informação da tradução quando voltar a entrar na página.

+

ClistRating

+

Obtenha os dados da classificação do sítio Web clist.by e apresente-os!

+

Note que as credenciais necessárias para diferentes tarefas de página variam:

+ +O script não obtém um cookie específico para clist.by, a informação do cookie é transportada automaticamente pelo browser quando envia o pedido, e a validade do cookie é determinada pelo código de estado devolvido pela tentativa de pedido. +

Editor e LSP

+

Adicione o editor à página de título

+

Adicione o editor de código monaco à parte inferior da página de título (ativado por predefinição).

+

Suporte para gravação automática de código, envio rápido de código, execução de teste on-line, LSP, melhorias complementares estáticas e outros recursos

+

Código autosave

+

O código é automaticamente guardado na tabela editorCode da base de dados CFBetterDB do IndexedDB local para o browser.

+

Teste online

+

Pode executar as amostras no título com um clique e também pode personalizar as amostras de teste, que são automaticamente guardadas na tabela editorCode na base de dados CFBetterDB.

+

O guião fornece vários serviços de execução de código em linha:codeforces official, wandbox (de terceiros), rextester (de terceiros) que suportam diferentes opções de parâmetros.

+
+
+

Nota:

+
    +
  • +

    Como é óbvio, todos os serviços de execução de códigos em linha não podem testar temas interactivos

    +
  • +
  • +

    Os serviços de execução de código online de terceiros podem ser executados em ambientes diferentes dos codeforces, e o código que funciona ou resulta corretamente num serviço de execução de código online de terceiros pode não o fazer necessariamente nos codeforces.

    +
  • +
  • +

    Não há garantia de que o seu código não seja divulgado de alguma forma por um serviço de execução de código online de terceiros

    +
  • +
  • +

    Além disso, para uma aplicação mais vasta, as opções do compilador na página não correspondem rigorosamente às opções reais do compilador do serviço de execução de código em linha de terceiros, pelo que é possível obter resultados inesperados.

    +
  • +
+
+
+

LSP

+

Depois de configurar o LSP, pode fornecer as seguintes funções para o editor (apenas nas linguagens C++ e Python):

+ +

Naturalmente, não suporta compilação local, depuração de pontos de interrupção, ficheiros múltiplos, etc.……, o desempenho não é tão bom como o dos IDE locais especiais

+

Em suma, esta funcionalidade não é muito significativa ou útil, por isso, se estiver interessado, consulte a secção FAQ abaixo para saber mais!

+

Ampliação da conclusão estática

+

Pode adicionar regras personalizadas de conclusão de código estático ao editor monaco no Painel de definições - Monaco - Melhorias de conclusão estática - Personalizado.

+

As regras de preenchimento estão em formato JSON, veja um exemplo (em formato Mónaco).

+
+  {
+    "suggestions": [
+        {
+            "label": "hello world",
+            "kind": 15,
+            "documentation": "The is a hello world snippet",
+            "insertText": "hello world"
+        },
+        // other sugestões... ]
+}
+
+

Pode utilizar quase todas as propriedades do CompletionItem , (nota: não preencha a propriedade de intervalo, o script calcula-o e adiciona-o automaticamente).

+

Outras funções

+ +

compatibilidade

+

navegador (software)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 adjuvanteversão mínima
Chromeadjuvante96
Edgeadjuvante96
Caso doméstico do crómioCompatibilidade básica, mas podem ocorrer erros inesperadosVersão do kernel do Chromium ≥96
FireFox (incluindo telemóvel)adjuvante103
Safarinão suportado\
+

Gestor de guiões

+

Testado apenas com o gestor de scripts Tampermonkey, a compatibilidade com Greasemonkey, Violentmonkey, ScriptCat, etc. não é garantida.

+

Outros plug-ins

+

Não existem problemas de compatibilidade com os principais plug-ins relacionados com o CF, por isso, se encontrar problemas de compatibilidade, o seu feedback é bem-vindo.

+

espelho (informática)

+

Apoio ao sítio oficial da luz m1 / m2 / m3 , sítio espelho oficial https://mirror.codeforces.com/, sítio espelho não oficial https://codeforc.es

+

Além disso, é teoricamente compatível com quaisquer outros mirrors, só precisa de adicionar outra linha de comentários // @match your mirror URL e já está!

+

problemas comuns

+
+
P. Como é que começo? +
+ A. Tem de instalar Tampermonkey antes de instalar o script +
+
+
+
P. Erro de atualização? +
+

A. Devido à plataforma Greasy Fork, quando é lançada uma nova versão, pode acontecer que a atualização/instalação real seja a versão anterior.

+

Normalmente, só precisa de esperar alguns minutos e depois voltar a atualizar/instalar.

+

Também pode mover o rato sobre o ponto de interrogação vermelho na caixa Alerta de atualização do script e clicar no botão "Ainda não atualizar" na parte inferior da mensagem pop-up.

+
+
+
+
P. Está sempre a aparecer a carregar? +
+ A. Active a opção "Opções de compatibilidade - Não esperar que os recursos da página sejam carregados" no painel Definições. +
+
+
+
Q. Utilizar DeepL erro de tradução Demasiados pedidos? +
+

R. Isto é normalmente causado pelo facto de ter traduzido frequentemente num curto período de tempo, ou ter traduzido mais de 5000 caracteres de texto de uma só vez. DeepL tem um limite no número de palavras e na frequência das traduções.

+ É temporário. Voltará ao normal passado algum tempo. +
+
+
+
P. Recebo um erro de undefind quando utilizo DeepL ou está sempre a mostrar a tradução em curso? +
+ A. Isto acontece normalmente porque a rede que está a utilizar não tem acesso adequado a www.deepl.com +
+
+
+
P. Algumas fórmulas são apresentadas como {xx} / [xx] / [xx] no resultado da tradução? +
+ A. Quando utiliza a interface de tradução comum (DeepL/Youdao/google) para a tradução, limitada pela forma como o script é implementado, pode haver{xx}/[xx]/[xx] +
+
+
+

Tratamento de fórmulas pelo script

+

De modo a proteger as fórmulas LaTeX de serem corrompidas durante a tradução, o script irá primeiro retirar todas as fórmulas LaTeX e colocá-las utilizando o carácter de substituição{xx}/[xx]/[xx], o

+

Uma vez que a probabilidade é que estas substituições não sejam corrompidas durante a tradução, é possível restaurar as fórmulas LaTeX com base nas substituições após a tradução.

+

Esta implementação funciona como esperado desde que o carácter de substituição não seja quebrado, o que não é um problema na grande maioria dos casos.

+

Mas, por vezes, os serviços de tradução quebram as substituições, por exemplo, [23] torna-se [23 / 23] / [23]/ [23 】/ 23 】, caso em que o script será restaurado por certas regras regulares para que possa continuar a funcionar como esperado.

+

No entanto, se o serviço de tradução também destruir mais conteúdo e criar ambiguidade, por exemplo, se o serviço de tradução transformar [2] 313 em [2312], então não é possível restaurá-lo.

+

Para cada serviço de tradução, as diferentes substituições têm diferentes probabilidades de serem elas próprias corrompidas, e pode selecionar diferentes substituições no painel de definições no canto superior direito do

+

Depois de testar, {} tem normalmente um melhor desempenho, pelo que esta é a substituição predefinida utilizada pelos scripts

+
+
+
+
+
+

Sugestão:

+

Este problema não existe quando traduzir com o ChatGPT, uma vez que pode dizer diretamente ao ChatGPT para "manter as fórmulas LaTeX não traduzidas" através de uma palavra de aviso.

+

Um ChatGPT inteligente pode cumprir isto muito bem, e esta é a forma recomendada para os scripts serem traduzidos.

+
+
+
+
+
+
P. Como é que traduzo com o ChatGPT? +
+ R. Se tiver acesso direto à interface do OpenAI e tiver uma conta, então ótimo, tudo o que precisa de fazer é marcar "Utilizar tradução ChatGPT (API)" e clicar no botão "Adicionar" abaixo para criar uma nova configuração e preencher o no botão "Adicionar" abaixo e preencha-o. +

Além disso, também pode adquirir serviços de proxy de API para utilizar o ChatGPT. A tabela seguinte reúne alguns fornecedores de serviços de API, que pode optar por utilizar +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 sítio Web oficialMétodo de aquisição
API2Dhttps://api2d.com/sítio Web oficial
CloseAIhttps://console.closeai-asia.com/sítio Web oficial
OhMyGPThttps://aigptx.top/sítio Web oficial
OpenAI-SBhttps://openai-sb.com/Bots do Telegram
API2GPThttps://www.api2gpt.com/sítio Web oficial
AI Proxyhttps://aiproxy.io/sítio Web oficial
+
+
+
+

Declaração de exoneração de responsabilidade:

+

O autor apenas recolhe e partilha com o objetivo de partilhar, não recebe quaisquer receitas e não garante a estabilidade das plataformas acima referidas, e qualquer comportamento das plataformas não tem nada a ver com o autor.

+

Recomenda-se que efectue carregamentos em pequenas quantidades e que os utilize na totalidade, uma vez que estes prestadores de serviços podem ficar sem atividade

+
+
+

Se estiver a utilizar um serviço fornecido por um fornecedor de serviços de proxy api, a KEY na configuração deve ser a chave fornecida pelo fornecedor de serviços de proxy api.

+

Além disso, tem de preencher adicionalmente a API Proxy na configuração, o

+

A API Proxy tem de ser preenchida na íntegra, eis um exemplo de CloseAI que fornece a API + Base:https://api.closeai-proxy.xyz

+

Em seguida, a API Proxy deve ser seguida por https://api.closeai-proxy.xyz/v1/chat/completions, o

+ Nota:Como especificou uma API personalizada, Tampermonkey avisa-o sobre os pedidos entre domínios, clique em Authorise yourself! +
+ Nota:Se pretender utilizar o Azure OpenAI, uma vez que os seus parâmetros de interface não são iguais aos da interface oficial do OpenAI, pode optar por implementarazure-openai-proxypor sua conta para converter o +
+
+
+
P. O que é o LSP? +
+ A. LSP (Language Server Protocol)é uma especificação de protocolo iniciada pela Microsoft para a comunicação entre editores e servidores de línguas. +

Separa do editor as funções de conclusão de código, diagnóstico, sugestões, documentação e até mesmo de gestão de projectos que os IDE tradicionais têm de implementar, e utiliza serviços independentes para executar estas funções.

+

O editor só precisa de comunicar com o servidor de acordo com a especificação do protocolo, o que reduz muito a carga de trabalho e facilita o suporte do editor a uma variedade de linguagens de programação

+

Atualmente, a ecologia do LSP tem sido gradualmente melhorada, os principais editores suportam o LSP ou têm os plug-ins correspondentes, como o VSCode, Vim, Emacs, etc. ....

+

No entanto, os principais fornecedores de IDE comerciais têm pouco interesse neste domínio, basicamente o servidor LSP existente é mantido pela comunidade de código aberto, pelo que ainda não é tão bom como os IDE profissionais e uma variedade de plug-ins profissionais.

+
+
+
+
P. Como é que utilizo o LSP? +
+ A. Apenas dois passos: +

O script:fornece suporte para as duas implementações seguintes do Servidor LSP em C++ e Python, que precisa de instalar conforme necessário:

+ + + + + + + + + + + + + + + + + + + + +
multilinguismoLSP ServerMétodo de instalação (no Windows)
C++clangdDescarregue o clangd a partir de clangd release e adicione o caminho do clangd ao caminho da variável de ambiente do sistema, por exemplo, C:\clangd_16.0.2\bin\
PythonpylspExecute o comando: + pip install "python-lsp-server[all]"e ele adicionará automaticamente a variável de ambiente
+

II:Terá também de transferir e descomprimir o OJBetter_Bridge a partir da versão GitHub ou Blue Rhythm Cloud (palavra-passe:aaaa) , que faz a ponte entre os scripts e o servidor LSP.

+

Coloque a pasta extraída no diretório raiz da sua unidade C ou em qualquer outra localização que deseje (nota::. Se a colocar noutra localização, terá de alterar o "Caminho de trabalho" no painel Definições para a sua localização atual).

+

Em seguida, pode executar o OJBetter_Bridge, que fornece uma versão GUI e uma versão terminal. A versão GUI é recomendada para o Windows, execute server_gui.exe diretamente.

+

OJBetter_Bridge verifica automaticamente se os comandos clangd e pylsp são válidos no arranque e apresenta um aviso.

+ Sugestão::Na interface de server_gui.exe pode defini-lo para arrancar. +

Depois de concluir os passos acima, pode ativar "Utilizar LSP" no painel de definições e utilizá-lo.

+
+
+
+ Saiba mais? +
+ Para clangd, existem dois ficheiros de configuração armazenados na pasta cpp_workspace .clangd,.clang-format +

Definem os itens de configuração e estilo de formatação de códigodo clangd, que pode editar.

+
+
+
+
+
+
+
+
P. Porque é que a formatação do clangd não está a funcionar? +
+ A. Isto deve-se ao facto de ter preenchido o caminho de trabalho LSP incorreto no painel Definições. +
+
+
+
P. Porque é que o clangd não reconhece os meus cabeçalhos <bits/stdc++.h> ? +
+ R. Isto deve-se ao facto de <bits/stdc++.h> não ser um ficheiro de cabeçalho normalizado, pelo que o clangd não o suporta por predefinição. Tem de dizer ao clang onde encontrar este ficheiro de cabeçalho não normalizado modificando o parâmetro do compilador no ficheiro .clangd no espaço de trabalho cpp + do OJBetter_Bridge (e, claro, a utilização de um cabeçalho universal não é recomendada). +
+
+
+
P. É possível utilizar ficheiros JSON locais para melhorias de conclusão estática? +
+ A. Devido a restrições de segurança do browser, não pode aceder diretamente ao seu ficheiro JSON local no browser utilizando um URL como file:///xxx . +

Mas pode fazê-lo com o OJBetter_Bridge, é muito simples, basta colocar o ficheiro JSON xxx.json na pasta /mycomplet do OJBetter_Bridge

+

O lançamento do OJBetter_Bridge permitir-lhe-á criar uma nova configuração no painel Definições com um URL JSON de:http://127.0.0.1:2323/mycomplet/xxx.json.

+
+
+

Experimente?

+

Inicie o OJBetter_Bridge, inicialmente a pasta /mycomplet vem com um ficheiro JSON de exemplo:template.json, para que possa adicionar uma configuração, preencha + http://127.0.0.1:2323/mycomplet/template.json e guarde!

+

Agora escreva hello no editor e verá duas entradas complementares:hello world, hello world2

+
+
+
+
+
+

Contribua com o código

+

Sinta-se à vontade para contribuir com código, aceda ao repositório Github Criar um PR

+

Outro JO?

+

Os autores não mantêm muitos scripts semelhantes devido a recursos limitados, por isso, se quiser portar este script para o seu JO preferido, é mais do que bem-vindo a fazê-lo, apenas tem de respeitar a licença GPL-3.0!

+

agradecido

+ +

Obrigado, 0rz.

\ No newline at end of file diff --git a/i18n/pt/resources/subs/Codeforces-subs.json b/i18n/pt/resources/subs/Codeforces-subs.json new file mode 100644 index 000000000..8d1e3c053 --- /dev/null +++ b/i18n/pt/resources/subs/Codeforces-subs.json @@ -0,0 +1,859 @@ +{ + "version": "1.0.0", + "commonReplacements": { + ".datatable": { + "class": [ + ".datatable" + ], + "description": "", + "isStrict": false, + "rules": { + "Virtual participation": "Participe no torneio de reconstituição virtual", + "Enter": "entrar em", + "Current standings": "Lista atual", + "Final standings": "Lista final", + "Preliminary results": "Resultados preliminares", + "open hacking:": "Hacking aberto", + "School/University/City/Region Championship": "Concursos escolares/universitários/cidades/regionais", + "Official School Contest": "Concursos escolares oficiais", + "Training Contest": "jogo de treino", + "Training Camp Contest": "Competição do Campo de Treino", + "Official ICPC Contest": "Concurso oficial ICPC", + "Official International Personal Contest": "Concurso Internacional Individual Oficial", + "China": "sino", + "Statements": "Título Descrição", + "in Chinese": "Chinês", + "Trainings": "comboio", + "Prepared by": "autor", + "Current or upcoming contests": "Concursos actuais ou futuros", + "Rating: users participated in recent 6 months": "Classificação:Utilizadores que participaram nos últimos 6 meses", + "Past contests": "Jogos anteriores", + "Exclusions": "excluir", + "Before start": "Faltam alguns minutos para o início da corrida.", + "Before registration": "Ainda há tempo para a abertura das inscrições", + "Until closing ": "Ainda há tempo para encerrar o registo", + "Before extra registration": "O registo suplementar ainda não está aberto", + "Register »": "Inscrição \"", + "Registration completed": "Inscrito", + "Registration closed": "As inscrições estão encerradas", + "Problems\n": "问题集", + "My Submissions": "A minha submissão", + "Standings": "lista de nomes", + "Questions about problems": "Perguntas sobre questões", + "Contest status": "estado do jogo", + "Invited users": "Utilizadores convidados", + "Invitation links": "Ligação de convite", + "API keys": "API密钥" + } + }, + ".menu-list.main-menu-list": { + "class": [ + ".menu-list.main-menu-list" + ], + "description": "", + "isStrict": false, + "rules": { + "Home": "página inicial", + "Top": "em voga", + "Catalog": "Catálogo de guias", + "Contests": "competição (desporto, etc.)", + "Gym": "campo de treino", + "Problemset": "questionário", + "Groups": "organizações", + "Rating": "Classificação das classificações", + "Edu": "cultivar", + "Calendar": "calendário", + "ICPC Challenge": "ICPC挑战赛", + "Help": "mão" + } + }, + ".nav-links": { + "class": [ + ".nav-links" + ], + "description": "", + "isStrict": false, + "rules": { + "Settings": "preparar", + "Blog": "blogue (palavra emprestada)", + "Teams": "fila", + "Submissions": "apresentar (um relatório, etc.)", + "Favourites": "marcador (Internet)", + "Problemsetting": "Definição do problema", + "Talks": "carta privada", + "Contests": "competição (desporto, etc.)" + } + }, + ".contest-state-phase": { + "class": [ + ".contest-state-phase" + ], + "description": "", + "isStrict": false, + "rules": { + "Before contest": "próximo concurso", + "Contest is running": "Jogo em curso" + } + }, + ".notice": { + "class": [ + ".notice" + ], + "description": "", + "isStrict": false, + "rules": { + "has extra registration": "Existem períodos de inscrição adicionais", + "If you are late to register in 5 minutes before the start, you can register later during the extra registration. Extra registration opens 10 minutes after the contest starts and lasts 25 minutes.": "Se não se tiver inscrito até 5 minutos antes do início da corrida, pode inscrever-se mais tarde durante o período de inscrição suplementar. As inscrições suplementares serão abertas 10 minutos após o início da corrida e terão uma duração de 25 minutos.", + "in timezone ([^)]*)": "1 Fuso horário", + "Contest will be available for virtual participation when over. Leave this field blank to allow virtual participation at any time": "As participações virtuais serão permitidas após o fim do concurso. Deixe este campo em branco para permitir entradas virtuais em qualquer altura", + "Contest duration in minutes": "Duração do jogo (minutos)", + "or choose": "ou seleccione", + "Standings freeze period in minutes": "Tempo de congelamento da lista (minutos)", + "Time when final results are available": "Tempo disponível para os resultados finais", + "Is it allowed to solve contest problems unofficially after the end": "Se é permitida a resolução não oficial de questões do jogo após o seu termo", + "Is it allowed to run contest as virtual after the end": "Se são permitidas inscrições virtuais após o concurso", + "Is it allowed participate in contest out of competition": "Se são permitidas inscrições não competitivas", + "Are participants allowed to register for the contest themselves": "Se os participantes estão autorizados a registar-se a si próprios", + "Can non-registered users and anonyms view contest standings, problems and other statistics": "Se deve permitir que utilizadores não registados e anónimos vejam as tabelas de classificação das corridas, perguntas e outras estatísticas", + "If unchecked they will view only personal status": "Se não estiver selecionado, só poderá ver os estados individuais", + "To manage allowed program languages": "Gerir as linguagens de programação permitidas", + "The system will automatically adjust time limits for some languages. Recommended for use only for educational purpose.": "O sistema ajustará automaticamente o limite de tempo para determinadas línguas. Recomendado apenas para fins educativos.", + "Check it if you want to allow contestants view statements": "Assinale esta caixa se pretender que o participante possa ver a descrição da pergunta.", + "Check it if contestants can view standings": "Assinale esta caixa se pretender permitir que os participantes vejam as tabelas de classificação", + "Where the contest was held originally": "Local onde o concurso foi originalmente realizado", + "Official contest site URL": "URL do sítio Web oficial do concurso", + "Enter a name for your new API key. It should describe what this key is used for.": "为您的新API密钥输入一个名称。它应该描述这个密钥的用途。", + "Enter your account password to confirm access. If you do not have password, logout and use password recovery feature.": "输入您的账户密码以确认访问。如果您没有密码,请注销并使用密码恢复功能。" + } + }, + ".propertyLinks": { + "class": [ + ".propertyLinks" + ], + "description": "", + "isStrict": false, + "rules": { + "Contribution": "dedicar" + } + }, + ".contests-table": { + "class": [ + ".contests-table" + ], + "description": "", + "isStrict": false, + "rules": { + "Contest history": "História do concurso" + } + }, + ".roundbox.sidebox.borderTopRound ": { + "class": [ + ".roundbox.sidebox.borderTopRound " + ], + "description": "", + "isStrict": false, + "rules": { + "Register now": "Inscreva-se agora", + "No tag edit access": "Não tem privilégios de edição de etiquetas", + "Problem([\\s]*)$": "问题", + "Verdict": "estado da adjudicação", + "Language:": "Línguas.", + "Participant": "concorrentes", + "Choose file:": "Seleccione o ficheiro." + } + }, + ".icon-eye-close.icon-large": { + "class": [ + ".icon-eye-close.icon-large" + ], + "description": "", + "isStrict": false, + "rules": { + "Add to exclusions": "Adicionar à lista de exclusão" + } + }, + "null": { + "class": [ + null + ], + "description": "", + "isStrict": false, + "rules": { + "Add to exclusions for gym contests filter": "Adicionar exclusões ao filtro do Boot Camp" + } + }, + ".roundbox.sidebox.sidebar-menu.borderTopRound": { + "class": [ + ".roundbox.sidebox.sidebar-menu.borderTopRound" + ], + "description": "", + "isStrict": false, + "rules": { + "Announcement": "boletim", + "Statements": "Relatórios estatísticos", + "Tutorial": "notas" + } + }, + ".second-level-menu": { + "class": [ + ".second-level-menu" + ], + "description": "", + "isStrict": false, + "rules": { + "Problems": "questões", + "Submit Code": "Enviar código", + "My Submissions": "A minha submissão", + "Status": "estado das coisas", + "Standings": "lista de nomes", + "Adm.": "de gestão", + "Edit": "compilador", + "Custom Invocation": "Depuração personalizada", + "Common standings": "Todos os rankings", + "Friends standings": "Só para amigos.", + "Submit": "apresentar (um relatório, etc.)", + "Hacks": "hacker (informática) (palavra emprestada)", + "Room": "cubículos", + "Custom test": "Testes personalizados", + "Blog": "blogue (palavra emprestada)", + "Teams": "fila", + "Submissions": "Apresentação de registos", + "Groups": "organizações", + "Rating": "classificações", + "Friends rating": "Classificação de amigos", + "Favourites": "marcador (Internet)", + "Contests": "competição (desporto, etc.)", + "Magic": "魔法", + "Handle": "账号", + "Members": "membros", + "问题etting": "Participação na preparação das questões", + "Streams": "transmissão em direto (não gravada)", + "Gym": "campo de treino", + "Mashups": "misturar e combinar (de vestuário, etc.)", + "Posts": "cartão", + "Comments": "regressar (a uma condição anterior)", + "Main": "grampo", + "Settings": "preparar", + "Lists": "listagens", + "General": "fundamental", + "Sidebar": "uma barra lateral (em software)", + "Social": "segurança social (pensões, seguro de saúde)", + "Address": "endereço", + "Wallets": "bolsas" + } + }, + ".topic-toggle-collapse": { + "class": [ + ".topic-toggle-collapse" + ], + "description": "", + "isStrict": false, + "rules": { + "Expand": "início" + } + }, + ".topic-read-more": { + "class": [ + ".topic-read-more" + ], + "description": "", + "isStrict": false, + "rules": { + "Full text and comments": "Ler mais/comentários" + } + }, + ".toggleEditorCheckboxLabel": { + "class": [ + ".toggleEditorCheckboxLabel" + ], + "description": "", + "isStrict": false, + "rules": { + "Switch off editor": "Desactive o realce de sintaxe do editor" + } + }, + ".submit": { + "class": [ + ".submit" + ], + "description": "", + "isStrict": false, + "rules": { + "Registration for the contest": "Inscrição no concurso" + } + }, + "._FilterByTagsFrame_difficulty": { + "class": [ + "._FilterByTagsFrame_difficulty" + ], + "description": "", + "isStrict": false, + "rules": { + "Difficulty:": "Dificuldade." + } + }, + "._FilterByTagsFrame_addTagLink": { + "class": [ + "._FilterByTagsFrame_addTagLink" + ], + "description": "", + "isStrict": false, + "rules": { + "Add tag": "Adicionar etiquetas" + } + }, + ".alert": { + "class": [ + ".alert" + ], + "description": "", + "isStrict": false, + "rules": { + "Rating changes for last rounds are temporarily rolled back. They will be returned soon.": "As alterações de classificação da ronda anterior foram temporariamente anuladas. Serão restauradas em breve.", + "Reminder: in case of any technical issues, you can use the lightweight website": "Lembrete:Em caso de problemas técnicos, pode utilizar o sítio ligeiro", + "Please subscribe to the official Codeforces channel in Telegram via the link ": "Subscreva o canal oficial do Telegram da Codeforces através do link!" + } + }, + ".lang-chooser": { + "class": [ + ".lang-chooser" + ], + "description": "", + "isStrict": false, + "rules": { + "Enter": "inicie sessão", + "Register": "inscrição", + "Contest rating": "Classificação do teste", + "Logout": "Termine a sessão" + } + }, + ".userbox": { + "class": [ + ".userbox" + ], + "description": "", + "isStrict": false, + "rules": { + "Change photo": "Substituição de imagens", + "Contest rating": "Corrida", + "Contribution": "dedicar", + "My friends": "O meu melhor amigo.", + "Change settings": "Alterar definições", + "Last visit": "último acesso", + "not visible": "不可见的", + "Registered": "registado em", + "Blog entries": "Entradas no blogue", + "comments": "comentários", + "Write new entry": "Preparação de novos registos", + "View my talks": "Ver as minhas mensagens privadas", + "Talks": "carta privada", + "Send message": "envie uma mensagem" + } + }, + "#vote-reset-filterDifficultyLowerBorder": { + "class": [ + "#vote-reset-filterDifficultyLowerBorder" + ], + "description": "", + "isStrict": false, + "rules": { + "Reset": "reprovisão" + } + }, + "#vote-reset-filterDifficultyUpperBorder": { + "class": [ + "#vote-reset-filterDifficultyUpperBorder" + ], + "description": "", + "isStrict": false, + "rules": { + "Reset": "reprovisão" + } + }, + ".alert.alert-info": { + "class": [ + ".alert.alert-info" + ], + "description": "", + "isStrict": false, + "rules": { + "The problem statement has recently been changed.": "A descrição do título foi recentemente alterada.", + "View the changes.": "Ver alterações" + } + }, + ".enterPage": { + "class": [ + ".enterPage" + ], + "description": "", + "isStrict": false, + "rules": { + "Fill in the form to login into Codeforces.": "Preencha o formulário para iniciar sessão no Codeforces.", + "You can use": "Também pode utilizar o", + "as an alternative way to enter.": "inicie sessão" + } + }, + ".notice.small": { + "class": [ + ".notice.small" + ], + "description": "", + "isStrict": false, + "rules": { + "\\* To view the complete list, click ": "* :: Para ver a lista completa, clique em" + } + }, + ".setting-name": { + "class": [ + ".setting-name" + ], + "description": "", + "isStrict": false, + "rules": { + "Contest type:": "Tipo de concurso:", + "Rated:": "Classificado:", + "Tried:": "tentado", + "Substring:": "palavras-chave" + } + }, + ".by-form": { + "class": [ + ".by-form" + ], + "description": "", + "isStrict": false, + "rules": { + "Sort by:": "Ordenado por:", + "relevance": "correlação (estatística)", + "popularity": "entusiasmo de curta duração", + "time": "tempos" + } + }, + ".roundbox.borderTopRound": { + "class": [ + ".roundbox.borderTopRound" + ], + "description": "", + "isStrict": false, + "rules": { + "If you invite users to this contest, the contest will become visible to them regardless of its visibility. You can share the contest using the link:": "Se convidar um utilizador a participar neste concurso, o concurso será visível para o utilizador, independentemente da sua visibilidade. Pode partilhar o concurso utilizando a seguinte ligação:", + "Generate link and share it with other users": "Crie ligações e partilhe-as com outros utilizadores", + "Show Log »": "Mostrar diário \"", + "Move all to practice »": "Todos mudaram para Praticante \"", + "Remove All »": "Remover tudo \"", + "Add »": "Acrescente \"", + "Set »": "Definições \"", + "Download Archive »": "Descarregar Arquivo \"" + } + }, + ".caption.titled": { + "class": [ + ".caption.titled" + ], + "description": "Barra lateral intitulada Chinês", + "isStrict": false, + "rules": { + "Pay attention": "tome nota de", + "Top rated": "classificação", + "Top contributors": "Classificação dos contribuintes", + "Find user": "Procurar utilizadores", + "Recent actions": "Últimas notícias", + "Training filter": "Filtragem e seleção", + "Find training": "Pesquise concursos/questões", + "Virtual participation": "O que é uma entrada virtual", + "Contest materials": "Informações relativas à concorrência", + "Settings": "preparar", + "Create Mashup Contest": "Crie um concurso de mashups", + "Clone Contest to Mashup": "Clone Match to Combo Mashup", + "Invitations": "convites", + "Status filter": "Filtro de estado", + "Administration": "de gestão", + "Submit": "apresentar (um relatório, etc.)", + "Practice": "exercício", + "Problem tags": "etiqueta de pergunta", + "Filter Problems": "Problemas de filtragem", + "Last unsolved": "Não resolvido da última vez", + "Attention": "tome nota de", + "Past contests filter": "Seleção de jogos anteriores", + "About Contest": "Sobre o concurso", + "Last submissions": "Histórico de submissão", + "Streams": "transmissão em direto (não gravada)", + "Coach rights": "Autoridade de Coaching", + "Advices to fill address": "Sugestões para preencher o seu endereço", + "Hacks filter": "Filtro Hacker", + "Score table": "escala de classificação", + "Contests": "competição (desporto, etc.)", + "History": "História editorial", + "Login into Codeforces": "Inicie sessão no Codeforces", + "Export the judgment log to DAT-file": "Exporte o registo de julgamentos como um ficheiro DAT", + "Contest managers": "Administrador do concurso", + "Contest writers": "Redactores de concursos", + "Spectator ranklists": "Lista de classificação do público", + "Ghosts:": "jogador fantasma", + "Export Submissions": "Apresentação de exportações", + "Register in Codeforces": "注册 Codeforces" + } + }, + "QuestionFilter1": { + "class": [ + "#gym-filter-form div label", + "#gym-filter-form div" + ], + "description": "Tratamento da opção de filtro de título", + "isStrict": false, + "rules": { + "Contest type:": "Tipo de concurso.", + "ICPC region:": "Regiões do ICPC.", + "Contest format:": "Formato do concurso.", + "Order by:": "Seleccione por.", + "Secondary order by:": "Encomenda secundária.", + "Hide, if participated:": "Esconda os que já participei.", + "Hide excluded gyms": "Esconda-se excluído.", + "Season:": "Calendário (anual)", + "Duration, hours:": "Duração (horas).", + "Difficulty:": "Dificuldade." + } + }, + "QuestionFilter2": { + "class": [ + ".setting-value select option", + ".setting-last-value select option" + ], + "description": "", + "isStrict": false, + "rules": { + "Official ACM-ICPC Contest": "Concurso oficial ICPC", + "Official School Contest": "Concursos escolares oficiais", + "Opencup Contest": "Concurso Opencup", + "School/University/City/Region Championship": "Campeonatos de escola/universidade/cidade/região", + "Training Camp Contest": "Competição do Campo de Treino", + "Official International Personal Contest": "Concurso Internacional Individual Oficial", + "Training Contest": "jogo de treino", + "ID_ASC": "Hora de criação (ordem crescente)", + "ID_DESC": "Hora de criação (decrescente)", + "RATING_ASC": "Classificação (ordem ascendente)", + "RATING_DESC": "Classificação (decrescente)", + "DIFFICULTY_ASC": "Dificuldade (ordem crescente)", + "DIFFICULTY_DESC": "Dificuldade (descendente)", + "START_TIME_ASC": "Hora de início (ordem crescente)", + "START_TIME_DESC": "Hora de início (decrescente)", + "DURATION_ASC": "Duração (ascendente)", + "DURATION_DESC": "Duração (decrescente)", + "POPULARITY_ASC": "Calor (ordem ascendente)", + "POPULARITY_DESC": "Calor (ordem decrescente)", + "UPDATE_TIME_ASC": "Hora de atualização (ordem ascendente)", + "UPDATE_TIME_DESC": "Tempo de atualização (decrescente)" + } + }, + "CompetitionFilter": { + "class": [ + ".options li label", + ".CaptionCont span" + ], + "description": "Opções de filtro de corrida chinês", + "isStrict": false, + "rules": { + "Educational": "instrutivo", + "Global": "globalmente", + "VK Cup": "Taça VK", + "Long Rounds": "longo período de tempo", + "April Fools": "Dia da mentira", + "Team Contests": "competição por equipas", + "ICPC Scoring": "Pontuação da ICPC", + "Doesn't matter": "----", + "Any": "propriedade", + "Yes$": "是", + "No$": "否", + "No submission(s)": "Sem apresentação", + "Have submission(s)": "Enviado", + "No solved problem(s)": "Não resolver problemas", + "Have solved problem(s)": "Resolução de problemas." + } + }, + "RightSidebox": { + "class": [ + ".sidebox div label" + ], + "description": "Caixa lateral direita chinesa", + "isStrict": false, + "rules": { + "Show tags for unsolved problems": "Mostrar etiquetas para questões não resolvidas", + "Hide solved problems": "Ocultar problemas resolvidos" + } + }, + "FormField-name": { + "class": [ + "td.field-name label" + ], + "description": "", + "isStrict": false, + "rules": { + "Postal/zip code": "Código postal", + "Country //(English//)": "国家(英文)", + "State //(English//)": "州/省份(英文)", + "City //(English//)": "城市(英文)", + "Address //(English//)": "地址(英文)", + "Recipient //(English//)": "收件人姓名(英文)", + "Country //(Native//)": "国家(本地语言)", + "State //(Native//)": "州/省份(本地语言)", + "City //(Native//)": "城市(本地语言)", + "Address //(Native//)": "地址(本地语言)", + "Recipient //(Native//)": "收件人姓名(本地语言)", + "Phone": "telefones", + "TON Wallet:": "TON WALLET.", + "Secret Code:": "Captcha.", + "Terms of agreement:": "Termos do acordo.", + "Choose team:": "Seleccione a equipa." + } + }, + "QuestionTag": { + "class": [ + "._FilterByTagsFrame_addTagLabel select option", + "._FilterByTagsFrame_tagBoxCaption", + ".notice", + ".tag-box" + ], + "description": "", + "isStrict": false, + "rules": { + "combine tags by OR": "Etiquetas por lógica ou combinação das minhas escolhas", + "combine-tags-by-or": "Combine a minha escolha de etiquetas por lógica ou (combine-tags-by-or)", + "2-sat": "Problema de satisfazibilidade de grafos bipartidos (2-sat)", + "binary search": "Pesquisa binária", + "bitmasks": "Bitmasks", + "brute force": "Enumeração por força bruta.", + "chinese remainder theorem": "teorema do resto chinês (中国剩余定理)", + "combinatorics": "Combinatória", + "constructive algorithms": "Algoritmos construtivos (algoritmos construtivos)", + "data structures": "Estruturas de dados", + "dfs and similar": "Pesquisa em profundidade e suas variantes (dfs e similares)", + "divide and conquer": "Algoritmo de divisão e conquista.", + "dp": "Programação dinâmica (dp)", + "dsu": "Conjunto de pesquisa paralela (dsu)", + "expression parsing": "Análise de expressões", + "fft": "Transformada rápida de Fourier (fft)", + "flows": "Fluxos", + "games": "Teoria dos jogos (jogos)", + "geometry": "Geometria computacional", + "graph matchings": "Correspondências de gráficos", + "graphs": "Teoria dos grafos (grafos)", + "greedy": "Ganancioso", + "hashing": "Tabela de hash (hashing)", + "implementation": "Questões de implementação, competências de programação, simulação (implementação)", + "interactive": "Questões de interatividade (interativo)", + "math": "Matemática (math)", + "matrices": "Matrizes", + "meet-in-the-middle": "algoritmo \"meet-in-the-middle\" (encontrar no meio)", + "number theory": "Teoria dos números", + "probabilities": "Probabilidades", + "schedules": "Algoritmos de programação (horários)", + "shortest paths": "Algoritmos de caminho mais curto (caminhos mais curtos)", + "sortings": "Algoritmos de ordenação (sortings)", + "string suffix structures": "Estruturas de sufixos de strings", + "strings": "Tratamento de cadeias de caracteres (strings)", + "ternary search": "Pesquisa ternária", + "trees": "Estrutura das árvores (árvores)", + "two pointers": "Algoritmo de dois ponteiros (dois ponteiros)" + } + }, + "SettingField-name": { + "class": [ + ".field-name" + ], + "description": "Configurar os campos na página", + "isStrict": false, + "rules": { + "Hide sidebar block \"Find user\"": "Oculte o bloco da barra lateral \"Encontrar utilizadores\".", + "Hide sidebar block \"Current user\"": "Oculte o bloco da barra lateral \"Utilizador atual\".", + "Hide sidebar block \"Recent аctions\"": "Oculte o bloco \"Novidades\" na barra lateral.", + "Hide sidebar block \"Favourite groups\"": "Oculte o bloco da barra lateral \"Grupos favoritos\".", + "Hide sidebar block \"Top contributors\"": "Oculte o bloco da barra lateral \"Classificação dos contribuidores\".", + "Hide sidebar block \"Top rated\"": "Oculte o bloco da barra lateral \"Classificação\".", + "Hide sidebar block \"Streams\"": "Ocultar o bloco da barra lateral \"Em direto\"", + "Old password": "palavra-passe antiga", + "New password": "nova palavra-passe", + "Confirm new password": "Confirme a nova palavra-passe", + "Contest email notification": "Notificação por correio eletrónico do concurso", + "Send email on new user talk": "Envie um e-mail quando houver um novo diálogo de utilizador", + "Send email on new comment": "Envie um e-mail quando um novo comentário for adicionado", + "Hide contact information": "Ocultar informações de contacto", + "Remember me by Gmail, Facebook and etc": "Lembre-se de mim no Gmail, Facebook, etc.", + "Show tags for unsolved problems": "Mostrar etiquetas para questões não resolvidas", + "Hide solved problems from problemset": "Oculte os problemas resolvidos dos conjuntos de problemas", + "Hide low rated blogs": "Ocultar blogues com classificações baixas", + "Offer to publish great rating rises": "Proporciona uma oportunidade para demonstrar a melhoria significativa da classificação", + "Enforce https": "Forçar HTTPS", + "Show private activity in the profile": "Mostrar actividades privadas no perfil", + "Show diagnostics": "Visualizar informações de diagnóstico" + } + }, + "CloneContestFormField": { + "class": [ + ".field-name" + ], + "description": "Clonagem do concurso para o formulário de configuração do mashup virtual", + "isStrict": false, + "rules": { + "Problem:": "Título.", + "Question": "问题", + "Language:": "Línguas.", + "Source code:": "Código fonte.", + "Or choose file:": "Ou seleccione o ficheiro.", + "Choose file:": "Seleccione o ficheiro.", + "Notice:": "Tenha cuidado.", + "virtual participation:": "Participação virtual.", + "Registration for the contest:": "Inscrição na corrida.", + "Take part:": "Participação.", + "as individual participant:": "Como participantes individuais.", + "as a team member:": "Como membro da equipa.", + "Virtual start time:": "Hora de início virtual.", + "Complete problemset:": "Conjunto completo de perguntas.", + "First name \\(English\\)": "Nome (inglês)", + "Last name \\(English\\)": "Apelido (inglês)", + "First name \\(Native\\)": "Nome (língua local)", + "Last name \\(Native\\)": "Apelido (língua local)", + "Birth date": "data de nascimento", + "Country": "nações", + "City": "municípios", + "Organization": "organizações", + "Handle/Email": "Número de conta/E-mail", + "Name": "名称", + "Handle": "账号", + "Email": "邮箱", + "Confirm": "确认", + "Password": "criptográfico", + "New Rank": "新的Rank", + "Training name \\(English\\):": "Nome da formação (inglês).", + "Training name \\(Russian\\):": "Nome da formação (em russo).", + "Contest format:": "Formato do concurso.", + "Start time:": "Hora de início.", + "Duration:": "Duração.", + "Visibility:": "Visibilidade.", + "Attach parent contest\\?:": "Combinação de patronos associados?", + "Participation type:": "Tipo de participação.", + "Freeze period:": "Período de congelamento.", + "Unfreeze time:": "Tempo de descongelação.", + "Is practice allowed\\?:": "A prática é permitida?", + "Is virtual allowed\\?:": "São permitidas entradas virtuais?", + "Is out of competition allowed\\?:": "São permitidas participações não competitivas?", + "Is self-registration allowed\\?:": "É permitido o auto-registo?", + "Can non-registered view the contest\\?:": "Os utilizadores não registados podem ver o concurso?", + "Can participants view common status\\?:": "Os participantes podem verificar o estado da partilha?", + "Contest testdata policy:": "Estratégia de dados de testes de partida.", + "Allow view other submissions to:": "Permita a visualização de outros envios para.", + "Manage program languages:": "Linguagens de programação geridas.", + "Use time limits scaling policy\\?:": "Utiliza uma política de escalonamento limitada no tempo?", + "Allow statements\\?:": "Permite-lhe ver a descrição do título?", + "Allow standings\\?:": "Permite-lhe ver as classificações?", + "Season:": "Época.", + "Contest type:": "Tipo de concurso.", + "ICPC region:": "Regiões da ICPC.", + "Country:": "País.", + "City:": "Cidades.", + "Contest difficulty:": "Dificuldade da corrida.", + "Website URL:": "Ligação Web.", + "Description \\(English\\):": "Descrição (inglês).", + "Description \\(Russian\\):": "Descrição (em russo).", + "Registration confirmation text \\(English\\):": "Texto de confirmação do registo (inglês).", + "Registration confirmation text \\(Russian\\):": "Texto de confirmação do registo (em russo).", + "Logo \\(English\\):": "Logótipo (inglês).", + "Logo \\(Russian\\):": "Logótipo (russo).", + "End time:": "Hora de fim.", + "Name:": "O seu nome.", + "Contest\\(s\\):": "Concurso.", + "Add contest:": "Adicionar concurso.", + "Show Contestants:": "Concorrentes do espetáculo.", + "Show Out of Competition Participants:": "Mostre os participantes não competitivos.", + "Show Practices:": "Mostre o exercício.", + "Show Virtuals:": "Mostre os jogadores virtuais.", + "Show Ghosts:": "Mostre o Ghost Player.", + "Text:": "Texto.", + "Rewrite Examples:": "Reescreva a amostra.", + "Add images:": "Adicione uma imagem.", + "Do not use:": "Não utilizado.", + "Problem short name:": "Abreviatura do título.", + "Source problem:": "Edição de origem.", + "Problem name \\(English\\):": "Título (em inglês).", + "Input file name:": "Nome do ficheiro de entrada.", + "Output file name:": "Nome do ficheiro de saída.", + "Time Limit:": "Limite de tempo.", + "Memory Limit:": "Limitações de memória.", + "Output only:": "Apenas saída." + } + }, + ".ask-question-link": { + "class": [ + ".ask-question-link" + ], + "description": "", + "isStrict": false, + "rules": { + "Ask a question": "Faça uma pergunta." + } + }, + "add-announcement-link": { + "class": [ + ".add-announcement-link" + ], + "description": "", + "isStrict": false, + "rules": { + "Add announcement": "Adicionar anúncio" + } + }, + "demo": { + "class": [ + "Class" + ], + "description": "", + "isStrict": false, + "rules": { + "SourceText": "TargetText" + } + } + }, + "InputValueReplacements": { + "InputSubmit": { + "class": [ + "input[type='submit']" + ], + "description": "Submeter chinês", + "isStrict": false, + "rules": { + "Register for virtual participation": "Registe-se para as Entradas Virtuais", + "Register for practice": "Inicie sessão para começar a praticar", + "Apply": "aparelho", + "Register": "introduza o seu nome", + "Login": "inicie sessão", + "Run": "estar em movimento", + "Start virtual contest": "Iniciar entrada virtual", + "Manage invitations": "Convites de gestão", + "Disable manager mode": "Encerramento temporário do modo de gestão", + "Enable manager mode": "Modo de gestão aberto", + "Clone Contest": "concurso de clonagem", + "Submit": "apresentar (um relatório, etc.)", + "Save changes": "Guardar definições", + "Filter": "filtragem", + "Find": "localizar", + "Save": "guardar (um ficheiro, etc.) (informática)", + "Create Mashup Contest": "Crie um concurso de mashups", + "Delete problem": "Apague a pergunta", + "Restore problem": "Problemas de recuperação", + "Generate": "生成", + "Send": "发送" + } + }, + "InputButton": { + "class": [ + "input[type='button']" + ], + "description": "", + "isStrict": false, + "rules": { + "Reset": "reprovisão", + "Delete contest": "Eliminar correspondência", + "Preview": "antevisões" + } + } + } +} \ No newline at end of file diff --git a/i18n/zh-Hant/README.md b/i18n/zh-Hant/README.md new file mode 100644 index 000000000..b4f663148 --- /dev/null +++ b/i18n/zh-Hant/README.md @@ -0,0 +1 @@ +# OJBetter diff --git a/i18n/zh-Hant/docs/AtCoderBetter.html b/i18n/zh-Hant/docs/AtCoderBetter.html new file mode 100644 index 000000000..28f00e496 --- /dev/null +++ b/i18n/zh-Hant/docs/AtCoderBetter.html @@ -0,0 +1,242 @@ +

AtCoder Better!🎈

+

AtCoder介面漢化、黑暗模式支援、題目翻譯、markdown視圖、一鍵複製題目、跳到洛谷

+

功能

+

tip:腳本的部分功能提供了配置項,您可以點擊整個頁面右上角AtCoderBetter設定 按鈕開啟設定面板。

+

介面漢化

+

將網站的主要元素漢化為中文,如果某處翻譯有誤或不佳,歡迎回饋。

+

您可以在右上角的 AtCoderBetter設定 面板中選擇開啟或關閉漢化

+

題目翻譯

+

在題目、blog、留言等的右上角加入翻譯按鈕,一鍵即可翻譯為中文,同時確保不破壞Latex公式

+

您可以在右上角的 AtCoderBetter設定 面板中選擇您想使用的翻譯服務(預設為Deepl)

+

tip:右鍵點擊翻譯按鈕,可以快速切換翻譯服務哦

+

提供如下翻譯介面可供選擇:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  + KEY + 翻譯品質可靠性字元數上限 + 耗時
Deepl翻譯(✨推薦)不需要⭐️⭐️⭐️⭐️部分地區可能無法訪問或較慢5000
訊飛聽見翻譯不需要⭐️⭐️⭐️通常可靠2000
有道翻譯不需要⭐️⭐️通常可靠600
Google翻譯不需要⭐️⭐️⭐️需要當前網路能順利存取Google5000
彩雲翻譯不需要⭐️⭐️通常可靠5000
使用ChatGPT翻譯(✨推薦)需要API Key⭐️⭐️⭐️⭐️⭐️取決於服務商品質以及OpenAI 的擁擠程度取決於模型較慢
+

其他功能

+

部分功能可在右上角的 AtCoderBetter設定 面板中變更/開關

+ +

相容性

+

瀏覽器

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 支援最低版本
Chrome支援96
Egde支援96
國產Chromium套殼基本上相容,但可能出現意外的錯誤Chromium 內核版本≥96
FireFox(含行動端)支援103
Safari不支援\
+ +

腳本管理器

+

僅在Tampermonkey(篡改猴)腳本管理器中進行測試,不保證在Greasemonkey,Violentmonkey,ScriptCat等中的兼容性

+

其他插件

+

與主流CF相關外掛程式不存在相容性問題,如果您遇到了相容性問題,歡迎回饋。

+

常見問題

+ + + +

貢獻程式碼

+

歡迎貢獻代碼,請前往 Github倉庫 建立PR

+

感謝

+ +

感謝你們,0rz

\ No newline at end of file diff --git a/i18n/zh-Hant/docs/CodeforcesBetter.html b/i18n/zh-Hant/docs/CodeforcesBetter.html new file mode 100644 index 000000000..107f20538 --- /dev/null +++ b/i18n/zh-Hant/docs/CodeforcesBetter.html @@ -0,0 +1,472 @@ +

Codeforces Better!🎈

+

Codeforces介面漢化、黑暗模式支援、主題翻譯、markdown視圖、一鍵複製題目、跳到洛谷、評論區分頁、ClistRating分顯示、榜單重新著色

+
+
+
+

寫在前面:反饋須知

+
+

如遇問題,請先閱讀下方的 #常見問題 說明。如果沒有解決,請前往 回饋頁Github issues 回饋。

+

請提供關於問題的詳細描述,例如:鏈接,截圖,期望的結果、實際的結果,復現方式……

+

另外也歡迎友善的討論以及功能建議,但維護腳本以及提供幫助並不是作者的義務,感謝你的理解。

+
+
+

功能

+提示:腳本的部分功能提供了配置項,你可以點選 整個頁面右上角CodeforcesBetter設定 按鈕開啟設定面板。 +

介面漢化

+

將網站的主要元素漢化為中文(可關閉)

+

題目翻譯

+

在題目、blog、留言等的右上角加入翻譯按鈕,一鍵即可翻譯為中文,同時確保不破壞Latex公式

+

在此基礎上,腳本提供了三種翻譯模式:

+ +

你可以在右上角的 CodeforcesBetter設定 面板中選擇你想使用的翻譯服務(預設為DeepL)以及切換腳本的工作模式。

+
+
+

注意:分段/選段模式會產生下列問題:

+

- 使得翻譯介面無法知曉整個文字的上下文訊息,會降低翻譯品質。

+

- 會有部分內容不會被翻譯/不能被選中,因為它們不是<p/>或<i/>元素

+
+
+

腳本提供如下翻譯介面可供選擇:(預設為DeepL)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  + KEY + 翻譯品質可靠性字元數上限 + 耗時
DeepL翻譯(✨推薦)不需要⭐️⭐️⭐️⭐️部分地區可能無法訪問或較慢5000
訊飛聽見翻譯不需要⭐️⭐️⭐️通常可靠2000
有道翻譯不需要⭐️⭐️通常可靠600
Google翻譯不需要⭐️⭐️⭐️需要當前網路能順利存取Google5000
彩雲翻譯不需要⭐️⭐️通常可靠5000
使用ChatGPT翻譯(✨推薦)需要API Key⭐️⭐️⭐️⭐️⭐️取決於服務商品質以及OpenAI 的擁擠程度取決於模型較慢
+提示:右鍵翻譯按鈕,可以快速切換翻譯服務哦 +

自動翻譯

+

開啟"自動翻譯"後,對於.ttypography, .comments 區域中的短文本,當其進入瀏覽器視窗的可視區域時,自動進行翻譯

+

(設定面板中可指定多少字元以內為短文字)

+

此外,開啟"評論區快速翻譯"後,對於評論區中的短文本,自動翻譯時會在候選的服務中隨機選擇一個,並行地進行快速翻譯

+

歷史翻譯恢復

+

開啟"自動復原歷史翻譯"後,會將題目頁面上的翻譯資訊自動儲存到瀏覽器本機的indexDB 的CFBetterDB 資料庫的translateData 表中

+

刷新/ 下次進入頁面時會自動恢復翻譯訊息

+

ClistRating分

+

取得clist.by 網站的Rating 分數據,並展示

+

注意,不同頁面工作所需的憑證有所不同:

+ +腳本不取得clist.by 的特定cookie ,cookie 資訊由瀏覽器傳送請求時自動攜帶,cookie 有效性透過嘗試要求所傳回的狀態碼判斷 +

編輯器與LSP

+

題目頁新增編輯器

+

在題目頁的下方加入monaco 程式碼編輯器(預設開啟)

+

支援程式碼自動儲存、程式碼快捷提交、線上測試運行、LSP、靜態補全增強等功能

+

程式碼自動儲存

+

程式碼會自動儲存在瀏覽器本機的IndexedDB 的CFBetterDB 資料庫的editorCode 表中

+

線上測試運行

+

你可以一鍵測試運行題目中的範例,還可以自訂測試範例,範例資料會自動儲存在CFBetterDB 資料庫的editorCode 表中

+

腳本提供了多個線上程式碼運行服務:codeforces官方、wandbox(第三方)、rextester(第三方),它們所支援的參數選項有所不同。

+
+
+

注意:

+
    +
  • +

    顯然,所有線上程式碼運行服務均無法測試互動式題目

    +
  • +
  • +

    第三方線上程式碼運行服務的運作環境與codeforces 的環境可能有所不同,在第三方線上程式碼運行服務中能夠運行或結果正確的程式碼並不一定在codeforces 中同樣如此

    +
  • +
  • +

    無法保證你的程式碼不會被第三方線上程式碼運行服務以某種方式洩露

    +
  • +
  • +

    此外,為擴大適用範圍,頁面上的編譯器選項與第三方線上程式碼運行服務實際的編譯器選項也並不是嚴格對應的,因此很有可能得到意外的結果。

    +
  • +
+
+
+

LSP

+

配置好LSP 後,可以為編輯器提供以下功能(限C++、Python語言):

+ +

當然,其不支援本地編譯,不支援斷點調試,不支援多文件等……,性能上也是不及本地的專門的IDE 的

+

總之,該功能的實際意義和用處並不大,如果你對此感興趣,請查看後文的常見問題部分以了解更多

+

靜態補全增強

+

你可以在設定面板-Monaco-靜態補全增強-自訂中為monaco 編輯器新增自訂的靜態程式碼補全規則

+

補全規則為JSON 格式,下面是一個範例(monaco格式):

+
+  {
+    "suggestions": [
+        {
+            "label": "hello world",
+            "kind": 15,
+            "documentation": "The is a hello world snippet",
+            "insertText": "hello world"
+        },
+        // 其他 suggestions...
+    ]
+}
+
+

你可以使用 CompletionItem 中幾乎所有的屬性,(注意: 不要填入range 屬性,腳本會自動計算並加入該屬性)

+

其他功能

+ +

相容性

+

瀏覽器

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 支援最低版本
Chrome支援96
Edge支援96
國產Chromium套殼基本上相容,但可能出現意外的錯誤Chromium 內核版本≥96
FireFox(含行動端)支援103
Safari不支援\
+

腳本管理器

+

僅在Tampermonkey(篡改猴)腳本管理器中進行測試,不保證在Greasemonkey,Violentmonkey,ScriptCat 等中的兼容性

+

其他插件

+

與主流CF相關外掛程式不存在相容性問題,如果你遇到了相容性問題,歡迎回饋。

+

鏡像站

+

支援官方輕量站 m1 / m2 / m3 、官方鏡像站 https://mirror.codeforces.com/、非官方鏡像站 https://codeforc.es

+

此外,理論上也相容於任意的其他鏡像站,你只需要自行再加入一行註解 // @match 你的鏡像站網址 即可

+

常見問題

+
+
Q. 如何開始? +
+ A. 你需要先安裝 Tampermonkey ,然後再安裝該腳本 +
+
+
+
Q. 更新錯誤? +
+

A. 由於Greasy Fork 平台的原因,當新版本剛發佈時,可能會出現實際更新/安裝的卻是上一個版本的情況,

+

通常你只需要稍等幾分鐘,然後再次前往更新/安裝。

+

你也可以將滑鼠移到腳本的更新提示框中的紅色問號上,然後點擊彈出訊息底部的「暫不更新」 按鈕。

+
+
+
+
Q. 一直顯示載入中? +
+ A. 請開啟設定面板中的”相容選項-不等待頁面資源載入“ 選項 +
+
+
+
Q. 使用DeepL 翻譯報錯Too many requests ? +
+

A. 這通常是因為你短時間內頻繁翻譯,或者一次性翻譯了超過5000字符的文本導致的,DeepL對翻譯字數和頻率是有限制的,

+ 這是暫時的,一段時間後就恢復正常了 +
+
+
+
Q. 使用DeepL 翻譯報錯undefind 或一直顯示翻譯中? +
+ A. 這通常是因為你所使用的網路無法正常存取 www.deepl.com +
+
+
+
Q. 翻譯結果中一些公式顯示為 {xx} / [xx] / 【xx】? +
+ A. 使用普通翻譯介面(DeepL/有道/google)進行翻譯時,受腳本的實作方式所限,可能會出現{xx}/[xx]/【xx】 +
+
+
+

腳本對公式的處理方式

+

為了保護LaTeX公式在翻譯時不被破壞,腳本會先取出所有的LaTeX公式,並使用替換符{xx}/[xx]/【xx】來佔位,

+

由於這些替換符大機率不會在翻譯的過程中遭到破壞,因此可以在翻譯後再根據替換符還原回LaTeX公式。

+

這種實現方式能如期工作的前提是替換符不被破壞,這在絕大多數情況下都是沒有問題的,

+

但有時翻譯服務會破壞替換符,例如【23】 變成了【23 / 23】 / [23]/ 【23 】/ 23 】,這些情況下腳本會透過一定的正規規則進行還原,使其仍然可以如期工作

+

但如果翻譯服務還破壞了更多的內容,產生了歧義,例如翻譯服務將【2】 313 變成了【2312,這時就無法還原了,

+

對於各個翻譯服務,不同的替換符本身遭到破壞的機率有所不同,你可以在右上角的設定面板中選擇不同的替換符,

+

經過測試,通常 {} 表現的效果更好,因此這也是腳本預設使用的替換符

+
+
+
+
+
+

提示:

+

在使用ChatGPT 進行翻譯時不會存在這個問題,因為可以透過提示詞直接告訴ChatGPT “保持其中的LaTeX公式不翻譯”,

+

聰明的ChatGPT 可以很好的遵守這一點,這也是腳本推薦的翻譯方式。

+
+
+
+
+
+
Q. 如何使用ChatGPT 翻譯? +
+ A. 如果你可以直接訪問OpenAI 的接口,並且擁有帳號,那麼非常棒,你只需要選中“使用ChatGPT翻譯(API)”,然後點擊下方的“添加” 按鈕新建一個配置並填寫即可。 +

此外,你也可以購買api 代理服務來使用ChatGPT,下表收集了一些api 服務商,你可以選擇使用 +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 官網獲取方式
API2Dhttps://api2d.com/官網
CloseAIhttps://console.closeai-asia.com/官網
OhMyGPThttps://aigptx.top/官網
OpenAI-SBhttps://openai-sb.com/Telegram機器人
API2GPThttps://www.api2gpt.com/官網
AI Proxyhttps://aiproxy.io/官網
+
+
+
+

免責:

+

作者僅為收集分享,沒有獲得任何收益,亦不保證上述平台的穩定性,平台的任何行為均與作者無關。

+

建議小額儲值,用完再充,這些服務商可能會跑路

+
+
+

如果你使用的是api 代理服務商提供的服務,設定中的KEY 應該填寫api代理服務商提供的key,

+

此外,你還需要在設定中額外填寫Proxy API,

+

Proxy API 需要填寫完整的位址,這裡以 CloseAI 為例,其提供了API + Base:https://api.closeai-proxy.xyz

+

那麼Proxy API 後面要填的就是 https://api.closeai-proxy.xyz/v1/chat/completions

+ 注意:由於你指定了自訂的API,Tampermonkey會對你的跨域請求進行警告,請自行點擊授權 +
+ 注意:如果你想使用Azure OpenAI,由於其與OpenAI 官方的介面參數不一樣,你可以選擇自行部署azure-openai-proxy以進行轉換 +
+
+
+
Q. 什麼是LSP? +
+ A. LSP(Language Server Protocol)是由微軟發起的一種編輯器與語言伺服器之間通訊的協定規範。 +

它將傳統IDE需要實現的程式碼補全、診斷、建議、文件甚至專案管理等功能與編輯器分離,使用獨立的服務來完成這些功能,

+

而編輯器只需要按照協定規範與伺服器進行通訊即可,這樣就大大減少了工作量,同時使編輯器可以輕鬆地支援各種程式語言

+

目前LSP的生態已經逐步完善,主流編輯器都支援LSP或有了對應的插件,如VSCode、Vim、Emacs等...

+

但各大商業IDE廠商對此興趣不大,基本現有的LSP Server都是開源社群在維護,因此仍不及專業IDE以及各種專業的插件

+
+
+
+
Q. 如何使用LSP? +
+ A. 只需兩步驟: +

一:腳本提供了對C++ 和Python 語言以下兩個LSP Server 實作的支持,你需要按需安裝它們:

+ + + + + + + + + + + + + + + + + + + + +
語言LSP Server安裝方式(Windows下)
C++clangdclangd release 中下載clangd,然後在系統環境變數的path 中新增clangd 的路徑,例如 C:\clangd_16.0.2\bin\
Pythonpylsp執行指令: + pip install "python-lsp-server[all]",其會自動加入環境變量
+

二:你還需要在 GitHub release藍奏雲(密碼:aaaa) 下載並解壓縮OJBetter_Bridge,該軟體是腳本與LSP Server 通訊的橋樑,

+

將解壓縮後的資料夾放到C盤根目錄或其他任何你喜歡的位置(注意:如果你放在其他位置,你需要在設定面板中要修改"工作路徑"為你的實際位置。)

+

然後你就可以執行OJBetter_Bridge 了,其提供了GUI版本和終端版本,Windows下推薦使用GUI版本,直接執行 server_gui.exe 即可

+

OJBetter_Bridge 在啟動時會自動檢查指令clangd 和pylsp 是否有效,並給予提示。

+ 提示:在 server_gui.exe 的介面中可以設定讓其開機自啟 +

完成上述步驟後,你就可以開啟設定面板中的"使用LSP" 並使用了。

+
+
+
+ 了解更多? +
+ 對於clangd,在cpp_workspace 資料夾中存放了兩個設定檔 .clangd.clang-format +

它們分別定義了clangd 的 配置項目代碼格式化風格,你可以自行編輯修改

+
+
+
+
+
+
+
+
Q. 為什麼clangd 格式化無效? +
+ A. 這是因為你在設定面板中填寫的LSP 工作路徑不正確 +
+
+
+
Q. 為什麼clangd 無法辨識我的 <bits/stdc++.h> 頭檔? +
+ A. 這是因為 <bits/stdc++.h> 不是標準頭文件,因此clangd 預設不支持,你需要在OJBetter_Bridge 的cpp_workspace + 中的 .clangd 19Better_Bridge 的cpp_workspace 17中的 .clangd 19Better編譯器參數來告訴clang 要去哪裡找到這個非標準的頭檔(當然也不建議使用萬用頭) +
+
+
+
Q. 靜態補全增強可不可以使用本地的JSON 檔案? +
+ A. 由於瀏覽器的安全限制,你並不能直接使用形如 file:///xxx 的URL 來在瀏覽器中存取你的本機JSON 檔案。 +

不過你可以藉助OJBetter_Bridge 來做到,很簡單,你只要將JSON 檔案 xxx.json 放置到OJBetter_Bridge 的/mycomplet 資料夾中

+

啟動OJBetter_Bridge,就可以在設定面板中新建配置,JSON URL為:http://127.0.0.1:2323/mycomplet/xxx.json

+
+
+

試一試?

+

啟動OJBetter_Bridge,初始情況下/mycomplet 資料夾中自帶一個範例JSON 檔案:template.json, 因此你可以新增一個配置,填入 + http://127.0.0.1:2323/mycomplet/template.json 並保存

+

現在在編輯器中輸入hello,你將會看到兩個補全項:hello world、hello world2

+
+
+
+
+
+

貢獻程式碼

+

歡迎貢獻代碼,請前往 Github倉庫 建立PR

+

其他OJ?

+

由於作者精力有限,並不會維護太多的類似腳本,如果你想為喜歡的OJ 移植該腳本,非常歡迎,你只需要遵守GPL-3.0 license 許可即可

+

感謝

+ +

感謝你們,0rz

\ No newline at end of file diff --git a/i18n/zh-Hant/resources/subs/Codeforces-subs.json b/i18n/zh-Hant/resources/subs/Codeforces-subs.json new file mode 100644 index 000000000..f86d8cee5 --- /dev/null +++ b/i18n/zh-Hant/resources/subs/Codeforces-subs.json @@ -0,0 +1,859 @@ +{ + "version": "1.0.0", + "commonReplacements": { + ".datatable": { + "class": [ + ".datatable" + ], + "description": "", + "isStrict": false, + "rules": { + "Virtual participation": "參加虛擬重現賽", + "Enter": "進入", + "Current standings": "目前榜單", + "Final standings": "最終榜單", + "Preliminary results": "初步結果", + "open hacking:": "開放式駭客攻擊中", + "School/University/City/Region Championship": "學校/大學/城市/區域比賽", + "Official School Contest": "學校官方比賽", + "Training Contest": "訓練賽", + "Training Camp Contest": "訓練營比賽", + "Official ICPC Contest": "ICPC官方比賽", + "Official International Personal Contest": "官方國際個人賽", + "China": "中國", + "Statements": "題目描述", + "in Chinese": "中文", + "Trainings": "訓練", + "Prepared by": "編寫人", + "Current or upcoming contests": "目前或即將舉行的比賽", + "Rating: users participated in recent 6 months": "評級:最近6 個月有參與的用戶", + "Past contests": "過去的比賽", + "Exclusions": "排除", + "Before start": "距離比賽開始還有", + "Before registration": "距報名開始還有", + "Until closing ": "距報名結束還有", + "Before extra registration": "額外報名還沒開始", + "Register »": "報名»", + "Registration completed": "已報名", + "Registration closed": "報名已結束", + "Problems\n": "問題集", + "My Submissions": "我的提交", + "Standings": "榜單", + "Questions about problems": "關於問題的提問", + "Contest status": "比賽狀態", + "Invited users": "邀請的用戶", + "Invitation links": "邀請連結", + "API keys": "API金鑰" + } + }, + ".menu-list.main-menu-list": { + "class": [ + ".menu-list.main-menu-list" + ], + "description": "", + "isStrict": false, + "rules": { + "Home": "首頁", + "Top": "熱門", + "Catalog": "指南目錄", + "Contests": "比賽", + "Gym": "訓練營", + "Problemset": "題單", + "Groups": "團體", + "Rating": "Rating(評級)排行榜", + "Edu": "訓練", + "Calendar": "日曆", + "ICPC Challenge": "ICPC挑戰賽", + "Help": "幫助" + } + }, + ".nav-links": { + "class": [ + ".nav-links" + ], + "description": "", + "isStrict": false, + "rules": { + "Settings": "設定", + "Blog": "部落格", + "Teams": "隊伍", + "Submissions": "提交", + "Favourites": "收藏", + "Problemsetting": "問題設定", + "Talks": "私訊", + "Contests": "比賽" + } + }, + ".contest-state-phase": { + "class": [ + ".contest-state-phase" + ], + "description": "", + "isStrict": false, + "rules": { + "Before contest": "即將進行的比賽", + "Contest is running": "比賽進行中" + } + }, + ".notice": { + "class": [ + ".notice" + ], + "description": "", + "isStrict": false, + "rules": { + "has extra registration": "有額外的報名期間", + "If you are late to register in 5 minutes before the start, you can register later during the extra registration. Extra registration opens 10 minutes after the contest starts and lasts 25 minutes.": "如果您在比賽開始前5分鐘前還未報名,您可以在額外的報名期間稍後報名。額外的報名將在比賽開始後10分鐘開放,並持續25分鐘。", + "in timezone ([^)]*)": "$1 時區", + "Contest will be available for virtual participation when over. Leave this field blank to allow virtual participation at any time": "比賽結束後將允許虛擬參賽。將此欄位留空以允許隨時進行虛擬參賽", + "Contest duration in minutes": "比賽持續時間(分鐘)", + "or choose": "或選擇", + "Standings freeze period in minutes": "榜單凍結時間(分鐘)", + "Time when final results are available": "最終結果可用時間", + "Is it allowed to solve contest problems unofficially after the end": "比賽結束後是否允許非官方解決比賽問題", + "Is it allowed to run contest as virtual after the end": "比賽結束後是否允許虛擬參賽", + "Is it allowed participate in contest out of competition": "是否允許非競賽參賽", + "Are participants allowed to register for the contest themselves": "是否允許參賽者自行報名", + "Can non-registered users and anonyms view contest standings, problems and other statistics": "是否允許未註冊用戶和匿名用戶查看比賽榜單、問題和其他統計信息", + "If unchecked they will view only personal status": "如果未選中,他們將只能查看個人狀態", + "To manage allowed program languages": "管理允許的程式語言", + "The system will automatically adjust time limits for some languages. Recommended for use only for educational purpose.": "系統將自動調整某些語言的時間限制。僅建議用於教育目的。", + "Check it if you want to allow contestants view statements": "若允許參賽者查看題目描述,請勾選此項", + "Check it if contestants can view standings": "如果允許參賽者查看名單,請勾選此項", + "Where the contest was held originally": "比賽原本舉辦的地點", + "Official contest site URL": "官方比賽網站URL", + "Enter a name for your new API key. It should describe what this key is used for.": "為您的新API金鑰輸入名稱。它應該描述這個密鑰的用途。", + "Enter your account password to confirm access. If you do not have password, logout and use password recovery feature.": "输入您的账户密码以确认访问。如果您没有密码,请注销并使用密码恢复功能。" + } + }, + ".propertyLinks": { + "class": [ + ".propertyLinks" + ], + "description": "", + "isStrict": false, + "rules": { + "Contribution": "貢獻" + } + }, + ".contests-table": { + "class": [ + ".contests-table" + ], + "description": "", + "isStrict": false, + "rules": { + "Contest history": "比賽歷史" + } + }, + ".roundbox.sidebox.borderTopRound ": { + "class": [ + ".roundbox.sidebox.borderTopRound " + ], + "description": "", + "isStrict": false, + "rules": { + "Register now": "現在報名", + "No tag edit access": "沒有標籤編輯權限", + "Problem([\\s]*)$": "问题", + "Verdict": "判題狀態", + "Language:": "語言:", + "Participant": "參賽者", + "Choose file:": "選擇檔案:" + } + }, + ".icon-eye-close.icon-large": { + "class": [ + ".icon-eye-close.icon-large" + ], + "description": "", + "isStrict": false, + "rules": { + "Add to exclusions": "新增到排除列表" + } + }, + "null": { + "class": [ + null + ], + "description": "", + "isStrict": false, + "rules": { + "Add to exclusions for gym contests filter": "新增訓練營過濾器的排除項" + } + }, + ".roundbox.sidebox.sidebar-menu.borderTopRound": { + "class": [ + ".roundbox.sidebox.sidebar-menu.borderTopRound" + ], + "description": "", + "isStrict": false, + "rules": { + "Announcement": "公告", + "Statements": "統計報表", + "Tutorial": "題解" + } + }, + ".second-level-menu": { + "class": [ + ".second-level-menu" + ], + "description": "", + "isStrict": false, + "rules": { + "Problems": "問題", + "Submit Code": "提交程式碼", + "My Submissions": "我的提交", + "Status": "狀態", + "Standings": "榜單", + "Adm.": "管理", + "Edit": "編輯", + "Custom Invocation": "自訂偵錯", + "Common standings": "全部排行", + "Friends standings": "只看朋友", + "Submit": "提交", + "Hacks": "駭客", + "Room": "房間", + "Custom test": "自訂測試", + "Blog": "部落格", + "Teams": "隊伍", + "Submissions": "提交記錄", + "Groups": "團體", + "Rating": "評級", + "Friends rating": "朋友的評級", + "Favourites": "收藏", + "Contests": "比賽", + "Magic": "魔法", + "Handle": "账号", + "Members": "成員", + "问题etting": "參與編寫的問題", + "Streams": "直播", + "Gym": "訓練營", + "Mashups": "組合混搭", + "Posts": "貼文", + "Comments": "回覆", + "Main": "主要的", + "Settings": "設定", + "Lists": "清單", + "General": "基本", + "Sidebar": "側邊欄", + "Social": "社會資訊", + "Address": "地址", + "Wallets": "錢包" + } + }, + ".topic-toggle-collapse": { + "class": [ + ".topic-toggle-collapse" + ], + "description": "", + "isStrict": false, + "rules": { + "Expand": "展開" + } + }, + ".topic-read-more": { + "class": [ + ".topic-read-more" + ], + "description": "", + "isStrict": false, + "rules": { + "Full text and comments": "閱讀全文/評論" + } + }, + ".toggleEditorCheckboxLabel": { + "class": [ + ".toggleEditorCheckboxLabel" + ], + "description": "", + "isStrict": false, + "rules": { + "Switch off editor": "關閉編輯器語法高亮" + } + }, + ".submit": { + "class": [ + ".submit" + ], + "description": "", + "isStrict": false, + "rules": { + "Registration for the contest": "比賽報名" + } + }, + "._FilterByTagsFrame_difficulty": { + "class": [ + "._FilterByTagsFrame_difficulty" + ], + "description": "", + "isStrict": false, + "rules": { + "Difficulty:": "難度:" + } + }, + "._FilterByTagsFrame_addTagLink": { + "class": [ + "._FilterByTagsFrame_addTagLink" + ], + "description": "", + "isStrict": false, + "rules": { + "Add tag": "添加標籤" + } + }, + ".alert": { + "class": [ + ".alert" + ], + "description": "", + "isStrict": false, + "rules": { + "Rating changes for last rounds are temporarily rolled back. They will be returned soon.": "上一輪的評級變化暫時回滾。它們將很快恢復。", + "Reminder: in case of any technical issues, you can use the lightweight website": "提醒:如果出現任何技術問題,您可以使用輕量網站", + "Please subscribe to the official Codeforces channel in Telegram via the link ": "請透過連結訂閱Codeforces的官方Telegram頻道" + } + }, + ".lang-chooser": { + "class": [ + ".lang-chooser" + ], + "description": "", + "isStrict": false, + "rules": { + "Enter": "登入", + "Register": "註冊", + "Contest rating": "測試rating", + "Logout": "登出登入" + } + }, + ".userbox": { + "class": [ + ".userbox" + ], + "description": "", + "isStrict": false, + "rules": { + "Change photo": "更換圖片", + "Contest rating": "比賽Rating", + "Contribution": "貢獻", + "My friends": "我的好友", + "Change settings": "改變設定", + "Last visit": "最後訪問", + "not visible": "不可见的", + "Registered": "註冊於", + "Blog entries": "部落格條目", + "comments": "評論", + "Write new entry": "編寫新條目", + "View my talks": "查看我的私訊", + "Talks": "私訊", + "Send message": "發送訊息" + } + }, + "#vote-reset-filterDifficultyLowerBorder": { + "class": [ + "#vote-reset-filterDifficultyLowerBorder" + ], + "description": "", + "isStrict": false, + "rules": { + "Reset": "重置" + } + }, + "#vote-reset-filterDifficultyUpperBorder": { + "class": [ + "#vote-reset-filterDifficultyUpperBorder" + ], + "description": "", + "isStrict": false, + "rules": { + "Reset": "重置" + } + }, + ".alert.alert-info": { + "class": [ + ".alert.alert-info" + ], + "description": "", + "isStrict": false, + "rules": { + "The problem statement has recently been changed.": "題目描述最近已被更改。", + "View the changes.": "查看更改" + } + }, + ".enterPage": { + "class": [ + ".enterPage" + ], + "description": "", + "isStrict": false, + "rules": { + "Fill in the form to login into Codeforces.": "填寫表單以登入Codeforces。", + "You can use": "你也可以使用", + "as an alternative way to enter.": "登入" + } + }, + ".notice.small": { + "class": [ + ".notice.small" + ], + "description": "", + "isStrict": false, + "rules": { + "\\* To view the complete list, click ": "* 要查看完整列表,請點擊" + } + }, + ".setting-name": { + "class": [ + ".setting-name" + ], + "description": "", + "isStrict": false, + "rules": { + "Contest type:": "比賽類型:", + "Rated:": "已評級:", + "Tried:": "已嘗試", + "Substring:": "關鍵字" + } + }, + ".by-form": { + "class": [ + ".by-form" + ], + "description": "", + "isStrict": false, + "rules": { + "Sort by:": "排序依據:", + "relevance": "相關", + "popularity": "熱度", + "time": "時間" + } + }, + ".roundbox.borderTopRound": { + "class": [ + ".roundbox.borderTopRound" + ], + "description": "", + "isStrict": false, + "rules": { + "If you invite users to this contest, the contest will become visible to them regardless of its visibility. You can share the contest using the link:": "如果您邀請用戶參加此競賽,則無論其可見性如何,該競賽都將對用戶可見。您可以使用以下連結分享比賽:", + "Generate link and share it with other users": "產生連結並與其他使用者分享", + "Show Log »": "展示日誌»", + "Move all to practice »": "全部移至練習者»", + "Remove All »": "移除全部»", + "Add »": "添加»", + "Set »": "設定\"", + "Download Archive »": "下載歸檔»" + } + }, + ".caption.titled": { + "class": [ + ".caption.titled" + ], + "description": "側欄titled漢化", + "isStrict": false, + "rules": { + "Pay attention": "注意", + "Top rated": "評級排行", + "Top contributors": "貢獻者排行", + "Find user": "尋找用戶", + "Recent actions": "最新動態", + "Training filter": "過濾篩選", + "Find training": "搜尋比賽/問題", + "Virtual participation": "什麼是虛擬參賽", + "Contest materials": "比賽相關資料", + "Settings": "設定", + "Create Mashup Contest": "創建混搭比賽", + "Clone Contest to Mashup": "克隆比賽到組合混搭", + "Invitations": "邀請", + "Status filter": "狀態過濾器", + "Administration": "管理", + "Submit": "提交", + "Practice": "練習", + "Problem tags": "問題標籤", + "Filter Problems": "過濾問題", + "Last unsolved": "上次未解決", + "Attention": "注意", + "Past contests filter": "過去的比賽篩選", + "About Contest": "關於比賽", + "Last submissions": "提交歷史", + "Streams": "直播", + "Coach rights": "教練權限", + "Advices to fill address": "填寫地址的建議", + "Hacks filter": "駭客過濾器", + "Score table": "評分錶", + "Contests": "比賽", + "History": "編輯歷史", + "Login into Codeforces": "登入Codeforces", + "Export the judgment log to DAT-file": "匯出判題日誌為DAT 文件", + "Contest managers": "比賽管理員", + "Contest writers": "比賽編寫者", + "Spectator ranklists": "觀眾排名列表", + "Ghosts:": "幽靈選手", + "Export Submissions": "匯出提交", + "Register in Codeforces": "注册 Codeforces" + } + }, + "QuestionFilter1": { + "class": [ + "#gym-filter-form div label", + "#gym-filter-form div" + ], + "description": "題目濾鏡選項漢化", + "isStrict": false, + "rules": { + "Contest type:": "比賽類型:", + "ICPC region:": "ICPC地區:", + "Contest format:": "比賽形式:", + "Order by:": "排序方式:", + "Secondary order by:": "次要排序方式:", + "Hide, if participated:": "隱藏我參加過的:", + "Hide excluded gyms": "隱藏已排除的:", + "Season:": "時間範圍(年度)", + "Duration, hours:": "持續時間(小時):", + "Difficulty:": "難度:" + } + }, + "QuestionFilter2": { + "class": [ + ".setting-value select option", + ".setting-last-value select option" + ], + "description": "", + "isStrict": false, + "rules": { + "Official ACM-ICPC Contest": "ICPC官方比賽", + "Official School Contest": "學校官方比賽", + "Opencup Contest": "Opencup競賽", + "School/University/City/Region Championship": "學校/大學/城市/地區錦標賽", + "Training Camp Contest": "訓練營比賽", + "Official International Personal Contest": "官方國際個人賽", + "Training Contest": "訓練比賽", + "ID_ASC": "創建時間(升序)", + "ID_DESC": "創建時間(降序)", + "RATING_ASC": "評分(升序)", + "RATING_DESC": "評分(降序)", + "DIFFICULTY_ASC": "難度(升序)", + "DIFFICULTY_DESC": "難度(降序)", + "START_TIME_ASC": "開始時間(升序)", + "START_TIME_DESC": "開始時間(降序)", + "DURATION_ASC": "持續時間(升序)", + "DURATION_DESC": "持續時間(降序)", + "POPULARITY_ASC": "熱度(升序)", + "POPULARITY_DESC": "熱度(降序)", + "UPDATE_TIME_ASC": "更新時間(升序)", + "UPDATE_TIME_DESC": "更新時間(降序)" + } + }, + "CompetitionFilter": { + "class": [ + ".options li label", + ".CaptionCont span" + ], + "description": "比賽過濾器選項漢化", + "isStrict": false, + "rules": { + "Educational": "教育性", + "Global": "全球", + "VK Cup": "VK杯", + "Long Rounds": "長期回合", + "April Fools": "愚人節", + "Team Contests": "團隊比賽", + "ICPC Scoring": "ICPC計分", + "Doesn't matter": "----", + "Any": "所有", + "Yes$": "是", + "No$": "否", + "No submission(s)": "無提交", + "Have submission(s)": "有提交", + "No solved problem(s)": "無解決問題", + "Have solved problem(s)": "有解決問題" + } + }, + "RightSidebox": { + "class": [ + ".sidebox div label" + ], + "description": "右側sidebox漢化", + "isStrict": false, + "rules": { + "Show tags for unsolved problems": "顯示未解決問題的標籤", + "Hide solved problems": "隱藏已解決的問題" + } + }, + "FormField-name": { + "class": [ + "td.field-name label" + ], + "description": "", + "isStrict": false, + "rules": { + "Postal/zip code": "郵遞區號/郵編", + "Country //(English//)": "国家(英文)", + "State //(English//)": "州/省份(英文)", + "City //(English//)": "城市(英文)", + "Address //(English//)": "地址(英文)", + "Recipient //(English//)": "收件人姓名(英文)", + "Country //(Native//)": "国家(本地语言)", + "State //(Native//)": "州/省份(本地语言)", + "City //(Native//)": "城市(本地语言)", + "Address //(Native//)": "地址(本地语言)", + "Recipient //(Native//)": "收件人姓名(本地语言)", + "Phone": "電話", + "TON Wallet:": "TON 皮夾:", + "Secret Code:": "驗證碼:", + "Terms of agreement:": "協議條款:", + "Choose team:": "選擇團隊:" + } + }, + "QuestionTag": { + "class": [ + "._FilterByTagsFrame_addTagLabel select option", + "._FilterByTagsFrame_tagBoxCaption", + ".notice", + ".tag-box" + ], + "description": "", + "isStrict": false, + "rules": { + "combine tags by OR": "按邏輯或組合我選擇的標籤", + "combine-tags-by-or": "按邏輯或組合我選擇的標籤(combine-tags-by-or)", + "2-sat": "二分圖可滿足性問題(2-sat)", + "binary search": "二分搜尋(binary search)", + "bitmasks": "位元遮罩(bitmasks)", + "brute force": "暴力枚舉(brute force)", + "chinese remainder theorem": "中國剩餘定理(chinese remainder theorem)", + "combinatorics": "組合數學(combinatorics)", + "constructive algorithms": "構造演算法(constructive algorithms)", + "data structures": "資料結構(data structures)", + "dfs and similar": "深度優先搜尋及其變種(dfs and similar)", + "divide and conquer": "分治演算法(divide and conquer)", + "dp": "動態規劃(dp)", + "dsu": "並查集(dsu)", + "expression parsing": "表達式解析(expression parsing)", + "fft": "快速傅立葉變換(fft)", + "flows": "流(flows)", + "games": "博弈論(games)", + "geometry": "計算幾何(geometry)", + "graph matchings": "圖匹配(graph matchings)", + "graphs": "圖論(graphs)", + "greedy": "貪心策略(greedy)", + "hashing": "哈希表(hashing)", + "implementation": "實現問題,程式設計技巧,模擬(implementation)", + "interactive": "互動性問題(interactive)", + "math": "數學(math)", + "matrices": "矩陣(matrices)", + "meet-in-the-middle": "meet-in-the-middle演算法(meet-in-the-middle)", + "number theory": "數論(number theory)", + "probabilities": "機率論(probabilities)", + "schedules": "調度演算法(schedules)", + "shortest paths": "最短路演算法(shortest paths)", + "sortings": "排序演算法(sortings)", + "string suffix structures": "字串後綴結構(string suffix structures)", + "strings": "字串處理(strings)", + "ternary search": "三分球搜尋(ternary search)", + "trees": "樹形結構(trees)", + "two pointers": "雙指標演算法(two pointers)" + } + }, + "SettingField-name": { + "class": [ + ".field-name" + ], + "description": "設定頁中的字段", + "isStrict": false, + "rules": { + "Hide sidebar block \"Find user\"": "隱藏側邊欄塊“查找用戶”", + "Hide sidebar block \"Current user\"": "隱藏側邊欄塊“目前使用者”", + "Hide sidebar block \"Recent аctions\"": "隱藏側邊欄塊“最新動態”", + "Hide sidebar block \"Favourite groups\"": "隱藏側邊欄塊“收藏組”", + "Hide sidebar block \"Top contributors\"": "隱藏側邊欄塊“貢獻者排行”", + "Hide sidebar block \"Top rated\"": "隱藏側邊欄塊“評級排行”", + "Hide sidebar block \"Streams\"": "隱藏側邊欄塊“直播”", + "Old password": "舊密碼", + "New password": "新密碼", + "Confirm new password": "確認新密碼", + "Contest email notification": "比賽郵件通知", + "Send email on new user talk": "在有新用戶對話時發送電子郵件", + "Send email on new comment": "在有新評論時發送電子郵件", + "Hide contact information": "隱藏聯絡人訊息", + "Remember me by Gmail, Facebook and etc": "透過Gmail、Facebook 等記住我", + "Show tags for unsolved problems": "顯示未解決問題的標籤", + "Hide solved problems from problemset": "從問題集中隱藏已解決的問題", + "Hide low rated blogs": "隱藏評價較低的博客", + "Offer to publish great rating rises": "提供展示Rating顯著提升的機會", + "Enforce https": "強制HTTPS", + "Show private activity in the profile": "在個人資料中顯示私人活動", + "Show diagnostics": "顯示診斷訊息" + } + }, + "CloneContestFormField": { + "class": [ + ".field-name" + ], + "description": "克隆比賽到虛擬混搭設定表單", + "isStrict": false, + "rules": { + "Problem:": "題目:", + "Question": "问题", + "Language:": "語言:", + "Source code:": "原始碼:", + "Or choose file:": "或選擇文件:", + "Choose file:": "選擇檔案:", + "Notice:": "注意:", + "virtual participation:": "虛擬參與:", + "Registration for the contest:": "比賽報名:", + "Take part:": "參與:", + "as individual participant:": "作為個人參與者:", + "as a team member:": "作為團隊成員:", + "Virtual start time:": "虛擬開始時間:", + "Complete problemset:": "完整的問題集:", + "First name \\(English\\)": "名字(英文)", + "Last name \\(English\\)": "姓氏(英文)", + "First name \\(Native\\)": "名字(本地語言)", + "Last name \\(Native\\)": "姓氏(本地語言)", + "Birth date": "出生日期", + "Country": "國家", + "City": "城市", + "Organization": "組織", + "Handle/Email": "帳號/信箱", + "Name": "名称", + "Handle": "账号", + "Email": "邮箱", + "Confirm": "确认", + "Password": "密碼", + "New Rank": "新的Rank", + "Training name \\(English\\):": "訓練名稱(英文):", + "Training name \\(Russian\\):": "訓練名稱(俄文):", + "Contest format:": "比賽格式:", + "Start time:": "開始時間:", + "Duration:": "持續時間:", + "Visibility:": "可見性:", + "Attach parent contest\\?:": "關聯父級比賽?", + "Participation type:": "參與類型:", + "Freeze period:": "凍結期間:", + "Unfreeze time:": "解凍時間:", + "Is practice allowed\\?:": "是否允許練習?", + "Is virtual allowed\\?:": "是否允許虛擬參賽?", + "Is out of competition allowed\\?:": "是否允許非競賽參賽?", + "Is self-registration allowed\\?:": "是否允許自助註冊?", + "Can non-registered view the contest\\?:": "未註冊用戶可否查看比賽?", + "Can participants view common status\\?:": "參賽者可否查看共享狀態?", + "Contest testdata policy:": "比賽測試數據策略:", + "Allow view other submissions to:": "允許查看其他提交給:", + "Manage program languages:": "管理程式語言:", + "Use time limits scaling policy\\?:": "使用時間限制縮放策略?", + "Allow statements\\?:": "允許查看題目描述?", + "Allow standings\\?:": "允許查看排名?", + "Season:": "季節:", + "Contest type:": "比賽類型:", + "ICPC region:": "ICPC 地區:", + "Country:": "國家:", + "City:": "城市:", + "Contest difficulty:": "比賽難度:", + "Website URL:": "網站連結:", + "Description \\(English\\):": "描述(英文):", + "Description \\(Russian\\):": "描述(俄文):", + "Registration confirmation text \\(English\\):": "註冊確認文字(英文):", + "Registration confirmation text \\(Russian\\):": "註冊確認文字(俄文):", + "Logo \\(English\\):": "標誌(英文):", + "Logo \\(Russian\\):": "徽標(俄語):", + "End time:": "結束時間:", + "Name:": "名稱:", + "Contest\\(s\\):": "比賽(們):", + "Add contest:": "新增比賽:", + "Show Contestants:": "顯示參賽選手:", + "Show Out of Competition Participants:": "顯示非競賽參與者:", + "Show Practices:": "顯示練習:", + "Show Virtuals:": "顯示虛擬選手:", + "Show Ghosts:": "顯示幽靈選手:", + "Text:": "文字:", + "Rewrite Examples:": "重寫範例:", + "Add images:": "新增圖片:", + "Do not use:": "不使用:", + "Problem short name:": "題目簡稱:", + "Source problem:": "來源問題:", + "Problem name \\(English\\):": "題目名稱(英文):", + "Input file name:": "輸入檔名:", + "Output file name:": "輸出檔名:", + "Time Limit:": "時間限制:", + "Memory Limit:": "記憶體限制:", + "Output only:": "僅輸出:" + } + }, + ".ask-question-link": { + "class": [ + ".ask-question-link" + ], + "description": "", + "isStrict": false, + "rules": { + "Ask a question": "提一個問題" + } + }, + "add-announcement-link": { + "class": [ + ".add-announcement-link" + ], + "description": "", + "isStrict": false, + "rules": { + "Add announcement": "新增公告" + } + }, + "demo": { + "class": [ + "Class" + ], + "description": "", + "isStrict": false, + "rules": { + "SourceText": "TargetText" + } + } + }, + "InputValueReplacements": { + "InputSubmit": { + "class": [ + "input[type='submit']" + ], + "description": "submit漢化", + "isStrict": false, + "rules": { + "Register for virtual participation": "報名虛擬參賽", + "Register for practice": "登入以開始練習", + "Apply": "應用", + "Register": "報名", + "Login": "登入", + "Run": "運行", + "Start virtual contest": "開始虛擬參賽", + "Manage invitations": "管理邀請", + "Disable manager mode": "臨時關閉管理模式", + "Enable manager mode": "開啟管理模式", + "Clone Contest": "複製比賽", + "Submit": "提交", + "Save changes": "儲存設定", + "Filter": "濾", + "Find": "尋找", + "Save": "儲存", + "Create Mashup Contest": "創建混搭比賽", + "Delete problem": "刪除問題", + "Restore problem": "恢復問題", + "Generate": "生成", + "Send": "发送" + } + }, + "InputButton": { + "class": [ + "input[type='button']" + ], + "description": "", + "isStrict": false, + "rules": { + "Reset": "重置", + "Delete contest": "刪除比賽", + "Preview": "預覽" + } + } + } +} \ No newline at end of file