Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions frontend/check-locales.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ const allLocales = [
["zh", "zh-CN"],
["ko", "ko-KR"],
["bg", "bg-BG"],
["tr", "tr-TR"],
];

const ignoreUnused = [
Expand Down
2 changes: 2 additions & 0 deletions frontend/src/locale/IntlProvider.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import langVi from "./lang/vi.json";
import langZh from "./lang/zh.json";
import langKo from "./lang/ko.json";
import langBg from "./lang/bg.json";
import langTr from "./lang/tr.json";

// first item of each array should be the language code,
// not the country code
Expand All @@ -31,6 +32,7 @@ const localeOptions = [
["zh", "zh-CN", langZh],
["ko", "ko-KR", langKo],
["bg", "bg-BG", langBg],
["tr", "tr-TR", langTr],
];

const loadMessages = (locale?: string): typeof langList & typeof langEn => {
Expand Down
69 changes: 69 additions & 0 deletions frontend/src/locale/scripts/locale-sort.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
#!/usr/bin/env node

const fs = require("fs");
const path = require("path");

const DIR = path.resolve(__dirname, "../src");

// Function to sort object keys recursively
function sortKeys(obj) {
if (obj === null || typeof obj !== "object" || obj instanceof Array) {
return obj;
}

const sorted = {};
const keys = Object.keys(obj).sort();
for (const key of keys) {
const value = obj[key];
if (typeof value === "object" && value !== null && !(value instanceof Array)) {
sorted[key] = sortKeys(value);
} else {
sorted[key] = value;
}
}
return sorted;
}

// Get all JSON files in the directory
const files = fs.readdirSync(DIR).filter((file) => {
return file.endsWith(".json") && file !== "lang-list.json";
});

files.forEach((file) => {
const filePath = path.join(DIR, file);
const stats = fs.statSync(filePath);

if (!stats.isFile()) {
return;
}

if (stats.size === 0) {
console.log(`Skipping empty file ${file}`);
return;
}

try {
// Read original content
const originalContent = fs.readFileSync(filePath, "utf8");
const originalJson = JSON.parse(originalContent);

// Sort keys
const sortedJson = sortKeys(originalJson);

// Convert back to string with tabs
const sortedContent = JSON.stringify(sortedJson, null, "\t") + "\n";

// Compare (normalize whitespace)
if (originalContent.trim() === sortedContent.trim()) {
console.log(`${file} is already sorted`);
return;
}

// Write sorted content
fs.writeFileSync(filePath, sortedContent, "utf8");
console.log(`Sorted ${file}`);
} catch (error) {
console.error(`Error processing ${file}:`, error.message);
}
});

3 changes: 2 additions & 1 deletion frontend/src/locale/src/HelpDoc/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,9 @@ import * as vi from "./vi/index";
import * as zh from "./zh/index";
import * as ko from "./ko/index";
import * as bg from "./bg/index";
import * as tr from "./tr/index";

const items: any = { en, de, ja, sk, zh, pl, ru, it, vi, nl, bg, ko };
const items: any = { en, de, ja, sk, zh, pl, ru, it, vi, nl, bg, ko, tr };

const fallbackLang = "en";

Expand Down
8 changes: 8 additions & 0 deletions frontend/src/locale/src/HelpDoc/tr/AccessLists.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
## Erişim Listesi Nedir?

Erişim Listeleri, Temel HTTP Kimlik Doğrulama aracılığıyla Proxy Host'lar için belirli istemci IP adreslerinin kara listesi veya beyaz listesini ve kimlik doğrulamasını sağlar.

Tek bir Erişim Listesi için birden fazla istemci kuralı, kullanıcı adı ve şifre yapılandırabilir ve bunu bir veya daha fazla _Proxy Host_'a uygulayabilirsiniz.

Bu, yerleşik kimlik doğrulama mekanizmaları olmayan veya bilinmeyen istemcilerden korunmak istediğinizde iletilen web hizmetleri için en kullanışlıdır.

29 changes: 29 additions & 0 deletions frontend/src/locale/src/HelpDoc/tr/Certificates.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
## Sertifika Yardımı

### HTTP Sertifikası

Bir HTTP doğrulanmış sertifika, Let's Encrypt sunucularının
alan adlarınıza HTTP (HTTPS değil!) üzerinden ulaşmaya çalışacağı ve başarılı olursa,
sertifikanızı verecekleri anlamına gelir.

Bu yöntem için, alan adlarınız için HTTP ile erişilebilir ve bu Nginx kurulumuna işaret eden bir _Proxy Host_ oluşturulmuş olmalıdır. Bir sertifika
verildikten sonra, _Proxy Host_'u HTTPS
bağlantıları için de bu sertifikayı kullanacak şekilde değiştirebilirsiniz. Ancak, sertifikanın yenilenmesi için _Proxy Host_'un hala HTTP erişimi için yapılandırılmış olması gerekecektir.

Bu işlem joker karakter alan adlarını _desteklemez_.

### DNS Sertifikası

Bir DNS doğrulanmış sertifika, bir DNS Sağlayıcı eklentisi kullanmanızı gerektirir. Bu DNS
Sağlayıcı, alan adınızda geçici kayıtlar oluşturmak için kullanılacak ve ardından Let's
Encrypt bu kayıtları sorgulayarak sahibi olduğunuzdan emin olacak ve başarılı olursa,
sertifikanızı verecektir.

Bu tür bir sertifika talep etmeden önce bir _Proxy Host_ oluşturulmasına gerek yoktur. Ayrıca _Proxy Host_'unuzun HTTP erişimi için yapılandırılmasına da gerek yoktur.

Bu işlem joker karakter alan adlarını _destekler_.

### Özel Sertifika

Kendi Sertifika Otoriteniz tarafından sağlanan kendi SSL Sertifikanızı yüklemek için bu seçeneği kullanın.

10 changes: 10 additions & 0 deletions frontend/src/locale/src/HelpDoc/tr/DeadHosts.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
## 404 Host Nedir?

404 Host, basitçe bir 404 sayfası gösteren bir host kurulumudur.

Bu, alan adınız arama motorlarında listelendiğinde ve daha güzel bir hata sayfası sağlamak veya özellikle arama dizinleyicilerine
alan adı sayfalarının artık mevcut olmadığını söylemek istediğinizde yararlı olabilir.

Bu host'un bir başka faydası da, ona yapılan isteklerin loglarını takip etmek ve
referansları görüntülemektir.

8 changes: 8 additions & 0 deletions frontend/src/locale/src/HelpDoc/tr/ProxyHosts.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
## Proxy Host Nedir?

Proxy Host, iletilmek istediğiniz bir web hizmeti için gelen uç noktadır.

SSL desteği yerleşik olmayan hizmetiniz için isteğe bağlı SSL sonlandırma sağlar.

Proxy Host'lar, Nginx Proxy Manager'ın en yaygın kullanımıdır.

8 changes: 8 additions & 0 deletions frontend/src/locale/src/HelpDoc/tr/RedirectionHosts.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
## Yönlendirme Host'u Nedir?

Yönlendirme Host'u, gelen alan adından gelen istekleri yönlendirir ve
görüntüleyiciyi başka bir alan adına yönlendirir.

Bu tür bir host kullanmanın en yaygın nedeni, web sitenizin alan adı değiştiğinde
ancak hala eski alan adına işaret eden arama motoru veya referans bağlantılarınız olduğunda ortaya çıkar.

7 changes: 7 additions & 0 deletions frontend/src/locale/src/HelpDoc/tr/Streams.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
## Akış Nedir?

Nginx için nispeten yeni bir özellik olan Akış, TCP/UDP
trafiğini doğrudan ağdaki başka bir bilgisayara iletmek için hizmet edecektir.

Oyun sunucuları, FTP veya SSH sunucuları çalıştırıyorsanız bu işinize yarayabilir.

7 changes: 7 additions & 0 deletions frontend/src/locale/src/HelpDoc/tr/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
export * as AccessLists from "./AccessLists.md";
export * as Certificates from "./Certificates.md";
export * as DeadHosts from "./DeadHosts.md";
export * as ProxyHosts from "./ProxyHosts.md";
export * as RedirectionHosts from "./RedirectionHosts.md";
export * as Streams from "./Streams.md";

3 changes: 3 additions & 0 deletions frontend/src/locale/src/lang-list.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,5 +37,8 @@
},
"locale-bg-BG": {
"defaultMessage": "Български"
},
"locale-tr-TR": {
"defaultMessage": "Türkçe"
}
}
Loading