Merge branch 'StarCitizenToolBox:main' into main

This commit is contained in:
澄清石灰水 2024-05-05 18:46:43 +08:00 committed by GitHub
commit 3452d99de6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
32 changed files with 4003 additions and 1509 deletions

View File

@ -1,531 +0,0 @@
{
"class_keys": [
{
"id": "location",
"class_name": "地点",
"keys": [
"ATC_.*",
"Bacchus.*",
"Cano.*",
"Castra.*",
".*_QT",
"Crus_HistMarker_.*",
"Delamar.*",
"Ellis.*",
"Enroll_.*",
".*_QuantumMarker_.*",
"Goss.*",
"Hadrian.*",
"Hurston_JumpPoint_.*",
"Jurisdictions_Name_.*",
"LandingPad_.*",
"Levski_Shop_Teach.*",
"Lorville_.*",
"Magnus.*",
"MiningClaim_.*",
"MiningClaims_Desc_.*",
"NavBeacon_.*",
"NavPoint_.*",
"Nav_.*",
"Navpoint_.*",
"Nyx.*",
"Orison_Destination_.*",
"Oso.*",
"Pyro.*",
"QT_.*",
"RR_.*",
"Shubin_.*",
"Solar_system_.*",
"Stanton.*",
"Starfarer_Wreckage_QT_.*",
"Taranis.*",
"Tarpits.*",
"Tayac.*",
"Terra.*",
"Virgil.*",
"area_.*",
"cargodeck_.*",
"dockingport_.*",
"garage_.*",
"hangar_.*",
"landing_pad_.*",
"pyro_.*",
"room_.*",
"security_.*",
"select_.*",
"shop_name_.*",
"vehicle_room_.*",
"warning_.*",
"weapon_stats.*",
"weapons_heal_.*"
]
},
{
"id": "ui",
"class_name": "UI/HUD",
"keys": [
".*_RepUI_.*",
"CharacterCustomizer_.*",
".*_OEM_UI_.*",
"DownloadConnectivity_.*",
"DownloadError_.*",
"DownloadStalled_.*",
"DownloadState_.*",
"Download_BrowseForFolder",
"Exit_Screen_.*",
"FW2022_DatapadScreen_.*",
"FW2022_IFFIscreen_.*",
"FW2022_TransferScreen_.*",
"FW22_NT_Journal_Body_.*",
".*_DisplayName_.*",
"FreightElevator_.*",
"Frontend_.*",
"Fines_.*",
"FireMode_.*",
"GraceWarnings_.*",
"HUD_.*",
"Heads_Male_.*",
"Hints_.*",
"Human_Crew_.*",
"Human_First_Names_.*",
"Human_Nicknames_.*",
"Human_Security_Titles_.*",
"Human_Surnames_.*",
"HurDynDrugUGF_.*",
"HurDynMining_.*",
"HurstonSecurity_.*",
"Inner_.*",
"Kareah_.*",
"KeypadButton_.*",
"KeypadDisplay_.*",
"Map_Header_.*",
"Maps_.*",
"Marker_.*",
"Markers_.*",
"MurderSpree.*",
"NPC_Interact_Generic_.*",
"Out_of_Quantum_fuel.*",
"Oxygen_Screen_.*",
"PAUSE_OPTIONS_.*",
"PBay_.*",
"PIT_.*",
"PrisonKeypadPass_.*",
"Prison_.*",
"Prisoner.*",
"RN_.*",
"ShipSelector_.*",
"SkyLine_.*",
"Takedown.*",
"UEERanks_.*",
"UGF_.*",
"UI_.*",
"UnitedWorkersOfHurston_.*",
"Usable_CommTower_.*",
"Usable_Terminal_.*",
"Vehicle_Container_.*",
"actor_.*",
"ad_.*",
"airlock_.*",
"annun_.*",
"cargoTransfer_HUD_.*",
"cargo_.*",
"cc_.*",
"chat_.*",
"citizencon16_.*",
"cockpit_screen_.*",
"comm_.*",
"comms_.*",
"concate_.*",
"constellation_rear_tube.*",
"crate_panel_.*",
"defend_UGF_.*",
"dfm_.*",
"diff_notification_ui_.*",
"docking_.*",
"ea_popup_.*",
"ea_ui_.*",
"elevator_.*",
"engineering_.*",
"entrance_.*",
"fine_terminal_.*",
"flightHUD_.*",
"frontend_.*",
"generic_.*",
"global_terminal_.*",
"group_.*",
"hack_program_.*",
"hud_.*",
"infopanel_.*",
"innerthought_.*",
"input_.*",
"install_.*",
"interaction_.*",
"interiormap_.*",
"invictus_.*",
"journal_.*",
"kiosk_.*",
"law_.*",
"lens_.*",
"loadout_.*",
"mG_.*",
"masterMode_.*",
"me_.*",
"med_.*",
"medbed_.*",
"mfd_.*",
"mm_LobbyStatus_.*",
"mobiGlas_.*",
"mobiglas_.*",
"navitem_.*",
"net_dialog_.*",
"operatorMode_.*",
"panel_.*",
"pause_.*",
"pit_.*",
"port_Name.*",
"quantum_hud_.*",
"rc_ScanInfo_.*",
"refinery_ui_.*",
"refueling_HUD_.*",
"refueling_ui_.*",
"respawn_hud_.*",
"salvage_.*",
"scan_data_.*",
"scrambleracesubmissions_.*",
"shop_ui_.*",
"sm_ui_.*",
"spaceship_.*",
"starmap_.*",
"stomp_warning_.*",
"swapWheel_.*",
"system_.*",
"target_hud_.*",
"terminal_.*",
"text_.*",
"transit_.*",
"tutorial_.*",
"ui_.*",
"unittest_.*",
"usable_.*",
"vehicle_Type.*",
"vehicle_class_.*",
"vehicle_deck_.*",
"vehicle_focus_.*",
"vehicle_gunnery_hud_.*",
"vehicle_interactor_.*"
]
},
{
"class_name": "物品",
"id": "thing",
"keys": [
"BarMenu_.*",
"FLOOR_Flair_Items.*",
"FPS_AI_.*",
"ItemPort_port_NameCooler.*",
"Item_.*",
"destoryitems_.*",
"destroyItems_.*",
"item.*",
"kopion_.*"
]
},
{
"class_name": "载具",
"id": "vehicle",
"keys": [
"vehicle_Name.*",
"vehicle_name.*",
"vehicle_Desc.*",
"vehicl_Desc.*",
"vehicel_Desc.*",
"vehicles_.*"
]
},
{
"id": "mission",
"class_name": "任务/日志",
"keys": [
"BasicSalvage_.*",
"BitZeros_.*",
"BHG_.*",
"BlacJac_.*",
"BountyHuntersGuild_.*",
"BrightSky_.*",
"CThing_.*",
"ChainedDeliveryModule_.*",
"Clovis_Safe_.*",
"CommArray_.*",
"Commissary_.*",
"Community_Service.*",
"CovalexIC_.*",
"Constantine_.*",
"Covalex_.*",
"Criminal_.*",
"CrusaderSecurity_.*",
"Crusader_ReputationJournal_.*",
"Crusader_from_.*",
"DC_room_.*",
"DataHeist_.*",
"Datapad_.*",
"Delivery_.*",
"Derelict_.*",
"DestroyDebris_.*",
"DestroyEvidence_.*",
"DestroyObj_Text_.*",
"DistributionCenter_.*",
"DynamicEvent_.*",
"Eckhart_.*",
"FPSPVEVS_.*",
"FTL_.*",
"FW22_NT_Journal_Title_.*",
"ForceDepletion_.*",
"GLoc_Bartender_Conv_.*",
"GMCapture_.*",
"GarethWIP_.*",
"Gathering_.*",
"Gen_NPC_Conv_.*",
"Greeter_.*",
"HeadHunters_.*",
"HexPenetrator_.*",
"Hurston_ReputationJournal_.*",
"Hurston_bounty_.*",
"Hurston_destroystash_.*",
"Hurston_eliminateall_.*",
"Hurston_eliminatespecifc_.*",
"Hurston_killcreatureslocation_.*",
"Hurston_searchbody_.*",
"IAE2951_.*",
"IAE2952_.*",
"IAE952_.*",
"Info_Kiosks_.*",
"Infractions_.*",
"Investigation_.*",
"Invictus2951_.*",
"Invictus_.*",
"JournalEntry_.*",
"JournalText.*",
"Journal_.*",
"Jumptown2_.*",
"JurisdictionJournals_.*",
"Kill_Civ_.*",
"LingFamily_.*",
"Ling_.*",
"LocalDelivery_.*",
"Local_Delivery_.*",
"MG_.*",
"MTPS_.*",
"MTProtectiveServices_.*",
"MilesEckhart_.*",
"Mission.*",
"Missions.*",
"Mtps_killallcreatures_.*",
"NB_.*",
"NPE_.*",
"NTLockdown_.*",
"Name_.*",
"NorthRock_.*",
"Orison_CRUShowroom_.*",
"Orison_DiscoverySpot_.*",
"OutlawSweep_.*",
"Outpost_.*",
"Pacheco_.*",
"PreventData_.*",
"ProtLife_.*",
"RAIN_.*",
"RacingRep_.*",
"Racing_Ship_DisplayName.*",
"RedWind_.*",
"RepScope_.*",
"RepStanding_.*",
"RepairOxygenKiosk_.*",
"Reststop_.*",
"RetakeLocation_.*",
"RetrieveConsignment_.*",
"RetrieveDatapad_.*",
"ReturnObjective_.*",
"ReturnToLocation_.*",
"Roughready_.*",
"Ruto_.*",
"SB_.*",
"SalvageContractor_.*",
"ScanVehicleLocationModule_.*",
"ScrambleRace_.*",
"ScreamingGalsons_.*",
"ServiceBeacon_.*",
"ShipName_.*",
"ShipStrip_.*",
"Special_Event_.*",
"Station_Illegal_.*",
"Staton4_NewBab_.*",
"StealEvidence_.*",
"TarPits_.*",
"Temp_.*",
"Terminal_.*",
"Text_.*",
"TimeSensative_.*",
"TimeSensitive_.*",
"TimeTrial_.*",
"TimedSalvage_.*",
"TransportGuild_.*",
"TravelObjective_.*",
"Tut.*",
"Tutorial.*",
"UDM_.*",
"Vaughn_.*",
"VendingMachien_.*",
"VendingMachin_.*",
"VendingMachine_.*",
"WSTR_.*",
"WantedLevel5_.*",
"XenoThreat_.*",
"acquirepart_.*",
"alt_criminal_collect_reclaimer_desc.*",
"aracersurvivesrace_.*",
"assassin_.*",
"assassination_.*",
"asteroidfield_.*",
"basesweep_.*",
"bitzeros_.*",
"blacJac_.*",
"blackbox_.*",
"blackboxillegal_.*",
"blackboxlegal_.*",
"boarders_.*",
"bounty_.*",
"bountymarker_.*",
"cave_.*",
"ccdemo19_.*",
"cdf_.*",
"cfp_.*",
"civilian_.*",
"claimsweep_.*",
"collect_reclaimer_.*",
"combatassist_.*",
"commarray_hack_.*",
"commarray_repair_.*",
"confirmkill_.*",
"constantine_.*",
"criminal_.*",
"crus_.*",
"crusader_.*",
"delivery_.*",
"deliverydecoy_.*",
"deploypiggyback_.*",
"deployprobe_.*",
"destroyblade_.*",
"destroyitem_.*",
"destroyitems_.*",
"destroyitemsspace_.*",
"destroyprobe_.*",
"destroyprobeillegal_.*",
"destroyprobelegal_.*",
"destroyprove_illegal_.*",
"destroystash_.*",
"dfmcrusader_.*",
"distraction_.*",
"distractionkill_.*",
"dusters_.*",
"ecn_.*",
"eliminatespecificracer_.*",
"escort_.*",
"escortscan_.*",
"fleetweek2950_.*",
"fps_.*",
"goupbounty_.*",
"groupbounty_.*",
"hack_prevent_.*",
"hdactivist_.*",
"headhunters_.*",
"hurston_.*",
"iae2953_.*",
"kareah_.*",
"kareahsweep_.*",
"killallanimal_.*",
"killallanimals_.*",
"killallkopion_.*",
"killallmarok_.*",
"killanimalslocation_.*",
"killatlocation_.*",
"killcollect_.*",
"killcollectanimal_.*",
"killcollectkopion_.*",
"killcollectmarok_.*",
"loc_.*",
"manufacturer_.*",
"meet_miles_.*",
"mgClovus_.*",
"mg_*",
"missionManager_.*",
"mission_.*",
"mtps_.*",
"murderspree_.*",
"mustcomesecond_.*",
"ninetails_.*",
"northrock_.*",
"notification_.*",
"openbounty_.*",
"outlawsweep_.*",
"outpost_.*",
"p_protectandresupply_.*",
"p_showdown_.*",
"pickanddestroy_.*",
"planetcollect_.*",
"prisonerbreak_.*",
"prisonermanifest_.*",
"protlife_.*",
"racelastforxcheckpoints_.*",
"recoverspace_.*",
"recoverstash_.*",
"recoverstolen_.*",
"recovery_.*",
"redwind_.*",
"roughready_.*",
"sandbox_.*",
"seachbody_.*",
"searchbody_.*",
"searchcrew_.*",
"sectorsweep_.*",
"shubin_.*",
"shuttle_.*",
"spacecargo_.*",
"spacecollect_.*",
"spacesteal_.*",
"stanton.*",
"stealfromship_.*",
"stealitem_.*",
"takecheckpointsxandy_.*",
"ugf_.*",
"vaughn_.*",
"winwithoutkillingracer_.*",
"xdamagetoracersinorder_.*",
"xenothreat_.*"
]
},
{
"id": "subtitle",
"class_name": "字幕",
"keys": [
"DXSH_",
"Dlg_SC_.*",
"FW22_NT_Datapad_.*",
"FleetWeek2950_.*",
"GenResponse_.*",
"GenericLanding_.*",
"IT_Shared_.*",
"Imperilled_.*",
"MKTG_CUSTOMS1_CV_Access_.*",
"PH_PU_.*",
"PU_.*",
"Pacheco_.*",
"SC_ac_.*",
"SC_lz_.*",
"SM_SIMANN1_.*",
"contract_.*",
"covalex_.*",
"covalexrand_.*",
"covalexspec_.*"
]
}
]
}

View File

@ -1,322 +0,0 @@
[
{
"key": "r_ssdo",
"name": "屏幕光线后处理",
"info": "调整光线后处理等级",
"type": "int",
"max": 2,
"min": 0,
"value": 1,
"group": "图形(修改后建议清理着色器)"
},
{
"key": "r_AntialiasingMode",
"name": "抗锯齿",
"info": "0 关闭1 SMAA2 时间过滤+SMAA3 时间滤波和投影矩阵抖动的 SMAA",
"type": "int",
"max": 3,
"min": 0,
"value": 2,
"group": "图形(修改后建议清理着色器)"
},
{
"key": "sys_spec_gameeffects",
"name": "特效等级",
"info": "游戏特效等级",
"type": "int",
"max": 4,
"min": 1,
"value": 2,
"group": "图形(修改后建议清理着色器)"
},
{
"key": "sys_spec_texture",
"name": "纹理等级",
"info": "模型纹理细节",
"type": "int",
"max": 3,
"min": 1,
"value": 2,
"group": "图形(修改后建议清理着色器)"
},
{
"key": "sys_spec_volumetriceffects",
"name": "体积效果",
"info": "体积云、体积光照等",
"type": "int",
"max": 4,
"min": 1,
"value": 2,
"group": "图形(修改后建议清理着色器)"
},
{
"key": "sys_spec_water",
"name": "水体效果",
"info": "各种水的等级",
"type": "int",
"max": 4,
"min": 1,
"value": 2,
"group": "图形(修改后建议清理着色器)"
},
{
"key": "sys_spec_objectdetail",
"name": "对象细节",
"info": "模型对象细节影响LOD等..",
"type": "int",
"max": 4,
"min": 1,
"value": 2,
"group": "图形(修改后建议清理着色器)"
},
{
"key": "sys_spec_particles",
"name": "粒子细节",
"info": "",
"type": "int",
"max": 4,
"min": 1,
"value": 2,
"group": "图形(修改后建议清理着色器)"
},
{
"key": "sys_spec_physics",
"name": "物理细节",
"info": "物理效果范围",
"type": "int",
"max": 4,
"min": 1,
"value": 2,
"group": "图形(修改后建议清理着色器)"
},
{
"key": "sys_spec_shading",
"name": "着色器细节",
"info": "着色器相关",
"type": "int",
"max": 4,
"min": 1,
"value": 2,
"group": "图形(修改后建议清理着色器)"
},
{
"key": "sys_spec_shadows",
"name": "阴影细节",
"info": "阴影效果",
"type": "int",
"max": 4,
"min": 1,
"value": 2,
"group": "图形(修改后建议清理着色器)"
},
{
"key": "sys_spec_postprocessing",
"name": "后处理细节",
"info": "后处理着色器,动态模糊效果 等",
"type": "int",
"max": 4,
"min": 1,
"value": 2,
"group": "图形(修改后建议清理着色器)"
},
{
"key": "q_Renderer",
"name": "渲染器质量",
"info": "cryengine 渲染器质量",
"type": "int",
"max": 3,
"min": 0,
"value": 2,
"group": "图形(修改后建议清理着色器)"
},
{
"key": "q_ShaderDecal",
"name": "贴花质量",
"info": "LOGO、标志等",
"type": "int",
"max": 3,
"min": 0,
"value": 2,
"group": "图形(修改后建议清理着色器)"
},
{
"key": "q_ShaderPostProcess",
"name": "着色器质量",
"info": "",
"type": "int",
"max": 3,
"min": 0,
"value": 3,
"group": "图形(修改后建议清理着色器)"
},
{
"key": "q_ShaderFX",
"name": "FX 质量",
"info": "",
"type": "int",
"max": 3,
"min": 0,
"value": 2,
"group": "图形(修改后建议清理着色器)"
},
{
"key": "q_ShaderGeneral",
"name": "常规质量",
"info": "整体模型质量",
"type": "int",
"max": 3,
"min": 0,
"value": 2,
"group": "图形(修改后建议清理着色器)"
},
{
"key": "q_ShaderGlass",
"name": "玻璃质量",
"info": "窗、镜子等",
"type": "int",
"max": 3,
"min": 0,
"value": 2,
"group": "图形(修改后建议清理着色器)"
},
{
"key": "q_ShaderHDR",
"name": "HDR质量",
"info": "HDR色差亮度层级 处理 等",
"type": "int",
"max": 3,
"min": 0,
"value": 2,
"group": "图形(修改后建议清理着色器)"
},
{
"key": "q_ShaderParticle",
"name": "粒子质量",
"info": "粒子效果质量",
"type": "int",
"max": 3,
"min": 0,
"value": 2,
"group": "图形(修改后建议清理着色器)"
},
{
"key": "q_ShaderTerrain",
"name": "地面质量",
"info": "",
"type": "int",
"max": 3,
"min": 0,
"value": 2,
"group": "图形(修改后建议清理着色器)"
},
{
"key": "q_ShaderShadow",
"name": "阴影质量",
"info": "",
"type": "int",
"max": 3,
"min": 0,
"value": 2,
"group": "图形(修改后建议清理着色器)"
},
{
"key": "q_ShaderSky",
"name": "天空质量",
"info": "",
"type": "int",
"max": 3,
"min": 0,
"value": 2,
"group": "图形(修改后建议清理着色器)"
},
{
"key": "e_ParticlesObjectCollisions",
"name": "粒子碰撞",
"info": "1 仅静态粒子 2 包括动态粒子",
"type": "int",
"max": 2,
"min": 1,
"value": 1,
"group": "图形(修改后建议清理着色器)"
},
{
"key": "r_displayinfo",
"name": "屏幕信息(展示帧率)",
"info": "在屏幕右上角展示帧率,服务器信息等",
"type": "int",
"max": 4,
"min": 0,
"value": 1,
"group": "设置"
},
{
"key": "sys_maxFps",
"name": "最大帧率",
"info": "调整游戏最高帧率0为不限制",
"type": "int",
"max": 300,
"min": 0,
"value": 0,
"group": "设置"
},
{
"key": "r_DisplaySessionInfo",
"name": "显示会话信息",
"info": "开启后在屏幕上显示一个二维码,用于反馈时让 CIG 快速定位相关信息",
"type": "bool",
"max": 1,
"min": 0,
"value": 0,
"group": "设置"
},
{
"key": "r_VSync",
"name": "垂直同步",
"info": "开启以防止撕裂,关闭以提高帧率",
"type": "bool",
"max": 1,
"min": 0,
"value": 0,
"group": "设置"
},
{
"key": "r_MotionBlur",
"name": "动态模糊",
"info": "开启以提高运动感,关闭提升观感",
"type": "bool",
"max": 1,
"min": 0,
"value": 0,
"group": "设置"
},
{
"key": "cl_fov",
"name": "FOV",
"info": "设置视角FOV",
"type": "int",
"max": 160,
"min": 25,
"value": 90,
"group": "设置"
},
{
"key": "ui_disableScreenFade",
"name": "UI 淡入淡出动画",
"info": "",
"type": "bool",
"max": 1,
"min": 0,
"value": 1,
"group": "设置"
},
{
"key": "customize",
"name": "自定义参数",
"info": "",
"type": "customize",
"max": 1,
"min": 0,
"value": 1,
"group": "自定义"
}
]

View File

@ -8,7 +8,7 @@ import 'package:starcitizen_doctor/common/utils/log.dart';
class BinaryModuleConf {
static const _modules = {
"aria2c": "0",
"unp4kc": "0",
"unp4kc": "1",
};
static Future extractModule(List<String> modules, String workingDir) async {

View File

@ -42,6 +42,8 @@ class AppAdvancedLocalizationClassKeysData {
Map<String, String> valuesMap = {};
AppAdvancedLocalizationClassKeysDataMode mode =
AppAdvancedLocalizationClassKeysDataMode.localization;
bool lockMod = false;
bool isWorking = false;
Map<String, dynamic> toJson() {
final map = <String, dynamic>{};
@ -56,4 +58,5 @@ enum AppAdvancedLocalizationClassKeysDataMode {
unLocalization,
localization,
mixed,
mixedNewline,
}

View File

@ -90,60 +90,87 @@ class MessageLookup extends MessageLookupByLibrary {
static String m29(v0) => "${v0} Day ";
static String m30(v0) =>
static String m30(v0) => "Localization version has been loaded: ${v0}";
static String m31(v0) => "Advanced Localization -> ${v0}";
static String m32(v0, v1) =>
"Localization text lines: ${v0} P4K text lines: ${v1}";
static String m33(v0) => "Preview: ${v0}";
static String m34(v0) =>
"You have a new version of the Localization you installed in ${v0}!";
static String m31(v1, v2) =>
static String m35(v1, v2) =>
"RSI server report version number: ${v1}\n\nLocal version number: ${v2}\n\nIt is recommended to use RSI Launcher to update the game!";
static String m32(v0) => "Channel: ${v0}";
static String m36(v0) => "Channel: ${v0}";
static String m33(v0) => "Custom_ ${v0}";
static String m37(v0) => "Custom_ ${v0}";
static String m34(v0) => "Enable (${v0}):";
static String m38(v0) => "Enable (${v0}):";
static String m35(v0) => "Install an error!\n\n ${v0}";
static String m39(v0) => "Install an error!\n\n ${v0}";
static String m36(v0) => "The installed version: ${v0}";
static String m40(v0) => "The installed version: ${v0}";
static String m37(v0) => "Update Time: ${v0}";
static String m41(v0) => "Update Time: ${v0}";
static String m38(v0) => "Version number: ${v0}";
static String m42(v0) => "Version number: ${v0}";
static String m39(v0) => "Current status: ${v0}";
static String m43(v0) => "Current status: ${v0}";
static String m40(v0, v1, v2) =>
static String m44(v0, v1, v2) =>
"${v0} minimum value: ${v1} / maximum value: ${v2}";
static String m41(v0) => "Performance Optimization -> ${v0}";
static String m42(v0) =>
"The cache size ${v0} MB, clean up the Localization -based file cache of the download of the box, will not affect the installed Localization";
static String m43(v0) =>
"Core quantity that has been set: ${v0} (This function is suitable for the box -click startup or RSI starter manager mode on the homepage, which is not enabled when it is 0)";
static String m44(v0) =>
"Failure to clean up, please remove manually, file location: ${v0}";
static String m45(v0) => "Error: ${v0}";
static String m45(v0) => "Performance Optimization -> ${v0}";
static String m46(v0) =>
"Initialization failed, please take a screenshot report to the developer. ${v0}";
"The cache size ${v0} MB, clean up the Localization -based file cache of the download of the box, will not affect the installed Localization";
static String m47(v0) =>
"If you have a problem with the NVME patch, run this tool. (It may cause game installation/update to be unavailable.)\n\nCurrent patch status: ${v0}";
"Core quantity that has been set: ${v0} (This function is suitable for the box -click startup or RSI starter manager mode on the homepage, which is not enabled when it is 0)";
static String m48(v0) =>
"Failure to clean up, please remove manually, file location: ${v0}";
static String m49(v0) => "Error: ${v0}";
static String m50(v0) =>
"Initialization failed, please take a screenshot report to the developer. ${v0}";
static String m51(v0) =>
"If you have a problem with the NVME patch, run this tool. (It may cause game installation/update to be unavailable.)\n\nCurrent patch status: ${v0}";
static String m52(v0) =>
"In some cases, the LOG file of the RSI promoter will be damaged, causing the problem to be scanned, and using this tool to clean up the damaged log file.\n\nCurrent log file size: ${v0} MB";
static String m49(v0) =>
static String m53(v0) =>
"If the game screen appears abnormal or the version is updated, you can use the tool to clean the expired color (when it is greater than 500m, it is recommended to clean it)\n\nCache size: ${v0} MB";
static String m50(v0, v1, v2, v3, v4) =>
static String m54(v0, v1, v2, v3, v4) =>
"System: ${v0}\n\nProcessor: ${v1}\n\nMemory size: ${v2} gb\n\nGraphics card information:\n${v3}\n\nStorage information:\n${v4}\n\n";
static String m51(v0) => "Failure to handle! : ${v0}";
static String m55(v0) => "Failure to handle! : ${v0}";
static String m56(v0) => "Read the starter information failure: ${v0}";
static String m57(v0) => "Patch status: ${v0}";
static String m58(v0) => "Internal version information of the starter: ${v0}";
static String m59(v0) => "Open the file: ${v0}";
static String m60(v0, v1) => "After loading: ${v0} a file, time: ${v1} ms";
static String m61(v0) => "Read file: ${v0} ...";
static String m62(v0, v1) => "Processing files (${v0}/${v1}) ...";
static String m63(v0) => "Unknown file type\n${v0}";
static String m64(v0) => "P4k viewer -> ${v0}";
final messages = _notInlinedMessages(_notInlinedMessages);
static Map<String, Function> _notInlinedMessages(_) => <String, Function>{
@ -166,7 +193,7 @@ class MessageLookup extends MessageLookupByLibrary {
"about_analytics_total_users":
MessageLookupByLibrary.simpleMessage("Cumulative users"),
"about_analytics_units_times":
MessageLookupByLibrary.simpleMessage("Second-rate"),
MessageLookupByLibrary.simpleMessage("Times"),
"about_analytics_units_user":
MessageLookupByLibrary.simpleMessage("users"),
"about_app_description": MessageLookupByLibrary.simpleMessage(
@ -215,7 +242,7 @@ class MessageLookup extends MessageLookupByLibrary {
"app_splash_dialog_u_a_p_p": MessageLookupByLibrary.simpleMessage(
"User Agreement and Privacy Policy"),
"app_splash_dialog_u_a_p_p_content": MessageLookupByLibrary.simpleMessage(
"Thank you for choosing the SC Chinese box. We are committed to providing you with a safe, convenient and reliable experience. Before you start using your application, please read and agree to the following:\n\n 1. This application is an open source software under the GNU General Public License V3.0 protocol. You can use, modify, and distribute this software freely under the premise of obeying the agreement. Our source code is located at: [github.com/starCitizentoolBox/app] (https://github.com/starCitizantoolBox/app).\n2. The copyright of the Internet content in this application (including but not limited to localized documents, tool websites, news, videos, etc.) is created by its authors and is not part of GPL. Please use it under the corresponding authorization agreement.\n3. The official free release channels for this application are: [Microsoft App Store] (https://apps.microsoft.com/detail/9NF3SWFWNKL1) and [Official Website of Star Citizen Chinese] ), If you get from other third parties, please identify it carefully to avoid suffering from property losses.\n4. This application will send anonymous statistics to our server during use to improve software quality, and we will not collect any personal privacy information of your personal privacy.\n5. This application is supported by the community and has no direct connection with Cloud Imperium Games or other third -party commercial companies.\n6. We provide limited community support. If necessary, please go to the page to learn how to contact us."),
"Thank you for choosing the SCToolBox box. We are committed to providing you with a safe, convenient and reliable experience. Before you start using your application, please read and agree to the following:\n\n 1. This application is an open source software under the GNU General Public License V3.0 protocol. You can use, modify, and distribute this software freely under the premise of obeying the agreement. Our source code is located at: [github.com/starCitizentoolBox/app] (https://github.com/starCitizantoolBox/app).\n2. The copyright of the Internet content in this application (including but not limited to localized documents, tool websites, news, videos, etc.) is created by its authors and is not part of GPL. Please use it under the corresponding authorization agreement.\n3. The official free release channels for this application are: [Microsoft App Store] (https://apps.microsoft.com/detail/9NF3SWFWNKL1) and [Official Website of Star Citizen Chinese] ), If you get from other third parties, please identify it carefully to avoid suffering from property losses.\n4. This application will send anonymous statistics to our server during use to improve software quality, and we will not collect any personal privacy information of your personal privacy.\n5. This application is supported by the community and has no direct connection with Cloud Imperium Games or other third -party commercial companies.\n6. We provide limited community support. If necessary, please go to the page to learn how to contact us."),
"app_upgrade_action_next_time":
MessageLookupByLibrary.simpleMessage("Next time"),
"app_upgrade_action_update_now":
@ -517,7 +544,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("SC Official Localization"),
"home_action_title_star_citizen_website_localization":
MessageLookupByLibrary.simpleMessage(
"Star Citizen Website Sinicization"),
"Star Citizen Website Localization"),
"home_action_uex_localization":
MessageLookupByLibrary.simpleMessage("UEX Localization"),
"home_announcement_details":
@ -539,10 +566,76 @@ class MessageLookup extends MessageLookupByLibrary {
"This function requires an effective installation location"),
"home_install_location":
MessageLookupByLibrary.simpleMessage("Installation location:"),
"home_localization_action_advanced":
MessageLookupByLibrary.simpleMessage("Advanced Localization"),
"home_localization_action_install_customize":
MessageLookupByLibrary.simpleMessage("Install custom file"),
"home_localization_action_rsi_launcher_localization":
MessageLookupByLibrary.simpleMessage("RSILauncher Localization"),
"home_localization_advanced_action_install":
MessageLookupByLibrary.simpleMessage(
"Installation of Localization"),
"home_localization_advanced_action_mod_change":
MessageLookupByLibrary.simpleMessage(
"The text is being re -generated ..."),
"home_localization_advanced_action_mod_change_localization":
MessageLookupByLibrary.simpleMessage("Localization"),
"home_localization_advanced_action_mod_change_mixed":
MessageLookupByLibrary.simpleMessage("Bilingual"),
"home_localization_advanced_action_mod_change_mixed_newline":
MessageLookupByLibrary.simpleMessage("Bilingual (newline)"),
"home_localization_advanced_action_mod_change_un_localization":
MessageLookupByLibrary.simpleMessage("Original English"),
"home_localization_advanced_action_mode":
MessageLookupByLibrary.simpleMessage("Model"),
"home_localization_advanced_json_text_location_other":
MessageLookupByLibrary.simpleMessage("Location-Other"),
"home_localization_advanced_json_text_location_used":
MessageLookupByLibrary.simpleMessage("Location-Commonly used"),
"home_localization_advanced_json_text_mission_or_logs":
MessageLookupByLibrary.simpleMessage("Mission/Log"),
"home_localization_advanced_json_text_others":
MessageLookupByLibrary.simpleMessage("Other"),
"home_localization_advanced_json_text_subtitle":
MessageLookupByLibrary.simpleMessage("Subtitle"),
"home_localization_advanced_json_text_things_other":
MessageLookupByLibrary.simpleMessage("Items-Other"),
"home_localization_advanced_json_text_things_used":
MessageLookupByLibrary.simpleMessage("Items-Commonly used"),
"home_localization_advanced_json_text_ui_or_hud_or_menu":
MessageLookupByLibrary.simpleMessage("UI/HUD/menu"),
"home_localization_advanced_json_text_un_localization":
MessageLookupByLibrary.simpleMessage("Unwaver"),
"home_localization_advanced_json_text_vehicle_other":
MessageLookupByLibrary.simpleMessage("Vehicle-Other"),
"home_localization_advanced_json_text_vehicle_used":
MessageLookupByLibrary.simpleMessage("Vehicle-Commonly used"),
"home_localization_advanced_msg_classifying":
MessageLookupByLibrary.simpleMessage("Classified ..."),
"home_localization_advanced_msg_gen_localization_install":
MessageLookupByLibrary.simpleMessage(
"Install Localization file ..."),
"home_localization_advanced_msg_gen_localization_text":
MessageLookupByLibrary.simpleMessage(
"Generate Localization file ..."),
"home_localization_advanced_msg_reading_p4k":
MessageLookupByLibrary.simpleMessage("Read p4k file ..."),
"home_localization_advanced_msg_reading_server_localization_text":
MessageLookupByLibrary.simpleMessage("Get Localization text ..."),
"home_localization_advanced_msg_version": m30,
"home_localization_advanced_title": m31,
"home_localization_advanced_title_msg": m32,
"home_localization_advanced_title_preview": m33,
"home_localization_msg_no_note": MessageLookupByLibrary.simpleMessage(
"This version does not provide a description"),
"home_localization_msg_version_advanced":
MessageLookupByLibrary.simpleMessage("(Advanced)"),
"home_localization_new_version_available":
MessageLookupByLibrary.simpleMessage(
"Sinicization has a new version!"),
"home_localization_new_version_installed": m30,
"Localization has a new version!"),
"home_localization_new_version_installed": m34,
"home_localization_title_localization_tools":
MessageLookupByLibrary.simpleMessage("Localization tool"),
"home_login_action_title_box_one_click_launch":
MessageLookupByLibrary.simpleMessage("Box one -click start"),
"home_login_action_title_need_webview2_runtime":
@ -555,7 +648,7 @@ class MessageLookup extends MessageLookupByLibrary {
"home_login_info_one_click_launch_description":
MessageLookupByLibrary.simpleMessage(
"This feature can help you start the game more conveniently.\n\nTo ensure the security of the account, this function uses the Localization browser to retain the login status and will not save your password information (unless you enable the automatic filling function).\n\nWhen logging in to the account, please make sure your SCToolBox is downloaded from a trusted source."),
"home_login_info_rsi_server_report": m31,
"home_login_info_rsi_server_report": m35,
"home_login_title_launching_game":
MessageLookupByLibrary.simpleMessage("Launching game for you ..."),
"home_login_title_welcome_back":
@ -574,27 +667,26 @@ class MessageLookup extends MessageLookupByLibrary {
"localization_action_install":
MessageLookupByLibrary.simpleMessage("Install"),
"localization_action_translation_feedback":
MessageLookupByLibrary.simpleMessage("Localization feedback"),
MessageLookupByLibrary.simpleMessage("Feedback"),
"localization_action_uninstall_translation":
MessageLookupByLibrary.simpleMessage(
"Uninstallation of Localization"),
"localization_info_channel": m32,
MessageLookupByLibrary.simpleMessage("Uninstall"),
"localization_info_channel": m36,
"localization_info_community_translation":
MessageLookupByLibrary.simpleMessage("Community Localization"),
"localization_info_corrupted_file":
MessageLookupByLibrary.simpleMessage(
"The file is damaged, please download again"),
"localization_info_custom_file": m33,
"localization_info_custom_file": m37,
"localization_info_custom_files":
MessageLookupByLibrary.simpleMessage("Custom file"),
"localization_info_enabled": m34,
"localization_info_enabled": m38,
"localization_info_incompatible_translation_params_warning":
MessageLookupByLibrary.simpleMessage(
"User.cfg contains incompatible Localization parameters, which may be the residual information of the previous Localization file.\n\nThis may lead to ineffective or garbled Localization, click to confirm that you are removed with one click (it will not affect other configuration)."),
"localization_info_installation_error": m35,
"localization_info_installation_error": m39,
"localization_info_installed":
MessageLookupByLibrary.simpleMessage("Installed"),
"localization_info_installed_version": m36,
"localization_info_installed_version": m40,
"localization_info_language":
MessageLookupByLibrary.simpleMessage("Language: "),
"localization_info_machine_translation_warning":
@ -612,13 +704,12 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Localization status"),
"localization_info_unavailable":
MessageLookupByLibrary.simpleMessage("Unavailable"),
"localization_info_update_time": m37,
"localization_info_version_number": m38,
"localization_info_update_time": m41,
"localization_info_version_number": m42,
"performance_action_apply":
MessageLookupByLibrary.simpleMessage("Application"),
MessageLookupByLibrary.simpleMessage("Apply"),
"performance_action_apply_and_clear_shaders":
MessageLookupByLibrary.simpleMessage(
"Apply and clean up the color device (recommended)"),
MessageLookupByLibrary.simpleMessage("Apply and clean up"),
"performance_action_clear_shaders":
MessageLookupByLibrary.simpleMessage("Clean the color device"),
"performance_action_custom_parameters_input":
@ -626,20 +717,19 @@ class MessageLookup extends MessageLookupByLibrary {
"You can enter the custom parameters that are not included in the box here. Configuration example:\n\nR_DISPLAYINFO = 0\nr_vsync = 0"),
"performance_action_high": MessageLookupByLibrary.simpleMessage("High"),
"performance_action_info_preset_only_changes_graphics":
MessageLookupByLibrary.simpleMessage(
"(Preset only the graphic settings)"),
MessageLookupByLibrary.simpleMessage("(Only graphic)"),
"performance_action_low": MessageLookupByLibrary.simpleMessage("Low"),
"performance_action_medium":
MessageLookupByLibrary.simpleMessage("Middle"),
"performance_action_preset":
MessageLookupByLibrary.simpleMessage("Preset:"),
"performance_action_reset_to_default":
MessageLookupByLibrary.simpleMessage(" Reset to default "),
MessageLookupByLibrary.simpleMessage(" Reset"),
"performance_action_super":
MessageLookupByLibrary.simpleMessage("Super"),
"performance_info_applied":
MessageLookupByLibrary.simpleMessage("Applied"),
"performance_info_current_status": m39,
"performance_info_current_status": m43,
"performance_info_delete_config_file":
MessageLookupByLibrary.simpleMessage(
"Delete the configuration file ..."),
@ -654,7 +744,7 @@ class MessageLookup extends MessageLookupByLibrary {
"This function is very helpful for optimizing the bottleneck of the graphics card, but it may have a reverse effect on the CPU bottleneck. If your graphics card performance is strong, you can try to use better picture quality to obtain higher graphics card utilization."),
"performance_info_graphics":
MessageLookupByLibrary.simpleMessage("Graphic"),
"performance_info_min_max_values": m40,
"performance_info_min_max_values": m44,
"performance_info_not_applied":
MessageLookupByLibrary.simpleMessage("Unused"),
"performance_info_shader_clearing_warning":
@ -663,13 +753,139 @@ class MessageLookup extends MessageLookupByLibrary {
"performance_info_write_out_config_file":
MessageLookupByLibrary.simpleMessage(
"Write the configuration file"),
"performance_title_performance_optimization": m41,
"performance_json_text_antialiasing":
MessageLookupByLibrary.simpleMessage("Anti -aliasing"),
"performance_json_text_antialiasing_info":
MessageLookupByLibrary.simpleMessage(
"0 Close, 1 SMAA, 2 time filter+SMAA, 3 time filtering and projection matrix shake SMAA"),
"performance_json_text_custom_parameters":
MessageLookupByLibrary.simpleMessage("Custom parameter"),
"performance_json_text_display_session":
MessageLookupByLibrary.simpleMessage("Display session information"),
"performance_json_text_display_session_info":
MessageLookupByLibrary.simpleMessage(
"After turning on, display a QR code on the screen to allow CIG to quickly locate related information when feedback"),
"performance_json_text_displayinfo":
MessageLookupByLibrary.simpleMessage(
"Screen information (display frame rate)"),
"performance_json_text_displayinfo_info":
MessageLookupByLibrary.simpleMessage(
"Display frame rates, server information, etc. in the upper right corner of the screen"),
"performance_json_text_fov":
MessageLookupByLibrary.simpleMessage("Set viewing angle FOV"),
"performance_json_text_game_effects":
MessageLookupByLibrary.simpleMessage("Special effect level"),
"performance_json_text_game_effects_info":
MessageLookupByLibrary.simpleMessage("Game special effect level"),
"performance_json_text_max_fps":
MessageLookupByLibrary.simpleMessage("Maximum frame rate"),
"performance_json_text_max_fps_info":
MessageLookupByLibrary.simpleMessage(
"Adjust the maximum frame rate of the game, 0 is not limited"),
"performance_json_text_motion_blur":
MessageLookupByLibrary.simpleMessage("Dynamic blur"),
"performance_json_text_motion_blur_info":
MessageLookupByLibrary.simpleMessage(
"Open to improve the sense of movement, turn off and enhance the perception"),
"performance_json_text_object_detail":
MessageLookupByLibrary.simpleMessage("Object detail"),
"performance_json_text_object_detail_info":
MessageLookupByLibrary.simpleMessage(
"Model object details, affect LOD, etc."),
"performance_json_text_particles":
MessageLookupByLibrary.simpleMessage("Particle details"),
"performance_json_text_particles_object_collisions":
MessageLookupByLibrary.simpleMessage("Particle collision"),
"performance_json_text_particles_object_collisions_info":
MessageLookupByLibrary.simpleMessage(
"1 Static particles 2 include dynamic particles"),
"performance_json_text_physics":
MessageLookupByLibrary.simpleMessage("Physical details"),
"performance_json_text_physics_info":
MessageLookupByLibrary.simpleMessage("Scope of physical effects"),
"performance_json_text_postprocessing":
MessageLookupByLibrary.simpleMessage("Post -processing details"),
"performance_json_text_postprocessing_info":
MessageLookupByLibrary.simpleMessage(
"After the color device, dynamic blur effect, etc."),
"performance_json_text_renderer":
MessageLookupByLibrary.simpleMessage("Rendering device quality"),
"performance_json_text_renderer_info":
MessageLookupByLibrary.simpleMessage("Cryengine rendereer quality"),
"performance_json_text_shader_decal":
MessageLookupByLibrary.simpleMessage("Quality"),
"performance_json_text_shader_decal_info":
MessageLookupByLibrary.simpleMessage("(LOGO, logo, etc.)"),
"performance_json_text_shader_fx":
MessageLookupByLibrary.simpleMessage("FX quality"),
"performance_json_text_shader_general":
MessageLookupByLibrary.simpleMessage("Conventional quality"),
"performance_json_text_shader_general_info":
MessageLookupByLibrary.simpleMessage("Overall model quality"),
"performance_json_text_shader_glass":
MessageLookupByLibrary.simpleMessage("Glass quality"),
"performance_json_text_shader_glass_info":
MessageLookupByLibrary.simpleMessage("Window, mirror, etc."),
"performance_json_text_shader_hdr":
MessageLookupByLibrary.simpleMessage("HDR quality"),
"performance_json_text_shader_hdr_info":
MessageLookupByLibrary.simpleMessage(
"HDR color difference, brightness level treatment, etc."),
"performance_json_text_shader_particle":
MessageLookupByLibrary.simpleMessage("Particle quality"),
"performance_json_text_shader_particle_info":
MessageLookupByLibrary.simpleMessage("Particle effect quality"),
"performance_json_text_shader_post_process":
MessageLookupByLibrary.simpleMessage("Color quality"),
"performance_json_text_shader_shadow":
MessageLookupByLibrary.simpleMessage("Shadow quality"),
"performance_json_text_shader_sky":
MessageLookupByLibrary.simpleMessage("Sky quality"),
"performance_json_text_shader_terrain":
MessageLookupByLibrary.simpleMessage("Ground quality"),
"performance_json_text_shading":
MessageLookupByLibrary.simpleMessage("Colorrhea details"),
"performance_json_text_shading_info":
MessageLookupByLibrary.simpleMessage("Coloror related"),
"performance_json_text_shadows":
MessageLookupByLibrary.simpleMessage("Shadow details"),
"performance_json_text_shadows_info":
MessageLookupByLibrary.simpleMessage("Shadow effect"),
"performance_json_text_ssdo": MessageLookupByLibrary.simpleMessage(
"Swip light after the screen light"),
"performance_json_text_ssdo_info": MessageLookupByLibrary.simpleMessage(
"After adjusting the light, processing level"),
"performance_json_text_texture":
MessageLookupByLibrary.simpleMessage("Grade"),
"performance_json_text_texture_info":
MessageLookupByLibrary.simpleMessage("Model texture details"),
"performance_json_text_title_custom":
MessageLookupByLibrary.simpleMessage("Customize"),
"performance_json_text_title_graphics":
MessageLookupByLibrary.simpleMessage("Graphic"),
"performance_json_text_ui_animation":
MessageLookupByLibrary.simpleMessage("UI fades into the animation"),
"performance_json_text_volumetric_effects":
MessageLookupByLibrary.simpleMessage("Volume effect"),
"performance_json_text_volumetric_effects_info":
MessageLookupByLibrary.simpleMessage(
"Volume cloud, volume light, etc."),
"performance_json_text_vsync":
MessageLookupByLibrary.simpleMessage("Vertical sync"),
"performance_json_text_vsync_info":
MessageLookupByLibrary.simpleMessage(
"Open to prevent tearing, turn off to increase the frame rate"),
"performance_json_text_water":
MessageLookupByLibrary.simpleMessage("Water effect"),
"performance_json_text_water_info":
MessageLookupByLibrary.simpleMessage("Grade of various water"),
"performance_title_performance_optimization": m45,
"setting_action_clear_translation_file_cache":
MessageLookupByLibrary.simpleMessage(
"Clean up the Localization file cache"),
"setting_action_create_desktop_shortcut":
MessageLookupByLibrary.simpleMessage(
"Create \"SC Sinicization Box\" shortcut on the desktop"),
"Create \"SC Localization Box\" shortcut on the desktop"),
"setting_action_create_settings_shortcut":
MessageLookupByLibrary.simpleMessage("Create shortcut"),
"setting_action_ignore_efficiency_cores_on_launch":
@ -678,7 +894,7 @@ class MessageLookup extends MessageLookupByLibrary {
"setting_action_info_autofill_data_cleared":
MessageLookupByLibrary.simpleMessage(
"Automatic filling data has been cleaned up"),
"setting_action_info_cache_clearing_info": m42,
"setting_action_info_cache_clearing_info": m46,
"setting_action_info_clear_cache_warning":
MessageLookupByLibrary.simpleMessage(
"This will not affect the installed Localization."),
@ -726,7 +942,7 @@ class MessageLookup extends MessageLookupByLibrary {
"setting_action_reset_auto_password_fill":
MessageLookupByLibrary.simpleMessage(
"Reset automatic password filling"),
"setting_action_set_core_count": m43,
"setting_action_set_core_count": m47,
"setting_action_set_game_file": MessageLookupByLibrary.simpleMessage(
"Set the game file (StarCitizen.exe)"),
"setting_action_set_launcher_file":
@ -754,13 +970,13 @@ class MessageLookup extends MessageLookupByLibrary {
"Hosts acceleration (experimental)"),
"tools_action_info_cleanup_complete": MessageLookupByLibrary.simpleMessage(
"After cleaning up, complete the installation / game startup operation once."),
"tools_action_info_cleanup_failed": m44,
"tools_action_info_cleanup_failed": m48,
"tools_action_info_config_file_not_exist":
MessageLookupByLibrary.simpleMessage(
"The configuration file does not exist, please try to run the game once"),
"tools_action_info_eac_file_removed": MessageLookupByLibrary.simpleMessage(
"Remove the EAC file for you, and then open the RSI startup for you. Please go to Settings-> Verify to reinstall EAC."),
"tools_action_info_error_occurred": m45,
"tools_action_info_error_occurred": m49,
"tools_action_info_fix_success_restart":
MessageLookupByLibrary.simpleMessage(
"If the repair is successful, please try to restart the computer and continue to install the game! If the registry modification operation causes compatibility problems with other software, please use the NVMe registry in the tool to clean up."),
@ -770,7 +986,7 @@ class MessageLookup extends MessageLookupByLibrary {
"tools_action_info_hosts_acceleration_experimental_tip":
MessageLookupByLibrary.simpleMessage(
"Write the IP information into the hosts file to solve problems such as DNS pollution in some regions that cannot log in to the official website.\nThis function is undergoing the first stage of testing. Please report it in time when you encounter problems."),
"tools_action_info_init_failed": m46,
"tools_action_info_init_failed": m50,
"tools_action_info_log_file_not_exist":
MessageLookupByLibrary.simpleMessage(
"The log file does not exist, please try to start a game startup or game installation, and exit the starter. If the problem cannot be solved, try to update the launcher to the latest version!"),
@ -781,7 +997,7 @@ class MessageLookup extends MessageLookupByLibrary {
"Manually write the NVM patch, this function is used only when you know what you do"),
"tools_action_info_not_installed":
MessageLookupByLibrary.simpleMessage("Not Installed"),
"tools_action_info_nvme_patch_issue": m47,
"tools_action_info_nvme_patch_issue": m51,
"tools_action_info_one_key_close_lens_shake":
MessageLookupByLibrary.simpleMessage(
"Close the game endoscope shaking to facilitate photography operations.\n\n @Lapernum offers parameter information."),
@ -805,7 +1021,7 @@ class MessageLookup extends MessageLookupByLibrary {
"tools_action_info_rsi_launcher_directory_not_found":
MessageLookupByLibrary.simpleMessage(
"If the RSI starter directory is not found, please try manually."),
"tools_action_info_rsi_launcher_log_issue": m48,
"tools_action_info_rsi_launcher_log_issue": m52,
"tools_action_info_rsi_launcher_not_found":
MessageLookupByLibrary.simpleMessage(
"If the RSI label is not found, try to reinstall it or add it manually in the settings."),
@ -814,11 +1030,11 @@ class MessageLookup extends MessageLookupByLibrary {
"The RSI starter is running! Please turn off the label first and then use this feature!"),
"tools_action_info_run_rsi_as_admin": MessageLookupByLibrary.simpleMessage(
"Run RSI startups as an administrator may solve some problems.\n\nIf the energy efficiency core shielding parameters are set, it will also be applied here."),
"tools_action_info_shader_cache_issue": m49,
"tools_action_info_shader_cache_issue": m53,
"tools_action_info_star_citizen_not_found":
MessageLookupByLibrary.simpleMessage(
"If the interstellar game installation location is not found, please complete the game startup operation at least once or add it manually in the settings."),
"tools_action_info_system_info_content": m50,
"tools_action_info_system_info_content": m54,
"tools_action_info_system_info_title":
MessageLookupByLibrary.simpleMessage("System message"),
"tools_action_info_valid_game_directory_needed":
@ -834,16 +1050,22 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage(
"P4k diversion download / repair"),
"tools_action_reinstall_easyanticheat":
MessageLookupByLibrary.simpleMessage(
"Reinstall EasyAnticheat\'s anti -cheating"),
MessageLookupByLibrary.simpleMessage("Reinstall EasyAnticheat"),
"tools_action_remove_nvme_registry_patch":
MessageLookupByLibrary.simpleMessage(
"Remove the NVMe registry patch"),
"tools_action_rsi_launcher_admin_mode":
MessageLookupByLibrary.simpleMessage(
"RSI Launcher administrator mode"),
"tools_action_rsi_launcher_enhance_info":
MessageLookupByLibrary.simpleMessage(
"Enhanced launcher Localization、 download thread"),
"tools_action_rsi_launcher_log_fix":
MessageLookupByLibrary.simpleMessage("RSI LAUNCHER LOG repair"),
"tools_action_unp4k":
MessageLookupByLibrary.simpleMessage("P4K viewer"),
"tools_action_unp4k_info": MessageLookupByLibrary.simpleMessage(
"Package Star Citizen P4K File"),
"tools_action_view_system_info":
MessageLookupByLibrary.simpleMessage("View system information"),
"tools_action_write_nvme_registry_patch":
@ -876,11 +1098,71 @@ class MessageLookup extends MessageLookupByLibrary {
"tools_info_game_install_location":
MessageLookupByLibrary.simpleMessage(
"Game installation location: "),
"tools_info_processing_failed": m51,
"tools_info_processing_failed": m55,
"tools_info_rsi_launcher_location":
MessageLookupByLibrary.simpleMessage("RSI starter position:"),
"tools_info_scanning":
MessageLookupByLibrary.simpleMessage("Scanning..."),
"tools_rsi_launcher_enhance_action_install":
MessageLookupByLibrary.simpleMessage("Installation enhanced patch"),
"tools_rsi_launcher_enhance_init_msg1":
MessageLookupByLibrary.simpleMessage(
"Read the starter information ..."),
"tools_rsi_launcher_enhance_init_msg2":
MessageLookupByLibrary.simpleMessage(
"Obtaining enhanced data from the Internet ..."),
"tools_rsi_launcher_enhance_msg_error":
MessageLookupByLibrary.simpleMessage(
"Obtaining enhanced data failure may be the network problem or the current version does not support"),
"tools_rsi_launcher_enhance_msg_error_get_launcher_info_error":
MessageLookupByLibrary.simpleMessage(
"Reading the starter information failed!"),
"tools_rsi_launcher_enhance_msg_error_get_launcher_info_error_with_args":
m56,
"tools_rsi_launcher_enhance_msg_error_launcher_notfound":
MessageLookupByLibrary.simpleMessage("No RSI promoter was found"),
"tools_rsi_launcher_enhance_msg_patch_status": m57,
"tools_rsi_launcher_enhance_msg_uninstall":
MessageLookupByLibrary.simpleMessage(
"* If you need to uninstall the enhanced patch, cover the installation RSI promoter."),
"tools_rsi_launcher_enhance_msg_version": m58,
"tools_rsi_launcher_enhance_note_msg": MessageLookupByLibrary.simpleMessage(
"RSI starter enhancement is a community function. It will unpack \"RSI LAUNCHER\" on your computer and add additional enhancement functions. What functions are determined by you.\n\nAt present, the official (CIG) only permits us to perform multi -language operations. The launch of the booter download enhancement is an extra function we think of it. Violation of the CIG user protocol (https://robertsspaceindustries.com/eula) may cause serious consequences such as accounts. Whether or not you are determined by yourself, we are not responsible for the possible consequences (game damage, account ban, etc.).\n\nFor the modified content of the starter, we are open from: https://github.com/starcitizentoolbox/rsilauncherenhance. If necessary, you can check it yourself.\n\nIf you need to cancel this enhanced patch for any reason, cover the installation of the official startup directly."),
"tools_rsi_launcher_enhance_note_title":
MessageLookupByLibrary.simpleMessage(
"Instructions for the use of RSI starter enhancement"),
"tools_rsi_launcher_enhance_subtitle_download_booster":
MessageLookupByLibrary.simpleMessage(
"When downloading the game, you can use more threads to increase the download speed."),
"tools_rsi_launcher_enhance_subtitle_localization":
MessageLookupByLibrary.simpleMessage(
"Add multi -language support to the RSI starter."),
"tools_rsi_launcher_enhance_title":
MessageLookupByLibrary.simpleMessage("RSI starter enhancement"),
"tools_rsi_launcher_enhance_title_download_booster":
MessageLookupByLibrary.simpleMessage(
"RSI starter download enhancement"),
"tools_rsi_launcher_enhance_title_localization":
MessageLookupByLibrary.simpleMessage("RSI startup localization"),
"tools_rsi_launcher_enhance_working_msg1":
MessageLookupByLibrary.simpleMessage("Generate patch ..."),
"tools_rsi_launcher_enhance_working_msg2":
MessageLookupByLibrary.simpleMessage(
"Installation patch takes a little time, depending on your computer performance ..."),
"tools_unp4k_msg_init":
MessageLookupByLibrary.simpleMessage("Initialization ..."),
"tools_unp4k_msg_open_file": m59,
"tools_unp4k_msg_read_completed": m60,
"tools_unp4k_msg_read_file": m61,
"tools_unp4k_msg_reading":
MessageLookupByLibrary.simpleMessage("Reading P4K file ..."),
"tools_unp4k_msg_reading2":
MessageLookupByLibrary.simpleMessage("Treatment files ..."),
"tools_unp4k_msg_reading3": m62,
"tools_unp4k_msg_unknown_file_type": m63,
"tools_unp4k_title": m64,
"tools_unp4k_view_file":
MessageLookupByLibrary.simpleMessage("Click the file to preview"),
"webview_localization_finished_invitations":
MessageLookupByLibrary.simpleMessage("Completed invitations"),
"webview_localization_name_member":

View File

@ -36,7 +36,7 @@ class MessageLookup extends MessageLookupByLibrary {
static String m25(v2) => "検証中...${v2}";
static String m31(v1, v2) =>
static String m35(v1, v2) =>
"RSI サーバレポートのバージョン:${v1} \n\nローカルのバージョン:${v2} \n\nRSI Launcher を使ってゲームをアップデートしてください!";
final messages = _notInlinedMessages(_notInlinedMessages);
@ -133,7 +133,7 @@ class MessageLookup extends MessageLookupByLibrary {
"home_login_info_one_click_launch_description":
MessageLookupByLibrary.simpleMessage(
"この機能は、ゲームをより便利に起動するのに役立ちます。\n\nアカウントのセキュリティを確保するため、この機能はローカライズブラウザを使用してログイン状態を保持し、パスワード情報を保存しません(自動入力オンの場合を除く)。\n\nこの機能を使用してアカウントにログインする際は、SCToolBox が信頼できるソースからダウンロードされていることを確認してください。"),
"home_login_info_rsi_server_report": m31,
"home_login_info_rsi_server_report": m35,
"home_login_title_launching_game":
MessageLookupByLibrary.simpleMessage("ゲーム起動中..."),
"home_login_title_welcome_back":

View File

@ -83,55 +83,81 @@ class MessageLookup extends MessageLookupByLibrary {
static String m29(v0) => "${v0}";
static String m30(v0) => "您在 ${v0} 安装的汉化有新版本啦!";
static String m30(v0) => "已加载汉化版本:${v0}";
static String m31(v1, v2) =>
static String m31(v0) => "高级汉化 -> ${v0}";
static String m32(v0, v1) => "汉化文本行数:${v0} P4K文本行数${v1}";
static String m33(v0) => "预览:${v0}";
static String m34(v0) => "您在 ${v0} 安装的汉化有新版本啦!";
static String m35(v1, v2) =>
"RSI 服务器报告版本号:${v1} \n\n本地版本号:${v2} \n\n建议使用 RSI Launcher 更新游戏!";
static String m32(v0) => "通道:${v0}";
static String m36(v0) => "通道:${v0}";
static String m33(v0) => "自定义_${v0}";
static String m37(v0) => "自定义_${v0}";
static String m34(v0) => "启用(${v0}";
static String m38(v0) => "启用(${v0}";
static String m35(v0) => "安装出错!\n\n ${v0}";
static String m39(v0) => "安装出错!\n\n ${v0}";
static String m36(v0) => "已安装版本:${v0}";
static String m40(v0) => "已安装版本:${v0}";
static String m37(v0) => "更新时间:${v0}";
static String m41(v0) => "更新时间:${v0}";
static String m38(v0) => "版本号:${v0}";
static String m42(v0) => "版本号:${v0}";
static String m39(v0) => "当前状态:${v0}";
static String m43(v0) => "当前状态:${v0}";
static String m40(v0, v1, v2) => "${v0} 最小值: ${v1} / 最大值: ${v2}";
static String m44(v0, v1, v2) => "${v0} 最小值: ${v1} / 最大值: ${v2}";
static String m41(v0) => "性能优化 -> ${v0}";
static String m45(v0) => "性能优化 -> ${v0}";
static String m42(v0) => "缓存大小 ${v0}MB清理盒子下载的汉化文件缓存不会影响已安装的汉化";
static String m43(v0) =>
"已设置的核心数量:${v0} (此功能适用于首页的盒子一键启动 或 工具中的RSI启动器管理员模式当为 0 时不启用此功能 ";
static String m44(v0) => "清理失败,请手动移除,文件位置:${v0}";
static String m45(v0) => "出现错误:${v0}";
static String m46(v0) => "初始化失败,请截图报告给开发者。${v0}";
static String m46(v0) => "缓存大小 ${v0}MB清理盒子下载的汉化文件缓存不会影响已安装的汉化";
static String m47(v0) =>
"已设置的核心数量:${v0} (此功能适用于首页的盒子一键启动 或 工具中的RSI启动器管理员模式当为 0 时不启用此功能 ";
static String m48(v0) => "清理失败,请手动移除,文件位置:${v0}";
static String m49(v0) => "出现错误:${v0}";
static String m50(v0) => "初始化失败,请截图报告给开发者。${v0}";
static String m51(v0) =>
"若您使用 nvme 补丁出现问题,请运行此工具。(可能导致游戏 安装/更新 不可用。)\n\n当前补丁状态:${v0}";
static String m48(v0) =>
static String m52(v0) =>
"在某些情况下 RSI启动器 的 log 文件会损坏,导致无法完成问题扫描,使用此工具清理损坏的 log 文件。\n\n当前日志文件大小:${v0} MB";
static String m49(v0) =>
static String m53(v0) =>
"若游戏画面出现异常或版本更新后可使用本工具清理过期的着色器当大于500M时建议清理 \n\n缓存大小:${v0} MB";
static String m50(v0, v1, v2, v3, v4) =>
static String m54(v0, v1, v2, v3, v4) =>
"系统:${v0}\n\n处理器:${v1}\n\n内存大小:${v2}GB\n\n显卡信息:\n${v3}\n\n硬盘信息:\n${v4}\n\n";
static String m51(v0) => "处理失败!:${v0}";
static String m55(v0) => "处理失败!:${v0}";
static String m56(v0) => "读取启动器信息失败:${v0}";
static String m57(v0) => "补丁状态:${v0}";
static String m58(v0) => "启动器内部版本信息:${v0}";
static String m59(v0) => "打开文件:${v0}";
static String m60(v0, v1) => "加载完毕:${v0} 个文件,用时:${v1} ms";
static String m61(v0) => "读取文件:${v0} ...";
static String m62(v0, v1) => "正在处理文件 (${v0}/${v1}) ...";
static String m63(v0) => "未知文件类型\n${v0}";
static String m64(v0) => "P4K 查看器 -> ${v0}";
final messages = _notInlinedMessages(_notInlinedMessages);
static Map<String, Function> _notInlinedMessages(_) => <String, Function>{
@ -482,9 +508,71 @@ class MessageLookup extends MessageLookupByLibrary {
"home_info_valid_installation_required":
MessageLookupByLibrary.simpleMessage("该功能需要一个有效的安装位置"),
"home_install_location": MessageLookupByLibrary.simpleMessage("安装位置:"),
"home_localization_action_advanced":
MessageLookupByLibrary.simpleMessage("高级汉化"),
"home_localization_action_install_customize":
MessageLookupByLibrary.simpleMessage("安装自定义文件"),
"home_localization_action_rsi_launcher_localization":
MessageLookupByLibrary.simpleMessage("RSI 启动器汉化"),
"home_localization_advanced_action_install":
MessageLookupByLibrary.simpleMessage("安装汉化"),
"home_localization_advanced_action_mod_change":
MessageLookupByLibrary.simpleMessage("正在重新生成文本..."),
"home_localization_advanced_action_mod_change_localization":
MessageLookupByLibrary.simpleMessage("汉化"),
"home_localization_advanced_action_mod_change_mixed":
MessageLookupByLibrary.simpleMessage("双语"),
"home_localization_advanced_action_mod_change_mixed_newline":
MessageLookupByLibrary.simpleMessage("双语(换行)"),
"home_localization_advanced_action_mod_change_un_localization":
MessageLookupByLibrary.simpleMessage("英文原文"),
"home_localization_advanced_action_mode":
MessageLookupByLibrary.simpleMessage("模式"),
"home_localization_advanced_json_text_location_other":
MessageLookupByLibrary.simpleMessage("地点-其他"),
"home_localization_advanced_json_text_location_used":
MessageLookupByLibrary.simpleMessage("地点-常用"),
"home_localization_advanced_json_text_mission_or_logs":
MessageLookupByLibrary.simpleMessage("任务/日志"),
"home_localization_advanced_json_text_others":
MessageLookupByLibrary.simpleMessage("其他"),
"home_localization_advanced_json_text_subtitle":
MessageLookupByLibrary.simpleMessage("字幕"),
"home_localization_advanced_json_text_things_other":
MessageLookupByLibrary.simpleMessage("物品-其他"),
"home_localization_advanced_json_text_things_used":
MessageLookupByLibrary.simpleMessage("物品-常用"),
"home_localization_advanced_json_text_ui_or_hud_or_menu":
MessageLookupByLibrary.simpleMessage("UI/HUD/菜单"),
"home_localization_advanced_json_text_un_localization":
MessageLookupByLibrary.simpleMessage("未汉化"),
"home_localization_advanced_json_text_vehicle_other":
MessageLookupByLibrary.simpleMessage("载具-其他"),
"home_localization_advanced_json_text_vehicle_used":
MessageLookupByLibrary.simpleMessage("载具-常用"),
"home_localization_advanced_msg_classifying":
MessageLookupByLibrary.simpleMessage("正在分类 ..."),
"home_localization_advanced_msg_gen_localization_install":
MessageLookupByLibrary.simpleMessage("安装汉化文件..."),
"home_localization_advanced_msg_gen_localization_text":
MessageLookupByLibrary.simpleMessage("生成汉化文件..."),
"home_localization_advanced_msg_reading_p4k":
MessageLookupByLibrary.simpleMessage("读取 p4k 文件 ..."),
"home_localization_advanced_msg_reading_server_localization_text":
MessageLookupByLibrary.simpleMessage("获取汉化文本 ..."),
"home_localization_advanced_msg_version": m30,
"home_localization_advanced_title": m31,
"home_localization_advanced_title_msg": m32,
"home_localization_advanced_title_preview": m33,
"home_localization_msg_no_note":
MessageLookupByLibrary.simpleMessage("该版本没有提供描述"),
"home_localization_msg_version_advanced":
MessageLookupByLibrary.simpleMessage(" (高级汉化)"),
"home_localization_new_version_available":
MessageLookupByLibrary.simpleMessage("汉化有新版本!"),
"home_localization_new_version_installed": m30,
"home_localization_new_version_installed": m34,
"home_localization_title_localization_tools":
MessageLookupByLibrary.simpleMessage("汉化工具"),
"home_login_action_title_box_one_click_launch":
MessageLookupByLibrary.simpleMessage("盒子一键启动"),
"home_login_action_title_need_webview2_runtime":
@ -496,7 +584,7 @@ class MessageLookup extends MessageLookupByLibrary {
"home_login_info_one_click_launch_description":
MessageLookupByLibrary.simpleMessage(
"本功能可以帮您更加便利的启动游戏。\n\n为确保账户安全 ,本功能使用汉化浏览器保留登录状态,且不会保存您的密码信息(除非你启用了自动填充功能)。\n\n使用此功能登录账号时请确保您的 SC汉化盒子 是从可信任的来源下载。"),
"home_login_info_rsi_server_report": m31,
"home_login_info_rsi_server_report": m35,
"home_login_title_launching_game":
MessageLookupByLibrary.simpleMessage("正在为您启动游戏..."),
"home_login_title_welcome_back":
@ -516,22 +604,22 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("汉化反馈"),
"localization_action_uninstall_translation":
MessageLookupByLibrary.simpleMessage("卸载汉化"),
"localization_info_channel": m32,
"localization_info_channel": m36,
"localization_info_community_translation":
MessageLookupByLibrary.simpleMessage("社区汉化"),
"localization_info_corrupted_file":
MessageLookupByLibrary.simpleMessage("文件受损,请重新下载"),
"localization_info_custom_file": m33,
"localization_info_custom_file": m37,
"localization_info_custom_files":
MessageLookupByLibrary.simpleMessage("自定义文件"),
"localization_info_enabled": m34,
"localization_info_enabled": m38,
"localization_info_incompatible_translation_params_warning":
MessageLookupByLibrary.simpleMessage(
"USER.cfg 包含不兼容的汉化参数,这可能是以前的汉化文件的残留信息。\n\n这将可能导致汉化无效或乱码,点击确认为您一键移除(不会影响其他配置)。"),
"localization_info_installation_error": m35,
"localization_info_installation_error": m39,
"localization_info_installed":
MessageLookupByLibrary.simpleMessage("已安装"),
"localization_info_installed_version": m36,
"localization_info_installed_version": m40,
"localization_info_language":
MessageLookupByLibrary.simpleMessage("语言: "),
"localization_info_machine_translation_warning":
@ -546,8 +634,8 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("汉化状态"),
"localization_info_unavailable":
MessageLookupByLibrary.simpleMessage("不可用"),
"localization_info_update_time": m37,
"localization_info_version_number": m38,
"localization_info_update_time": m41,
"localization_info_version_number": m42,
"performance_action_apply": MessageLookupByLibrary.simpleMessage("应用"),
"performance_action_apply_and_clear_shaders":
MessageLookupByLibrary.simpleMessage("应用并清理着色器(推荐)"),
@ -567,7 +655,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage(" 恢复默认 "),
"performance_action_super": MessageLookupByLibrary.simpleMessage("超级"),
"performance_info_applied": MessageLookupByLibrary.simpleMessage("已应用"),
"performance_info_current_status": m39,
"performance_info_current_status": m43,
"performance_info_delete_config_file":
MessageLookupByLibrary.simpleMessage("删除配置文件..."),
"performance_info_done": MessageLookupByLibrary.simpleMessage("完成..."),
@ -579,7 +667,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage(
"该功能对优化显卡瓶颈有很大帮助,但对 CPU 瓶颈可能起反效果,如果您显卡性能强劲,可以尝试使用更好的画质来获得更高的显卡利用率。"),
"performance_info_graphics": MessageLookupByLibrary.simpleMessage("图形"),
"performance_info_min_max_values": m40,
"performance_info_min_max_values": m44,
"performance_info_not_applied":
MessageLookupByLibrary.simpleMessage("未应用"),
"performance_info_shader_clearing_warning":
@ -587,7 +675,123 @@ class MessageLookup extends MessageLookupByLibrary {
"清理着色器后首次进入游戏可能会出现卡顿,请耐心等待游戏初始化完毕。"),
"performance_info_write_out_config_file":
MessageLookupByLibrary.simpleMessage("写出配置文件"),
"performance_title_performance_optimization": m41,
"performance_json_text_antialiasing":
MessageLookupByLibrary.simpleMessage("抗锯齿"),
"performance_json_text_antialiasing_info":
MessageLookupByLibrary.simpleMessage(
"0 关闭1 SMAA2 时间过滤+SMAA3 时间滤波和投影矩阵抖动的 SMAA"),
"performance_json_text_custom_parameters":
MessageLookupByLibrary.simpleMessage("自定义参数"),
"performance_json_text_display_session":
MessageLookupByLibrary.simpleMessage("显示会话信息"),
"performance_json_text_display_session_info":
MessageLookupByLibrary.simpleMessage(
"开启后在屏幕上显示一个二维码,用于反馈时让 CIG 快速定位相关信息"),
"performance_json_text_displayinfo":
MessageLookupByLibrary.simpleMessage("屏幕信息(展示帧率)"),
"performance_json_text_displayinfo_info":
MessageLookupByLibrary.simpleMessage("在屏幕右上角展示帧率,服务器信息等"),
"performance_json_text_fov":
MessageLookupByLibrary.simpleMessage("设置视角FOV"),
"performance_json_text_game_effects":
MessageLookupByLibrary.simpleMessage("特效等级"),
"performance_json_text_game_effects_info":
MessageLookupByLibrary.simpleMessage("游戏特效等级"),
"performance_json_text_max_fps":
MessageLookupByLibrary.simpleMessage("最大帧率"),
"performance_json_text_max_fps_info":
MessageLookupByLibrary.simpleMessage("调整游戏最高帧率0为不限制"),
"performance_json_text_motion_blur":
MessageLookupByLibrary.simpleMessage("动态模糊"),
"performance_json_text_motion_blur_info":
MessageLookupByLibrary.simpleMessage("开启以提高运动感,关闭提升观感"),
"performance_json_text_object_detail":
MessageLookupByLibrary.simpleMessage("对象细节"),
"performance_json_text_object_detail_info":
MessageLookupByLibrary.simpleMessage("模型对象细节影响LOD等.."),
"performance_json_text_particles":
MessageLookupByLibrary.simpleMessage("粒子细节"),
"performance_json_text_particles_object_collisions":
MessageLookupByLibrary.simpleMessage("粒子碰撞"),
"performance_json_text_particles_object_collisions_info":
MessageLookupByLibrary.simpleMessage("1 仅静态粒子 2 包括动态粒子"),
"performance_json_text_physics":
MessageLookupByLibrary.simpleMessage("物理细节"),
"performance_json_text_physics_info":
MessageLookupByLibrary.simpleMessage("物理效果范围"),
"performance_json_text_postprocessing":
MessageLookupByLibrary.simpleMessage("后处理细节"),
"performance_json_text_postprocessing_info":
MessageLookupByLibrary.simpleMessage("后处理着色器,动态模糊效果 等"),
"performance_json_text_renderer":
MessageLookupByLibrary.simpleMessage("渲染器质量"),
"performance_json_text_renderer_info":
MessageLookupByLibrary.simpleMessage("cryengine 渲染器质量"),
"performance_json_text_shader_decal":
MessageLookupByLibrary.simpleMessage("贴花质量"),
"performance_json_text_shader_decal_info":
MessageLookupByLibrary.simpleMessage("LOGO、标志等"),
"performance_json_text_shader_fx":
MessageLookupByLibrary.simpleMessage("FX 质量"),
"performance_json_text_shader_general":
MessageLookupByLibrary.simpleMessage("常规质量"),
"performance_json_text_shader_general_info":
MessageLookupByLibrary.simpleMessage("整体模型质量"),
"performance_json_text_shader_glass":
MessageLookupByLibrary.simpleMessage("玻璃质量"),
"performance_json_text_shader_glass_info":
MessageLookupByLibrary.simpleMessage("窗、镜子等"),
"performance_json_text_shader_hdr":
MessageLookupByLibrary.simpleMessage("HDR质量"),
"performance_json_text_shader_hdr_info":
MessageLookupByLibrary.simpleMessage("HDR色差亮度层级 处理 等"),
"performance_json_text_shader_particle":
MessageLookupByLibrary.simpleMessage("粒子质量"),
"performance_json_text_shader_particle_info":
MessageLookupByLibrary.simpleMessage("粒子效果质量"),
"performance_json_text_shader_post_process":
MessageLookupByLibrary.simpleMessage("着色器质量"),
"performance_json_text_shader_shadow":
MessageLookupByLibrary.simpleMessage("阴影质量"),
"performance_json_text_shader_sky":
MessageLookupByLibrary.simpleMessage("天空质量"),
"performance_json_text_shader_terrain":
MessageLookupByLibrary.simpleMessage("地面质量"),
"performance_json_text_shading":
MessageLookupByLibrary.simpleMessage("着色器细节"),
"performance_json_text_shading_info":
MessageLookupByLibrary.simpleMessage("着色器相关"),
"performance_json_text_shadows":
MessageLookupByLibrary.simpleMessage("阴影细节"),
"performance_json_text_shadows_info":
MessageLookupByLibrary.simpleMessage("阴影效果"),
"performance_json_text_ssdo":
MessageLookupByLibrary.simpleMessage("屏幕光线后处理"),
"performance_json_text_ssdo_info":
MessageLookupByLibrary.simpleMessage("调整光线后处理等级"),
"performance_json_text_texture":
MessageLookupByLibrary.simpleMessage("纹理等级"),
"performance_json_text_texture_info":
MessageLookupByLibrary.simpleMessage("模型纹理细节"),
"performance_json_text_title_custom":
MessageLookupByLibrary.simpleMessage("自定义"),
"performance_json_text_title_graphics":
MessageLookupByLibrary.simpleMessage("图形(修改后建议清理着色器)"),
"performance_json_text_ui_animation":
MessageLookupByLibrary.simpleMessage("UI 淡入淡出动画"),
"performance_json_text_volumetric_effects":
MessageLookupByLibrary.simpleMessage("体积效果"),
"performance_json_text_volumetric_effects_info":
MessageLookupByLibrary.simpleMessage("体积云、体积光照等"),
"performance_json_text_vsync":
MessageLookupByLibrary.simpleMessage("垂直同步"),
"performance_json_text_vsync_info":
MessageLookupByLibrary.simpleMessage("开启以防止撕裂,关闭以提高帧率"),
"performance_json_text_water":
MessageLookupByLibrary.simpleMessage("水体效果"),
"performance_json_text_water_info":
MessageLookupByLibrary.simpleMessage("各种水的等级"),
"performance_title_performance_optimization": m45,
"setting_action_clear_translation_file_cache":
MessageLookupByLibrary.simpleMessage("清理汉化文件缓存"),
"setting_action_create_desktop_shortcut":
@ -599,7 +803,7 @@ class MessageLookup extends MessageLookupByLibrary {
"启动游戏时忽略能效核心( 适用于Intel 12th+ 处理器 "),
"setting_action_info_autofill_data_cleared":
MessageLookupByLibrary.simpleMessage("已清理自动填充数据"),
"setting_action_info_cache_clearing_info": m42,
"setting_action_info_cache_clearing_info": m46,
"setting_action_info_clear_cache_warning":
MessageLookupByLibrary.simpleMessage("这不会影响已安装的汉化。"),
"setting_action_info_confirm_clear_cache":
@ -639,7 +843,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("查看汉化盒子的 log 文件,以定位盒子的 bug"),
"setting_action_reset_auto_password_fill":
MessageLookupByLibrary.simpleMessage("重置自动密码填充"),
"setting_action_set_core_count": m43,
"setting_action_set_core_count": m47,
"setting_action_set_game_file":
MessageLookupByLibrary.simpleMessage("设置游戏文件 StarCitizen.exe"),
"setting_action_set_launcher_file":
@ -661,13 +865,13 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Hosts 加速(实验性)"),
"tools_action_info_cleanup_complete":
MessageLookupByLibrary.simpleMessage("清理完毕,请完成一次安装 / 游戏启动 操作。"),
"tools_action_info_cleanup_failed": m44,
"tools_action_info_cleanup_failed": m48,
"tools_action_info_config_file_not_exist":
MessageLookupByLibrary.simpleMessage("配置文件不存在,请尝试运行一次游戏"),
"tools_action_info_eac_file_removed":
MessageLookupByLibrary.simpleMessage(
"已为您移除 EAC 文件,接下来将为您打开 RSI 启动器,请您前往 SETTINGS -> VERIFY 重装 EAC。"),
"tools_action_info_error_occurred": m45,
"tools_action_info_error_occurred": m49,
"tools_action_info_fix_success_restart":
MessageLookupByLibrary.simpleMessage(
"修复成功,请尝试重启电脑后继续安装游戏! 若注册表修改操作导致其他软件出现兼容问题,请使用 工具 中的 NVME 注册表清理。"),
@ -676,7 +880,7 @@ class MessageLookup extends MessageLookupByLibrary {
"tools_action_info_hosts_acceleration_experimental_tip":
MessageLookupByLibrary.simpleMessage(
"将 IP 信息写入 Hosts 文件,解决部分地区的 DNS 污染导致无法登录官网等问题。\n该功能正在进行第一阶段测试,遇到问题请及时反馈。"),
"tools_action_info_init_failed": m46,
"tools_action_info_init_failed": m50,
"tools_action_info_log_file_not_exist":
MessageLookupByLibrary.simpleMessage(
"日志文件不存在,请尝试进行一次游戏启动或游戏安装,并退出启动器,若无法解决问题,请尝试将启动器更新至最新版本!"),
@ -688,7 +892,7 @@ class MessageLookup extends MessageLookupByLibrary {
"手动写入NVM补丁该功能仅在您知道自己在作什么的情况下使用"),
"tools_action_info_not_installed":
MessageLookupByLibrary.simpleMessage("未安装"),
"tools_action_info_nvme_patch_issue": m47,
"tools_action_info_nvme_patch_issue": m51,
"tools_action_info_one_key_close_lens_shake":
MessageLookupByLibrary.simpleMessage(
"一键关闭游戏内镜头晃动以便于摄影操作。\n\n @拉邦那 Lapernum 提供参数信息。"),
@ -710,7 +914,7 @@ class MessageLookup extends MessageLookupByLibrary {
"还原镜头摇晃效果。\n\n@拉邦那 Lapernum 提供参数信息。"),
"tools_action_info_rsi_launcher_directory_not_found":
MessageLookupByLibrary.simpleMessage("未找到 RSI 启动器目录,请您尝试手动操作。"),
"tools_action_info_rsi_launcher_log_issue": m48,
"tools_action_info_rsi_launcher_log_issue": m52,
"tools_action_info_rsi_launcher_not_found":
MessageLookupByLibrary.simpleMessage(
"未找到 RSI 启动器,请尝试重新安装,或在设置中手动添加。"),
@ -719,11 +923,11 @@ class MessageLookup extends MessageLookupByLibrary {
"tools_action_info_run_rsi_as_admin":
MessageLookupByLibrary.simpleMessage(
"以管理员身份运行RSI启动器可能会解决一些问题。\n\n若设置了能效核心屏蔽参数,也会在此应用。"),
"tools_action_info_shader_cache_issue": m49,
"tools_action_info_shader_cache_issue": m53,
"tools_action_info_star_citizen_not_found":
MessageLookupByLibrary.simpleMessage(
"未找到星际公民游戏安装位置,请至少完成一次游戏启动操作 或在设置中手动添加。"),
"tools_action_info_system_info_content": m50,
"tools_action_info_system_info_content": m54,
"tools_action_info_system_info_title":
MessageLookupByLibrary.simpleMessage("系统信息"),
"tools_action_info_valid_game_directory_needed":
@ -741,8 +945,13 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("移除 nvme 注册表补丁"),
"tools_action_rsi_launcher_admin_mode":
MessageLookupByLibrary.simpleMessage("RSI Launcher 管理员模式"),
"tools_action_rsi_launcher_enhance_info":
MessageLookupByLibrary.simpleMessage("启动器汉化,下载线程增强"),
"tools_action_rsi_launcher_log_fix":
MessageLookupByLibrary.simpleMessage("RSI Launcher Log 修复"),
"tools_action_unp4k": MessageLookupByLibrary.simpleMessage("P4K 查看器"),
"tools_action_unp4k_info":
MessageLookupByLibrary.simpleMessage("解包星际公民 p4k 文件"),
"tools_action_view_system_info":
MessageLookupByLibrary.simpleMessage("查看系统信息"),
"tools_action_write_nvme_registry_patch":
@ -770,10 +979,60 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("正在写入 Hosts ..."),
"tools_info_game_install_location":
MessageLookupByLibrary.simpleMessage("游戏安装位置: "),
"tools_info_processing_failed": m51,
"tools_info_processing_failed": m55,
"tools_info_rsi_launcher_location":
MessageLookupByLibrary.simpleMessage("RSI启动器位置"),
"tools_info_scanning": MessageLookupByLibrary.simpleMessage("正在扫描..."),
"tools_rsi_launcher_enhance_action_install":
MessageLookupByLibrary.simpleMessage("安装增强补丁"),
"tools_rsi_launcher_enhance_init_msg1":
MessageLookupByLibrary.simpleMessage("读取启动器信息..."),
"tools_rsi_launcher_enhance_init_msg2":
MessageLookupByLibrary.simpleMessage("正在从网络获取增强数据..."),
"tools_rsi_launcher_enhance_msg_error":
MessageLookupByLibrary.simpleMessage("获取增强数据失败,可能是网络问题或当前版本不支持"),
"tools_rsi_launcher_enhance_msg_error_get_launcher_info_error":
MessageLookupByLibrary.simpleMessage("读取启动器信息失败!"),
"tools_rsi_launcher_enhance_msg_error_get_launcher_info_error_with_args":
m56,
"tools_rsi_launcher_enhance_msg_error_launcher_notfound":
MessageLookupByLibrary.simpleMessage("未找到 RSI 启动器"),
"tools_rsi_launcher_enhance_msg_patch_status": m57,
"tools_rsi_launcher_enhance_msg_uninstall":
MessageLookupByLibrary.simpleMessage("* 如需卸载增强补丁,请覆盖安装 RSI 启动器。"),
"tools_rsi_launcher_enhance_msg_version": m58,
"tools_rsi_launcher_enhance_note_msg": MessageLookupByLibrary.simpleMessage(
"RSI 启动器增强是一项社区功能,它会在您的电脑上解包 \"RSI Launcher\" 并加入额外的增强功能,具体使用哪些功能由您决定。\n\n目前官方CIG仅许可我们进行多语言操作启动器下载增强是我们认为有用的额外功能违反cig用户协议https://robertsspaceindustries.com/eula可能导致账号被封禁等严重后果是否启用由您自己决定我们不对可能产生的后果游戏损坏账号封禁等承担任何责任。\n\n对于启动器的修改内容我们开源于https://github.com/StarCitizenToolBox/RSILauncherEnhance如有需要您可自行查阅。\n\n如果您因为任何原因需要取消此增强补丁,请直接覆盖安装官方启动器。"),
"tools_rsi_launcher_enhance_note_title":
MessageLookupByLibrary.simpleMessage("RSI 启动器增强使用须知"),
"tools_rsi_launcher_enhance_subtitle_download_booster":
MessageLookupByLibrary.simpleMessage(
"下载游戏时可使用更多线程以提升下载速度,启用后请在启动器设置修改线程数。"),
"tools_rsi_launcher_enhance_subtitle_localization":
MessageLookupByLibrary.simpleMessage("为 RSI 启动器增加多语言支持。"),
"tools_rsi_launcher_enhance_title":
MessageLookupByLibrary.simpleMessage("RSI 启动器增强"),
"tools_rsi_launcher_enhance_title_download_booster":
MessageLookupByLibrary.simpleMessage("RSI 启动器下载增强"),
"tools_rsi_launcher_enhance_title_localization":
MessageLookupByLibrary.simpleMessage("RSI 启动器本地化"),
"tools_rsi_launcher_enhance_working_msg1":
MessageLookupByLibrary.simpleMessage("生成补丁 ..."),
"tools_rsi_launcher_enhance_working_msg2":
MessageLookupByLibrary.simpleMessage("安装补丁,这需要一点时间,取决于您的计算机性能 ..."),
"tools_unp4k_msg_init": MessageLookupByLibrary.simpleMessage("初始化中..."),
"tools_unp4k_msg_open_file": m59,
"tools_unp4k_msg_read_completed": m60,
"tools_unp4k_msg_read_file": m61,
"tools_unp4k_msg_reading":
MessageLookupByLibrary.simpleMessage("正在读取P4K 文件 ..."),
"tools_unp4k_msg_reading2":
MessageLookupByLibrary.simpleMessage("正在处理文件 ..."),
"tools_unp4k_msg_reading3": m62,
"tools_unp4k_msg_unknown_file_type": m63,
"tools_unp4k_title": m64,
"tools_unp4k_view_file":
MessageLookupByLibrary.simpleMessage("单击文件以预览"),
"webview_localization_finished_invitations":
MessageLookupByLibrary.simpleMessage("已完成的邀请"),
"webview_localization_name_member":

View File

@ -50,7 +50,7 @@ class MessageLookup extends MessageLookupByLibrary {
static String m13(v0) => "中文安裝路徑!這可能會導致遊戲 啟動/安裝 錯誤!(${v0}請在RSI啟動器更換安裝路徑。";
static String m14(v0) => "點擊修復為您建立 LIVE 文件夾,完成後重試安裝。(${v0})";
static String m14(v0) => "點擊修復為您建立 LIVE 資料夾,完成後重試安裝。(${v0})";
static String m15(v0) => "修復建議: ${v0}";
@ -77,69 +77,68 @@ class MessageLookup extends MessageLookupByLibrary {
static String m26(v0, v1, v2, v3, v4) =>
"遊戲非正常退出\nexitCode=${v0}\nstdout=${v1}\nstderr=${v2}\n\n診斷信息:${v3} \n${v4}";
static String m27(v0) => "初始化網頁翻譯資失敗!${v0}";
static String m27(v0) => "初始化網頁翻譯資失敗!${v0}";
static String m28(v0) => "掃描完畢,共找到 ${v0} 個有效安裝目錄";
static String m29(v0) => "${v0}";
static String m30(v0) => "您在 ${v0} 安裝的翻譯有新版本啦!";
static String m34(v0) => "您在 ${v0} 安裝的社群翻譯有新版本";
static String m31(v1, v2) =>
static String m35(v1, v2) =>
"RSI 伺服器報告版本號:${v1} \n\n本地版本號:${v2} \n\n建議使用 RSI Launcher 更新遊戲!";
static String m32(v0) => "通道:${v0}";
static String m36(v0) => "遊戲通道:${v0}";
static String m33(v0) => "自訂_${v0}";
static String m37(v0) => "自訂_${v0}";
static String m34(v0) => "啟用(${v0}";
static String m38(v0) => "啟用(${v0}";
static String m35(v0) => "安裝錯!\n\n ${v0}";
static String m39(v0) => "安裝\n\n ${v0}";
static String m36(v0) => "已安裝版本${v0}";
static String m40(v0) => "已安裝${v0}";
static String m37(v0) => "更新時間:${v0}";
static String m41(v0) => "更新時間:${v0}";
static String m38(v0) => "版本${v0}";
static String m42(v0) => "版本${v0}";
static String m39(v0) => "當前狀態:${v0}";
static String m43(v0) => "當前狀態:${v0}";
static String m40(v0, v1, v2) => "${v0} 最小值: ${v1} / 最大值: ${v2}";
static String m44(v0, v1, v2) => "${v0} 最小值: ${v1} / 最大值: ${v2}";
static String m41(v0) => "性能調整 -> ${v0}";
static String m45(v0) => "畫面調整 -> ${v0}";
static String m42(v0) => "快取大小 ${v0}MB清除盒子下載的翻譯文件快取不會影響已安裝的翻譯";
static String m43(v0) =>
"已設置的核心數量:${v0} (此功能適用於首頁的盒子快速啟動 或 工具中的RSI啟動器管理員模式當為 0 時不啟用此功能 ";
static String m44(v0) => "清理失敗,請手動移除,文件位置:${v0}";
static String m45(v0) => "出現錯誤:${v0}";
static String m46(v0) => "初始化失敗,請截圖回報給開發者。${v0}";
static String m46(v0) => "快取大小 ${v0}MB清除盒子下載的翻譯文件快取不會影響已安裝的翻譯";
static String m47(v0) =>
"已設定的核心數量:${v0} (此功能適用於首頁的盒子快速啟動 或 工具中的RSI啟動器管理員模式當為 0 時不啟用此功能 ";
static String m48(v0) => "清理失敗,請手動移除,文件位置:${v0}";
static String m49(v0) => "出現錯誤:${v0}";
static String m50(v0) => "初始化失敗,請截圖回報給開發者。${v0}";
static String m51(v0) =>
"若您使用 nvme 補丁出現問題,請執行此工具。(可能導致遊戲 安裝/更新 不可用。)\n\n當前補丁狀態:${v0}";
static String m48(v0) =>
"在某些情況下 RSI啟動器 的 log 文件會損壞,導致無法完成問題掃描,使用此工具清除損壞的 log 文件。\n\n當前日誌文件大小:${v0} MB";
static String m52(v0) =>
"在某些情況下 RSI啟動器的 log 文件會損壞,導致無法完成問題掃描,使用此工具清除損壞的 log 文件。\n\n目前文件大小:${v0} MB";
static String m49(v0) =>
"若遊戲畫面出現異常或版本更新後可使用本工具清除過期的著色器快取當大於500M時建議清理 \n\n快取大小:${v0} MB";
static String m53(v0) =>
"若遊戲畫面出現異常或版本更新後可使用此工具清除著色器快取 \n\n建議清理:快取大於 500 MB\n快取大小:${v0} MB";
static String m50(v0, v1, v2, v3, v4) =>
"系統:${v0}\n\n處理器:${v1}\n\n記憶體大小:${v2}GB\n\n顯示卡資訊\n${v3}\n\n硬碟資訊\n${v4}\n\n";
static String m54(v0, v1, v2, v3, v4) =>
"系統:${v0}\n\n處理器:${v1}\n\n記憶體大小:${v2}GB\n\n顯示卡\n${v3}\n\n硬碟\n${v4}\n\n";
static String m51(v0) => "處理失敗!:${v0}";
static String m55(v0) => "處理失敗!:${v0}";
final messages = _notInlinedMessages(_notInlinedMessages);
static Map<String, Function> _notInlinedMessages(_) => <String, Function>{
"about_action_email":
MessageLookupByLibrary.simpleMessage("郵箱: xkeyc@qq.com"),
"about_action_open_source": MessageLookupByLibrary.simpleMessage("開源"),
"about_action_qq_group":
MessageLookupByLibrary.simpleMessage("QQ群: 940696487"),
"about_action_email": MessageLookupByLibrary.simpleMessage("聯絡我們"),
"about_action_open_source":
MessageLookupByLibrary.simpleMessage("專案開源 (Github)"),
"about_action_qq_group": MessageLookupByLibrary.simpleMessage("QQ群組"),
"about_analytics_install_translation":
MessageLookupByLibrary.simpleMessage("翻譯安裝"),
"about_analytics_launch": MessageLookupByLibrary.simpleMessage("啟動"),
@ -148,22 +147,22 @@ class MessageLookup extends MessageLookupByLibrary {
"about_analytics_p4k_redirection":
MessageLookupByLibrary.simpleMessage("P4K分流"),
"about_analytics_performance_optimization":
MessageLookupByLibrary.simpleMessage("性能調整"),
MessageLookupByLibrary.simpleMessage("畫面與性能改善"),
"about_analytics_total_users":
MessageLookupByLibrary.simpleMessage("用戶"),
MessageLookupByLibrary.simpleMessage("用戶"),
"about_analytics_units_times":
MessageLookupByLibrary.simpleMessage(""),
"about_analytics_units_user": MessageLookupByLibrary.simpleMessage(""),
"about_app_description": MessageLookupByLibrary.simpleMessage(
"不僅僅是漢化!\n\nSC漢化盒子是你探索宇宙的好幫手我們致力於為各位公民解決遊戲中的常見問題並為社群翻譯、性能調整、常用網站翻譯 等操作提供便利。"),
"這個工具能做的不僅僅是漢化!\n\nSC漢化盒子是你探索宇宙的好幫手我們致力於為各位公民解決遊戲中的常見問題並為社群翻譯、性能改善、常用網站翻譯 等操作提供便利。"),
"about_check_update": MessageLookupByLibrary.simpleMessage("檢查更新"),
"about_disclaimer": MessageLookupByLibrary.simpleMessage(
"這是一個非官方的星際公民工具,不隸屬於 Cloud Imperium 公司集團。 本軟體中非由其主機或用戶創作的所有內容均為其各自所有者的財產。 \nStar Citizen®、Roberts Space Industries® 和 Cloud Imperium® 是 Cloud Imperium Rights LLC 的註冊商標。"),
"SC漢化盒子非官方的星際公民工具,不隸屬於 Cloud Imperium 公司集團。 本軟體中非由其主機或用戶創作的所有內容均為其各自所有者的財產。 \nStar Citizen®、Roberts Space Industries® 和 Cloud Imperium® 是 Cloud Imperium Rights LLC 的註冊商標。"),
"about_info_latest_version":
MessageLookupByLibrary.simpleMessage("已經是最新版本!"),
"about_online_feedback": MessageLookupByLibrary.simpleMessage("線上反饋"),
MessageLookupByLibrary.simpleMessage("已經更新至最新版本"),
"about_online_feedback": MessageLookupByLibrary.simpleMessage("意見反饋"),
"action_close": MessageLookupByLibrary.simpleMessage("關閉"),
"action_open_folder": MessageLookupByLibrary.simpleMessage("打開文件"),
"action_open_folder": MessageLookupByLibrary.simpleMessage("打開資料"),
"app_common_error_info": m0,
"app_common_loading_images":
MessageLookupByLibrary.simpleMessage("載入圖片..."),
@ -171,7 +170,7 @@ class MessageLookup extends MessageLookupByLibrary {
"app_common_tip": MessageLookupByLibrary.simpleMessage("提示"),
"app_common_tip_cancel": MessageLookupByLibrary.simpleMessage("取消"),
"app_common_tip_confirm": MessageLookupByLibrary.simpleMessage("確認"),
"app_common_tip_i_know": MessageLookupByLibrary.simpleMessage("我知道"),
"app_common_tip_i_know": MessageLookupByLibrary.simpleMessage(""),
"app_common_upgrade_info_error":
MessageLookupByLibrary.simpleMessage("取得更新資訊失敗,請稍後重試。"),
"app_index_menu_about": MessageLookupByLibrary.simpleMessage("關於"),
@ -193,9 +192,9 @@ class MessageLookup extends MessageLookupByLibrary {
"app_splash_dialog_u_a_p_p":
MessageLookupByLibrary.simpleMessage("用戶協議與隱私政策"),
"app_splash_dialog_u_a_p_p_content": MessageLookupByLibrary.simpleMessage(
"感謝您選擇 SC漢化盒子 ,我們致力於為您提供 安全、便捷、可靠的使用體驗,在您開始使用應用前,請先閱讀並同意以下內容:\n\n 1. 本應用 為 GNU 通用公共許可證 v3.0 協議下的開源軟件,您可以在遵守協議的前提下自由使用、修改、分發本軟件。我們的源代碼位於:[Github.com/StarCitizenToolBox/app](https://github.com/StarCitizenToolBox/app)。\n2. 本應用中的互聯網內容(包括但不限於 本地化文件、工具網站、新聞、視頻 等)版權由其作者創作所有,不屬於 GPL 的一部分,請在遵守對應的授權協議下使用。\n3. 本應用的官方免費發布渠道為:[微軟應用商店](https://apps.microsoft.com/detail/9NF3SWFWNKL1) 與[星際公民漢化組官網](https://www.starcitizenzw.com/ ) ,若您從其他第三方處獲得,請仔細甄別,以免遭受財產損失。\n4. 本應用在使用過程中會向我們的服務器發送匿名的統計數據,用於改進軟件質量,我們不會收集您的任何個人隱私信息。\n5. 本應用由社區提供支持,與 Cloud Imperium Games 或 其他第三方商業公司 無直接關聯。\n6. 我們提供有限的社區支持,如有需要,請前往關於頁面了解如何联系我們。"),
"感謝使用 SC漢化盒子 ,我們致力於為您提供 安全、便捷、可靠的使用體驗,在您開始使用應用程式前,請先閱讀並同意以下內容:\n\n 1. 本應用程式 為 GNU 通用公共許可證 v3.0 協議下的開源軟體,您可以在遵守協議的前提下自由使用、修改、分發本軟體。我們的源代碼位於:[Github.com/StarCitizenToolBox/app](https://github.com/StarCitizenToolBox/app)。\n2. 本應用程式中的網內容(包括但不限於 本地化文件、工具網站、新聞、影片 等)版權由其作者創作所有,不屬於 GPL 的一部分,請在遵守對應的授權協議下使用。\n3. 本應用程式的官方免費發布渠道為:[Microsoft Store](https://apps.microsoft.com/detail/9NF3SWFWNKL1) 與[星際公民漢化組官](https://www.starcitizenzw.com/ ) ,若您從其他第三方處獲得,請仔細甄別,以免遭受財產損失。\n4. 本應用程式在使用過程中會向我們的伺服器發送匿名的統計數據,用於改進軟體服務品質,我們不會收集您的任何個人隱私資訊。\n5. 本應用程式由社群提供支援,與 Cloud Imperium Games 或 其他第三方商業公司 無直接關聯。\n6. 我們提供有限的社群支援,如有需要,請前往關於頁面了解如何聯絡我們。"),
"app_upgrade_action_next_time":
MessageLookupByLibrary.simpleMessage("下次吧"),
MessageLookupByLibrary.simpleMessage("稍後提醒我"),
"app_upgrade_action_update_now":
MessageLookupByLibrary.simpleMessage("立即更新"),
"app_upgrade_info_download_failed":
@ -209,7 +208,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("執行失敗,請嘗試手動安裝!"),
"app_upgrade_info_update_server_tip":
MessageLookupByLibrary.simpleMessage(
"提示:當前正在使用分流伺服器進行更新,可能會出現下載速度下降,但有助於我們進行成本控制,若下載異常請點擊這裡跳轉手動安裝。"),
"提示:當前正在使用分流伺服器進行更新,可能會出現下載速度下降,但有助於我們進行成本控制,若下載異常請點擊這裡前往手動安裝。"),
"app_upgrade_title_new_version_found": m5,
"doctor_action_analyzing":
MessageLookupByLibrary.simpleMessage("正在分析..."),
@ -218,7 +217,7 @@ class MessageLookup extends MessageLookupByLibrary {
"doctor_action_info_checking_eac":
MessageLookupByLibrary.simpleMessage("正在檢查EAC"),
"doctor_action_info_checking_install_info":
MessageLookupByLibrary.simpleMessage("正在檢查:安裝信息"),
MessageLookupByLibrary.simpleMessage("正在檢查:安裝資訊"),
"doctor_action_info_checking_runtime":
MessageLookupByLibrary.simpleMessage("正在檢查:運行環境"),
"doctor_action_info_game_abnormal_exit": m6,
@ -241,7 +240,7 @@ class MessageLookup extends MessageLookupByLibrary {
"doctor_action_result_issue_not_supported":
MessageLookupByLibrary.simpleMessage("該問題暫不支援自動處理,請提供截圖尋求幫助"),
"doctor_action_result_redirect_warning":
MessageLookupByLibrary.simpleMessage("即將跳轉,教學來自網路,請謹慎操作..."),
MessageLookupByLibrary.simpleMessage("即將前往,教學來自網路,請謹慎操作..."),
"doctor_action_result_toast_scan_no_issue":
MessageLookupByLibrary.simpleMessage(
"掃描完畢,沒有發現問題,若仍然安裝失敗,請嘗試使用工具箱中的 RSI啟動器管理員模式。"),
@ -257,7 +256,7 @@ class MessageLookup extends MessageLookupByLibrary {
"doctor_action_view_solution":
MessageLookupByLibrary.simpleMessage("查看解決方案"),
"doctor_game_error_game_damaged_file":
MessageLookupByLibrary.simpleMessage("遊戲程序文件損壞"),
MessageLookupByLibrary.simpleMessage("遊戲程式文件損毀"),
"doctor_game_error_game_damaged_file_info":
MessageLookupByLibrary.simpleMessage("請嘗試刪除 Bin64 資料夾 並在啟動器校驗。"),
"doctor_game_error_game_damaged_p4k_file":
@ -272,12 +271,12 @@ class MessageLookup extends MessageLookupByLibrary {
"doctor_game_error_generic_info":
MessageLookupByLibrary.simpleMessage("遊戲觸發了最為廣泛的崩潰問題,請查看除錯指南"),
"doctor_game_error_gpu_crash":
MessageLookupByLibrary.simpleMessage("您的顯卡崩潰啦!請查看除錯指南"),
MessageLookupByLibrary.simpleMessage("您的顯示卡已崩潰,請查看除錯指南"),
"doctor_game_error_low_gpu_memory":
MessageLookupByLibrary.simpleMessage("可用 VRAM 不足"),
"doctor_game_error_low_gpu_memory_info":
MessageLookupByLibrary.simpleMessage(
"不要在背景執行其他高顯卡占用的 遊戲/應用程式,或更換顯示卡。"),
"勿在背景執行其他高GPU占用的 遊戲/應用程式,或更換顯示卡。"),
"doctor_game_error_low_memory":
MessageLookupByLibrary.simpleMessage("可用記憶體不足"),
"doctor_game_error_low_memory_info":
@ -318,14 +317,14 @@ class MessageLookup extends MessageLookupByLibrary {
"新型 NVME 裝置,與 RSI 啟動器暫不兼容,可能導致安裝失敗"),
"doctor_info_result_install_easyanticheat":
MessageLookupByLibrary.simpleMessage(
"EasyAntiCheat 未安裝,請點擊修復為您一鍵安裝。(在遊戲正常啟動並結束前,該問題會一直出現,若您因為其他原因遊戲閃退,可忽略此條目)"),
"EasyAntiCheat 未安裝,請點擊修復為您快速安裝。(在遊戲正常啟動並結束前,該問題會一直出現,若您因為其他原因遊戲閃退,可忽略此條目)"),
"doctor_info_result_low_physical_memory":
MessageLookupByLibrary.simpleMessage("物理記憶體過低"),
"doctor_info_result_memory_requirement": m16,
"doctor_info_result_missing_easyanticheat_files":
MessageLookupByLibrary.simpleMessage("EasyAntiCheat 文件遺失"),
"doctor_info_result_missing_live_folder":
MessageLookupByLibrary.simpleMessage("安裝目錄缺少LIVE文件夾,可能導致安裝失敗"),
MessageLookupByLibrary.simpleMessage("安裝目錄缺少LIVE資料夾,可能導致安裝失敗"),
"doctor_info_result_no_solution":
MessageLookupByLibrary.simpleMessage("暫無解決方法,請截圖反饋"),
"doctor_info_result_unsupported_os":
@ -333,7 +332,7 @@ class MessageLookup extends MessageLookupByLibrary {
"doctor_info_result_upgrade_system": m17,
"doctor_info_result_verify_files_with_rsi_launcher":
MessageLookupByLibrary.simpleMessage(
"未在 LIVE 文件夾找到 EasyAntiCheat 文件 或 文件不完整,請使用 RSI 啟動器校驗文件"),
"未在 LIVE 資料夾找到 EasyAntiCheat 文件 或 文件不完整,請使用 RSI 啟動器校驗文件"),
"doctor_info_scan_complete_no_issues":
MessageLookupByLibrary.simpleMessage("掃描完畢,沒有找到問題!"),
"doctor_info_tool_check_result_note":
@ -347,7 +346,7 @@ class MessageLookup extends MessageLookupByLibrary {
"downloader_action_cancel_download":
MessageLookupByLibrary.simpleMessage("取消下載"),
"downloader_action_confirm_cancel_all_tasks":
MessageLookupByLibrary.simpleMessage("確認取消全部佇列?"),
MessageLookupByLibrary.simpleMessage("確認移除全部佇列?"),
"downloader_action_confirm_cancel_download":
MessageLookupByLibrary.simpleMessage("確認取消下載?"),
"downloader_action_continue_download":
@ -358,7 +357,7 @@ class MessageLookup extends MessageLookupByLibrary {
"downloader_action_pause_download":
MessageLookupByLibrary.simpleMessage("暫停下載"),
"downloader_action_resume_all":
MessageLookupByLibrary.simpleMessage("恢復全部"),
MessageLookupByLibrary.simpleMessage("全部繼續"),
"downloader_info_deleted": MessageLookupByLibrary.simpleMessage("已刪除"),
"downloader_info_download_completed":
MessageLookupByLibrary.simpleMessage("下載完成"),
@ -378,7 +377,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("尚無下載佇列"),
"downloader_info_p2p_network_note":
MessageLookupByLibrary.simpleMessage(
"SC 漢化盒子使用 p2p 網路來加速文件下載,如果您流量有限,可在此處將上傳速率設為 1(byte)。"),
"SC 漢化盒子使用 p2p 網路來加速文件下載,如果您流量有限,可在此處將上傳速率設為 1(byte)。"),
"downloader_info_paused": MessageLookupByLibrary.simpleMessage("已暫停"),
"downloader_info_status": m22,
"downloader_info_total_size": m23,
@ -393,25 +392,25 @@ class MessageLookup extends MessageLookupByLibrary {
"downloader_input_upload_speed_limit":
MessageLookupByLibrary.simpleMessage("上傳限制:"),
"downloader_speed_limit_settings":
MessageLookupByLibrary.simpleMessage("限速設置"),
MessageLookupByLibrary.simpleMessage("下載設定"),
"downloader_title_downloading":
MessageLookupByLibrary.simpleMessage("下載中"),
"downloader_title_ended": MessageLookupByLibrary.simpleMessage("已結束"),
"home_action_cancel": MessageLookupByLibrary.simpleMessage("取消"),
"home_action_dps_calculator_localization":
MessageLookupByLibrary.simpleMessage("DPS計算器 (中文)"),
MessageLookupByLibrary.simpleMessage("DPS計算器"),
"home_action_external_browser_extension":
MessageLookupByLibrary.simpleMessage("瀏覽器擴充套件:"),
"home_action_info_abnormal_game_exit": m26,
"home_action_info_check_web_link":
MessageLookupByLibrary.simpleMessage("請查看彈出的網頁連結獲得詳細信息"),
MessageLookupByLibrary.simpleMessage("請查看彈出式網頁連結獲得詳細資訊"),
"home_action_info_engine_config_optimization":
MessageLookupByLibrary.simpleMessage("調整引擎配置文件,改善遊戲性能"),
"home_action_info_game_built_in":
MessageLookupByLibrary.simpleMessage("遊戲內建"),
MessageLookupByLibrary.simpleMessage("內建翻譯文件"),
"home_action_info_initialization_failed": m27,
"home_action_info_initializing_resources":
MessageLookupByLibrary.simpleMessage("正在初始化翻譯資..."),
MessageLookupByLibrary.simpleMessage("正在初始化翻譯資..."),
"home_action_info_log_file_parse_fail":
MessageLookupByLibrary.simpleMessage("解析 log 文件失敗!"),
"home_action_info_mining_refining_trade_calculator":
@ -426,16 +425,17 @@ class MessageLookup extends MessageLookupByLibrary {
"home_action_info_scanning":
MessageLookupByLibrary.simpleMessage("正在掃描 ..."),
"home_action_info_ship_upgrade_damage_value_query":
MessageLookupByLibrary.simpleMessage("線上改裝,查詢傷害數值和配件購買地點"),
MessageLookupByLibrary.simpleMessage("在線上進行改裝、查詢傷害數值和配件購買地點"),
"home_action_info_unknown_error":
MessageLookupByLibrary.simpleMessage("未知錯誤,請通過疑難排解加入群組反饋。"),
"home_action_info_valid_install_location_required":
MessageLookupByLibrary.simpleMessage(
"該功能需要一個有效的安裝位置\n\n如果您的遊戲未下載完成,請等待下載完畢後使用此功能。\n\n如果您的遊戲已下載完畢但未識別,請啟動一次遊戲後重新打開盒子 或 在設置選項中手動設置安裝位置。"),
"home_action_info_warning": MessageLookupByLibrary.simpleMessage("警告"),
"該功能需要一個有效的安裝位置\n\n如果您的遊戲未下載完成,請等待下載完畢後使用此功能。\n\n如果您的遊戲已下載完畢但未識別,請啟動一次遊戲後重新打開盒子 或 在設定選項中手動設定安裝位置。"),
"home_action_info_warning":
MessageLookupByLibrary.simpleMessage("翻譯警告"),
"home_action_info_web_localization_plugin_disclaimer":
MessageLookupByLibrary.simpleMessage(
"本插功能件僅供大致瀏覽使用,不對任何有關本功能產生的問題負責!在涉及號操作前請注意確認網站的原本內容!\n\n\n使用此功能登錄號時請確保您的 SC漢化盒子 是從可信任的來源下載。"),
"本插功能件僅供大致瀏覽使用,不對任何有關本功能產生的問題負責!在涉及號操作前請注意確認網站的原本內容!\n\n\n使用此功能登錄號時請確保您的 SC漢化盒子 是從可信任的來源下載。"),
"home_action_install_microsoft_store_version":
MessageLookupByLibrary.simpleMessage("安裝 Microsoft Store 版本"),
"home_action_localization_management":
@ -447,7 +447,7 @@ class MessageLookup extends MessageLookupByLibrary {
"home_action_one_click_launch":
MessageLookupByLibrary.simpleMessage("快速啟動"),
"home_action_performance_optimization":
MessageLookupByLibrary.simpleMessage("性能調整"),
MessageLookupByLibrary.simpleMessage("畫面調整"),
"home_action_rsi_status_arena_commander":
MessageLookupByLibrary.simpleMessage("競技場指揮官"),
"home_action_rsi_status_electronic_access":
@ -461,30 +461,31 @@ class MessageLookup extends MessageLookupByLibrary {
"home_action_rsi_status_status":
MessageLookupByLibrary.simpleMessage("狀態:"),
"home_action_star_citizen_website_localization":
MessageLookupByLibrary.simpleMessage("星際公民官網 (中文)"),
MessageLookupByLibrary.simpleMessage("星際公民官方網站"),
"home_action_title_star_citizen_website_localization":
MessageLookupByLibrary.simpleMessage("星際公民網站漢化"),
MessageLookupByLibrary.simpleMessage("星際公民網站翻譯"),
"home_action_uex_localization":
MessageLookupByLibrary.simpleMessage("UEX (中文)"),
MessageLookupByLibrary.simpleMessage("UEX"),
"home_announcement_details":
MessageLookupByLibrary.simpleMessage("公告詳情"),
"home_holiday_countdown": MessageLookupByLibrary.simpleMessage("節日倒計時"),
"home_holiday_countdown":
MessageLookupByLibrary.simpleMessage("遊戲節慶倒數"),
"home_holiday_countdown_days": m29,
"home_holiday_countdown_disclaimer":
MessageLookupByLibrary.simpleMessage(
"* 以上節日日期由人工收錄、維護,可能存在錯誤,歡迎反饋!"),
"* 以上節慶日期由人工收錄與維護,可能存在部分偏誤,歡迎進行反饋!"),
"home_holiday_countdown_in_progress":
MessageLookupByLibrary.simpleMessage("正在進行中"),
"home_info_account_security_warning": MessageLookupByLibrary.simpleMessage(
"為確保帳戶安全,快速啟動功能已在開發版中禁用,我們將在 Microsoft Store 版本中提供此功能。\n\nMicrosoft Store 版由微軟提供可靠的分發下載與數字簽名,可有效防止軟件被惡意篡改。\n\n提示:您無需使用盒子啟動遊戲也可使用翻譯。"),
"home_info_one_click_launch_warning":
MessageLookupByLibrary.simpleMessage("一鍵啟動功能提示"),
MessageLookupByLibrary.simpleMessage("快速啟動功能提示"),
"home_info_valid_installation_required":
MessageLookupByLibrary.simpleMessage("該功能需要一個有效的安裝位置"),
"home_install_location": MessageLookupByLibrary.simpleMessage("安裝位置:"),
"home_localization_new_version_available":
MessageLookupByLibrary.simpleMessage("翻譯有新版本!"),
"home_localization_new_version_installed": m30,
MessageLookupByLibrary.simpleMessage("社群翻譯有新版本!"),
"home_localization_new_version_installed": m34,
"home_login_action_title_box_one_click_launch":
MessageLookupByLibrary.simpleMessage("盒子快速啟動"),
"home_login_action_title_need_webview2_runtime":
@ -492,11 +493,11 @@ class MessageLookup extends MessageLookupByLibrary {
"home_login_info_action_ignore":
MessageLookupByLibrary.simpleMessage("忽略"),
"home_login_info_game_version_outdated":
MessageLookupByLibrary.simpleMessage("遊戲版本過"),
MessageLookupByLibrary.simpleMessage("遊戲版本過"),
"home_login_info_one_click_launch_description":
MessageLookupByLibrary.simpleMessage(
"此功能可以幫您更加便利的啟動遊戲。\n\n為確保帳戶安全 ,此功能使用漢化瀏覽器保留登入狀態,且不會保存您的密碼資訊(除非你啟用了自動輸入功能)。\n\n使用此功能登入帳號時請確保您的 SC漢化盒子 是從可信任的來源下載。"),
"home_login_info_rsi_server_report": m31,
"home_login_info_rsi_server_report": m35,
"home_login_title_launching_game":
MessageLookupByLibrary.simpleMessage("正在為您啟動遊戲..."),
"home_login_title_welcome_back":
@ -504,7 +505,8 @@ class MessageLookup extends MessageLookupByLibrary {
"home_not_installed_or_failed":
MessageLookupByLibrary.simpleMessage("未安裝 或 安裝失敗"),
"home_title_app_name": MessageLookupByLibrary.simpleMessage("SC漢化盒子"),
"home_title_logging_in": MessageLookupByLibrary.simpleMessage("登入中..."),
"home_title_logging_in":
MessageLookupByLibrary.simpleMessage("正在登入..."),
"lobby_invitation_to_participate":
MessageLookupByLibrary.simpleMessage("誠邀您參與 "),
"lobby_online_lobby_coming_soon":
@ -513,44 +515,46 @@ class MessageLookup extends MessageLookupByLibrary {
"localization_action_install":
MessageLookupByLibrary.simpleMessage("安裝"),
"localization_action_translation_feedback":
MessageLookupByLibrary.simpleMessage("翻譯反饋"),
MessageLookupByLibrary.simpleMessage("意見反饋"),
"localization_action_uninstall_translation":
MessageLookupByLibrary.simpleMessage("解除安裝"),
"localization_info_channel": m32,
"localization_info_channel": m36,
"localization_info_community_translation":
MessageLookupByLibrary.simpleMessage("社群翻譯"),
"localization_info_corrupted_file":
MessageLookupByLibrary.simpleMessage("文件受損,請重新下載"),
"localization_info_custom_file": m33,
MessageLookupByLibrary.simpleMessage("文件已損毀,請重新下載"),
"localization_info_custom_file": m37,
"localization_info_custom_files":
MessageLookupByLibrary.simpleMessage("自訂文件"),
"localization_info_enabled": m34,
"localization_info_enabled": m38,
"localization_info_incompatible_translation_params_warning":
MessageLookupByLibrary.simpleMessage(
"USER.cfg 包含不相容的翻譯參數,這可能是以前的翻譯文件的殘留信息。\n\n這將可能導致翻譯無效或亂碼,點擊確認為您一鍵刪除(不會影響其他配置)。"),
"localization_info_installation_error": m35,
"USER.cfg 包含不相容的翻譯參數,這可能是以前的翻譯文件的殘留信息。\n\n這將可能導致翻譯無效或亂碼,點擊確認進行快速刪除(不會影響其他配置)。"),
"localization_info_installation_error": m39,
"localization_info_installed":
MessageLookupByLibrary.simpleMessage("已安裝"),
"localization_info_installed_version": m36,
"localization_info_installed_version": m40,
"localization_info_language":
MessageLookupByLibrary.simpleMessage("語言: "),
"localization_info_machine_translation_warning":
MessageLookupByLibrary.simpleMessage(
"正在使用遊戲內建文本官方文本目前為機器翻譯截至3.21.0),建議您在下方安裝社群翻譯"),
"目前正在使用遊戲內建翻譯文件,官方內建文件截止至 3.21.0 都是機器翻譯,建議安裝下方提供的社群翻譯或是來自其他來源的社群翻譯文件"),
"localization_info_no_translation_available":
MessageLookupByLibrary.simpleMessage("該語言/版本 暫時沒有可用翻譯,敬請期待!"),
MessageLookupByLibrary.simpleMessage(
"該語言/版本可能因為較新而暫時沒有可安裝的社群翻譯,可以使用進階功能安裝其他來源的社群翻譯"),
"localization_info_note": MessageLookupByLibrary.simpleMessage("備註:"),
"localization_info_remove_incompatible_translation_params":
MessageLookupByLibrary.simpleMessage("是否移除不相容的翻譯參數"),
"localization_info_translation_status":
MessageLookupByLibrary.simpleMessage("翻譯狀態"),
"localization_info_unavailable":
MessageLookupByLibrary.simpleMessage("不可用"),
"localization_info_update_time": m37,
"localization_info_version_number": m38,
"performance_action_apply": MessageLookupByLibrary.simpleMessage("套用"),
MessageLookupByLibrary.simpleMessage("無法使用"),
"localization_info_update_time": m41,
"localization_info_version_number": m42,
"performance_action_apply":
MessageLookupByLibrary.simpleMessage("套用設定"),
"performance_action_apply_and_clear_shaders":
MessageLookupByLibrary.simpleMessage("套用並清除著色器快取(推薦"),
MessageLookupByLibrary.simpleMessage("套用設定並清除著色器快取(建議"),
"performance_action_clear_shaders":
MessageLookupByLibrary.simpleMessage("清除著色器快取"),
"performance_action_custom_parameters_input":
@ -558,7 +562,7 @@ class MessageLookup extends MessageLookupByLibrary {
"您可以在這裡輸入未收錄進盒子的自訂參數。配置範例:\n\nr_displayinfo=0\nr_VSync=0"),
"performance_action_high": MessageLookupByLibrary.simpleMessage(""),
"performance_action_info_preset_only_changes_graphics":
MessageLookupByLibrary.simpleMessage("(預設只修改圖形設"),
MessageLookupByLibrary.simpleMessage("(預設只修改圖形設"),
"performance_action_low": MessageLookupByLibrary.simpleMessage(""),
"performance_action_medium": MessageLookupByLibrary.simpleMessage(""),
"performance_action_preset":
@ -567,7 +571,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage(" 恢復預設 "),
"performance_action_super": MessageLookupByLibrary.simpleMessage("超高"),
"performance_info_applied": MessageLookupByLibrary.simpleMessage("已套用"),
"performance_info_current_status": m39,
"performance_info_current_status": m43,
"performance_info_delete_config_file":
MessageLookupByLibrary.simpleMessage("刪除配置文件..."),
"performance_info_done": MessageLookupByLibrary.simpleMessage("完成..."),
@ -577,17 +581,17 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("畫面改善提示"),
"performance_info_graphic_optimization_warning":
MessageLookupByLibrary.simpleMessage(
"該功能對改善顯卡瓶頸有很大幫助,但對 CPU 瓶頸可能起反效果,如果您顯卡性能強勁,可以嘗試設定更高的畫質來獲得更高的顯卡使用率"),
"此功能對改善因 GPU 造成的瓶頸,但對於因 CPU 造成瓶頸的裝置可能引發負面效果,如果您 GPU 性能強勁,可以嘗試更改為更高的畫質來獲得更高的 GPU 使用率並改善畫面表現"),
"performance_info_graphics": MessageLookupByLibrary.simpleMessage("圖形"),
"performance_info_min_max_values": m40,
"performance_info_min_max_values": m44,
"performance_info_not_applied":
MessageLookupByLibrary.simpleMessage("未套用"),
"performance_info_shader_clearing_warning":
MessageLookupByLibrary.simpleMessage(
"清除著色器快取後首次進入遊戲可能會出現卡頓,請耐心等待遊戲初始化完畢。"),
"清除著色器快取後首次進入遊戲可能會出現卡頓,請耐心等待著色器載入完畢。"),
"performance_info_write_out_config_file":
MessageLookupByLibrary.simpleMessage("寫出配置文件"),
"performance_title_performance_optimization": m41,
"performance_title_performance_optimization": m45,
"setting_action_clear_translation_file_cache":
MessageLookupByLibrary.simpleMessage("清除文件快取"),
"setting_action_create_desktop_shortcut":
@ -596,12 +600,12 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("新增桌面捷徑"),
"setting_action_ignore_efficiency_cores_on_launch":
MessageLookupByLibrary.simpleMessage(
"啟動遊戲時忽略 E-Core (適用於Intel 12th+ 處理器)"),
"啟動遊戲時忽略 E-Core (適用於Intel 12代以上的處理器)"),
"setting_action_info_autofill_data_cleared":
MessageLookupByLibrary.simpleMessage("已清除自動輸入紀錄"),
"setting_action_info_cache_clearing_info": m42,
"setting_action_info_cache_clearing_info": m46,
"setting_action_info_clear_cache_warning":
MessageLookupByLibrary.simpleMessage("這不會影響已安裝的翻譯"),
MessageLookupByLibrary.simpleMessage("這不會影響已安裝的翻譯文件"),
"setting_action_info_confirm_clear_cache":
MessageLookupByLibrary.simpleMessage("確認清除翻譯快取?"),
"setting_action_info_confirm_reset_autofill":
@ -631,14 +635,14 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage(
"請選擇RSI啟動器位置RSI Launcher.exe"),
"setting_action_info_setting_success":
MessageLookupByLibrary.simpleMessage("置成功,在對應頁面點擊重新整理即可掃描出新路徑"),
MessageLookupByLibrary.simpleMessage("定完成,在對應頁面點擊重新整理即可掃描出新路徑"),
"setting_action_info_shortcut_created":
MessageLookupByLibrary.simpleMessage("新增完畢,請返回桌面查看"),
"setting_action_info_view_log_file":
MessageLookupByLibrary.simpleMessage("查看漢化盒子的 log 文件,用於定位盒子的 Bug"),
"setting_action_reset_auto_password_fill":
MessageLookupByLibrary.simpleMessage("重置自動密碼輸入"),
"setting_action_set_core_count": m43,
"setting_action_set_core_count": m47,
"setting_action_set_game_file":
MessageLookupByLibrary.simpleMessage("更改遊戲文件 StarCitizen.exe"),
"setting_action_set_launcher_file":
@ -651,45 +655,45 @@ class MessageLookup extends MessageLookupByLibrary {
"settings_app_language_auto":
MessageLookupByLibrary.simpleMessage("自動"),
"settings_app_language_switch_info":
MessageLookupByLibrary.simpleMessage("切換應用程式語言"),
MessageLookupByLibrary.simpleMessage("切換應用程式的顯示語言"),
"tools_action_clear_shader_cache":
MessageLookupByLibrary.simpleMessage("除著色器快取"),
MessageLookupByLibrary.simpleMessage("除著色器快取"),
"tools_action_close_photography_mode":
MessageLookupByLibrary.simpleMessage("關閉攝影模式"),
MessageLookupByLibrary.simpleMessage("攝影模式"),
"tools_action_hosts_acceleration_experimental":
MessageLookupByLibrary.simpleMessage("Hosts 加速(實驗性"),
MessageLookupByLibrary.simpleMessage("Hosts 加速(Beta"),
"tools_action_info_cleanup_complete":
MessageLookupByLibrary.simpleMessage("清理完畢,請完成一次安裝 / 遊戲啟動 操作。"),
"tools_action_info_cleanup_failed": m44,
"tools_action_info_cleanup_failed": m48,
"tools_action_info_config_file_not_exist":
MessageLookupByLibrary.simpleMessage("配置文件不存在,請嘗試運行一次遊戲"),
"tools_action_info_eac_file_removed": MessageLookupByLibrary.simpleMessage(
"已為您移除 EAC 文件,接下來將為您打開 RSI 啟動器,請您前往 SETTINGS -> VERIFY 重新安裝 EAC。"),
"tools_action_info_error_occurred": m45,
"tools_action_info_error_occurred": m49,
"tools_action_info_fix_success_restart":
MessageLookupByLibrary.simpleMessage(
"修復成功,請嘗試重啟電腦後繼續安裝遊戲! 若註冊表修改操作導致其他軟體出現相容問題,請使用 工具 中的 NVME 註冊表清理。"),
"修復成功,請嘗試重電腦後繼續安裝遊戲! 若註冊表修改操作導致其他軟體出現相容問題,請使用 工具 中的 NVME 註冊表清理。"),
"tools_action_info_function_under_maintenance":
MessageLookupByLibrary.simpleMessage("功能維護中,請稍後重試!"),
"tools_action_info_hosts_acceleration_experimental_tip":
MessageLookupByLibrary.simpleMessage(
"將 IP 信息寫入 Hosts 文件,解決部分地區的 DNS 汙染導致無法登錄官網等問題。\n該功能正在進行第一階段測試,遇到問題請及時反饋。"),
"tools_action_info_init_failed": m46,
"將 IP 資訊寫入 Hosts 文件,解決部分地區的 DNS 汙染導致無法登入官網等問題。\n該功能正在進行第一階段測試,遇到問題請及時反饋。"),
"tools_action_info_init_failed": m50,
"tools_action_info_log_file_not_exist":
MessageLookupByLibrary.simpleMessage(
"日誌文件不存在,請嘗試進行一次遊戲啟動或遊戲安裝,並退出啟動器,若無法解決問題,請嘗試將啟動器更新至最新版本!"),
"tools_action_info_log_file_parse_failed":
MessageLookupByLibrary.simpleMessage(
"解析 log 文件失敗!\n請嘗試使用 RSI Launcher log 修復 工具!"),
"解析 log 文件失敗!\n請嘗試使用 啟動器日誌修復 工具!"),
"tools_action_info_manual_nvme_patch":
MessageLookupByLibrary.simpleMessage(
"手動寫入NVME補丁該功能僅在您知道自己在做什麼的情況下使用"),
"此功能將手動寫入NVME補丁該功能僅在您知道自己在做什麼的情況下使用"),
"tools_action_info_not_installed":
MessageLookupByLibrary.simpleMessage("未安裝"),
"tools_action_info_nvme_patch_issue": m47,
"tools_action_info_nvme_patch_issue": m51,
"tools_action_info_one_key_close_lens_shake":
MessageLookupByLibrary.simpleMessage(
"一鍵關閉遊戲內鏡頭晃動以便於攝影操作。\n\n @拉邦那 Lapernum 提供參數信息"),
"關閉遊戲內鏡頭晃動效果以便進行攝影。\n\n @拉邦那 Lapernum 提供參數資訊"),
"tools_action_info_p4k_download_in_progress":
MessageLookupByLibrary.simpleMessage(
"已經有一個p4k下載任務正在進行中請前往下載管理器查看"),
@ -702,47 +706,47 @@ class MessageLookup extends MessageLookupByLibrary {
"tools_action_info_reinstall_eac": MessageLookupByLibrary.simpleMessage(
"若您遇到 EAC 錯誤,且自動修復無效,請嘗試使用此功能重新安裝 EAC。"),
"tools_action_info_removed_restart_effective":
MessageLookupByLibrary.simpleMessage("已移除,重啟電腦生效"),
MessageLookupByLibrary.simpleMessage("已移除註冊表補丁,重動後電腦生效"),
"tools_action_info_restore_lens_shake":
MessageLookupByLibrary.simpleMessage(
"還原鏡頭晃效果。\n\n@拉邦那 Lapernum 提供參數信息"),
"已開啟攝影模式,再次點擊來關閉並還原鏡頭晃效果。\n\n@拉邦那 Lapernum 提供參數資訊"),
"tools_action_info_rsi_launcher_directory_not_found":
MessageLookupByLibrary.simpleMessage("未找到 RSI 啟動器目錄,請您嘗試手動操作。"),
"tools_action_info_rsi_launcher_log_issue": m48,
"tools_action_info_rsi_launcher_log_issue": m52,
"tools_action_info_rsi_launcher_not_found":
MessageLookupByLibrary.simpleMessage(
"未找到 RSI 啟動器,請嘗試重新安裝,或在設中手動添加。"),
"未找到 RSI 啟動器,請嘗試重新安裝,或在設中手動添加。"),
"tools_action_info_rsi_launcher_running_warning":
MessageLookupByLibrary.simpleMessage("RSI啟動器正在運行請先關閉啟動器再使用此功能"),
"tools_action_info_run_rsi_as_admin":
MessageLookupByLibrary.simpleMessage(
"以管理員身份執行RSI啟動器可能會解決一些問題。\n\n若設置了能效核心忽略參數,也會在此套用。"),
"tools_action_info_shader_cache_issue": m49,
"以管理員身份執行RSI啟動器可能會解決一些問題。\n\n若設定了 E-Core 核心忽略參數,也會在此套用。"),
"tools_action_info_shader_cache_issue": m53,
"tools_action_info_star_citizen_not_found":
MessageLookupByLibrary.simpleMessage(
"未找到星際公民遊戲安裝位置,請至少完成一次遊戲啟動操作 或在設中手動新增。"),
"tools_action_info_system_info_content": m50,
"未找到星際公民遊戲安裝位置,請至少完成一次遊戲啟動操作 或在設中手動新增。"),
"tools_action_info_system_info_content": m54,
"tools_action_info_system_info_title":
MessageLookupByLibrary.simpleMessage("系統資訊"),
"tools_action_info_valid_game_directory_needed":
MessageLookupByLibrary.simpleMessage("該功能需要一個有效的遊戲安裝目錄"),
"tools_action_info_view_critical_system_info":
MessageLookupByLibrary.simpleMessage(
"查看系統關鍵資訊,用於快速診斷 \n\n耗時操作,請耐心等待。"),
"查看系統關鍵資訊,用於快速診斷 \n\n此功能較為耗時,請耐心等待。"),
"tools_action_open_photography_mode":
MessageLookupByLibrary.simpleMessage("開啟攝影模式"),
MessageLookupByLibrary.simpleMessage("攝影模式"),
"tools_action_p4k_download_repair":
MessageLookupByLibrary.simpleMessage("P4K 分流下載 / 修復"),
"tools_action_reinstall_easyanticheat":
MessageLookupByLibrary.simpleMessage("重新安裝 EasyAntiCheat 反作弊"),
MessageLookupByLibrary.simpleMessage("重新安裝 EAC"),
"tools_action_remove_nvme_registry_patch":
MessageLookupByLibrary.simpleMessage("移除 nvme 註冊表補丁"),
"tools_action_rsi_launcher_admin_mode":
MessageLookupByLibrary.simpleMessage("RSI Launcher 管理員模式"),
MessageLookupByLibrary.simpleMessage("管理員模式"),
"tools_action_rsi_launcher_log_fix":
MessageLookupByLibrary.simpleMessage("RSI Launcher Log 修復"),
MessageLookupByLibrary.simpleMessage("啟動器日誌修復"),
"tools_action_view_system_info":
MessageLookupByLibrary.simpleMessage("查看系統信息"),
MessageLookupByLibrary.simpleMessage("系統資訊"),
"tools_action_write_nvme_registry_patch":
MessageLookupByLibrary.simpleMessage("寫入 nvme 註冊表補丁"),
"tools_hosts_action_one_click_acceleration":
@ -768,7 +772,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("正在寫入 Hosts ..."),
"tools_info_game_install_location":
MessageLookupByLibrary.simpleMessage("遊戲安裝位置: "),
"tools_info_processing_failed": m51,
"tools_info_processing_failed": m55,
"tools_info_rsi_launcher_location":
MessageLookupByLibrary.simpleMessage("RSI啟動器位置"),
"tools_info_scanning": MessageLookupByLibrary.simpleMessage("正在掃描..."),

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,6 @@
{
"@@locale": "en",
"@auto_translate_locale": "en",
"app_language_name": "English",
"@app_language_name": {},
"app_language_code": "en",
@ -36,7 +37,7 @@
"@about_analytics_p4k_redirection": {},
"about_analytics_units_user": "users",
"@about_analytics_units_user": {},
"about_analytics_units_times": "Second-rate",
"about_analytics_units_times": "Times",
"@about_analytics_units_times": {},
"about_info_latest_version": "It is already the latest version!",
"@about_info_latest_version": {},
@ -287,7 +288,7 @@
"@home_action_info_scan_complete_valid_directories_found": {},
"home_action_info_log_file_parse_fail": "Analysis of LOG files failed!",
"@home_action_info_log_file_parse_fail": {},
"home_action_title_star_citizen_website_localization": "Star Citizen Website Sinicization",
"home_action_title_star_citizen_website_localization": "Star Citizen Website Localization",
"@home_action_title_star_citizen_website_localization": {},
"home_action_info_web_localization_plugin_disclaimer": "This plug -in function is for general browsing, not responsible for any problems related to this function! Please pay attention to confirming the original content of the website before the account operation!\n\n\nWhen logging in to the account, please make sure your SCToolBox is downloaded from a trusted source.",
"@home_action_info_web_localization_plugin_disclaimer": {},
@ -297,7 +298,7 @@
"@home_action_info_initialization_failed": {},
"home_title_app_name": "SCToolBox",
"@home_title_app_name": {},
"home_localization_new_version_available": "Sinicization has a new version!",
"home_localization_new_version_available": "Localization has a new version!",
"@home_localization_new_version_available": {},
"home_localization_new_version_installed": "You have a new version of the Localization you installed in {v0}!",
"@home_localization_new_version_installed": {},
@ -329,9 +330,9 @@
"@localization_info_enabled": {},
"localization_info_installed_version": "The installed version: {v0}",
"@localization_info_installed_version": {},
"localization_action_translation_feedback": "Localization feedback",
"localization_action_translation_feedback": "Feedback",
"@localization_action_translation_feedback": {},
"localization_action_uninstall_translation": "Uninstallation of Localization",
"localization_action_uninstall_translation": "Uninstall",
"@localization_action_uninstall_translation": {},
"localization_info_note": "Remark:",
"@localization_info_note": {},
@ -386,13 +387,13 @@
"@performance_action_high": {},
"performance_action_super": "Super",
"@performance_action_super": {},
"performance_action_info_preset_only_changes_graphics": "(Preset only the graphic settings)",
"performance_action_info_preset_only_changes_graphics": "(Only graphic)",
"@performance_action_info_preset_only_changes_graphics": {},
"performance_action_reset_to_default": " Reset to default ",
"performance_action_reset_to_default": " Reset",
"@performance_action_reset_to_default": {},
"performance_action_apply": "Application",
"performance_action_apply": "Apply",
"@performance_action_apply": {},
"performance_action_apply_and_clear_shaders": "Apply and clean up the color device (recommended)",
"performance_action_apply_and_clear_shaders": "Apply and clean up",
"@performance_action_apply_and_clear_shaders": {},
"performance_title_performance_optimization": "Performance Optimization -> {v0}",
"@performance_title_performance_optimization": {},
@ -432,7 +433,7 @@
"@lobby_survey": {},
"setting_action_create_settings_shortcut": "Create shortcut",
"@setting_action_create_settings_shortcut": {},
"setting_action_create_desktop_shortcut": "Create \"SC Sinicization Box\" shortcut on the desktop",
"setting_action_create_desktop_shortcut": "Create \"SC Localization Box\" shortcut on the desktop",
"@setting_action_create_desktop_shortcut": {},
"setting_action_reset_auto_password_fill": "Reset automatic password filling",
"@setting_action_reset_auto_password_fill": {},
@ -554,7 +555,7 @@
"@tools_action_hosts_acceleration_experimental": {},
"tools_action_info_hosts_acceleration_experimental_tip": "Write the IP information into the hosts file to solve problems such as DNS pollution in some regions that cannot log in to the official website.\nThis function is undergoing the first stage of testing. Please report it in time when you encounter problems.",
"@tools_action_info_hosts_acceleration_experimental_tip": {},
"tools_action_reinstall_easyanticheat": "Reinstall EasyAnticheat's anti -cheating",
"tools_action_reinstall_easyanticheat": "Reinstall EasyAnticheat",
"@tools_action_reinstall_easyanticheat": {},
"tools_action_info_reinstall_eac": "If you encounter EAC errors and are invalid automatically, try using this feature to reinstall EAC.",
"@tools_action_info_reinstall_eac": {},
@ -698,6 +699,128 @@
"@app_common_loading_images": {},
"app_splash_dialog_u_a_p_p": "User Agreement and Privacy Policy",
"@app_splash_dialog_u_a_p_p": {},
"app_splash_dialog_u_a_p_p_content": "Thank you for choosing the SC Chinese box. We are committed to providing you with a safe, convenient and reliable experience. Before you start using your application, please read and agree to the following:\n\n 1. This application is an open source software under the GNU General Public License V3.0 protocol. You can use, modify, and distribute this software freely under the premise of obeying the agreement. Our source code is located at: [github.com/starCitizentoolBox/app] (https://github.com/starCitizantoolBox/app).\n2. The copyright of the Internet content in this application (including but not limited to localized documents, tool websites, news, videos, etc.) is created by its authors and is not part of GPL. Please use it under the corresponding authorization agreement.\n3. The official free release channels for this application are: [Microsoft App Store] (https://apps.microsoft.com/detail/9NF3SWFWNKL1) and [Official Website of Star Citizen Chinese] ), If you get from other third parties, please identify it carefully to avoid suffering from property losses.\n4. This application will send anonymous statistics to our server during use to improve software quality, and we will not collect any personal privacy information of your personal privacy.\n5. This application is supported by the community and has no direct connection with Cloud Imperium Games or other third -party commercial companies.\n6. We provide limited community support. If necessary, please go to the page to learn how to contact us.",
"@app_splash_dialog_u_a_p_p_content": {}
}
"app_splash_dialog_u_a_p_p_content": "Thank you for choosing the SCToolBox box. We are committed to providing you with a safe, convenient and reliable experience. Before you start using your application, please read and agree to the following:\n\n 1. This application is an open source software under the GNU General Public License V3.0 protocol. You can use, modify, and distribute this software freely under the premise of obeying the agreement. Our source code is located at: [github.com/starCitizentoolBox/app] (https://github.com/starCitizantoolBox/app).\n2. The copyright of the Internet content in this application (including but not limited to localized documents, tool websites, news, videos, etc.) is created by its authors and is not part of GPL. Please use it under the corresponding authorization agreement.\n3. The official free release channels for this application are: [Microsoft App Store] (https://apps.microsoft.com/detail/9NF3SWFWNKL1) and [Official Website of Star Citizen Chinese] ), If you get from other third parties, please identify it carefully to avoid suffering from property losses.\n4. This application will send anonymous statistics to our server during use to improve software quality, and we will not collect any personal privacy information of your personal privacy.\n5. This application is supported by the community and has no direct connection with Cloud Imperium Games or other third -party commercial companies.\n6. We provide limited community support. If necessary, please go to the page to learn how to contact us.",
"@app_splash_dialog_u_a_p_p_content": {},
"tools_unp4k_msg_init": "Initialization ...",
"tools_unp4k_msg_reading": "Reading P4K file ...",
"tools_unp4k_msg_reading2": "Treatment files ...",
"tools_unp4k_msg_reading3": "Processing files ({v0}/{v1}) ...",
"tools_unp4k_msg_read_completed": "After loading: {v0} a file, time: {v1} ms",
"tools_unp4k_msg_open_file": "Open the file: {v0}",
"tools_unp4k_msg_read_file": "Read file: {v0} ...",
"home_localization_advanced_title": "Advanced Localization -> {v0}",
"home_localization_advanced_msg_version": "Localization version has been loaded: {v0}",
"home_localization_advanced_title_msg": "Localization text lines: {v0} P4K text lines: {v1}",
"home_localization_advanced_action_install": "Installation of Localization",
"home_localization_advanced_action_mod_change": "The text is being re -generated ...",
"home_localization_advanced_action_mode": "Model",
"home_localization_advanced_title_preview": "Preview: {v0}",
"home_localization_advanced_json_text_location_other": "Location-Other",
"home_localization_advanced_json_text_location_used": "Location-Commonly used",
"home_localization_advanced_json_text_things_other": "Items-Other",
"home_localization_advanced_json_text_things_used": "Items-Commonly used",
"home_localization_advanced_json_text_vehicle_other": "Vehicle-Other",
"home_localization_advanced_json_text_vehicle_used": "Vehicle-Commonly used",
"home_localization_advanced_json_text_mission_or_logs": "Mission/Log",
"home_localization_advanced_json_text_subtitle": "Subtitle",
"home_localization_advanced_json_text_ui_or_hud_or_menu": "UI/HUD/menu",
"home_localization_advanced_json_text_un_localization": "Unwaver",
"home_localization_advanced_json_text_others": "Other",
"home_localization_advanced_action_mod_change_localization": "Localization",
"home_localization_advanced_action_mod_change_un_localization": "Original English",
"home_localization_advanced_action_mod_change_mixed": "Bilingual",
"home_localization_advanced_action_mod_change_mixed_newline": "Bilingual (newline)",
"home_localization_advanced_msg_classifying": "Classified ...",
"home_localization_advanced_msg_reading_p4k": "Read p4k file ...",
"home_localization_advanced_msg_reading_server_localization_text": "Get Localization text ...",
"home_localization_advanced_msg_gen_localization_text": "Generate Localization file ...",
"home_localization_advanced_msg_gen_localization_install": "Install Localization file ...",
"home_localization_msg_version_advanced": "(Advanced)",
"home_localization_msg_no_note": "This version does not provide a description",
"home_localization_action_rsi_launcher_localization": "RSILauncher Localization",
"home_localization_action_advanced": "Advanced Localization",
"home_localization_action_install_customize": "Install custom file",
"home_localization_title_localization_tools": "Localization tool",
"performance_json_text_ssdo": "Swip light after the screen light",
"performance_json_text_ssdo_info": "After adjusting the light, processing level",
"performance_json_text_title_graphics": "Graphic",
"performance_json_text_antialiasing": "Anti -aliasing",
"performance_json_text_antialiasing_info": "0 Close, 1 SMAA, 2 time filter+SMAA, 3 time filtering and projection matrix shake SMAA",
"performance_json_text_game_effects": "Special effect level",
"performance_json_text_game_effects_info": "Game special effect level",
"performance_json_text_texture": "Grade",
"performance_json_text_texture_info": "Model texture details",
"performance_json_text_volumetric_effects": "Volume effect",
"performance_json_text_volumetric_effects_info": "Volume cloud, volume light, etc.",
"performance_json_text_water": "Water effect",
"performance_json_text_water_info": "Grade of various water",
"performance_json_text_object_detail": "Object detail",
"performance_json_text_object_detail_info": "Model object details, affect LOD, etc.",
"performance_json_text_particles": "Particle details",
"performance_json_text_physics": "Physical details",
"performance_json_text_physics_info": "Scope of physical effects",
"performance_json_text_shading": "Colorrhea details",
"performance_json_text_shading_info": "Coloror related",
"performance_json_text_shadows": "Shadow details",
"performance_json_text_shadows_info": "Shadow effect",
"performance_json_text_postprocessing": "Post -processing details",
"performance_json_text_postprocessing_info": "After the color device, dynamic blur effect, etc.",
"performance_json_text_renderer": "Rendering device quality",
"performance_json_text_renderer_info": "Cryengine rendereer quality",
"performance_json_text_shader_decal": "Quality",
"performance_json_text_shader_decal_info": "(LOGO, logo, etc.)",
"performance_json_text_shader_post_process": "Color quality",
"performance_json_text_shader_fx": "FX quality",
"performance_json_text_shader_general": "Conventional quality",
"performance_json_text_shader_general_info": "Overall model quality",
"performance_json_text_shader_glass": "Glass quality",
"performance_json_text_shader_glass_info": "Window, mirror, etc.",
"performance_json_text_shader_hdr": "HDR quality",
"performance_json_text_shader_hdr_info": "HDR color difference, brightness level treatment, etc.",
"performance_json_text_shader_particle": "Particle quality",
"performance_json_text_shader_particle_info": "Particle effect quality",
"performance_json_text_shader_terrain": "Ground quality",
"performance_json_text_shader_shadow": "Shadow quality",
"performance_json_text_shader_sky": "Sky quality",
"performance_json_text_particles_object_collisions": "Particle collision",
"performance_json_text_particles_object_collisions_info": "1 Static particles 2 include dynamic particles",
"performance_json_text_displayinfo": "Screen information (display frame rate)",
"performance_json_text_displayinfo_info": "Display frame rates, server information, etc. in the upper right corner of the screen",
"performance_json_text_max_fps": "Maximum frame rate",
"performance_json_text_max_fps_info": "Adjust the maximum frame rate of the game, 0 is not limited",
"performance_json_text_display_session": "Display session information",
"performance_json_text_display_session_info": "After turning on, display a QR code on the screen to allow CIG to quickly locate related information when feedback",
"performance_json_text_vsync": "Vertical sync",
"performance_json_text_vsync_info": "Open to prevent tearing, turn off to increase the frame rate",
"performance_json_text_motion_blur": "Dynamic blur",
"performance_json_text_motion_blur_info": "Open to improve the sense of movement, turn off and enhance the perception",
"performance_json_text_fov": "Set viewing angle FOV",
"performance_json_text_ui_animation": "UI fades into the animation",
"performance_json_text_custom_parameters": "Custom parameter",
"performance_json_text_title_custom": "Customize",
"tools_rsi_launcher_enhance_init_msg1": "Read the starter information ...",
"tools_rsi_launcher_enhance_init_msg2": "Obtaining enhanced data from the Internet ...",
"tools_rsi_launcher_enhance_working_msg1": "Generate patch ...",
"tools_rsi_launcher_enhance_working_msg2": "Installation patch takes a little time, depending on your computer performance ...",
"tools_rsi_launcher_enhance_title": "RSI starter enhancement",
"tools_rsi_launcher_enhance_msg_version": "Internal version information of the starter: {v0}",
"tools_rsi_launcher_enhance_msg_patch_status": "Patch status: {v0}",
"tools_rsi_launcher_enhance_msg_error": "Obtaining enhanced data failure may be the network problem or the current version does not support",
"tools_rsi_launcher_enhance_title_localization": "RSI startup localization",
"tools_rsi_launcher_enhance_subtitle_localization": "Add multi -language support to the RSI starter.",
"tools_rsi_launcher_enhance_title_download_booster": "RSI starter download enhancement",
"tools_rsi_launcher_enhance_subtitle_download_booster": "When downloading the game, you can use more threads to increase the download speed.",
"tools_rsi_launcher_enhance_action_install": "Installation enhanced patch",
"tools_rsi_launcher_enhance_msg_uninstall": "* If you need to uninstall the enhanced patch, cover the installation RSI promoter.",
"tools_rsi_launcher_enhance_msg_error_launcher_notfound": "No RSI promoter was found",
"tools_rsi_launcher_enhance_msg_error_get_launcher_info_error": "Reading the starter information failed!",
"tools_rsi_launcher_enhance_msg_error_get_launcher_info_error_with_args": "Read the starter information failure: {v0}",
"tools_action_rsi_launcher_enhance_info": "Enhanced launcher Localization、 download thread",
"tools_rsi_launcher_enhance_note_title": "Instructions for the use of RSI starter enhancement",
"tools_rsi_launcher_enhance_note_msg": "RSI starter enhancement is a community function. It will unpack \"RSI LAUNCHER\" on your computer and add additional enhancement functions. What functions are determined by you.\n\nAt present, the official (CIG) only permits us to perform multi -language operations. The launch of the booter download enhancement is an extra function we think of it. Violation of the CIG user protocol (https://robertsspaceindustries.com/eula) may cause serious consequences such as accounts. Whether or not you are determined by yourself, we are not responsible for the possible consequences (game damage, account ban, etc.).\n\nFor the modified content of the starter, we are open from: https://github.com/starcitizentoolbox/rsilauncherenhance. If necessary, you can check it yourself.\n\nIf you need to cancel this enhanced patch for any reason, cover the installation of the official startup directly.",
"tools_action_unp4k": "P4K viewer",
"tools_action_unp4k_info": "Package Star Citizen P4K File",
"tools_unp4k_title": "P4k viewer -> {v0}",
"tools_unp4k_view_file": "Click the file to preview",
"tools_unp4k_msg_unknown_file_type": "Unknown file type\n{v0}"
}

View File

@ -636,10 +636,6 @@
"@webview_localization_finished_invitations": {},
"app_init_failed_with_reason": "初始化失败:{v0}",
"@app_init_failed_with_reason": {},
"webview_localization_enter_device_pin": "请输入设备PIN以自动登录RSI账户",
"@webview_localization_enter_device_pin": {},
"webview_localization_device_windows_hello_toast": "请完成 Windows Hello 验证以填充密码",
"@webview_localization_device_windows_hello_toast": {},
"settings_app_language": "语言",
"settings_app_language_auto": "自动",
"app_common_network_error": "网络异常!\n这可能是您的网络环境存在DNS污染请尝试更换DNS。\n或服务器正在维护或遭受攻击稍后再试。 \n进入离线模式... \n\n请谨慎在离线模式中使用。 \n当前版本构建日期{v0}\n QQ群940696487 \n错误信息{v1}",
@ -670,5 +666,127 @@
"home_holiday_countdown_in_progress": "正在进行中",
"app_common_loading_images": "加载图片...",
"app_splash_dialog_u_a_p_p": "用户协议与隐私政策",
"app_splash_dialog_u_a_p_p_content": "感谢您选择 SC汉化盒子 ,我们致力于为您提供 安全、便捷、可靠的使用体验,在您开始使用应用前,请先阅读并同意以下内容:\n\n 1. 本应用 为 GNU 通用公共许可证 v3.0 协议下的开源软件,您可以在遵守协议的前提下自由使用、修改、分发本软件。我们的源代码位于:[Github.com/StarCitizenToolBox/app](https://github.com/StarCitizenToolBox/app)。 \n2. 本应用中的互联网内容(包括但不限于 本地化文件、工具网站、新闻、视频 等)版权由其作者创作所有,不属于 GPL 的一部分,请在遵守对应的授权协议下使用。\n3. 本应用的官方免费发布渠道为:[微软应用商店](https://apps.microsoft.com/detail/9NF3SWFWNKL1) 与 [星际公民汉化组官网](https://www.starcitizenzw.com/) ,若您从其他第三方处获得,请仔细甄别,以免遭受财产损失。\n4. 本应用在使用过程中会向我们的服务器发送匿名的统计数据,用于改进软件质量,我们不会收集您的任何个人隐私信息。 \n5. 本应用由社区提供支持,与 Cloud Imperium Games 或 其他第三方商业公司 无直接关联。\n6. 我们提供有限的社区支持,如有需要,请前往关于页面了解如何联系我们。"
"app_splash_dialog_u_a_p_p_content": "感谢您选择 SC汉化盒子 ,我们致力于为您提供 安全、便捷、可靠的使用体验,在您开始使用应用前,请先阅读并同意以下内容:\n\n 1. 本应用 为 GNU 通用公共许可证 v3.0 协议下的开源软件,您可以在遵守协议的前提下自由使用、修改、分发本软件。我们的源代码位于:[Github.com/StarCitizenToolBox/app](https://github.com/StarCitizenToolBox/app)。 \n2. 本应用中的互联网内容(包括但不限于 本地化文件、工具网站、新闻、视频 等)版权由其作者创作所有,不属于 GPL 的一部分,请在遵守对应的授权协议下使用。\n3. 本应用的官方免费发布渠道为:[微软应用商店](https://apps.microsoft.com/detail/9NF3SWFWNKL1) 与 [星际公民汉化组官网](https://www.starcitizenzw.com/) ,若您从其他第三方处获得,请仔细甄别,以免遭受财产损失。\n4. 本应用在使用过程中会向我们的服务器发送匿名的统计数据,用于改进软件质量,我们不会收集您的任何个人隐私信息。 \n5. 本应用由社区提供支持,与 Cloud Imperium Games 或 其他第三方商业公司 无直接关联。\n6. 我们提供有限的社区支持,如有需要,请前往关于页面了解如何联系我们。",
"tools_unp4k_msg_init": "初始化中...",
"tools_unp4k_msg_reading": "正在读取P4K 文件 ...",
"tools_unp4k_msg_reading2": "正在处理文件 ...",
"tools_unp4k_msg_reading3": "正在处理文件 ({v0}/{v1}) ...",
"tools_unp4k_msg_read_completed": "加载完毕:{v0} 个文件,用时:{v1} ms",
"tools_unp4k_msg_open_file": "打开文件:{v0}",
"tools_unp4k_msg_read_file": "读取文件:{v0} ...",
"home_localization_advanced_title": "高级汉化 -> {v0}",
"home_localization_advanced_msg_version": "已加载汉化版本:{v0}",
"home_localization_advanced_title_msg": "汉化文本行数:{v0} P4K文本行数{v1}",
"home_localization_advanced_action_install": "安装汉化",
"home_localization_advanced_action_mod_change": "正在重新生成文本...",
"home_localization_advanced_action_mode": "模式",
"home_localization_advanced_title_preview": "预览:{v0}",
"home_localization_advanced_json_text_location_other": "地点-其他",
"home_localization_advanced_json_text_location_used": "地点-常用",
"home_localization_advanced_json_text_things_other": "物品-其他",
"home_localization_advanced_json_text_things_used": "物品-常用",
"home_localization_advanced_json_text_vehicle_other": "载具-其他",
"home_localization_advanced_json_text_vehicle_used": "载具-常用",
"home_localization_advanced_json_text_mission_or_logs": "任务/日志",
"home_localization_advanced_json_text_subtitle": "字幕",
"home_localization_advanced_json_text_ui_or_hud_or_menu": "UI/HUD/菜单",
"home_localization_advanced_json_text_un_localization": "未汉化",
"home_localization_advanced_json_text_others": "其他",
"home_localization_advanced_action_mod_change_localization": "汉化",
"home_localization_advanced_action_mod_change_un_localization": "英文原文",
"home_localization_advanced_action_mod_change_mixed": "双语",
"home_localization_advanced_action_mod_change_mixed_newline": "双语(换行)",
"home_localization_advanced_msg_classifying": "正在分类 ...",
"home_localization_advanced_msg_reading_p4k": "读取 p4k 文件 ...",
"home_localization_advanced_msg_reading_server_localization_text": "获取汉化文本 ...",
"home_localization_advanced_msg_gen_localization_text": "生成汉化文件...",
"home_localization_advanced_msg_gen_localization_install": "安装汉化文件...",
"home_localization_msg_version_advanced": " (高级汉化)",
"home_localization_msg_no_note": "该版本没有提供描述",
"home_localization_action_rsi_launcher_localization": "RSI 启动器汉化",
"home_localization_action_advanced": "高级汉化",
"home_localization_action_install_customize": "安装自定义文件",
"home_localization_title_localization_tools": "汉化工具",
"performance_json_text_ssdo": "屏幕光线后处理",
"performance_json_text_ssdo_info": "调整光线后处理等级",
"performance_json_text_title_graphics": "图形(修改后建议清理着色器)",
"performance_json_text_antialiasing": "抗锯齿",
"performance_json_text_antialiasing_info": "0 关闭1 SMAA2 时间过滤+SMAA3 时间滤波和投影矩阵抖动的 SMAA",
"performance_json_text_game_effects": "特效等级",
"performance_json_text_game_effects_info": "游戏特效等级",
"performance_json_text_texture": "纹理等级",
"performance_json_text_texture_info": "模型纹理细节",
"performance_json_text_volumetric_effects": "体积效果",
"performance_json_text_volumetric_effects_info": "体积云、体积光照等",
"performance_json_text_water": "水体效果",
"performance_json_text_water_info": "各种水的等级",
"performance_json_text_object_detail": "对象细节",
"performance_json_text_object_detail_info": "模型对象细节影响LOD等..",
"performance_json_text_particles": "粒子细节",
"performance_json_text_physics": "物理细节",
"performance_json_text_physics_info": "物理效果范围",
"performance_json_text_shading": "着色器细节",
"performance_json_text_shading_info": "着色器相关",
"performance_json_text_shadows": "阴影细节",
"performance_json_text_shadows_info": "阴影效果",
"performance_json_text_postprocessing": "后处理细节",
"performance_json_text_postprocessing_info": "后处理着色器,动态模糊效果 等",
"performance_json_text_renderer": "渲染器质量",
"performance_json_text_renderer_info": "cryengine 渲染器质量",
"performance_json_text_shader_decal": "贴花质量",
"performance_json_text_shader_decal_info": "LOGO、标志等",
"performance_json_text_shader_post_process": "着色器质量",
"performance_json_text_shader_fx": "FX 质量",
"performance_json_text_shader_general": "常规质量",
"performance_json_text_shader_general_info": "整体模型质量",
"performance_json_text_shader_glass": "玻璃质量",
"performance_json_text_shader_glass_info": "窗、镜子等",
"performance_json_text_shader_hdr": "HDR质量",
"performance_json_text_shader_hdr_info": "HDR色差亮度层级 处理 等",
"performance_json_text_shader_particle": "粒子质量",
"performance_json_text_shader_particle_info": "粒子效果质量",
"performance_json_text_shader_terrain": "地面质量",
"performance_json_text_shader_shadow": "阴影质量",
"performance_json_text_shader_sky": "天空质量",
"performance_json_text_particles_object_collisions": "粒子碰撞",
"performance_json_text_particles_object_collisions_info": "1 仅静态粒子 2 包括动态粒子",
"performance_json_text_displayinfo": "屏幕信息(展示帧率)",
"performance_json_text_displayinfo_info": "在屏幕右上角展示帧率,服务器信息等",
"performance_json_text_max_fps": "最大帧率",
"performance_json_text_max_fps_info": "调整游戏最高帧率0为不限制",
"performance_json_text_display_session": "显示会话信息",
"performance_json_text_display_session_info": "开启后在屏幕上显示一个二维码,用于反馈时让 CIG 快速定位相关信息",
"performance_json_text_vsync": "垂直同步",
"performance_json_text_vsync_info": "开启以防止撕裂,关闭以提高帧率",
"performance_json_text_motion_blur": "动态模糊",
"performance_json_text_motion_blur_info": "开启以提高运动感,关闭提升观感",
"performance_json_text_fov": "设置视角FOV",
"performance_json_text_ui_animation": "UI 淡入淡出动画",
"performance_json_text_custom_parameters": "自定义参数",
"performance_json_text_title_custom": "自定义",
"tools_rsi_launcher_enhance_init_msg1": "读取启动器信息...",
"tools_rsi_launcher_enhance_init_msg2": "正在从网络获取增强数据...",
"tools_rsi_launcher_enhance_working_msg1": "生成补丁 ...",
"tools_rsi_launcher_enhance_working_msg2": "安装补丁,这需要一点时间,取决于您的计算机性能 ...",
"tools_rsi_launcher_enhance_title": "RSI 启动器增强",
"tools_rsi_launcher_enhance_msg_version": "启动器内部版本信息:{v0}",
"tools_rsi_launcher_enhance_msg_patch_status": "补丁状态:{v0}",
"tools_rsi_launcher_enhance_msg_error": "获取增强数据失败,可能是网络问题或当前版本不支持",
"tools_rsi_launcher_enhance_title_localization": "RSI 启动器本地化",
"tools_rsi_launcher_enhance_subtitle_localization": "为 RSI 启动器增加多语言支持。",
"tools_rsi_launcher_enhance_title_download_booster": "RSI 启动器下载增强",
"tools_rsi_launcher_enhance_subtitle_download_booster": "下载游戏时可使用更多线程以提升下载速度,启用后请在启动器设置修改线程数。",
"tools_rsi_launcher_enhance_action_install": "安装增强补丁",
"tools_rsi_launcher_enhance_msg_uninstall": "* 如需卸载增强补丁,请覆盖安装 RSI 启动器。",
"tools_rsi_launcher_enhance_msg_error_launcher_notfound": "未找到 RSI 启动器",
"tools_rsi_launcher_enhance_msg_error_get_launcher_info_error": "读取启动器信息失败!",
"tools_rsi_launcher_enhance_msg_error_get_launcher_info_error_with_args": "读取启动器信息失败:{v0}",
"tools_action_rsi_launcher_enhance_info": "启动器汉化,下载线程增强",
"tools_rsi_launcher_enhance_note_title": "RSI 启动器增强使用须知",
"tools_rsi_launcher_enhance_note_msg": "RSI 启动器增强是一项社区功能,它会在您的电脑上解包 \"RSI Launcher\" 并加入额外的增强功能,具体使用哪些功能由您决定。\n\n目前官方CIG仅许可我们进行多语言操作启动器下载增强是我们认为有用的额外功能违反cig用户协议https://robertsspaceindustries.com/eula可能导致账号被封禁等严重后果是否启用由您自己决定我们不对可能产生的后果游戏损坏账号封禁等承担任何责任。\n\n对于启动器的修改内容我们开源于https://github.com/StarCitizenToolBox/RSILauncherEnhance如有需要您可自行查阅。\n\n如果您因为任何原因需要取消此增强补丁请直接覆盖安装官方启动器。",
"tools_action_unp4k": "P4K 查看器",
"tools_action_unp4k_info": "解包星际公民 p4k 文件",
"tools_unp4k_title": "P4K 查看器 -> {v0}",
"tools_unp4k_view_file": "单击文件以预览",
"tools_unp4k_msg_unknown_file_type": "未知文件类型\n{v0}"
}

View File

@ -29,6 +29,7 @@ class Unp4kcState with _$Unp4kcState {
required String curPath,
String? endMessage,
MapEntry<String, String>? tempOpenFile,
@Default("") String errorMessage,
}) = _Unp4kcState;
}
@ -38,8 +39,10 @@ class Unp4kCModel extends _$Unp4kCModel {
@override
Unp4kcState build() {
state =
const Unp4kcState(startUp: false, curPath: '\\', endMessage: "初始化中...");
state = Unp4kcState(
startUp: false,
curPath: '\\',
endMessage: S.current.tools_unp4k_msg_init);
_init();
return state;
}
@ -70,6 +73,12 @@ class Unp4kCModel extends _$Unp4kCModel {
break;
case RsProcessStreamDataType.error:
dPrint("[unp4kc] stderr: ${event.data}");
if (state.errorMessage.isEmpty) {
state = state.copyWith(errorMessage: event.data);
} else {
state = state.copyWith(
errorMessage: "${state.errorMessage}\n${event.data}");
}
break;
case RsProcessStreamDataType.exit:
dPrint("[unp4kc] exit: ${event.data}");
@ -99,10 +108,10 @@ class Unp4kCModel extends _$Unp4kCModel {
break;
case "info: Reading_p4k_file":
_loadStartTime = DateTime.now();
state = state.copyWith(endMessage: "正在读取P4K 文件 ...");
state = state.copyWith(endMessage: S.current.tools_unp4k_msg_reading);
break;
case "info: All Ready":
state = state.copyWith(endMessage: "正在处理文件 ...");
state = state.copyWith(endMessage: S.current.tools_unp4k_msg_reading2);
break;
case "data: P4K_Files":
final p4kFiles = (data as List<dynamic>);
@ -119,7 +128,8 @@ class Unp4kCModel extends _$Unp4kCModel {
.create(recursive: true);
if (i == nextAwait) {
state = state.copyWith(
endMessage: "正在处理文件 ($i/${p4kFiles.length}) ...");
endMessage:
S.current.tools_unp4k_msg_reading3(i, p4kFiles.length));
await Future.delayed(Duration.zero);
nextAwait += 20000;
}
@ -128,8 +138,8 @@ class Unp4kCModel extends _$Unp4kCModel {
state = state.copyWith(
files: files,
fs: fs,
endMessage:
"加载完毕:${files.length} 个文件,用时:${endTime.difference(_loadStartTime!).inMilliseconds} ms");
endMessage: S.current.tools_unp4k_msg_read_completed(files.length,
endTime.difference(_loadStartTime!).inMilliseconds));
_loadStartTime = null;
break;
case "info: Extracted_Open":
@ -150,7 +160,7 @@ class Unp4kCModel extends _$Unp4kCModel {
}
state = state.copyWith(
tempOpenFile: MapEntry(openType, filePath),
endMessage: "打开文件:$filePath");
endMessage: S.current.tools_unp4k_msg_open_file(filePath));
break;
default:
dPrint("[unp4kc] unknown action: $action");
@ -206,7 +216,7 @@ class Unp4kCModel extends _$Unp4kCModel {
"${tempDir.absolute.path}\\SCToolbox_unp4kc\\${SCLoggerHelper.getGameChannelID(getGamePath())}\\";
state = state.copyWith(
tempOpenFile: const MapEntry("loading", ""),
endMessage: "读取文件:$filePath ...");
endMessage: S.current.tools_unp4k_msg_open_file(filePath));
extractFile(filePath, tempPath, mode: "extract_open");
}

View File

@ -24,6 +24,7 @@ mixin _$Unp4kcState {
String? get endMessage => throw _privateConstructorUsedError;
MapEntry<String, String>? get tempOpenFile =>
throw _privateConstructorUsedError;
String get errorMessage => throw _privateConstructorUsedError;
@JsonKey(ignore: true)
$Unp4kcStateCopyWith<Unp4kcState> get copyWith =>
@ -42,7 +43,8 @@ abstract class $Unp4kcStateCopyWith<$Res> {
MemoryFileSystem? fs,
String curPath,
String? endMessage,
MapEntry<String, String>? tempOpenFile});
MapEntry<String, String>? tempOpenFile,
String errorMessage});
}
/// @nodoc
@ -64,6 +66,7 @@ class _$Unp4kcStateCopyWithImpl<$Res, $Val extends Unp4kcState>
Object? curPath = null,
Object? endMessage = freezed,
Object? tempOpenFile = freezed,
Object? errorMessage = null,
}) {
return _then(_value.copyWith(
startUp: null == startUp
@ -90,6 +93,10 @@ class _$Unp4kcStateCopyWithImpl<$Res, $Val extends Unp4kcState>
? _value.tempOpenFile
: tempOpenFile // ignore: cast_nullable_to_non_nullable
as MapEntry<String, String>?,
errorMessage: null == errorMessage
? _value.errorMessage
: errorMessage // ignore: cast_nullable_to_non_nullable
as String,
) as $Val);
}
}
@ -108,7 +115,8 @@ abstract class _$$Unp4kcStateImplCopyWith<$Res>
MemoryFileSystem? fs,
String curPath,
String? endMessage,
MapEntry<String, String>? tempOpenFile});
MapEntry<String, String>? tempOpenFile,
String errorMessage});
}
/// @nodoc
@ -128,6 +136,7 @@ class __$$Unp4kcStateImplCopyWithImpl<$Res>
Object? curPath = null,
Object? endMessage = freezed,
Object? tempOpenFile = freezed,
Object? errorMessage = null,
}) {
return _then(_$Unp4kcStateImpl(
startUp: null == startUp
@ -154,6 +163,10 @@ class __$$Unp4kcStateImplCopyWithImpl<$Res>
? _value.tempOpenFile
: tempOpenFile // ignore: cast_nullable_to_non_nullable
as MapEntry<String, String>?,
errorMessage: null == errorMessage
? _value.errorMessage
: errorMessage // ignore: cast_nullable_to_non_nullable
as String,
));
}
}
@ -167,7 +180,8 @@ class _$Unp4kcStateImpl with DiagnosticableTreeMixin implements _Unp4kcState {
this.fs,
required this.curPath,
this.endMessage,
this.tempOpenFile})
this.tempOpenFile,
this.errorMessage = ""})
: _files = files;
@override
@ -190,10 +204,13 @@ class _$Unp4kcStateImpl with DiagnosticableTreeMixin implements _Unp4kcState {
final String? endMessage;
@override
final MapEntry<String, String>? tempOpenFile;
@override
@JsonKey()
final String errorMessage;
@override
String toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) {
return 'Unp4kcState(startUp: $startUp, files: $files, fs: $fs, curPath: $curPath, endMessage: $endMessage, tempOpenFile: $tempOpenFile)';
return 'Unp4kcState(startUp: $startUp, files: $files, fs: $fs, curPath: $curPath, endMessage: $endMessage, tempOpenFile: $tempOpenFile, errorMessage: $errorMessage)';
}
@override
@ -206,7 +223,8 @@ class _$Unp4kcStateImpl with DiagnosticableTreeMixin implements _Unp4kcState {
..add(DiagnosticsProperty('fs', fs))
..add(DiagnosticsProperty('curPath', curPath))
..add(DiagnosticsProperty('endMessage', endMessage))
..add(DiagnosticsProperty('tempOpenFile', tempOpenFile));
..add(DiagnosticsProperty('tempOpenFile', tempOpenFile))
..add(DiagnosticsProperty('errorMessage', errorMessage));
}
@override
@ -221,7 +239,9 @@ class _$Unp4kcStateImpl with DiagnosticableTreeMixin implements _Unp4kcState {
(identical(other.endMessage, endMessage) ||
other.endMessage == endMessage) &&
(identical(other.tempOpenFile, tempOpenFile) ||
other.tempOpenFile == tempOpenFile));
other.tempOpenFile == tempOpenFile) &&
(identical(other.errorMessage, errorMessage) ||
other.errorMessage == errorMessage));
}
@override
@ -232,7 +252,8 @@ class _$Unp4kcStateImpl with DiagnosticableTreeMixin implements _Unp4kcState {
fs,
curPath,
endMessage,
tempOpenFile);
tempOpenFile,
errorMessage);
@JsonKey(ignore: true)
@override
@ -248,7 +269,8 @@ abstract class _Unp4kcState implements Unp4kcState {
final MemoryFileSystem? fs,
required final String curPath,
final String? endMessage,
final MapEntry<String, String>? tempOpenFile}) = _$Unp4kcStateImpl;
final MapEntry<String, String>? tempOpenFile,
final String errorMessage}) = _$Unp4kcStateImpl;
@override
bool get startUp;
@ -263,6 +285,8 @@ abstract class _Unp4kcState implements Unp4kcState {
@override
MapEntry<String, String>? get tempOpenFile;
@override
String get errorMessage;
@override
@JsonKey(ignore: true)
_$$Unp4kcStateImplCopyWith<_$Unp4kcStateImpl> get copyWith =>
throw _privateConstructorUsedError;

View File

@ -6,7 +6,7 @@ part of 'unp4kc.dart';
// RiverpodGenerator
// **************************************************************************
String _$unp4kCModelHash() => r'3b2325c72dcb47bf9207625b0a1d2a611f911b6f';
String _$unp4kCModelHash() => r'24f5043f687a5f652a0741b8e6f4a3855fca0101';
/// See also [Unp4kCModel].
@ProviderFor(Unp4kCModel)

View File

@ -1,6 +1,12 @@
import 'package:fluent_ui/fluent_ui.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
import 'package:go_router/go_router.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:re_editor/re_editor.dart';
import 'package:re_highlight/languages/ini.dart';
import 'package:re_highlight/styles/vs2015.dart';
import 'package:starcitizen_doctor/data/app_advanced_localization_data.dart';
import 'package:starcitizen_doctor/ui/home/home_ui_model.dart';
import 'package:starcitizen_doctor/ui/home/localization/advanced_localization_ui_model.dart';
import 'package:starcitizen_doctor/widgets/widgets.dart';
@ -12,9 +18,11 @@ class AdvancedLocalizationUI extends HookConsumerWidget {
@override
Widget build(BuildContext context, WidgetRef ref) {
final state = ref.watch(advancedLocalizationUIModelProvider);
final model = ref.read(advancedLocalizationUIModelProvider.notifier);
final homeUIState = ref.watch(homeUIModelProvider);
return makeDefaultPage(
title: "高级汉化 -> ${homeUIState.scInstalledPath}",
title: S.current.home_localization_advanced_title(
homeUIState.scInstalledPath ?? "-"),
context,
content: state.workingText.isNotEmpty
? Center(
@ -27,20 +35,54 @@ class AdvancedLocalizationUI extends HookConsumerWidget {
],
),
)
: _makeBody(context, homeUIState, state, ref));
: Column(
children: [
Row(
children: [
const SizedBox(width: 12),
Expanded(
child: Text(S.current
.home_localization_advanced_msg_version(
state.apiLocalizationData?.versionName ??
"-"))),
Text(S.current.home_localization_advanced_title_msg(
state.serverGlobalIniLines, state.p4kGlobalIniLines)),
const SizedBox(width: 32),
Button(
child: Padding(
padding: const EdgeInsets.only(
left: 12, right: 12, top: 4, bottom: 4),
child: Text(S.current
.home_localization_advanced_action_install),
),
onPressed: () async {
await model.doInstall().unwrap(context: context);
}),
const SizedBox(width: 12),
],
),
Expanded(
child:
_makeBody(context, homeUIState, state, ref, model)),
],
));
}
Widget _makeBody(BuildContext context, HomeUIModelState homeUIState,
AdvancedLocalizationUIState state, WidgetRef ref) {
Widget _makeBody(
BuildContext context,
HomeUIModelState homeUIState,
AdvancedLocalizationUIState state,
WidgetRef ref,
AdvancedLocalizationUIModel model) {
return AlignedGridView.count(
crossAxisCount: 3,
crossAxisCount: 4,
crossAxisSpacing: 12,
mainAxisSpacing: 12,
padding: const EdgeInsets.all(12),
itemBuilder: (BuildContext context, int index) {
final item = state.classMap!.values.elementAt(index);
return Container(
padding: const EdgeInsets.only(top: 12, bottom: 12),
padding: const EdgeInsets.only(top: 6, bottom: 12),
decoration: BoxDecoration(
color: Colors.white.withOpacity(.05),
borderRadius: BorderRadius.circular(4),
@ -48,24 +90,35 @@ class AdvancedLocalizationUI extends HookConsumerWidget {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.only(left: 12, right: 12),
child: Row(
children: [
Expanded(
child: Text(
"${item.className}",
style: const TextStyle(
fontSize: 16, fontWeight: FontWeight.bold),
)),
Text(
"${item.valuesMap.length}",
style: TextStyle(
fontSize: 14,
color: Colors.white.withOpacity(.6),
IconButton(
onPressed:
item.isWorking ? null : () => _showContent(context, item),
icon: Padding(
padding: const EdgeInsets.only(left: 12, right: 12),
child: Row(
children: [
Expanded(
child: Text(
"${item.className}",
style: const TextStyle(
fontSize: 16, fontWeight: FontWeight.bold),
textAlign: TextAlign.start,
)),
Text(
"${item.valuesMap.length}",
style: TextStyle(
fontSize: 14,
color: Colors.white.withOpacity(.6),
),
),
),
],
const SizedBox(width: 6),
Icon(
FluentIcons.chevron_right,
color: Colors.white.withOpacity(.6),
size: 16,
),
],
),
),
),
Container(
@ -74,24 +127,62 @@ class AdvancedLocalizationUI extends HookConsumerWidget {
height: 1,
color: Colors.white.withOpacity(.1),
),
SizedBox(
height: 160,
child: SuperListView.builder(
itemCount: item.valuesMap.length,
if (item.isWorking)
Column(
children: [
makeLoading(context),
const SizedBox(height: 6),
Text(
S.current.home_localization_advanced_action_mod_change),
],
)
else ...[
Padding(
padding: const EdgeInsets.only(left: 12, right: 12),
itemBuilder: (BuildContext context, int index) {
final itemKey = item.valuesMap.keys.elementAt(index);
return Text(
"${item.valuesMap[itemKey]}",
maxLines: 1,
style: const TextStyle(
fontSize: 12,
overflow: TextOverflow.ellipsis,
child: Row(
children: [
Expanded(
child: Text(S
.current.home_localization_advanced_action_mode)),
ComboBox(
value: item.mode,
items: [
for (final type
in AppAdvancedLocalizationClassKeysDataMode
.values)
ComboBoxItem(
value: type,
child: Text(state.typeNames[type] ?? "-"),
),
],
onChanged: item.lockMod
? null
: (v) => model.onChangeMod(item,
v as AppAdvancedLocalizationClassKeysDataMode),
),
);
},
],
),
),
),
const SizedBox(height: 6),
SizedBox(
height: 180,
child: SuperListView.builder(
itemCount: item.valuesMap.length,
padding: const EdgeInsets.only(left: 12, right: 12),
itemBuilder: (BuildContext context, int index) {
final itemKey = item.valuesMap.keys.elementAt(index);
return Text(
"${item.valuesMap[itemKey]}",
maxLines: 1,
style: const TextStyle(
fontSize: 12,
overflow: TextOverflow.ellipsis,
),
);
},
),
),
],
],
),
);
@ -99,4 +190,74 @@ class AdvancedLocalizationUI extends HookConsumerWidget {
itemCount: state.classMap?.length ?? 0,
);
}
_showContent(
BuildContext context, AppAdvancedLocalizationClassKeysData item) {
showDialog(
context: context,
builder: (BuildContext context) {
return HookConsumer(
builder: (BuildContext context, WidgetRef ref, Widget? child) {
final textData = useState("");
loadData() async {
final v = StringBuffer("");
for (var element in item.valuesMap.entries) {
v.write("${element.key}=${element.value}\n");
await Future.delayed(Duration.zero);
}
textData.value = v.toString();
}
useEffect(() {
loadData();
return null;
}, const []);
return ContentDialog(
constraints: BoxConstraints(
maxWidth: MediaQuery.of(context).size.width * .8,
),
title: Row(
children: [
IconButton(
icon: const Icon(
FluentIcons.back,
size: 22,
),
onPressed: () => context.pop()),
const SizedBox(
width: 24,
),
Text(S.current.home_localization_advanced_title_preview(
item.className ?? "-")),
],
),
content: textData.value.isEmpty
? makeLoading(context)
: Container(
decoration: BoxDecoration(
color: FluentTheme.of(context).cardColor,
borderRadius: BorderRadius.circular(7),
),
child: CodeEditor(
readOnly: true,
controller:
CodeLineEditingController.fromText(textData.value),
style: CodeEditorStyle(
codeTheme: CodeHighlightTheme(
languages: {
'ini': CodeHighlightThemeMode(mode: langIni)
},
theme: vs2015Theme,
),
),
),
),
);
},
);
},
);
}
}

View File

@ -0,0 +1,571 @@
import 'package:starcitizen_doctor/generated/l10n.dart';
Map<String, dynamic> get advancedLocalizationJsonData => {
"class_keys": [
{
"id": "location_opt",
"class_name":
S.current.home_localization_advanced_json_text_location_other,
"keys": [
"ATC_.*",
"Crus_HistMarker_.*",
"Enroll_.*",
"Hurston_JumpPoint_.*",
"Jurisdictions_Name_.*",
"LandingPad_.*",
"Lorville_.*",
"MiningClaim_.*",
"MiningClaims_Desc_.*",
"NavBeacon_.*",
"NavPoint_.*",
"Nav_.*",
"Navpoint_.*",
"Orison_Destination_.*",
"Starfarer_Wreckage_QT_.*",
"area_.*",
"cargodeck_.*",
"dockingport_.*",
"garage_.*",
"hangar_.*",
"landing_pad_.*",
"pyro_.*",
"room_.*",
"security_.*",
"select_.*",
"shop_name_.*",
"vehicle_room_.*",
"weapons_heal_.*",
"QT_.*",
"RR_.*",
"Shubin_.*",
"Solar_system_.*",
"Bacchus.*_Desc.*",
"Cano.*_Desc.*",
"Castra.*_Desc.*",
"Delamar.*_Desc.*",
"Ellis.*_Desc.*",
"Goss.*_Desc.*",
"Hadrian.*_Desc.*",
"Levski_Shop_Teach.*_Desc.*",
"Magnus.*_Desc.*",
"Nyx.*_Desc.*",
"Oso.*_Desc.*",
"Pyro.*_Desc.*",
"Stanton.*_Desc.*",
"Taranis.*_Desc.*",
"Tarpits.*_Desc.*",
"Tayac.*_Desc.*",
"Terra.*_Desc.*",
"Virgil.*_Desc.*"
]
},
{
"id": "location",
"class_name":
S.current.home_localization_advanced_json_text_location_used,
"keys": [
"Bacchus(?!.*_Desc).*",
"Cano(?!.*_Desc).*",
"Castra(?!.*_Desc).*",
"Delamar(?!.*_Desc).*",
"Ellis(?!.*_Desc).*",
"Goss(?!.*_Desc).*",
"Hadrian(?!.*_Desc).*",
"Levski_Shop_Teach(?!.*_Desc).*",
"Magnus(?!.*_Desc).*",
"Nyx(?!.*_Desc).*",
"Oso(?!.*_Desc).*",
"Pyro(?!.*_Desc).*",
"Stanton(?!.*_Desc).*",
"Taranis(?!.*_Desc).*",
"Tarpits(?!.*_Desc).*",
"Tayac(?!.*_Desc).*",
"Terra(?!.*_Desc).*",
"Virgil(?!.*_Desc).*"
]
},
{
"class_name":
S.current.home_localization_advanced_json_text_things_other,
"id": "thing_opt",
"keys": [
"BarMenu_.*",
"FLOOR_Flair_Items.*",
"FPS_AI_.*",
"ItemPort_.*",
"itemPort_.*",
"destoryitems_.*",
"destroyItems_.*",
"kopion_.*",
"item_desc.*"
]
},
{
"class_name":
S.current.home_localization_advanced_json_text_things_used,
"id": "thing",
"keys": ["item_Name.*"]
},
{
"class_name":
S.current.home_localization_advanced_json_text_vehicle_other,
"id": "vehicle_name",
"keys": [
"vehicle_Desc.*",
"vehicl_Desc.*",
"vehicel_Desc.*",
"vehicles_.*"
]
},
{
"class_name":
S.current.home_localization_advanced_json_text_vehicle_used,
"id": "vehicle",
"keys": ["vehicle_Name.*"]
},
{
"id": "mission",
"class_name":
S.current.home_localization_advanced_json_text_mission_or_logs,
"keys": [
"BasicSalvage_.*",
"BitZeros_.*",
"BHG_.*",
"BlacJac_.*",
"BountyHuntersGuild_.*",
"BrightSky_.*",
"CThing_.*",
"ChainedDeliveryModule_.*",
"Clovis_Safe_.*",
"CommArray_.*",
"Commissary_.*",
"Community_Service.*",
"CovalexIC_.*",
"Constantine_.*",
"Covalex_.*",
"Criminal_.*",
"CrusaderSecurity_.*",
"Crusader_ReputationJournal_.*",
"Crusader_from_.*",
"DC_room_.*",
"DataHeist_.*",
"Datapad_.*",
"Delivery_.*",
"Derelict_.*",
"DestroyDebris_.*",
"DestroyEvidence_.*",
"DestroyObj_Text_.*",
"DistributionCenter_.*",
"DynamicEvent_.*",
"Eckhart_.*",
"FPSPVEVS_.*",
"FTL_.*",
"FW22_NT_Journal_Title_.*",
"ForceDepletion_.*",
"GLoc_Bartender_Conv_.*",
"GMCapture_.*",
"GarethWIP_.*",
"Gathering_.*",
"Gen_NPC_Conv_.*",
"Greeter_.*",
"HeadHunters_.*",
"HexPenetrator_.*",
"Hurston_ReputationJournal_.*",
"Hurston_bounty_.*",
"Hurston_destroystash_.*",
"Hurston_eliminateall_.*",
"Hurston_eliminatespecifc_.*",
"Hurston_killcreatureslocation_.*",
"Hurston_searchbody_.*",
"IAE2951_.*",
"IAE2952_.*",
"IAE952_.*",
"Info_Kiosks_.*",
"Infractions_.*",
"Investigation_.*",
"Invictus2951_.*",
"Invictus_.*",
"JournalEntry_.*",
"JournalText.*",
"Journal_.*",
"Jumptown2_.*",
"JurisdictionJournals_.*",
"Kill_Civ_.*",
"LingFamily_.*",
"Ling_.*",
"LocalDelivery_.*",
"Local_Delivery_.*",
"MG_.*",
"MTPS_.*",
"MTProtectiveServices_.*",
"MilesEckhart_.*",
"Mission.*",
"Missions.*",
"Mtps_killallcreatures_.*",
"NB_.*",
"NPE_.*",
"NTLockdown_.*",
"Name_.*",
"NorthRock_.*",
"Orison_CRUShowroom_.*",
"Orison_DiscoverySpot_.*",
"OutlawSweep_.*",
"Outpost_.*",
"Pacheco_.*",
"PreventData_.*",
"ProtLife_.*",
"RAIN_.*",
"RacingRep_.*",
"Racing_Ship_DisplayName.*",
"RedWind_.*",
"RepScope_.*",
"RepStanding_.*",
"RepairOxygenKiosk_.*",
"Reststop_.*",
"RetakeLocation_.*",
"RetrieveConsignment_.*",
"RetrieveDatapad_.*",
"ReturnObjective_.*",
"ReturnToLocation_.*",
"Roughready_.*",
"Ruto_.*",
"SB_.*",
"SalvageContractor_.*",
"ScanVehicleLocationModule_.*",
"ScrambleRace_.*",
"ScreamingGalsons_.*",
"ServiceBeacon_.*",
"ShipName_.*",
"ShipStrip_.*",
"Special_Event_.*",
"Station_Illegal_.*",
"Staton4_NewBab_.*",
"StealEvidence_.*",
"TarPits_.*",
"Temp_.*",
"Terminal_.*",
"Text_.*",
"TimeSensative_.*",
"TimeSensitive_.*",
"TimeTrial_.*",
"TimedSalvage_.*",
"TransportGuild_.*",
"TravelObjective_.*",
"Tut.*",
"Tutorial.*",
"UDM_.*",
"Vaughn_.*",
"VendingMachien_.*",
"VendingMachin_.*",
"VendingMachine_.*",
"WSTR_.*",
"WantedLevel5_.*",
"XenoThreat_.*",
"acquirepart_.*",
"alt_criminal_collect_reclaimer_desc.*",
"aracersurvivesrace_.*",
"assassin_.*",
"assassination_.*",
"asteroidfield_.*",
"basesweep_.*",
"bitzeros_.*",
"blacJac_.*",
"blackbox_.*",
"blackboxillegal_.*",
"blackboxlegal_.*",
"boarders_.*",
"bounty_.*",
"bountymarker_.*",
"cave_.*",
"ccdemo19_.*",
"cdf_.*",
"cfp_.*",
"civilian_.*",
"claimsweep_.*",
"collect_reclaimer_.*",
"combatassist_.*",
"commarray_hack_.*",
"commarray_repair_.*",
"confirmkill_.*",
"constantine_.*",
"criminal_.*",
"crus_.*",
"crusader_.*",
"delivery_.*",
"deliverydecoy_.*",
"deploypiggyback_.*",
"deployprobe_.*",
"destroyblade_.*",
"destroyitem_.*",
"destroyitems_.*",
"destroyitemsspace_.*",
"destroyprobe_.*",
"destroyprobeillegal_.*",
"destroyprobelegal_.*",
"destroyprove_illegal_.*",
"destroystash_.*",
"dfmcrusader_.*",
"distraction_.*",
"distractionkill_.*",
"dusters_.*",
"ecn_.*",
"eliminatespecificracer_.*",
"escort_.*",
"escortscan_.*",
"fleetweek2950_.*",
"fps_.*",
"goupbounty_.*",
"groupbounty_.*",
"hack_prevent_.*",
"hdactivist_.*",
"headhunters_.*",
"hurston_.*",
"iae2953_.*",
"kareah_.*",
"kareahsweep_.*",
"killallanimal_.*",
"killallanimals_.*",
"killallkopion_.*",
"killallmarok_.*",
"killanimalslocation_.*",
"killatlocation_.*",
"killcollect_.*",
"killcollectanimal_.*",
"killcollectkopion_.*",
"killcollectmarok_.*",
"loc_.*",
"manufacturer_.*",
"meet_miles_.*",
"mgClovus_.*",
"mg_*",
"missionManager_.*",
"mission_.*",
"mtps_.*",
"murderspree_.*",
"mustcomesecond_.*",
"ninetails_.*",
"northrock_.*",
"notification_.*",
"openbounty_.*",
"outlawsweep_.*",
"outpost_.*",
"p_protectandresupply_.*",
"p_showdown_.*",
"pickanddestroy_.*",
"planetcollect_.*",
"prisonerbreak_.*",
"prisonermanifest_.*",
"protlife_.*",
"racelastforxcheckpoints_.*",
"recoverspace_.*",
"recoverstash_.*",
"recoverstolen_.*",
"recovery_.*",
"redwind_.*",
"roughready_.*",
"sandbox_.*",
"seachbody_.*",
"searchbody_.*",
"searchcrew_.*",
"sectorsweep_.*",
"shubin_.*",
"shuttle_.*",
"spacecargo_.*",
"spacecollect_.*",
"spacesteal_.*",
"stanton.*",
"stealfromship_.*",
"stealitem_.*",
"takecheckpointsxandy_.*",
"ugf_.*",
"vaughn_.*",
"winwithoutkillingracer_.*",
"xdamagetoracersinorder_.*",
"xenothreat_.*"
]
},
{
"id": "subtitle",
"class_name": S.current.home_localization_advanced_json_text_subtitle,
"keys": [
"DXSH_",
"Dlg_SC_.*",
"FW22_NT_Datapad_.*",
"FleetWeek2950_.*",
"GenResponse_.*",
"GenericLanding_.*",
"IT_Shared_.*",
"Imperilled_.*",
"MKTG_CUSTOMS1_CV_Access_.*",
"PH_PU_.*",
"PU_.*",
"Pacheco_.*",
"SC_ac_.*",
"SC_lz_.*",
"SM_SIMANN1_.*",
"contract_.*",
"covalex_.*",
"covalexrand_.*",
"covalexspec_.*"
]
},
{
"id": "ui",
"class_name":
S.current.home_localization_advanced_json_text_ui_or_hud_or_menu,
"keys": [
".*_RepUI_.*",
"CharacterCustomizer_.*",
".*_OEM_UI_.*",
"DownloadConnectivity_.*",
"DownloadError_.*",
"DownloadStalled_.*",
"DownloadState_.*",
"Download_BrowseForFolder",
"Exit_Screen_.*",
"FW2022_DatapadScreen_.*",
"FW2022_IFFIscreen_.*",
"FW2022_TransferScreen_.*",
"FW22_NT_Journal_Body_.*",
".*_DisplayName_.*",
"FreightElevator_.*",
"Frontend_.*",
"Fines_.*",
"FireMode_.*",
"GraceWarnings_.*",
"HUD_.*",
"Heads_Male_.*",
"Hints_.*",
"Human_Crew_.*",
"Human_First_Names_.*",
"Human_Nicknames_.*",
"Human_Security_Titles_.*",
"Human_Surnames_.*",
"HurDynDrugUGF_.*",
"HurDynMining_.*",
"HurstonSecurity_.*",
"Inner_.*",
"Kareah_.*",
"KeypadButton_.*",
"KeypadDisplay_.*",
"Map_Header_.*",
"Maps_.*",
"Marker_.*",
"Markers_.*",
"MurderSpree.*",
"NPC_Interact_Generic_.*",
"Out_of_Quantum_fuel.*",
"Oxygen_Screen_.*",
"PAUSE_OPTIONS_.*",
"PBay_.*",
"PIT_.*",
"PrisonKeypadPass_.*",
"Prison_.*",
"Prisoner.*",
"RN_.*",
"ShipSelector_.*",
"SkyLine_.*",
"Takedown.*",
"UEERanks_.*",
"UGF_.*",
"UI_.*",
"UnitedWorkersOfHurston_.*",
"Usable_CommTower_.*",
"Usable_Terminal_.*",
"Vehicle_Container_.*",
"actor_.*",
"ad_.*",
"airlock_.*",
"annun_.*",
"cargoTransfer_HUD_.*",
"cargo_.*",
"cc_.*",
"chat_.*",
"citizencon16_.*",
"cockpit_screen_.*",
"comm_.*",
"comms_.*",
"concate_.*",
"constellation_rear_tube.*",
"crate_panel_.*",
"defend_UGF_.*",
"dfm_.*",
"diff_notification_ui_.*",
"docking_.*",
"ea_popup_.*",
"ea_ui_.*",
"elevator_.*",
"engineering_.*",
"entrance_.*",
"fine_terminal_.*",
"flightHUD_.*",
"frontend_.*",
"generic_.*",
"global_terminal_.*",
"group_.*",
"hack_program_.*",
"hud_.*",
"infopanel_.*",
"innerthought_.*",
"input_.*",
"install_.*",
"interaction_.*",
"interiormap_.*",
"invictus_.*",
"journal_.*",
"kiosk_.*",
"law_.*",
"lens_.*",
"loadout_.*",
"mG_.*",
"masterMode_.*",
"me_.*",
"med_.*",
"medbed_.*",
"mfd_.*",
"mm_LobbyStatus_.*",
"mobiGlas_.*",
"mobiglas_.*",
"navitem_.*",
"net_dialog_.*",
"operatorMode_.*",
"panel_.*",
"pause_.*",
"pit_.*",
"port_Name.*",
"quantum_hud_.*",
"rc_ScanInfo_.*",
"refinery_ui_.*",
"refueling_HUD_.*",
"refueling_ui_.*",
"respawn_hud_.*",
"salvage_.*",
"scan_data_.*",
"scrambleracesubmissions_.*",
"shop_ui_.*",
"sm_ui_.*",
"spaceship_.*",
"starmap_.*",
"stomp_warning_.*",
"swapWheel_.*",
"system_.*",
"target_hud_.*",
"terminal_.*",
"text_.*",
"transit_.*",
"tutorial_.*",
"ui_.*",
"unittest_.*",
"usable_.*",
"vehicle_Type.*",
"vehicle_class_.*",
"vehicle_deck_.*",
"vehicle_focus_.*",
"vehicle_gunnery_hud_.*",
"vehicle_interactor_.*",
"weapon_stats.*",
"warning_.*"
]
}
]
};

View File

@ -1,17 +1,17 @@
import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'package:flutter/foundation.dart';
import 'package:flutter/services.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:starcitizen_doctor/common/utils/log.dart';
import 'package:starcitizen_doctor/common/utils/provider.dart';
import 'package:starcitizen_doctor/data/app_advanced_localization_data.dart';
import 'package:starcitizen_doctor/data/sc_localization_data.dart';
import 'package:starcitizen_doctor/provider/unp4kc.dart';
import '../home_ui_model.dart';
import 'advanced_localization_ui.json.dart';
import 'localization_ui_model.dart';
part 'advanced_localization_ui_model.g.dart';
@ -25,9 +25,25 @@ class AdvancedLocalizationUIState with _$AdvancedLocalizationUIState {
Map<String, AppAdvancedLocalizationClassKeysData>? classMap,
String? p4kGlobalIni,
String? serverGlobalIni,
ScLocalizationData? apiLocalizationData,
@Default(0) int p4kGlobalIniLines,
@Default(0) int serverGlobalIniLines,
}) = _AdvancedLocalizationUIState;
}
extension AdvancedLocalizationUIStateEx on AdvancedLocalizationUIState {
Map<AppAdvancedLocalizationClassKeysDataMode, String> get typeNames => {
AppAdvancedLocalizationClassKeysDataMode.localization:
S.current.home_localization_advanced_action_mod_change_localization,
AppAdvancedLocalizationClassKeysDataMode.unLocalization: S.current
.home_localization_advanced_action_mod_change_un_localization,
AppAdvancedLocalizationClassKeysDataMode.mixed:
S.current.home_localization_advanced_action_mod_change_mixed,
AppAdvancedLocalizationClassKeysDataMode.mixedNewline: S
.current.home_localization_advanced_action_mod_change_mixed_newline,
};
}
@riverpod
class AdvancedLocalizationUIModel extends _$AdvancedLocalizationUIModel {
@override
@ -45,12 +61,23 @@ class AdvancedLocalizationUIModel extends _$AdvancedLocalizationUIModel {
await _readIni(localizationUIState, localizationUIModel);
final ald = await _readClassJson();
if (ald.classKeys == null) return;
state = state.copyWith(workingText: "正在分类 ...");
final m = await compute(_doClassIni, (ald, p4kGlobalIni, serverGlobalIni));
state = state.copyWith(
workingText: S.current.home_localization_advanced_msg_classifying);
final m = await compute(_doClassIni, (
ald,
p4kGlobalIni,
serverGlobalIni,
S.current.home_localization_advanced_json_text_un_localization,
S.current.home_localization_advanced_json_text_others
));
final p4kGlobalIniLines = p4kGlobalIni.split("\n").length;
final serverGlobalIniLines = serverGlobalIni.split("\n").length;
state = state.copyWith(
workingText: "",
p4kGlobalIni: p4kGlobalIni,
serverGlobalIni: serverGlobalIni,
p4kGlobalIniLines: p4kGlobalIniLines,
serverGlobalIniLines: serverGlobalIniLines,
classMap: m);
}
@ -58,22 +85,28 @@ class AdvancedLocalizationUIModel extends _$AdvancedLocalizationUIModel {
(
AppAdvancedLocalizationData ald,
String p4kGlobalIni,
String serverGlobalIni
String serverGlobalIni,
String unLocalizationClassName,
String othersClassName,
) v,
) {
final (
AppAdvancedLocalizationData ald,
String p4kGlobalIni,
String serverGlobalIni,
String unLocalizationClassName,
String othersClassName,
) = v;
final unLocalization = AppAdvancedLocalizationClassKeysData(
id: "un_localization",
className: "未汉化",
className: unLocalizationClassName,
keys: [],
);
)
..mode = AppAdvancedLocalizationClassKeysDataMode.unLocalization
..lockMod = true;
final unClass = AppAdvancedLocalizationClassKeysData(
id: "un_class",
className: "未分类",
className: othersClassName,
keys: [],
);
final classMap = <String, AppAdvancedLocalizationClassKeysData>{
@ -84,18 +117,22 @@ class AdvancedLocalizationUIModel extends _$AdvancedLocalizationUIModel {
final serverIniMap = readIniAsMap(serverGlobalIni);
var regexList = classMap.values
.expand((c) => c.keys!.map((k) => MapEntry(c, RegExp(k))))
.expand((c) =>
c.keys!.map((k) => MapEntry(c, RegExp(k, caseSensitive: false))))
.toList();
iniKeysLoop:
for (var p4kIniKey in p4kIniMap.keys) {
final serverValue = serverIniMap[p4kIniKey];
if (serverValue == null) {
unLocalization.valuesMap[p4kIniKey] = p4kIniMap[p4kIniKey] ?? "";
if (serverValue == null || serverValue.trim().isEmpty) {
final p4kValue = p4kIniMap[p4kIniKey] ?? "";
if (p4kValue.trim().isNotEmpty) {
unLocalization.valuesMap[p4kIniKey] = p4kValue;
}
continue iniKeysLoop;
} else {
for (var item in regexList) {
if (item.value.hasMatch(p4kIniKey)) {
if (p4kIniKey.startsWith(item.value)) {
item.key.valuesMap[p4kIniKey] = serverValue;
serverIniMap.remove(p4kIniKey);
continue iniKeysLoop;
@ -103,15 +140,15 @@ class AdvancedLocalizationUIModel extends _$AdvancedLocalizationUIModel {
}
}
}
if (unLocalization.valuesMap.isNotEmpty) {
classMap[unLocalization.id!] = unLocalization;
}
if (serverIniMap.isNotEmpty) {
for (var element in serverIniMap.keys) {
unClass.valuesMap[element] = serverIniMap[element] ?? "";
}
classMap[unClass.id!] = unClass;
}
if (unLocalization.valuesMap.isNotEmpty) {
classMap[unLocalization.id!] = unLocalization;
}
return classMap;
}
@ -128,8 +165,7 @@ class AdvancedLocalizationUIModel extends _$AdvancedLocalizationUIModel {
}
Future<AppAdvancedLocalizationData> _readClassJson() async {
final s = await rootBundle.loadString("assets/advanced_localization.json");
return AppAdvancedLocalizationData.fromJson(json.decode(s));
return AppAdvancedLocalizationData.fromJson(advancedLocalizationJsonData);
}
Future<(String, String)> _readIni(LocalizationUIState localizationUIState,
@ -137,10 +173,13 @@ class AdvancedLocalizationUIModel extends _$AdvancedLocalizationUIModel {
final homeUIState = ref.read(homeUIModelProvider);
final gameDir = homeUIState.scInstalledPath;
if (gameDir == null) return ("", "");
state = state.copyWith(workingText: "读取 p4k 文件 ...");
state = state.copyWith(
workingText: S.current.home_localization_advanced_msg_reading_p4k);
final p4kGlobalIni = await readEnglishInI(gameDir);
dPrint("read p4kGlobalIni => ${p4kGlobalIni.length}");
state = state.copyWith(workingText: "获取汉化文本 ...");
state = state.copyWith(
workingText: S.current
.home_localization_advanced_msg_reading_server_localization_text);
final apiLocalizationData =
localizationUIState.apiLocalizationData?.values.firstOrNull;
if (apiLocalizationData == null) return ("", "");
@ -150,6 +189,7 @@ class AdvancedLocalizationUIModel extends _$AdvancedLocalizationUIModel {
await localizationUIModel.downloadLocalizationFile(
file, apiLocalizationData);
}
state = state.copyWith(apiLocalizationData: apiLocalizationData);
final serverGlobalIni =
(await compute(LocalizationUIModel.readArchive, file.absolute.path))
.toString();
@ -158,13 +198,84 @@ class AdvancedLocalizationUIModel extends _$AdvancedLocalizationUIModel {
}
Future<String> readEnglishInI(String gameDir) async {
final data = await Unp4kCModel.unp4kTools(
var data = await Unp4kCModel.unp4kTools(
appGlobalState.applicationBinaryModuleDir!, [
"extract_memory",
"$gameDir\\Data.p4k",
"Data\\Localization\\english\\global.ini"
]);
// remove bom
if (data.length > 3 &&
data[0] == 0xEF &&
data[1] == 0xBB &&
data[2] == 0xBF) {
data = data.sublist(3);
}
final iniData = String.fromCharCodes(data);
return iniData;
}
onChangeMod(AppAdvancedLocalizationClassKeysData item,
AppAdvancedLocalizationClassKeysDataMode mode) async {
if (item.lockMod) return;
item.mode = mode;
item.isWorking = true;
final classMap =
Map<String, AppAdvancedLocalizationClassKeysData>.from(state.classMap!);
classMap[item.id!] = item;
state = state.copyWith(classMap: classMap);
final p4kIniMap = readIniAsMap(state.p4kGlobalIni!);
final serverIniMap = readIniAsMap(state.serverGlobalIni!);
final newValuesMap = <String, String>{};
for (var kv in item.valuesMap.entries) {
switch (mode) {
case AppAdvancedLocalizationClassKeysDataMode.localization:
newValuesMap[kv.key] = serverIniMap[kv.key] ?? "";
break;
case AppAdvancedLocalizationClassKeysDataMode.unLocalization:
newValuesMap[kv.key] = p4kIniMap[kv.key] ?? "";
break;
case AppAdvancedLocalizationClassKeysDataMode.mixed:
newValuesMap[kv.key] =
"${serverIniMap[kv.key]} [${p4kIniMap[kv.key]}]";
break;
case AppAdvancedLocalizationClassKeysDataMode.mixedNewline:
newValuesMap[kv.key] =
"${serverIniMap[kv.key]}\\n${p4kIniMap[kv.key]}";
break;
}
await Future.delayed(Duration.zero);
}
item.valuesMap = newValuesMap;
item.isWorking = false;
classMap[item.id!] = item;
state = state.copyWith(classMap: classMap);
}
Future<bool> doInstall() async {
state = state.copyWith(
workingText:
S.current.home_localization_advanced_msg_gen_localization_text);
final classMap = state.classMap!;
final globalIni = StringBuffer();
for (var item in classMap.values) {
for (var kv in item.valuesMap.entries) {
globalIni.write("${kv.key}=${kv.value}\n");
await Future.delayed(Duration.zero);
}
}
state = state.copyWith(
workingText:
S.current.home_localization_advanced_msg_gen_localization_install);
final localizationUIModel = ref.read(localizationUIModelProvider.notifier);
await localizationUIModel.installFormString(
globalIni, state.apiLocalizationData?.versionName ?? "-",
advanced: true);
state = state.copyWith(workingText: "");
return true;
}
}

View File

@ -21,6 +21,10 @@ mixin _$AdvancedLocalizationUIState {
throw _privateConstructorUsedError;
String? get p4kGlobalIni => throw _privateConstructorUsedError;
String? get serverGlobalIni => throw _privateConstructorUsedError;
ScLocalizationData? get apiLocalizationData =>
throw _privateConstructorUsedError;
int get p4kGlobalIniLines => throw _privateConstructorUsedError;
int get serverGlobalIniLines => throw _privateConstructorUsedError;
@JsonKey(ignore: true)
$AdvancedLocalizationUIStateCopyWith<AdvancedLocalizationUIState>
@ -39,7 +43,10 @@ abstract class $AdvancedLocalizationUIStateCopyWith<$Res> {
{String workingText,
Map<String, AppAdvancedLocalizationClassKeysData>? classMap,
String? p4kGlobalIni,
String? serverGlobalIni});
String? serverGlobalIni,
ScLocalizationData? apiLocalizationData,
int p4kGlobalIniLines,
int serverGlobalIniLines});
}
/// @nodoc
@ -60,6 +67,9 @@ class _$AdvancedLocalizationUIStateCopyWithImpl<$Res,
Object? classMap = freezed,
Object? p4kGlobalIni = freezed,
Object? serverGlobalIni = freezed,
Object? apiLocalizationData = freezed,
Object? p4kGlobalIniLines = null,
Object? serverGlobalIniLines = null,
}) {
return _then(_value.copyWith(
workingText: null == workingText
@ -78,6 +88,18 @@ class _$AdvancedLocalizationUIStateCopyWithImpl<$Res,
? _value.serverGlobalIni
: serverGlobalIni // ignore: cast_nullable_to_non_nullable
as String?,
apiLocalizationData: freezed == apiLocalizationData
? _value.apiLocalizationData
: apiLocalizationData // ignore: cast_nullable_to_non_nullable
as ScLocalizationData?,
p4kGlobalIniLines: null == p4kGlobalIniLines
? _value.p4kGlobalIniLines
: p4kGlobalIniLines // ignore: cast_nullable_to_non_nullable
as int,
serverGlobalIniLines: null == serverGlobalIniLines
? _value.serverGlobalIniLines
: serverGlobalIniLines // ignore: cast_nullable_to_non_nullable
as int,
) as $Val);
}
}
@ -95,7 +117,10 @@ abstract class _$$AdvancedLocalizationUIStateImplCopyWith<$Res>
{String workingText,
Map<String, AppAdvancedLocalizationClassKeysData>? classMap,
String? p4kGlobalIni,
String? serverGlobalIni});
String? serverGlobalIni,
ScLocalizationData? apiLocalizationData,
int p4kGlobalIniLines,
int serverGlobalIniLines});
}
/// @nodoc
@ -115,6 +140,9 @@ class __$$AdvancedLocalizationUIStateImplCopyWithImpl<$Res>
Object? classMap = freezed,
Object? p4kGlobalIni = freezed,
Object? serverGlobalIni = freezed,
Object? apiLocalizationData = freezed,
Object? p4kGlobalIniLines = null,
Object? serverGlobalIniLines = null,
}) {
return _then(_$AdvancedLocalizationUIStateImpl(
workingText: null == workingText
@ -133,6 +161,18 @@ class __$$AdvancedLocalizationUIStateImplCopyWithImpl<$Res>
? _value.serverGlobalIni
: serverGlobalIni // ignore: cast_nullable_to_non_nullable
as String?,
apiLocalizationData: freezed == apiLocalizationData
? _value.apiLocalizationData
: apiLocalizationData // ignore: cast_nullable_to_non_nullable
as ScLocalizationData?,
p4kGlobalIniLines: null == p4kGlobalIniLines
? _value.p4kGlobalIniLines
: p4kGlobalIniLines // ignore: cast_nullable_to_non_nullable
as int,
serverGlobalIniLines: null == serverGlobalIniLines
? _value.serverGlobalIniLines
: serverGlobalIniLines // ignore: cast_nullable_to_non_nullable
as int,
));
}
}
@ -146,7 +186,10 @@ class _$AdvancedLocalizationUIStateImpl
{this.workingText = "",
final Map<String, AppAdvancedLocalizationClassKeysData>? classMap,
this.p4kGlobalIni,
this.serverGlobalIni})
this.serverGlobalIni,
this.apiLocalizationData,
this.p4kGlobalIniLines = 0,
this.serverGlobalIniLines = 0})
: _classMap = classMap;
@override
@ -166,10 +209,18 @@ class _$AdvancedLocalizationUIStateImpl
final String? p4kGlobalIni;
@override
final String? serverGlobalIni;
@override
final ScLocalizationData? apiLocalizationData;
@override
@JsonKey()
final int p4kGlobalIniLines;
@override
@JsonKey()
final int serverGlobalIniLines;
@override
String toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) {
return 'AdvancedLocalizationUIState(workingText: $workingText, classMap: $classMap, p4kGlobalIni: $p4kGlobalIni, serverGlobalIni: $serverGlobalIni)';
return 'AdvancedLocalizationUIState(workingText: $workingText, classMap: $classMap, p4kGlobalIni: $p4kGlobalIni, serverGlobalIni: $serverGlobalIni, apiLocalizationData: $apiLocalizationData, p4kGlobalIniLines: $p4kGlobalIniLines, serverGlobalIniLines: $serverGlobalIniLines)';
}
@override
@ -180,7 +231,10 @@ class _$AdvancedLocalizationUIStateImpl
..add(DiagnosticsProperty('workingText', workingText))
..add(DiagnosticsProperty('classMap', classMap))
..add(DiagnosticsProperty('p4kGlobalIni', p4kGlobalIni))
..add(DiagnosticsProperty('serverGlobalIni', serverGlobalIni));
..add(DiagnosticsProperty('serverGlobalIni', serverGlobalIni))
..add(DiagnosticsProperty('apiLocalizationData', apiLocalizationData))
..add(DiagnosticsProperty('p4kGlobalIniLines', p4kGlobalIniLines))
..add(DiagnosticsProperty('serverGlobalIniLines', serverGlobalIniLines));
}
@override
@ -194,7 +248,13 @@ class _$AdvancedLocalizationUIStateImpl
(identical(other.p4kGlobalIni, p4kGlobalIni) ||
other.p4kGlobalIni == p4kGlobalIni) &&
(identical(other.serverGlobalIni, serverGlobalIni) ||
other.serverGlobalIni == serverGlobalIni));
other.serverGlobalIni == serverGlobalIni) &&
(identical(other.apiLocalizationData, apiLocalizationData) ||
other.apiLocalizationData == apiLocalizationData) &&
(identical(other.p4kGlobalIniLines, p4kGlobalIniLines) ||
other.p4kGlobalIniLines == p4kGlobalIniLines) &&
(identical(other.serverGlobalIniLines, serverGlobalIniLines) ||
other.serverGlobalIniLines == serverGlobalIniLines));
}
@override
@ -203,7 +263,10 @@ class _$AdvancedLocalizationUIStateImpl
workingText,
const DeepCollectionEquality().hash(_classMap),
p4kGlobalIni,
serverGlobalIni);
serverGlobalIni,
apiLocalizationData,
p4kGlobalIniLines,
serverGlobalIniLines);
@JsonKey(ignore: true)
@override
@ -219,7 +282,10 @@ abstract class _AdvancedLocalizationUIState
{final String workingText,
final Map<String, AppAdvancedLocalizationClassKeysData>? classMap,
final String? p4kGlobalIni,
final String? serverGlobalIni}) = _$AdvancedLocalizationUIStateImpl;
final String? serverGlobalIni,
final ScLocalizationData? apiLocalizationData,
final int p4kGlobalIniLines,
final int serverGlobalIniLines}) = _$AdvancedLocalizationUIStateImpl;
@override
String get workingText;
@ -230,6 +296,12 @@ abstract class _AdvancedLocalizationUIState
@override
String? get serverGlobalIni;
@override
ScLocalizationData? get apiLocalizationData;
@override
int get p4kGlobalIniLines;
@override
int get serverGlobalIniLines;
@override
@JsonKey(ignore: true)
_$$AdvancedLocalizationUIStateImplCopyWith<_$AdvancedLocalizationUIStateImpl>
get copyWith => throw _privateConstructorUsedError;

View File

@ -7,7 +7,7 @@ part of 'advanced_localization_ui_model.dart';
// **************************************************************************
String _$advancedLocalizationUIModelHash() =>
r'2bb7dfc3cd8d45ecf5056083627136ad5cb7a285';
r'9fbbeca3af90f992717710633bcf2cd0e1cb06eb';
/// See also [AdvancedLocalizationUIModel].
@ProviderFor(AdvancedLocalizationUIModel)

View File

@ -86,7 +86,7 @@ class LocalizationDialogUI extends HookConsumerWidget {
Row(
children: [
Text(S.current.localization_info_installed_version(
state.patchStatus?.value ?? "")),
"${state.patchStatus?.value ?? ""} ${(state.isInstalledAdvanced ?? false) ? S.current.home_localization_msg_version_advanced : ""}")),
const Spacer(),
if (state.patchStatus?.value !=
S.current.home_action_info_game_built_in)
@ -426,7 +426,7 @@ class LocalizationDialogUI extends HookConsumerWidget {
children: [
Expanded(
child: Text(
item.value.note ?? "该版本没有提供描述",
item.value.note ?? S.current.home_localization_msg_no_note,
style: const TextStyle(fontSize: 15),
),
),
@ -451,22 +451,22 @@ class LocalizationDialogUI extends HookConsumerWidget {
final toolsMenu = {
"launcher_mod": (
const Icon(FluentIcons.c_plus_plus, size: 24),
"RSI 启动器汉化",
(S.current.home_localization_action_rsi_launcher_localization),
),
"advanced": (
const Icon(FluentIcons.queue_advanced, size: 24),
"高级汉化",
(S.current.home_localization_action_advanced),
),
"custom_files": (
const Icon(FluentIcons.custom_activity, size: 24),
"安装自定义文件",
(S.current.home_localization_action_install_customize),
),
};
final enableTap = state.workingVersion.isEmpty;
return makeListContainer(
"汉化工具",
S.current.home_localization_title_localization_tools,
[
for (final item in toolsMenu.entries)
Tilt(
@ -512,6 +512,6 @@ class LocalizationDialogUI extends HookConsumerWidget {
],
context,
gridViewMode: true,
gridViewCrossAxisCount: 4);
gridViewCrossAxisCount: 3);
}
}

View File

@ -32,6 +32,7 @@ class LocalizationUIState with _$LocalizationUIState {
Map<String, ScLocalizationData>? apiLocalizationData,
@Default("") String workingVersion,
MapEntry<bool, String>? patchStatus,
bool? isInstalledAdvanced,
List<String>? customizeList,
@Default(false) bool enableCustomize,
}) = _LocalizationUIState;
@ -222,7 +223,7 @@ class LocalizationUIModel extends _$LocalizationUIModel {
if (!await f.exists()) return;
state = state.copyWith(workingVersion: filePath);
final str = await f.readAsString();
await _installFormString(
await installFormString(
StringBuffer(str),
S.current
.localization_info_custom_file(getCustomizeFileName(filePath)));
@ -230,14 +231,19 @@ class LocalizationUIModel extends _$LocalizationUIModel {
};
}
_installFormString(StringBuffer globalIni, String versionName) async {
installFormString(StringBuffer globalIni, String versionName,
{bool? advanced}) async {
final iniFile = File(
"${_scDataDir.absolute.path}\\Localization\\${state.selectedLanguage}\\global.ini");
if (versionName.isNotEmpty) {
if (!globalIni.toString().endsWith("\n")) {
globalIni.write("\n");
}
globalIni.write("_starcitizen_doctor_localization_version=$versionName");
if (advanced ?? false) {
globalIni.write("_starcitizen_doctor_localization_advanced=true\n");
}
globalIni
.write("_starcitizen_doctor_localization_version=$versionName\n");
}
/// write cfg
@ -275,7 +281,7 @@ class LocalizationUIModel extends _$LocalizationUIModel {
if (globalIni.isEmpty) {
throw S.current.localization_info_corrupted_file;
}
await _installFormString(globalIni, value.versionName ?? "");
await installFormString(globalIni, value.versionName ?? "");
} catch (e) {
if (!context.mounted) return;
await showToast(
@ -348,7 +354,19 @@ class LocalizationUIModel extends _$LocalizationUIModel {
await _getLangCfgEnableLang(lang: state.selectedLanguage!),
await _getInstalledIniVersion(
"${_scDataDir.absolute.path}\\Localization\\${state.selectedLanguage}\\global.ini"));
state = state.copyWith(patchStatus: patchStatus);
final isInstalledAdvanced = await _checkAdvancedStatus(
"${_scDataDir.absolute.path}\\Localization\\${state.selectedLanguage}\\global.ini");
state = state.copyWith(
patchStatus: patchStatus, isInstalledAdvanced: isInstalledAdvanced);
}
Future<bool> _checkAdvancedStatus(String path) async {
final iniFile = File(path);
if (!await iniFile.exists()) {
return false;
}
final iniString = (await iniFile.readAsString());
return iniString.contains("_starcitizen_doctor_localization_advanced=true");
}
Future<bool> _getLangCfgEnableLang({String lang = ""}) async {

View File

@ -21,6 +21,7 @@ mixin _$LocalizationUIState {
throw _privateConstructorUsedError;
String get workingVersion => throw _privateConstructorUsedError;
MapEntry<bool, String>? get patchStatus => throw _privateConstructorUsedError;
bool? get isInstalledAdvanced => throw _privateConstructorUsedError;
List<String>? get customizeList => throw _privateConstructorUsedError;
bool get enableCustomize => throw _privateConstructorUsedError;
@ -40,6 +41,7 @@ abstract class $LocalizationUIStateCopyWith<$Res> {
Map<String, ScLocalizationData>? apiLocalizationData,
String workingVersion,
MapEntry<bool, String>? patchStatus,
bool? isInstalledAdvanced,
List<String>? customizeList,
bool enableCustomize});
}
@ -61,6 +63,7 @@ class _$LocalizationUIStateCopyWithImpl<$Res, $Val extends LocalizationUIState>
Object? apiLocalizationData = freezed,
Object? workingVersion = null,
Object? patchStatus = freezed,
Object? isInstalledAdvanced = freezed,
Object? customizeList = freezed,
Object? enableCustomize = null,
}) {
@ -81,6 +84,10 @@ class _$LocalizationUIStateCopyWithImpl<$Res, $Val extends LocalizationUIState>
? _value.patchStatus
: patchStatus // ignore: cast_nullable_to_non_nullable
as MapEntry<bool, String>?,
isInstalledAdvanced: freezed == isInstalledAdvanced
? _value.isInstalledAdvanced
: isInstalledAdvanced // ignore: cast_nullable_to_non_nullable
as bool?,
customizeList: freezed == customizeList
? _value.customizeList
: customizeList // ignore: cast_nullable_to_non_nullable
@ -106,6 +113,7 @@ abstract class _$$LocalizationUIStateImplCopyWith<$Res>
Map<String, ScLocalizationData>? apiLocalizationData,
String workingVersion,
MapEntry<bool, String>? patchStatus,
bool? isInstalledAdvanced,
List<String>? customizeList,
bool enableCustomize});
}
@ -125,6 +133,7 @@ class __$$LocalizationUIStateImplCopyWithImpl<$Res>
Object? apiLocalizationData = freezed,
Object? workingVersion = null,
Object? patchStatus = freezed,
Object? isInstalledAdvanced = freezed,
Object? customizeList = freezed,
Object? enableCustomize = null,
}) {
@ -145,6 +154,10 @@ class __$$LocalizationUIStateImplCopyWithImpl<$Res>
? _value.patchStatus
: patchStatus // ignore: cast_nullable_to_non_nullable
as MapEntry<bool, String>?,
isInstalledAdvanced: freezed == isInstalledAdvanced
? _value.isInstalledAdvanced
: isInstalledAdvanced // ignore: cast_nullable_to_non_nullable
as bool?,
customizeList: freezed == customizeList
? _value._customizeList
: customizeList // ignore: cast_nullable_to_non_nullable
@ -165,6 +178,7 @@ class _$LocalizationUIStateImpl implements _LocalizationUIState {
final Map<String, ScLocalizationData>? apiLocalizationData,
this.workingVersion = "",
this.patchStatus,
this.isInstalledAdvanced,
final List<String>? customizeList,
this.enableCustomize = false})
: _apiLocalizationData = apiLocalizationData,
@ -188,6 +202,8 @@ class _$LocalizationUIStateImpl implements _LocalizationUIState {
final String workingVersion;
@override
final MapEntry<bool, String>? patchStatus;
@override
final bool? isInstalledAdvanced;
final List<String>? _customizeList;
@override
List<String>? get customizeList {
@ -204,7 +220,7 @@ class _$LocalizationUIStateImpl implements _LocalizationUIState {
@override
String toString() {
return 'LocalizationUIState(selectedLanguage: $selectedLanguage, apiLocalizationData: $apiLocalizationData, workingVersion: $workingVersion, patchStatus: $patchStatus, customizeList: $customizeList, enableCustomize: $enableCustomize)';
return 'LocalizationUIState(selectedLanguage: $selectedLanguage, apiLocalizationData: $apiLocalizationData, workingVersion: $workingVersion, patchStatus: $patchStatus, isInstalledAdvanced: $isInstalledAdvanced, customizeList: $customizeList, enableCustomize: $enableCustomize)';
}
@override
@ -220,6 +236,8 @@ class _$LocalizationUIStateImpl implements _LocalizationUIState {
other.workingVersion == workingVersion) &&
(identical(other.patchStatus, patchStatus) ||
other.patchStatus == patchStatus) &&
(identical(other.isInstalledAdvanced, isInstalledAdvanced) ||
other.isInstalledAdvanced == isInstalledAdvanced) &&
const DeepCollectionEquality()
.equals(other._customizeList, _customizeList) &&
(identical(other.enableCustomize, enableCustomize) ||
@ -233,6 +251,7 @@ class _$LocalizationUIStateImpl implements _LocalizationUIState {
const DeepCollectionEquality().hash(_apiLocalizationData),
workingVersion,
patchStatus,
isInstalledAdvanced,
const DeepCollectionEquality().hash(_customizeList),
enableCustomize);
@ -250,6 +269,7 @@ abstract class _LocalizationUIState implements LocalizationUIState {
final Map<String, ScLocalizationData>? apiLocalizationData,
final String workingVersion,
final MapEntry<bool, String>? patchStatus,
final bool? isInstalledAdvanced,
final List<String>? customizeList,
final bool enableCustomize}) = _$LocalizationUIStateImpl;
@ -262,6 +282,8 @@ abstract class _LocalizationUIState implements LocalizationUIState {
@override
MapEntry<bool, String>? get patchStatus;
@override
bool? get isInstalledAdvanced;
@override
List<String>? get customizeList;
@override
bool get enableCustomize;

View File

@ -7,7 +7,7 @@ part of 'localization_ui_model.dart';
// **************************************************************************
String _$localizationUIModelHash() =>
r'ed47da78fdc6adac904a17909f111640ac84563e';
r'892a302b28ce4446cab7591f54008fbcc2e5eae0';
/// See also [LocalizationUIModel].
@ProviderFor(LocalizationUIModel)

View File

@ -0,0 +1,325 @@
import 'package:starcitizen_doctor/generated/l10n.dart';
List get performanceUIConfJsonData => [
{
"key": "r_ssdo",
"name": S.current.performance_json_text_ssdo,
"info": S.current.performance_json_text_ssdo_info,
"type": "int",
"max": 2,
"min": 0,
"value": 1,
"group": S.current.performance_json_text_title_graphics
},
{
"key": "r_AntialiasingMode",
"name": S.current.performance_json_text_antialiasing,
"info": S.current.performance_json_text_antialiasing_info,
"type": "int",
"max": 3,
"min": 0,
"value": 2,
"group": S.current.performance_json_text_title_graphics
},
{
"key": "sys_spec_gameeffects",
"name": S.current.performance_json_text_game_effects,
"info": S.current.performance_json_text_game_effects_info,
"type": "int",
"max": 4,
"min": 1,
"value": 2,
"group": S.current.performance_json_text_title_graphics
},
{
"key": "sys_spec_texture",
"name": S.current.performance_json_text_texture,
"info": S.current.performance_json_text_texture_info,
"type": "int",
"max": 3,
"min": 1,
"value": 2,
"group": S.current.performance_json_text_title_graphics
},
{
"key": "sys_spec_volumetriceffects",
"name": S.current.performance_json_text_volumetric_effects,
"info": S.current.performance_json_text_volumetric_effects_info,
"type": "int",
"max": 4,
"min": 1,
"value": 2,
"group": S.current.performance_json_text_title_graphics
},
{
"key": "sys_spec_water",
"name": S.current.performance_json_text_water,
"info": S.current.performance_json_text_water_info,
"type": "int",
"max": 4,
"min": 1,
"value": 2,
"group": S.current.performance_json_text_title_graphics
},
{
"key": "sys_spec_objectdetail",
"name": S.current.performance_json_text_object_detail,
"info": S.current.performance_json_text_object_detail_info,
"type": "int",
"max": 4,
"min": 1,
"value": 2,
"group": S.current.performance_json_text_title_graphics
},
{
"key": "sys_spec_particles",
"name": S.current.performance_json_text_particles,
"info": "",
"type": "int",
"max": 4,
"min": 1,
"value": 2,
"group": S.current.performance_json_text_title_graphics
},
{
"key": "sys_spec_physics",
"name": S.current.performance_json_text_physics,
"info": S.current.performance_json_text_physics_info,
"type": "int",
"max": 4,
"min": 1,
"value": 2,
"group": S.current.performance_json_text_title_graphics
},
{
"key": "sys_spec_shading",
"name": S.current.performance_json_text_shading,
"info": S.current.performance_json_text_shading_info,
"type": "int",
"max": 4,
"min": 1,
"value": 2,
"group": S.current.performance_json_text_title_graphics
},
{
"key": "sys_spec_shadows",
"name": S.current.performance_json_text_shadows,
"info": S.current.performance_json_text_shadows_info,
"type": "int",
"max": 4,
"min": 1,
"value": 2,
"group": S.current.performance_json_text_title_graphics
},
{
"key": "sys_spec_postprocessing",
"name": S.current.performance_json_text_postprocessing,
"info": S.current.performance_json_text_postprocessing_info,
"type": "int",
"max": 4,
"min": 1,
"value": 2,
"group": S.current.performance_json_text_title_graphics
},
{
"key": "q_Renderer",
"name": S.current.performance_json_text_renderer,
"info": S.current.performance_json_text_renderer_info,
"type": "int",
"max": 3,
"min": 0,
"value": 2,
"group": S.current.performance_json_text_title_graphics
},
{
"key": "q_ShaderDecal",
"name": S.current.performance_json_text_shader_decal,
"info": S.current.performance_json_text_shader_decal_info,
"type": "int",
"max": 3,
"min": 0,
"value": 2,
"group": S.current.performance_json_text_title_graphics
},
{
"key": "q_ShaderPostProcess",
"name": S.current.performance_json_text_shader_post_process,
"info": "",
"type": "int",
"max": 3,
"min": 0,
"value": 3,
"group": S.current.performance_json_text_title_graphics
},
{
"key": "q_ShaderFX",
"name": S.current.performance_json_text_shader_fx,
"info": "",
"type": "int",
"max": 3,
"min": 0,
"value": 2,
"group": S.current.performance_json_text_title_graphics
},
{
"key": "q_ShaderGeneral",
"name": S.current.performance_json_text_shader_general,
"info": S.current.performance_json_text_shader_general_info,
"type": "int",
"max": 3,
"min": 0,
"value": 2,
"group": S.current.performance_json_text_title_graphics
},
{
"key": "q_ShaderGlass",
"name": S.current.performance_json_text_shader_glass,
"info": S.current.performance_json_text_shader_glass_info,
"type": "int",
"max": 3,
"min": 0,
"value": 2,
"group": S.current.performance_json_text_title_graphics
},
{
"key": "q_ShaderHDR",
"name": S.current.performance_json_text_shader_hdr,
"info": S.current.performance_json_text_shader_hdr_info,
"type": "int",
"max": 3,
"min": 0,
"value": 2,
"group": S.current.performance_json_text_title_graphics
},
{
"key": "q_ShaderParticle",
"name": S.current.performance_json_text_shader_particle,
"info": S.current.performance_json_text_shader_particle_info,
"type": "int",
"max": 3,
"min": 0,
"value": 2,
"group": S.current.performance_json_text_title_graphics
},
{
"key": "q_ShaderTerrain",
"name": S.current.performance_json_text_shader_terrain,
"info": "",
"type": "int",
"max": 3,
"min": 0,
"value": 2,
"group": S.current.performance_json_text_title_graphics
},
{
"key": "q_ShaderShadow",
"name": S.current.performance_json_text_shader_shadow,
"info": "",
"type": "int",
"max": 3,
"min": 0,
"value": 2,
"group": S.current.performance_json_text_title_graphics
},
{
"key": "q_ShaderSky",
"name": S.current.performance_json_text_shader_sky,
"info": "",
"type": "int",
"max": 3,
"min": 0,
"value": 2,
"group": S.current.performance_json_text_title_graphics
},
{
"key": "e_ParticlesObjectCollisions",
"name": S.current.performance_json_text_particles_object_collisions,
"info":
S.current.performance_json_text_particles_object_collisions_info,
"type": "int",
"max": 2,
"min": 1,
"value": 1,
"group": S.current.performance_json_text_title_graphics
},
{
"key": "r_displayinfo",
"name": S.current.performance_json_text_displayinfo,
"info": S.current.performance_json_text_displayinfo_info,
"type": "int",
"max": 4,
"min": 0,
"value": 1,
"group": S.current.app_index_menu_settings
},
{
"key": "sys_maxFps",
"name": S.current.performance_json_text_max_fps,
"info": S.current.performance_json_text_max_fps_info,
"type": "int",
"max": 300,
"min": 0,
"value": 0,
"group": S.current.app_index_menu_settings
},
{
"key": "r_DisplaySessionInfo",
"name": S.current.performance_json_text_display_session,
"info": S.current.performance_json_text_display_session_info,
"type": "bool",
"max": 1,
"min": 0,
"value": 0,
"group": S.current.app_index_menu_settings
},
{
"key": "r_VSync",
"name": S.current.performance_json_text_vsync,
"info": S.current.performance_json_text_vsync_info,
"type": "bool",
"max": 1,
"min": 0,
"value": 0,
"group": S.current.app_index_menu_settings
},
{
"key": "r_MotionBlur",
"name": S.current.performance_json_text_motion_blur,
"info": S.current.performance_json_text_motion_blur_info,
"type": "bool",
"max": 1,
"min": 0,
"value": 0,
"group": S.current.app_index_menu_settings
},
{
"key": "cl_fov",
"name": "FOV",
"info": S.current.performance_json_text_fov,
"type": "int",
"max": 160,
"min": 25,
"value": 90,
"group": S.current.app_index_menu_settings
},
{
"key": "ui_disableScreenFade",
"name": S.current.performance_json_text_ui_animation,
"info": "",
"type": "bool",
"max": 1,
"min": 0,
"value": 1,
"group": S.current.app_index_menu_settings
},
{
"key": "customize",
"name": S.current.performance_json_text_custom_parameters,
"info": "",
"type": "customize",
"max": 1,
"min": 0,
"value": 1,
"group": S.current.performance_json_text_title_custom
}
];

View File

@ -1,9 +1,7 @@
// ignore_for_file: avoid_build_context_in_providers, avoid_public_notifier_properties
import 'dart:convert';
import 'dart:io';
import 'package:fluent_ui/fluent_ui.dart';
import 'package:flutter/services.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:hive/hive.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
@ -14,6 +12,8 @@ import 'package:starcitizen_doctor/data/game_performance_data.dart';
import 'package:starcitizen_doctor/generated/l10n.dart';
import 'package:starcitizen_doctor/ui/home/home_ui_model.dart';
import 'performance_ui.json.dart';
part 'performance_ui_model.freezed.dart';
part 'performance_ui_model.g.dart';
@ -50,22 +50,16 @@ class HomePerformanceUIModel extends _$HomePerformanceUIModel {
Future<void> _init() async {
customizeCtrl.clear();
_inAppKeys.clear();
final String jsonString =
await rootBundle.loadString('assets/performance.json');
final list = json.decode(jsonString);
if (list is List) {
final performanceMap = <String, List<GamePerformanceData>>{};
for (var element in list) {
final item = GamePerformanceData.fromJson(element);
if (item.key != "customize") {
_inAppKeys.add(item.key ?? "");
}
performanceMap[item.group!] ??= [];
performanceMap[item.group]?.add(item);
final performanceMap = <String, List<GamePerformanceData>>{};
for (var element in performanceUIConfJsonData) {
final item = GamePerformanceData.fromJson(element);
if (item.key != "customize") {
_inAppKeys.add(item.key ?? "");
}
state = state.copyWith(performanceMap: performanceMap);
performanceMap[item.group!] ??= [];
performanceMap[item.group]?.add(item);
}
state = state.copyWith(performanceMap: performanceMap);
if (await confFile.exists()) {
await _readConf();
@ -155,11 +149,13 @@ class HomePerformanceUIModel extends _$HomePerformanceUIModel {
}
clean(BuildContext context) async {
state = state.copyWith(workingString: S.current.performance_info_delete_config_file);
state = state.copyWith(
workingString: S.current.performance_info_delete_config_file);
if (await confFile.exists()) {
await confFile.delete(recursive: true);
}
state = state.copyWith(workingString: S.current.performance_action_clear_shaders);
state = state.copyWith(
workingString: S.current.performance_action_clear_shaders);
if (!context.mounted) return;
await cleanShaderCache(context);
state = state.copyWith(workingString: S.current.performance_info_done);
@ -188,7 +184,8 @@ class HomePerformanceUIModel extends _$HomePerformanceUIModel {
applyProfile(bool cleanShader) async {
if (state.performanceMap == null) return;
AnalyticsApi.touch("performance_apply");
state = state.copyWith(workingString: S.current.performance_info_generate_config_file);
state = state.copyWith(
workingString: S.current.performance_info_generate_config_file);
String conf = "";
for (var v in state.performanceMap!.entries) {
for (var c in v.value) {
@ -207,14 +204,16 @@ class HomePerformanceUIModel extends _$HomePerformanceUIModel {
}
}
}
state = state.copyWith(workingString: S.current.performance_info_write_out_config_file);
state = state.copyWith(
workingString: S.current.performance_info_write_out_config_file);
if (await confFile.exists()) {
await confFile.delete();
}
await confFile.create();
await confFile.writeAsString(conf);
if (cleanShader) {
state = state.copyWith(workingString: S.current.performance_action_clear_shaders);
state = state.copyWith(
workingString: S.current.performance_action_clear_shaders);
await cleanShaderCache(null);
}
state = state.copyWith(workingString: S.current.performance_info_done);
@ -226,4 +225,4 @@ class HomePerformanceUIModel extends _$HomePerformanceUIModel {
updateState() {
state = state.copyWith();
}
}
}

View File

@ -7,7 +7,7 @@ part of 'performance_ui_model.dart';
// **************************************************************************
String _$homePerformanceUIModelHash() =>
r'6ac9c9adc428120cb5ce71949221064c9e5d9385';
r'83fbdbbae287892dd0c67f5fd86d42a73d0ab91f';
/// See also [HomePerformanceUIModel].
@ProviderFor(HomePerformanceUIModel)

View File

@ -47,13 +47,13 @@ class RsiLauncherEnhanceDialogUI extends HookConsumerWidget {
final assarState = useState<RSILauncherStateData?>(null);
Future<void> readState() async {
workingText.value = "读取启动器信息...";
workingText.value = S.current.tools_rsi_launcher_enhance_init_msg1;
assarState.value = await _readState(context).unwrap(context: context);
if (assarState.value == null) {
workingText.value = "";
return;
}
workingText.value = "正在从网络获取增强数据...";
workingText.value = S.current.tools_rsi_launcher_enhance_init_msg2;
if (!context.mounted) return;
await _loadEnhanceData(context, ref, assarState)
.unwrap(context: context)
@ -71,10 +71,10 @@ class RsiLauncherEnhanceDialogUI extends HookConsumerWidget {
return;
}
if (!context.mounted) return;
workingText.value = "生成补丁 ...";
workingText.value = S.current.tools_rsi_launcher_enhance_working_msg1;
final newScript =
await _genNewScript(assarState).unwrap(context: context);
workingText.value = "安装补丁,这需要一点时间,取决于您的计算机性能 ...";
workingText.value = S.current.tools_rsi_launcher_enhance_working_msg2;
if (!context.mounted) return;
await assarState.value?.data
.writeMainJs(content: utf8.encode(newScript))
@ -99,7 +99,7 @@ class RsiLauncherEnhanceDialogUI extends HookConsumerWidget {
onPressed:
workingText.value.isEmpty ? Navigator.of(context).pop : null),
const SizedBox(width: 12),
const Text("RSI 启动器增强"),
Text(S.current.tools_rsi_launcher_enhance_title),
]),
content: AnimatedSize(
duration: const Duration(milliseconds: 130),
@ -126,14 +126,18 @@ class RsiLauncherEnhanceDialogUI extends HookConsumerWidget {
children: [
Expanded(
child: Text(
"启动器内部版本信息:${assarState.value?.version}",
S.current.tools_rsi_launcher_enhance_msg_version(
assarState.value?.version ?? ""),
style: TextStyle(
color: Colors.white.withOpacity(.6),
),
),
),
Text(
"补丁状态:${(assarState.value?.isPatchInstalled ?? false) ? "已安装" : "未安装"}",
S.current.tools_rsi_launcher_enhance_msg_patch_status(
(assarState.value?.isPatchInstalled ?? false)
? S.current.localization_info_installed
: S.current.tools_action_info_not_installed),
style: TextStyle(
color: Colors.white.withOpacity(.6),
),
@ -141,7 +145,7 @@ class RsiLauncherEnhanceDialogUI extends HookConsumerWidget {
],
),
if (assarState.value?.serverData.isEmpty ?? true) ...[
const Text("获取增强数据失败,可能是网络问题或当前版本不支持"),
Text(S.current.tools_rsi_launcher_enhance_msg_error),
] else ...[
const SizedBox(height: 24),
if (assarState.value?.enabledLocalization != null)
@ -158,10 +162,12 @@ class RsiLauncherEnhanceDialogUI extends HookConsumerWidget {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const Text("RSI 启动器本地化"),
Text(S.current
.tools_rsi_launcher_enhance_title_localization),
const SizedBox(height: 3),
Text(
"为 RSI 启动器增加多语言支持。",
S.current
.tools_rsi_launcher_enhance_subtitle_localization,
style: TextStyle(
fontSize: 13,
color: Colors.white.withOpacity(.6),
@ -198,10 +204,12 @@ class RsiLauncherEnhanceDialogUI extends HookConsumerWidget {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const Text("RSI 启动器下载增强"),
Text(S.current
.tools_rsi_launcher_enhance_title_download_booster),
const SizedBox(height: 3),
Text(
"下载游戏时可使用更多线程以提升下载速度,启用后请在启动器设置修改线程数。",
S.current
.tools_rsi_launcher_enhance_subtitle_download_booster,
style: TextStyle(
fontSize: 13,
color: Colors.white.withOpacity(.6),
@ -222,15 +230,16 @@ class RsiLauncherEnhanceDialogUI extends HookConsumerWidget {
Center(
child: FilledButton(
onPressed: doInstall,
child: const Padding(
padding:
EdgeInsets.symmetric(vertical: 4, horizontal: 6),
child: Text("安装增强补丁"),
child: Padding(
padding: const EdgeInsets.symmetric(
vertical: 4, horizontal: 6),
child: Text(S.current
.tools_rsi_launcher_enhance_action_install),
))),
],
const SizedBox(height: 16),
Text(
"* 如需卸载增强补丁,请覆盖安装 RSI 启动器。",
S.current.tools_rsi_launcher_enhance_msg_uninstall,
style: TextStyle(
color: Colors.white.withOpacity(.6), fontSize: 13),
),
@ -245,7 +254,8 @@ class RsiLauncherEnhanceDialogUI extends HookConsumerWidget {
final lPath = await SystemHelper.getRSILauncherPath(skipEXE: true);
if (lPath.isEmpty) {
if (!context.mounted) return null;
showToast(context, "未找到 RSI 启动器");
showToast(context,
S.current.tools_rsi_launcher_enhance_msg_error_launcher_notfound);
return null;
}
dPrint("[RsiLauncherEnhanceDialogUI] rsiLauncherPath ==== $lPath");
@ -259,7 +269,10 @@ class RsiLauncherEnhanceDialogUI extends HookConsumerWidget {
RegExp(r"main\.(\w+)\.js").firstMatch(data.mainJsPath)?.group(1);
if (version == null) {
if (!context.mounted) return null;
showToast(context, "读取启动器信息失败!");
showToast(
context,
S.current
.tools_rsi_launcher_enhance_msg_error_get_launcher_info_error);
return null;
}
dPrint(
@ -280,7 +293,8 @@ class RsiLauncherEnhanceDialogUI extends HookConsumerWidget {
);
} catch (e) {
if (!context.mounted) return null;
showToast(context, "读取启动器信息失败:$e");
showToast(context,
S.current.tools_rsi_launcher_enhance_msg_error_get_launcher_info_error_with_args(e));
return null;
}
}
@ -390,4 +404,4 @@ class RsiLauncherEnhanceDialogUI extends HookConsumerWidget {
}
return scriptBuffer.toString();
}
}
}

View File

@ -93,8 +93,8 @@ class ToolsUIModel extends _$ToolsUIModel {
),
ToolsItemData(
"rsilauncher_enhance_mod",
"RSI 启动器增强",
"启动器汉化,下载线程增强",
S.current.tools_rsi_launcher_enhance_title,
S.current.tools_action_rsi_launcher_enhance_info,
const Icon(FluentIcons.c_plus_plus, size: 24),
onTap: () => rsiEnhance(context),
),
@ -114,8 +114,8 @@ class ToolsUIModel extends _$ToolsUIModel {
),
ToolsItemData(
"unp4kc",
"P4K 查看器",
"解包星际公民 p4k 文件",
"${S.current.tools_action_unp4k}",
"${S.current.tools_action_unp4k_info}",
const Icon(FontAwesomeIcons.fileZipper, size: 24),
onTap: () => _unp4kc(context),
),
@ -596,15 +596,11 @@ class ToolsUIModel extends _$ToolsUIModel {
static rsiEnhance(BuildContext context) async {
final userOK = await showConfirmDialogs(
context,
"RSI 启动器增强使用须知",
const Column(
S.current.tools_rsi_launcher_enhance_note_title,
Column(
mainAxisSize: MainAxisSize.min,
children: [
Text(
"RSI 启动器增强是一项社区功能,它会在您的电脑上解包 \"RSI Launcher\" 并加入额外的增强功能,具体使用哪些功能由您决定。"
"\n\n目前官方CIG仅许可我们进行多语言操作启动器下载增强是我们认为有用的额外功能违反cig用户协议https://robertsspaceindustries.com/eula可能导致账号被封禁等严重后果是否启用由您自己决定我们不对可能产生的后果游戏损坏账号封禁等承担任何责任。"
"\n\n对于启动器的修改内容我们开源于https://github.com/StarCitizenToolBox/RSILauncherEnhance如有需要您可自行查阅。"
"\n\n如果您因为任何原因需要取消此增强补丁,请直接覆盖安装官方启动器。"),
Text(S.current.tools_rsi_launcher_enhance_note_msg),
],
),
constraints:
@ -623,4 +619,4 @@ class ToolsUIModel extends _$ToolsUIModel {
context: context,
builder: (BuildContext context) => const RsiLauncherEnhanceDialogUI());
}
}
}

View File

@ -6,7 +6,7 @@ part of 'tools_ui_model.dart';
// RiverpodGenerator
// **************************************************************************
String _$toolsUIModelHash() => r'4c27a3df07cb000ac58b74b3da48d926d0b01ea8';
String _$toolsUIModelHash() => r'bef6b6cf35ae13d7100fa8db85b7f6c04f244b27';
/// See also [ToolsUIModel].
@ProviderFor(ToolsUIModel)

View File

@ -6,6 +6,7 @@ import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:re_editor/re_editor.dart';
import 'package:starcitizen_doctor/common/helper/system_helper.dart';
import 'package:starcitizen_doctor/data/app_unp4k_p4k_item_data.dart';
import 'package:starcitizen_doctor/provider/unp4kc.dart';
import 'package:starcitizen_doctor/widgets/widgets.dart';
import 'package:super_sliver_list/super_sliver_list.dart';
@ -20,228 +21,238 @@ class UnP4kcUI extends HookConsumerWidget {
final files = model.getFiles();
final paths = state.curPath.trim().split("\\");
return makeDefaultPage(context,
title: "P4K 查看器 -> ${model.getGamePath()}",
title: S.current.tools_unp4k_title(model.getGamePath()),
useBodyContainer: false,
content: state.files == null
? Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(child: makeLoading(context)),
if (state.endMessage != null)
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"${state.endMessage}",
style: const TextStyle(fontSize: 12),
),
),
],
)
: Column(
crossAxisAlignment: CrossAxisAlignment.start,
content: makeBody(context, state, model, files, paths));
}
Widget makeBody(BuildContext context, Unp4kcState state, Unp4kCModel model,
List<AppUnp4kP4kItemData>? files, List<String> paths) {
if (state.errorMessage.isNotEmpty) {
return Padding(
padding: const EdgeInsets.all(24),
child: Center(
child: Text(state.errorMessage),
),
);
}
return state.files == null
? Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(child: makeLoading(context)),
if (state.endMessage != null)
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"${state.endMessage}",
style: const TextStyle(fontSize: 12),
),
),
],
)
: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
decoration: BoxDecoration(
color: FluentTheme.of(context).cardColor.withOpacity(.06)),
height: 36,
padding: const EdgeInsets.only(left: 12, right: 12),
child: SuperListView.builder(
itemCount: paths.length - 1,
scrollDirection: Axis.horizontal,
itemBuilder: (BuildContext context, int index) {
var path = paths[index];
if (path.isEmpty) {
path = "\\";
}
final fullPath =
"${paths.sublist(0, index + 1).join("\\")}\\";
return Row(
children: [
IconButton(
icon: Text(path),
onPressed: () {
model.changeDir(fullPath, fullPath: true);
},
),
const Icon(
FluentIcons.chevron_right,
size: 12,
),
],
);
},
),
),
Expanded(
child: Row(
children: [
Container(
width: MediaQuery.of(context).size.width * .3,
decoration: BoxDecoration(
color:
FluentTheme.of(context).cardColor.withOpacity(.06)),
height: 36,
padding: const EdgeInsets.only(left: 12, right: 12),
child: SuperListView.builder(
itemCount: paths.length - 1,
scrollDirection: Axis.horizontal,
itemBuilder: (BuildContext context, int index) {
var path = paths[index];
if (path.isEmpty) {
path = "\\";
}
final fullPath =
"${paths.sublist(0, index + 1).join("\\")}\\";
return Row(
children: [
IconButton(
icon: Text(path),
onPressed: () {
model.changeDir(fullPath, fullPath: true);
},
),
const Icon(
FluentIcons.chevron_right,
size: 12,
),
],
);
},
color: FluentTheme.of(context).cardColor.withOpacity(.01),
),
),
Expanded(
child: Row(
children: [
Container(
width: MediaQuery.of(context).size.width * .3,
decoration: BoxDecoration(
color: FluentTheme.of(context)
.cardColor
.withOpacity(.01),
),
child: SuperListView.builder(
padding: const EdgeInsets.only(
top: 6, bottom: 6, left: 3, right: 12),
itemBuilder: (BuildContext context, int index) {
final item = files![index];
final fileName = item.name
?.replaceAll(state.curPath.trim(), "") ??
child: SuperListView.builder(
padding: const EdgeInsets.only(
top: 6, bottom: 6, left: 3, right: 12),
itemBuilder: (BuildContext context, int index) {
final item = files![index];
final fileName =
item.name?.replaceAll(state.curPath.trim(), "") ??
"?";
return Container(
margin: const EdgeInsets.only(top: 4, bottom: 4),
decoration: BoxDecoration(
color: FluentTheme.of(context)
.cardColor
.withOpacity(.05),
),
child: IconButton(
onPressed: () {
if (item.isDirectory ?? false) {
model.changeDir(fileName);
} else {
model.openFile(item.name ?? "");
}
},
icon: Padding(
padding:
const EdgeInsets.only(left: 4, right: 4),
child: Row(
children: [
if (item.isDirectory ?? false)
const Icon(
FluentIcons.folder_fill,
color:
Color.fromRGBO(255, 224, 138, 1),
)
else if (fileName.endsWith(".xml"))
const Icon(
FluentIcons.file_code,
)
else
const Icon(
FluentIcons.open_file,
),
const SizedBox(width: 12),
Expanded(
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
return Container(
margin: const EdgeInsets.only(top: 4, bottom: 4),
decoration: BoxDecoration(
color: FluentTheme.of(context)
.cardColor
.withOpacity(.05),
),
child: IconButton(
onPressed: () {
if (item.isDirectory ?? false) {
model.changeDir(fileName);
} else {
model.openFile(item.name ?? "");
}
},
icon: Padding(
padding: const EdgeInsets.only(left: 4, right: 4),
child: Row(
children: [
if (item.isDirectory ?? false)
const Icon(
FluentIcons.folder_fill,
color: Color.fromRGBO(255, 224, 138, 1),
)
else if (fileName.endsWith(".xml"))
const Icon(
FluentIcons.file_code,
)
else
const Icon(
FluentIcons.open_file,
),
const SizedBox(width: 12),
Expanded(
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Row(
children: [
Row(
children: [
Expanded(
child: Text(
fileName,
style: const TextStyle(
fontSize: 13),
textAlign: TextAlign.start,
),
),
],
),
if (!(item.isDirectory ??
true)) ...[
const SizedBox(height: 1),
Row(
children: [
Text(
FileSize.getSize(item.size),
style: TextStyle(
fontSize: 10,
color: Colors.white
.withOpacity(.6)),
),
const SizedBox(width: 12),
Text(
"${item.dateTime}",
style: TextStyle(
fontSize: 10,
color: Colors.white
.withOpacity(.6)),
),
],
Expanded(
child: Text(
fileName,
style: const TextStyle(
fontSize: 13),
textAlign: TextAlign.start,
),
],
),
],
),
),
const SizedBox(width: 3),
Icon(
FluentIcons.chevron_right,
size: 14,
color: Colors.white.withOpacity(.6),
)
],
),
),
),
);
},
itemCount: files?.length ?? 0,
),
),
Expanded(
child: Container(
child: state.tempOpenFile == null
? const Center(
child: Text("单击文件以预览"),
)
: state.tempOpenFile?.key == "loading"
? makeLoading(context)
: Padding(
padding: const EdgeInsets.all(12),
child: Column(
children: [
if (state.tempOpenFile?.key == "text")
Expanded(
child: _TextTempWidget(
state.tempOpenFile?.value ??
""))
else
Expanded(
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Text(
"未知文件类型\n${state.tempOpenFile?.value}"),
const SizedBox(height: 32),
FilledButton(
child: const Padding(
padding:
EdgeInsets.all(4),
child: Text("打开文件夹"),
),
onPressed: () {
SystemHelper.openDir(
state.tempOpenFile
?.value ??
"");
})
],
if (!(item.isDirectory ?? true)) ...[
const SizedBox(height: 1),
Row(
children: [
Text(
FileSize.getSize(item.size),
style: TextStyle(
fontSize: 10,
color: Colors.white
.withOpacity(.6)),
),
),
)
const SizedBox(width: 12),
Text(
"${item.dateTime}",
style: TextStyle(
fontSize: 10,
color: Colors.white
.withOpacity(.6)),
),
],
),
],
],
),
),
))
],
)),
if (state.endMessage != null)
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"${state.endMessage}",
style: const TextStyle(fontSize: 12),
),
const SizedBox(width: 3),
Icon(
FluentIcons.chevron_right,
size: 14,
color: Colors.white.withOpacity(.6),
)
],
),
),
),
);
},
itemCount: files?.length ?? 0,
),
),
Expanded(
child: Container(
child: state.tempOpenFile == null
? Center(
child: Text(S.current.tools_unp4k_view_file),
)
: state.tempOpenFile?.key == "loading"
? makeLoading(context)
: Padding(
padding: const EdgeInsets.all(12),
child: Column(
children: [
if (state.tempOpenFile?.key == "text")
Expanded(
child: _TextTempWidget(
state.tempOpenFile?.value ?? ""))
else
Expanded(
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Text(S.current
.tools_unp4k_msg_unknown_file_type(
state.tempOpenFile
?.value ??
"")),
const SizedBox(height: 32),
FilledButton(
child: Padding(
padding:
const EdgeInsets.all(4),
child: Text(S.current
.action_open_folder),
),
onPressed: () {
SystemHelper.openDir(state
.tempOpenFile
?.value ??
"");
})
],
),
),
)
],
),
),
))
],
));
)),
if (state.endMessage != null)
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"${state.endMessage}",
style: const TextStyle(fontSize: 12),
),
),
],
);
}
}
@ -267,6 +278,7 @@ class _TextTempWidget extends HookConsumerWidget {
return CodeEditor(
controller: CodeLineEditingController.fromText('${textData.value}'),
readOnly: true,
);
}
}

View File

@ -143,7 +143,7 @@ class AutoL10nTools {
if (key == "@@locale") continue;
final mapValue = jsonMap[key].toString();
if (mapValue.contains("{") && mapValue.contains("}")) {
print("skipping args value === $mapValue");
// print("skipping args value === $mapValue");
continue;
}
// 使 CheckContainsVisitor.visitStringLiteral , true false

View File

@ -62,6 +62,7 @@ dependencies:
super_sliver_list: ^0.4.1
file: ^7.0.0
re_editor: ^0.2.0
re_highlight: ^0.0.3
dependency_overrides:
http: ^1.1.2