-
Notifications
You must be signed in to change notification settings - Fork 46
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
21 changed files
with
1,462 additions
and
197 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,30 +1,50 @@ | ||
use chardet::{charset2encoding, detect}; | ||
use charset_normalizer_rs::from_bytes; | ||
use encoding::label::encoding_from_whatwg_label; | ||
use encoding::DecoderTrap; | ||
|
||
pub fn decode_buffer(buf: Vec<u8>) -> String { | ||
let result = detect(&buf); | ||
let mut str_encoding = charset2encoding(&result.0); | ||
// let's just say it's cp1251 if encoding is not detected | ||
// FIXME: find a way to actually detect cp1251 and cp1252 from together | ||
pub fn decode_buffer(buf: Vec<u8>) -> (String, String, String) { | ||
let buff_output: String; | ||
let first_encoding: String; | ||
let second_encoding: String; | ||
let mut str_encoding: String; | ||
|
||
if result.0 == "MacCyrillic" | ||
|| (result.0 == "KOI8-R" && result.1 < 0.7 && result.2 == "Russian") | ||
// chardet | ||
first_encoding = charset2encoding(&detect(&buf).0).to_string(); | ||
|
||
// charset_normalizer_rs | ||
second_encoding = match from_bytes(&buf, None).get_best() { | ||
Some(cd) => cd.encoding().to_string(), | ||
None => "not_found".to_string(), | ||
}; | ||
|
||
str_encoding = first_encoding.clone(); | ||
|
||
if first_encoding == "KOI8-R" | ||
|| first_encoding == "MacCyrillic" | ||
|| first_encoding == "x-mac-cyrillic" | ||
{ | ||
str_encoding = "cp1251"; | ||
str_encoding = "cp1251".to_string(); | ||
} | ||
|
||
if str_encoding.len() < 1 { | ||
str_encoding = "cp1251"; | ||
if second_encoding == "koi8-r" || second_encoding == "macintosh" || second_encoding == "ibm866" | ||
{ | ||
str_encoding = "cp1251".to_string(); | ||
} | ||
|
||
let coder = encoding_from_whatwg_label(str_encoding); | ||
// if str_encoding.len() < 1 { | ||
// str_encoding = "cp1251".to_string(); | ||
// } | ||
|
||
let coder = encoding_from_whatwg_label(str_encoding.as_str()); | ||
if coder.is_some() { | ||
coder | ||
buff_output = coder | ||
.unwrap() | ||
.decode(&buf, DecoderTrap::Ignore) | ||
.expect("Error") | ||
.expect("Error"); | ||
} else { | ||
String::from_utf8_lossy(buf.as_slice()).to_string() | ||
buff_output = String::from_utf8_lossy(buf.as_slice()).to_string(); | ||
} | ||
|
||
(buff_output, first_encoding, second_encoding) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
export default { | ||
favorites: "المفضلة", | ||
internet: "إنترنت", | ||
partners: "الشركاء", | ||
recently_joined: "إنضم مؤخرًا", | ||
nickname: "الاسم المستعار", | ||
settings: "إعدادات", | ||
minimize: "تصغير", | ||
maximize: "تكبير", | ||
close: "غلق", | ||
add_server_modal_description_1: "أدخل الخادم المطلوب يدويًا.", | ||
add_server_modal_description_2: "مثال: 127.0.0.1:7777", | ||
add: "أضف", | ||
server: "الخادم", | ||
address: "عنوان", | ||
players: "اللاعبين", | ||
server_join_prompt_enter_password: | ||
"هذا الخادم محمي، الرجاء إدخال كلمة المرور", | ||
server_join_prompt_enter_password_input_placeholder: "أدخل كلمة المرور...", | ||
server_join_prompt_nickname_input_placeholder: "أدخل الاسم المستعار...", | ||
connect: "إتصال", | ||
copy: "نسخ", | ||
remove_from_favorites: "إزالة من المفضلة", | ||
add_to_favorites: "أضف الى المفضلة", | ||
filters: "المرشحات", | ||
filter_only_omp_servers: "خوادم OpenMP فقط", | ||
filter_non_empty_servers: "خوادم غير فارغة", | ||
filter_unpassworded_servers: "خوادم بدون كلمات مرور", | ||
rule: "القاعدة", | ||
value: "القيمة", | ||
player: "لاعب", | ||
score: "نتيجة", | ||
locked: "مقفل", | ||
unlocked: "بدون قفل", | ||
openmp_server: "خادم OpenMP", | ||
name: "اسم", | ||
ping: "بينغ", | ||
mode: "مود", | ||
filter_servers: "تصفية الخوادم", | ||
search_for_server_hostname_mode: "البحث عن خوادم عن طريق الاسم أو المود", | ||
clear_recently_joined_list: "امسح قائمة الخوادم المنظمة مؤخرًا", | ||
refresh_servers: "تحديث السيرفرات", | ||
play: "إلعب", | ||
remove_selected_server_from_favorites: | ||
"إزالة الخادم المحدد من المفضلة", | ||
add_selected_server_to_favorites: "إضافة الخادم المحدد إلى المفضلة", | ||
add_server: "أضف الخادم", | ||
hide_player_and_rule_list: "إخفاء قائمة اللاعبين والقواعد", | ||
show_player_and_rule_list: "عرض قائمة اللاعبين والقواعد", | ||
copy_server_info: "نسخ معلومات الخادم", | ||
settings_gta_path_input_label: | ||
"͏مسار GTA: San Andreas (حيث تم تثبيت SA-MP أيضًا)", | ||
browse: "تصفح", | ||
settings_import_nickname_gta_path_from_samp: | ||
"قم باستيراد الإسم المستعار ومسار gtasa من إعدادات SA-MP", | ||
settings_import_samp_favorite_list: "استيراد قائمة المفضلة من بيانات SA-MP", | ||
settings_reset_application_data: | ||
"إعادة ضبط بيانات التطبيق (مسح الإعدادات والقوائم)", | ||
settings_new_update_available: "⚠ تحديث جديد متاح. اضغط للتحميل! ⚠", | ||
settings_credits_made_by: "صنعت بـ ❤️ بواسطة", | ||
settings_credits_view_source_on_github: "عرض كود المصدر على GithHub", | ||
update_modal_update_available_title: "تحديث جديد!", | ||
update_modal_update_available_description: | ||
'مشغل بإصدار بناء جديد متاح!\nإصدار بناء المشغل الخاص بك: {{ version }}\nإصدار بناء المشغل الحالي: {{ newVersion }}\nانقر على "تنزيل" لفتح صفحة الإصدار', | ||
download: "تحميل", | ||
update_modal_remind_me_next_time: "ليس الآن", | ||
update_modal_skip_this_update: "تجاهل هذا الإصدار", | ||
gta_path_modal_cant_find_game_title: "لعبة GTA San Andreas غير موجودة!", | ||
gta_path_modal_cant_find_game_description: | ||
'لا يمكن العثور على GTA San Andreas في هذا الدليل:\n - "{{ path }}"\nغير قادر على العثور على "gta_sa.exe" في المسار المحدد لديك.', | ||
open_settings: "أفتح الإعدادات", | ||
cancel: "إلغاء", | ||
gta_path_modal_cant_find_samp_title: "لم يتم العثور على SA-MP!", | ||
gta_path_modal_cant_find_samp_description: | ||
'لا يمكن العثور على تثبيت SA-MP في هذا الدليل:\n - "{{ path }}"\nغير قادر على العثور على "samp.dll" في المسار المحدد لديك.\n\nإذا لم يكن برنامج SA-MP مثبتًا لديك، فيمكنك تنزيله من https://sa-mp.mp/ بالنقر فوق **تنزيل**.', | ||
notification_add_to_favorites_title: "تمت إضافتها إلى المفضلة!", | ||
notification_add_to_favorites_description: | ||
"تمت إضافة الخادم {{ server }} إلى قائمة المفضلة لديك.", | ||
}; |
Oops, something went wrong.