From b1353a2b97331f60f9aaa9991a70741e227c9e91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=B3pez=20Tutoriales?= <5817696+LopezTutoriales@users.noreply.github.com> Date: Sun, 16 Jul 2023 17:12:16 +0200 Subject: [PATCH] =?UTF-8?q?Traducci=C3=B3n=20a=20Espa=C3=B1ol?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Traducción a Español --- bdk/ianos/elfload/elfload.c | 6 +- bdk/ianos/elfload/elfreloc_aarch64.c | 12 +- bdk/libs/compr/lz4.c | 14 +- bdk/libs/compr/lz4.h | 28 +- bdk/libs/lvgl/lv_core/lv_group.c | 2 +- bdk/libs/lvgl/lv_core/lv_indev.c | 4 +- bdk/libs/lvgl/lv_core/lv_lang.c | 4 +- bdk/libs/lvgl/lv_core/lv_obj.c | 20 +- bdk/libs/lvgl/lv_core/lv_refr.c | 14 +- bdk/libs/lvgl/lv_core/lv_vdb.c | 2 +- bdk/libs/lvgl/lv_draw/lv_draw_img.c | 6 +- bootloader/frontend/fe_info.c | 168 +++--- bootloader/frontend/fe_tools.c | 24 +- bootloader/gfx/tui.c | 6 +- bootloader/gfx/tui.h | 2 +- bootloader/hos/fss.c | 6 +- bootloader/hos/hos.c | 86 +-- bootloader/hos/hos.h | 2 +- bootloader/hos/hos_config.c | 26 +- bootloader/hos/pkg1.c | 6 +- bootloader/hos/pkg2.c | 32 +- bootloader/hos/secmon_exo.c | 10 +- bootloader/l4t/l4t.c | 46 +- bootloader/main.c | 112 ++-- bootloader/storage/emummc.c | 8 +- modules/hekate_libsys_minerva/README.md | 4 +- modules/hekate_libsys_minerva/sys_sdrammtc.c | 78 +-- modules/simple_sample/module_sample.c | 2 +- nyx/nyx_gui/frontend/fe_emmc_tools.c | 214 +++---- nyx/nyx_gui/frontend/fe_emummc_tools.c | 106 ++-- nyx/nyx_gui/frontend/gui.c | 147 ++--- nyx/nyx_gui/frontend/gui_emmc_tools.c | 64 +-- nyx/nyx_gui/frontend/gui_emummc_tools.c | 126 ++--- nyx/nyx_gui/frontend/gui_info.c | 524 +++++++++--------- nyx/nyx_gui/frontend/gui_options.c | 223 ++++---- nyx/nyx_gui/frontend/gui_tools.c | 252 ++++----- .../frontend/gui_tools_partition_manager.c | 236 ++++---- nyx/nyx_gui/hos/hos.c | 10 +- nyx/nyx_gui/hos/hos.h | 2 +- nyx/nyx_gui/hos/pkg2.c | 2 +- nyx/nyx_gui/nyx.c | 14 +- res/bootlogo/bootlogo2.bmp | Bin 0 -> 52280 bytes res/patches_template.ini | 56 +- tools/bin2c/bin2c.c | 6 +- tools/lz/lz77.c | 2 +- tools/smmu_payload.py | 2 +- 46 files changed, 1360 insertions(+), 1356 deletions(-) create mode 100644 res/bootlogo/bootlogo2.bmp diff --git a/bdk/ianos/elfload/elfload.c b/bdk/ianos/elfload/elfload.c index daf561a4..152b6b94 100644 --- a/bdk/ianos/elfload/elfload.c +++ b/bdk/ianos/elfload/elfload.c @@ -197,7 +197,7 @@ el_status el_load(el_ctx *ctx, el_alloc_cb alloc) if (!dest) return EL_ENOMEM; - EL_DEBUG("Loading seg fileoff %x, vaddr %x to %p\n", + EL_DEBUG("Cargando seg fileoff %x, vaddr %x a %p\n", ph.p_offset, ph.p_vaddr, dest); /* read loaded portion */ @@ -282,7 +282,7 @@ el_status el_relocate(el_ctx *ctx) if (ri.entrysize != sizeof(Elf_Rel) && ri.tablesize) { - EL_DEBUG("Relocation size %u doesn't match expected %u\n", + EL_DEBUG("Tam. de reubicacion %u no coincide %u\n", ri.entrysize, sizeof(Elf_Rel)); return EL_BADREL; } @@ -302,7 +302,7 @@ el_status el_relocate(el_ctx *ctx) if (ri.entrysize != sizeof(Elf_RelA) && ri.tablesize) { - EL_DEBUG("Relocation size %u doesn't match expected %u\n", + EL_DEBUG("Tam. de reubicacion %u no coincide %u\n", ri.entrysize, sizeof(Elf_RelA)); return EL_BADREL; } diff --git a/bdk/ianos/elfload/elfreloc_aarch64.c b/bdk/ianos/elfload/elfreloc_aarch64.c index 736ad467..9dae74e8 100644 --- a/bdk/ianos/elfload/elfreloc_aarch64.c +++ b/bdk/ianos/elfload/elfreloc_aarch64.c @@ -35,16 +35,16 @@ el_status el_applyrela(el_ctx *ctx, Elf_RelA *rel) case R_AARCH64_RELATIVE: if (sym) { - EL_DEBUG("R_AARCH64_RELATIVE with symbol ref!\n"); + EL_DEBUG("R_AARCH64_RELATIVE con simbolo ref!\n"); return EL_BADREL; } - EL_DEBUG("Applying R_AARCH64_RELATIVE reloc @%p\n", p); + EL_DEBUG("Aplicando R_AARCH64_RELATIVE reloc @%p\n", p); *p = rel->r_addend + ctx->base_load_vaddr; break; default: - EL_DEBUG("Bad relocation %u\n", type); + EL_DEBUG("Mala reubicacion %u\n", type); return EL_BADREL; } @@ -65,16 +65,16 @@ el_status el_applyrel(el_ctx *ctx, Elf_Rel *rel) case R_AARCH64_RELATIVE: if (sym) { - EL_DEBUG("R_AARCH64_RELATIVE with symbol ref!\n"); + EL_DEBUG("R_AARCH64_RELATIVE con simbolo ref!\n"); return EL_BADREL; } - EL_DEBUG("Applying R_AARCH64_RELATIVE reloc @%p\n", p); + EL_DEBUG("Aplicando R_AARCH64_RELATIVE reloc @%p\n", p); *p += ctx->base_load_vaddr; break; default: - EL_DEBUG("Bad relocation %u\n", type); + EL_DEBUG("Mala reubicacion %u\n", type); return EL_BADREL; } diff --git a/bdk/libs/compr/lz4.c b/bdk/libs/compr/lz4.c index 4f6f4253..4939f0ae 100644 --- a/bdk/libs/compr/lz4.c +++ b/bdk/libs/compr/lz4.c @@ -433,12 +433,12 @@ LZ4_FORCE_INLINE void LZ4_prepareTable( || tableType == byPtr || inputSize >= 4 KB) { - DEBUGLOG(4, "LZ4_prepareTable: Resetting table in %p", cctx); + DEBUGLOG(4, "LZ4_prepareTable: Reseteando tabla en %p", cctx); MEM_INIT(cctx->hashTable, 0, LZ4_HASHTABLESIZE); cctx->currentOffset = 0; cctx->tableType = clearedTable; } else { - DEBUGLOG(4, "LZ4_prepareTable: Re-use hash table (no reset)"); + DEBUGLOG(4, "LZ4_prepareTable: Re-usar hash de tabla (no reset)"); } } @@ -447,7 +447,7 @@ LZ4_FORCE_INLINE void LZ4_prepareTable( * currentOffset == 0 is faster still, so we preserve that case. */ if (cctx->currentOffset != 0 && tableType == byU32) { - DEBUGLOG(5, "LZ4_prepareTable: adding 64KB to currentOffset"); + DEBUGLOG(5, "LZ4_prepareTable: Sumando 64KB al Offset actual"); cctx->currentOffset += 64 KB; } @@ -583,7 +583,7 @@ LZ4_FORCE_INLINE int LZ4_compress_generic( } } else if (dictDirective==usingExtDict) { if (matchIndex < startIndex) { - DEBUGLOG(7, "extDict candidate: matchIndex=%5u < startIndex=%5u", matchIndex, startIndex); + DEBUGLOG(7, "extDict candidato: matchIndex=%5u < startIndex=%5u", matchIndex, startIndex); match = dictBase + matchIndex; lowLimit = dictionary; } else { @@ -660,11 +660,11 @@ LZ4_FORCE_INLINE int LZ4_compress_generic( matchCode += more; ip += more; } - DEBUGLOG(6, " with matchLength=%u starting in extDict", matchCode+MINMATCH); + DEBUGLOG(6, " con matchLength=%u empezando en extDict", matchCode+MINMATCH); } else { matchCode = LZ4_count(ip+MINMATCH, match+MINMATCH, matchlimit); ip += MINMATCH + matchCode; - DEBUGLOG(6, " with matchLength=%u", matchCode+MINMATCH); + DEBUGLOG(6, " con matchLength=%u", matchCode+MINMATCH); } if ( outputLimited && /* Check output buffer overflow */ @@ -1106,7 +1106,7 @@ int LZ4_loadDict (LZ4_stream_t* LZ4_dict, const char* dictionary, int dictSize) const BYTE* const dictEnd = p + dictSize; const BYTE* base; - DEBUGLOG(4, "LZ4_loadDict (%i bytes from %p into %p)", dictSize, dictionary, LZ4_dict); + DEBUGLOG(4, "LZ4_loadDict (%i bytes desde %p a %p)", dictSize, dictionary, LZ4_dict); LZ4_prepareTable(dict, 0, tableType); diff --git a/bdk/libs/compr/lz4.h b/bdk/libs/compr/lz4.h index 0dfa19e0..8b8fc765 100644 --- a/bdk/libs/compr/lz4.h +++ b/bdk/libs/compr/lz4.h @@ -532,16 +532,16 @@ union LZ4_streamDecode_u { #endif /* LZ4_DISABLE_DEPRECATE_WARNINGS */ /* Obsolete compression functions */ -LZ4_DEPRECATED("use LZ4_compress_default() instead") LZ4LIB_API int LZ4_compress (const char* source, char* dest, int sourceSize); -LZ4_DEPRECATED("use LZ4_compress_default() instead") LZ4LIB_API int LZ4_compress_limitedOutput (const char* source, char* dest, int sourceSize, int maxOutputSize); -LZ4_DEPRECATED("use LZ4_compress_fast_extState() instead") LZ4LIB_API int LZ4_compress_withState (void* state, const char* source, char* dest, int inputSize); -LZ4_DEPRECATED("use LZ4_compress_fast_extState() instead") LZ4LIB_API int LZ4_compress_limitedOutput_withState (void* state, const char* source, char* dest, int inputSize, int maxOutputSize); -LZ4_DEPRECATED("use LZ4_compress_fast_continue() instead") LZ4LIB_API int LZ4_compress_continue (LZ4_stream_t* LZ4_streamPtr, const char* source, char* dest, int inputSize); -LZ4_DEPRECATED("use LZ4_compress_fast_continue() instead") LZ4LIB_API int LZ4_compress_limitedOutput_continue (LZ4_stream_t* LZ4_streamPtr, const char* source, char* dest, int inputSize, int maxOutputSize); +LZ4_DEPRECATED("usa LZ4_compress_default() en su lugar") LZ4LIB_API int LZ4_compress (const char* source, char* dest, int sourceSize); +LZ4_DEPRECATED("usa LZ4_compress_default() en su lugar") LZ4LIB_API int LZ4_compress_limitedOutput (const char* source, char* dest, int sourceSize, int maxOutputSize); +LZ4_DEPRECATED("usa LZ4_compress_fast_extState() en su lugar") LZ4LIB_API int LZ4_compress_withState (void* state, const char* source, char* dest, int inputSize); +LZ4_DEPRECATED("usa LZ4_compress_fast_extState() en su lugar") LZ4LIB_API int LZ4_compress_limitedOutput_withState (void* state, const char* source, char* dest, int inputSize, int maxOutputSize); +LZ4_DEPRECATED("usa LZ4_compress_fast_continue() en su lugar") LZ4LIB_API int LZ4_compress_continue (LZ4_stream_t* LZ4_streamPtr, const char* source, char* dest, int inputSize); +LZ4_DEPRECATED("usa LZ4_compress_fast_continue() en su lugar") LZ4LIB_API int LZ4_compress_limitedOutput_continue (LZ4_stream_t* LZ4_streamPtr, const char* source, char* dest, int inputSize, int maxOutputSize); /* Obsolete decompression functions */ -LZ4_DEPRECATED("use LZ4_decompress_fast() instead") LZ4LIB_API int LZ4_uncompress (const char* source, char* dest, int outputSize); -LZ4_DEPRECATED("use LZ4_decompress_safe() instead") LZ4LIB_API int LZ4_uncompress_unknownOutputSize (const char* source, char* dest, int isize, int maxOutputSize); +LZ4_DEPRECATED("usa LZ4_decompress_fast() en su lugar") LZ4LIB_API int LZ4_uncompress (const char* source, char* dest, int outputSize); +LZ4_DEPRECATED("usa LZ4_decompress_safe() en su lugar") LZ4LIB_API int LZ4_uncompress_unknownOutputSize (const char* source, char* dest, int isize, int maxOutputSize); /* Obsolete streaming functions; degraded functionality; do not use! * @@ -552,14 +552,14 @@ LZ4_DEPRECATED("use LZ4_decompress_safe() instead") LZ4LIB_API int LZ4_uncompres * achieved will therefore be no better than compressing each chunk * independently. */ -LZ4_DEPRECATED("Use LZ4_createStream() instead") LZ4LIB_API void* LZ4_create (char* inputBuffer); -LZ4_DEPRECATED("Use LZ4_createStream() instead") LZ4LIB_API int LZ4_sizeofStreamState(void); -LZ4_DEPRECATED("Use LZ4_resetStream() instead") LZ4LIB_API int LZ4_resetStreamState(void* state, char* inputBuffer); -LZ4_DEPRECATED("Use LZ4_saveDict() instead") LZ4LIB_API char* LZ4_slideInputBuffer (void* state); +LZ4_DEPRECATED("Usa LZ4_createStream() en su lugar") LZ4LIB_API void* LZ4_create (char* inputBuffer); +LZ4_DEPRECATED("Usa LZ4_createStream() en su lugar") LZ4LIB_API int LZ4_sizeofStreamState(void); +LZ4_DEPRECATED("Usa LZ4_resetStream() en su lugar") LZ4LIB_API int LZ4_resetStreamState(void* state, char* inputBuffer); +LZ4_DEPRECATED("Usa LZ4_saveDict() en su lugar") LZ4LIB_API char* LZ4_slideInputBuffer (void* state); /* Obsolete streaming decoding functions */ -LZ4_DEPRECATED("use LZ4_decompress_safe_usingDict() instead") LZ4LIB_API int LZ4_decompress_safe_withPrefix64k (const char* src, char* dst, int compressedSize, int maxDstSize); -LZ4_DEPRECATED("use LZ4_decompress_fast_usingDict() instead") LZ4LIB_API int LZ4_decompress_fast_withPrefix64k (const char* src, char* dst, int originalSize); +LZ4_DEPRECATED("usa LZ4_decompress_safe_usingDict() en su lugar") LZ4LIB_API int LZ4_decompress_safe_withPrefix64k (const char* src, char* dst, int compressedSize, int maxDstSize); +LZ4_DEPRECATED("usa LZ4_decompress_fast_usingDict() en su lugar") LZ4LIB_API int LZ4_decompress_fast_withPrefix64k (const char* src, char* dst, int originalSize); #endif /* LZ4_H_2983827168210 */ diff --git a/bdk/libs/lvgl/lv_core/lv_group.c b/bdk/libs/lvgl/lv_core/lv_group.c index cedef7f2..7d9e29bc 100644 --- a/bdk/libs/lvgl/lv_core/lv_group.c +++ b/bdk/libs/lvgl/lv_core/lv_group.c @@ -96,7 +96,7 @@ void lv_group_add_obj(lv_group_t * group, lv_obj_t * obj) if(lv_obj_is_focused(obj)) { lv_group_refocus(obj->group_p); - LV_LOG_INFO("group: assign object to an other group"); + LV_LOG_INFO("grupo: asigna obj. a otro grupo"); } } diff --git a/bdk/libs/lvgl/lv_core/lv_indev.c b/bdk/libs/lvgl/lv_core/lv_indev.c index d1dc5820..db47040b 100644 --- a/bdk/libs/lvgl/lv_core/lv_indev.c +++ b/bdk/libs/lvgl/lv_core/lv_indev.c @@ -299,7 +299,7 @@ static void indev_proc_task(void * param) (void)param; - LV_LOG_TRACE("indev task started"); + LV_LOG_TRACE("Tarea indev iniciada"); lv_indev_data_t data; lv_indev_t * i; @@ -342,7 +342,7 @@ static void indev_proc_task(void * param) indev_act = NULL; /*End of indev processing, so no act indev*/ - LV_LOG_TRACE("indev task finished"); + LV_LOG_TRACE("Tarea indev finalizada"); } diff --git a/bdk/libs/lvgl/lv_core/lv_lang.c b/bdk/libs/lvgl/lv_core/lv_lang.c index c96ed788..2672b472 100644 --- a/bdk/libs/lvgl/lv_core/lv_lang.c +++ b/bdk/libs/lvgl/lv_core/lv_lang.c @@ -74,11 +74,11 @@ void lv_lang_set_text_func(const void * (*fp)(uint16_t)) const void * lv_lang_get_text(uint16_t txt_id) { if(get_txt == NULL) { - LV_LOG_WARN("lv_lang_get_text: text_func is not specified"); + LV_LOG_WARN("lv_lang_get_text: text_func no especificada"); return NULL; /*No text_get function specified */ } if(txt_id == LV_LANG_TXT_ID_NONE) { - LV_LOG_WARN("lv_lang_get_text: attempts to get invalid text ID"); + LV_LOG_WARN("lv_lang_get_text: intento de objener ID de texto inval."); return NULL; /*Invalid txt_id*/ } diff --git a/bdk/libs/lvgl/lv_core/lv_obj.c b/bdk/libs/lvgl/lv_core/lv_obj.c index 95c41a89..e138f39f 100644 --- a/bdk/libs/lvgl/lv_core/lv_obj.c +++ b/bdk/libs/lvgl/lv_core/lv_obj.c @@ -75,7 +75,7 @@ void lv_init(void) LV_GC_ROOT(_lv_disp_list) = NULL; LV_GC_ROOT(_lv_indev_list) = NULL; - LV_LOG_TRACE("lv_init started"); + LV_LOG_TRACE("lv_init iniciado"); /*Initialize the lv_misc modules*/ lv_mem_init(); @@ -118,7 +118,7 @@ void lv_init(void) #endif _lv_initialized = true; - LV_LOG_INFO("lv_init ready"); + LV_LOG_INFO("lv_init listo"); } /*-------------------- @@ -138,7 +138,7 @@ lv_obj_t * lv_obj_create(lv_obj_t * parent, const lv_obj_t * copy) lv_obj_t * new_obj = NULL; /*Create a screen if the parent is NULL*/ if(parent == NULL) { - LV_LOG_TRACE("Screen create started"); + LV_LOG_TRACE("Crear ventana iniciado"); new_obj = lv_ll_ins_head(&LV_GC_ROOT(_lv_scr_ll)); lv_mem_assert(new_obj); @@ -199,11 +199,11 @@ lv_obj_t * lv_obj_create(lv_obj_t * parent, const lv_obj_t * copy) new_obj->ext_attr = NULL; - LV_LOG_INFO("Screen create ready"); + LV_LOG_INFO("Crear ventana listo"); } /*parent != NULL create normal obj. on a parent*/ else { - LV_LOG_TRACE("Object create started"); + LV_LOG_TRACE("Crear objeto iniciado"); new_obj = lv_ll_ins_head(&(parent)->child_ll); lv_mem_assert(new_obj); @@ -316,7 +316,7 @@ lv_obj_t * lv_obj_create(lv_obj_t * parent, const lv_obj_t * copy) lv_obj_set_pos(new_obj, 0, 0); } - LV_LOG_INFO("Object create ready"); + LV_LOG_INFO("Crear objeto listo"); } @@ -486,12 +486,12 @@ void lv_scr_load(lv_obj_t * scr) void lv_obj_set_parent(lv_obj_t * obj, lv_obj_t * parent) { if(obj->par == NULL) { - LV_LOG_WARN("Can't set the parent of a screen"); + LV_LOG_WARN("Imposible establecer pantalla padre"); return; } if(parent == NULL) { - LV_LOG_WARN("Can't set parent == NULL to an object"); + LV_LOG_WARN("Imposible establecer padre == NULL a un objeto"); return; } @@ -958,7 +958,7 @@ void lv_obj_realign(lv_obj_t * obj) else lv_obj_align(obj, obj->realign.base, obj->realign.align, obj->realign.xofs, obj->realign.yofs); #else (void) obj; - LV_LOG_WARN("lv_obj_realaign: no effect because LV_OBJ_REALIGN = 0"); + LV_LOG_WARN("lv_obj_realaign: no afecta porque LV_OBJ_REALIGN = 0"); #endif } @@ -974,7 +974,7 @@ void lv_obj_set_auto_realign(lv_obj_t * obj, bool en) #else (void) obj; (void) en; - LV_LOG_WARN("lv_obj_set_auto_realign: no effect because LV_OBJ_REALIGN = 0"); + LV_LOG_WARN("lv_obj_set_auto_realign: no afecta porque LV_OBJ_REALIGN = 0"); #endif } diff --git a/bdk/libs/lvgl/lv_core/lv_refr.c b/bdk/libs/lvgl/lv_core/lv_refr.c index 1087304d..894cc300 100644 --- a/bdk/libs/lvgl/lv_core/lv_refr.c +++ b/bdk/libs/lvgl/lv_core/lv_refr.c @@ -184,12 +184,12 @@ static void lv_refr_task(void * param) { (void)param; - LV_LOG_TRACE("display refresh task started"); + LV_LOG_TRACE("refresco de pantalla iniciado"); uint32_t start = lv_tick_get(); if(lv_disp_get_active() == NULL) { - LV_LOG_TRACE("No display is registered"); + LV_LOG_TRACE("No hay pantalla registrada"); return; } @@ -246,7 +246,7 @@ static void lv_refr_task(void * param) } } - LV_LOG_TRACE("display refresh task finished"); + LV_LOG_TRACE("refresco de pantalla finalizado"); } @@ -373,7 +373,7 @@ static void lv_refr_area_with_vdb(const lv_area_t * area_p) } while(y_tmp != 0); if(y_tmp == 0) { - LV_LOG_WARN("Can't set VDB height using the round function. (Wrong round_cb or to small VDB)"); + LV_LOG_WARN("Imposible poner altura de VDB usando la funcion round. (round_cb equivocado o VDB chico)"); return; } else { max_row = tmp.y2 + 1; @@ -386,7 +386,7 @@ static void lv_refr_area_with_vdb(const lv_area_t * area_p) for(row = area_p->y1; row + max_row - 1 <= y2; row += max_row) { lv_vdb_t * vdb_p = lv_vdb_get(); if(!vdb_p) { - LV_LOG_WARN("Invalid VDB pointer"); + LV_LOG_WARN("Puntero VDB no valido"); return; } @@ -404,7 +404,7 @@ static void lv_refr_area_with_vdb(const lv_area_t * area_p) if(y2 != row_last) { lv_vdb_t * vdb_p = lv_vdb_get(); if(!vdb_p) { - LV_LOG_WARN("Invalid VDB pointer"); + LV_LOG_WARN("Puntero VDB no valido"); return; } @@ -435,7 +435,7 @@ static void lv_refr_area_part_vdb(const lv_area_t * area_p) { lv_vdb_t * vdb_p = lv_vdb_get(); if(!vdb_p) { - LV_LOG_WARN("Invalid VDB pointer"); + LV_LOG_WARN("Puntero VDB no valido"); return; } lv_obj_t * top_p; diff --git a/bdk/libs/lvgl/lv_core/lv_vdb.c b/bdk/libs/lvgl/lv_core/lv_vdb.c index 38aae34f..fec5f265 100644 --- a/bdk/libs/lvgl/lv_core/lv_vdb.c +++ b/bdk/libs/lvgl/lv_core/lv_vdb.c @@ -97,7 +97,7 @@ void lv_vdb_flush(void) { lv_vdb_t * vdb_act = lv_vdb_get(); if(!vdb_act) { - LV_LOG_WARN("Invalid VDB pointer"); + LV_LOG_WARN("Puntero VDB no valido"); return; } diff --git a/bdk/libs/lvgl/lv_draw/lv_draw_img.c b/bdk/libs/lvgl/lv_draw/lv_draw_img.c index 5c24aa89..f47cecb0 100644 --- a/bdk/libs/lvgl/lv_draw/lv_draw_img.c +++ b/bdk/libs/lvgl/lv_draw/lv_draw_img.c @@ -69,7 +69,7 @@ void lv_draw_img(const lv_area_t * coords, const lv_area_t * mask, const void * src, const lv_style_t * style, lv_opa_t opa_scale) { if(src == NULL) { - LV_LOG_WARN("Image draw: src is NULL"); + LV_LOG_WARN("Image draw: src es NULO"); lv_draw_rect(coords, mask, &lv_style_plain, LV_OPA_COVER); lv_draw_label(coords, mask, &lv_style_plain, LV_OPA_COVER, "No\ndata", LV_TXT_FLAG_NONE, NULL); return; @@ -79,7 +79,7 @@ void lv_draw_img(const lv_area_t * coords, const lv_area_t * mask, res = lv_img_draw_core(coords, mask, src, style, opa_scale); if(res == LV_RES_INV) { - LV_LOG_WARN("Image draw error"); + LV_LOG_WARN("Image draw: error"); lv_draw_rect(coords, mask, &lv_style_plain, LV_OPA_COVER); lv_draw_label(coords, mask, &lv_style_plain, LV_OPA_COVER, "No\ndata", LV_TXT_FLAG_NONE, NULL); return; @@ -253,7 +253,7 @@ lv_img_src_t lv_img_src_get_type(const void * src) } if (LV_IMG_SRC_UNKNOWN == img_src_type) { - LV_LOG_WARN("lv_img_src_get_type: unknown image type"); + LV_LOG_WARN("lv_img_src_get_type: tipo de imagen desconocido"); } return img_src_type; diff --git a/bootloader/frontend/fe_info.c b/bootloader/frontend/fe_info.c index 2253ecae..1184a51d 100644 --- a/bootloader/frontend/fe_info.c +++ b/bootloader/frontend/fe_info.c @@ -49,13 +49,13 @@ void print_fuseinfo() gfx_printf("Dev\n"); break; } - gfx_printf("Sdram ID: %d\n", fuse_read_dramid(true)); - gfx_printf("Burnt fuses: %d / 64\n", bit_count(fuse_read_odm(7))); - gfx_printf("Secure key: %08X%08X%08X%08X\n\n\n", + gfx_printf("Marca Sdram: %d\n", fuse_read_dramid(true)); + gfx_printf("F. quemados: %d / 64\n", bit_count(fuse_read_odm(7))); + gfx_printf("Clave segura:%08X%08X%08X%08X\n\n\n", byte_swap_32(FUSE(FUSE_PRIVATE_KEY0)), byte_swap_32(FUSE(FUSE_PRIVATE_KEY1)), byte_swap_32(FUSE(FUSE_PRIVATE_KEY2)), byte_swap_32(FUSE(FUSE_PRIVATE_KEY3))); - gfx_printf("%kFuse cache:\n\n%k", TXT_CLR_CYAN_L, TXT_CLR_DEFAULT); + gfx_printf("%kCache Fusible:\n\n%k", TXT_CLR_CYAN_L, TXT_CLR_DEFAULT); gfx_hexdump(fuse_address, (u8 *)fuse_address, fuse_size); btn_wait(); @@ -70,7 +70,7 @@ void print_mmc_info() if (!emmc_initialize(false)) { - EPRINTF("Failed to init eMMC."); + EPRINTF("Error al iniciar eMMC."); goto out; } else @@ -85,12 +85,12 @@ void print_mmc_info() case 3: /* MMC v3.1 - v3.3 */ case 4: /* MMC v4 */ gfx_printf( - " Vendor ID: %X\n" - " OEM ID: %02X\n" + " Marca: %X\n" + " ID de OEM: %02X\n" " Model: %c%c%c%c%c%c\n" - " Prd Rev: %X\n" + " Rev Prod: %X\n" " S/N: %04X\n" - " Month/Year: %02d/%04d\n\n", + " Mes/Anio: %02d/%04d\n\n", emmc_storage.cid.manfid, emmc_storage.cid.oemid, emmc_storage.cid.prod_name[0], emmc_storage.cid.prod_name[1], emmc_storage.cid.prod_name[2], emmc_storage.cid.prod_name[3], emmc_storage.cid.prod_name[4], emmc_storage.cid.prod_name[5], @@ -101,10 +101,10 @@ void print_mmc_info() } if (emmc_storage.csd.structure == 0) - EPRINTF("Unknown CSD structure."); + EPRINTF("Estructura CSD desconocida."); else { - gfx_printf("%kExtended CSD V1.%d:%k\n", + gfx_printf("%kCSD Extendida V1.%d:%k\n", TXT_CLR_CYAN_L, emmc_storage.ext_csd.ext_struct, TXT_CLR_DEFAULT); card_type = emmc_storage.ext_csd.card_type; char card_type_support[96]; @@ -136,16 +136,16 @@ void print_mmc_info() } gfx_printf( - " Spec Version: %02X\n" - " Extended Rev: 1.%d\n" - " Dev Version: %d\n" - " Cmd Classes: %02X\n" - " Capacity: %s\n" - " Max Rate: %d MB/s (%d MHz)\n" - " Current Rate: %d MB/s\n" - " Type Support: ", + " Version Esp.: %02X\n" + " Rev Extendida: 1.%d\n" + " Version Dev: %d\n" + " Clases de Cmd: %02X\n" + " Capacidad: %s\n" + " Tasa Maxima: %d MB/s (%d MHz)\n" + " Tasa actual: %d MB/s\n" + " Tipo soporte: ", emmc_storage.csd.mmca_vsn, emmc_storage.ext_csd.rev, emmc_storage.ext_csd.dev_version, emmc_storage.csd.cmdclass, - emmc_storage.csd.capacity == (4096 * 512) ? "High" : "Low", speed & 0xFFFF, (speed >> 16) & 0xFFFF, + emmc_storage.csd.capacity == (4096 * 512) ? "Alta" : "Baja", speed & 0xFFFF, (speed >> 16) & 0xFFFF, emmc_storage.csd.busspeed); gfx_con.fntsz = 8; gfx_printf("%s", card_type_support); @@ -154,20 +154,20 @@ void print_mmc_info() u32 boot_size = emmc_storage.ext_csd.boot_mult << 17; u32 rpmb_size = emmc_storage.ext_csd.rpmb_mult << 17; - gfx_printf("%keMMC Partitions:%k\n", TXT_CLR_CYAN_L, TXT_CLR_DEFAULT); - gfx_printf(" 1: %kBOOT0 %k\n Size: %5d KiB (LBA Sectors: 0x%07X)\n", TXT_CLR_GREENISH, TXT_CLR_DEFAULT, + gfx_printf("%kParticiones de eMMC:%k\n", TXT_CLR_CYAN_L, TXT_CLR_DEFAULT); + gfx_printf(" 1: %kBOOT0 %k\n Tam: %5d KiB (Sectores LBA: 0x%07X)\n", TXT_CLR_GREENISH, TXT_CLR_DEFAULT, boot_size / 1024, boot_size / 512); gfx_put_small_sep(); - gfx_printf(" 2: %kBOOT1 %k\n Size: %5d KiB (LBA Sectors: 0x%07X)\n", TXT_CLR_GREENISH, TXT_CLR_DEFAULT, + gfx_printf(" 2: %kBOOT1 %k\n Tam: %5d KiB (Sectores LBA: 0x%07X)\n", TXT_CLR_GREENISH, TXT_CLR_DEFAULT, boot_size / 1024, boot_size / 512); gfx_put_small_sep(); - gfx_printf(" 3: %kRPMB %k\n Size: %5d KiB (LBA Sectors: 0x%07X)\n", TXT_CLR_GREENISH, TXT_CLR_DEFAULT, + gfx_printf(" 3: %kRPMB %k\n Tam: %5d KiB (Sectores LBA: 0x%07X)\n", TXT_CLR_GREENISH, TXT_CLR_DEFAULT, rpmb_size / 1024, rpmb_size / 512); gfx_put_small_sep(); - gfx_printf(" 0: %kGPP (USER) %k\n Size: %5d MiB (LBA Sectors: 0x%07X)\n\n", TXT_CLR_GREENISH, TXT_CLR_DEFAULT, + gfx_printf(" 0: %kGPP (USER) %k\n Tam: %5d MiB (Sectores LBA: 0x%07X)\n\n", TXT_CLR_GREENISH, TXT_CLR_DEFAULT, emmc_storage.sec_cnt >> SECTORS_TO_MIB_COEFF, emmc_storage.sec_cnt); gfx_put_small_sep(); - gfx_printf("%kGPP (eMMC USER) partition table:%k\n", TXT_CLR_CYAN_L, TXT_CLR_DEFAULT); + gfx_printf("%kGPP (eMMC USER) Tabla de particion:%k\n", TXT_CLR_CYAN_L, TXT_CLR_DEFAULT); emmc_set_partition(EMMC_GPP); LIST_INIT(gpt); @@ -175,7 +175,7 @@ void print_mmc_info() int gpp_idx = 0; LIST_FOREACH_ENTRY(emmc_part_t, part, &gpt, link) { - gfx_printf(" %02d: %k%s%k\n Size: % 5d MiB (LBA Sectors 0x%07X)\n LBA Range: %08X-%08X\n", + gfx_printf(" %02d: %k%s%k\n Tam: % 5d MiB (Sectores LBA 0x%07X)\n Rango LBA: %08X-%08X\n", gpp_idx++, TXT_CLR_GREENISH, part->name, TXT_CLR_DEFAULT, (part->lba_end - part->lba_start + 1) >> SECTORS_TO_MIB_COEFF, part->lba_end - part->lba_start + 1, part->lba_start, part->lba_end); gfx_put_small_sep(); @@ -199,15 +199,15 @@ void print_sdcard_info() if (sd_initialize(false)) { - gfx_printf("%kCard IDentification:%k\n", TXT_CLR_CYAN_L, TXT_CLR_DEFAULT); + gfx_printf("%kIDentificacion de SD:%k\n", TXT_CLR_CYAN_L, TXT_CLR_DEFAULT); gfx_printf( - " Vendor ID: %02x\n" - " OEM ID: %c%c\n" - " Model: %c%c%c%c%c\n" - " HW rev: %X\n" - " FW rev: %X\n" + " Marca: %02x\n" + " ID de OEM: %c%c\n" + " Modelo: %c%c%c%c%c\n" + " Rev de HW: %X\n" + " Rev de FW: %X\n" " S/N: %08x\n" - " Month/Year: %02d/%04d\n\n", + " Mes/Anio: %02d/%04d\n\n", sd_storage.cid.manfid, (sd_storage.cid.oemid >> 8) & 0xFF, sd_storage.cid.oemid & 0xFF, sd_storage.cid.prod_name[0], sd_storage.cid.prod_name[1], sd_storage.cid.prod_name[2], sd_storage.cid.prod_name[3], sd_storage.cid.prod_name[4], @@ -215,18 +215,18 @@ void print_sdcard_info() sd_storage.cid.month, sd_storage.cid.year); u16 *sd_errors = sd_get_error_count(); - gfx_printf("%kCard-Specific Data V%d.0:%k\n", TXT_CLR_CYAN_L, sd_storage.csd.structure + 1, TXT_CLR_DEFAULT); + gfx_printf("%kDatos Especificos SD V%d.0:%k\n", TXT_CLR_CYAN_L, sd_storage.csd.structure + 1, TXT_CLR_DEFAULT); gfx_printf( - " Cmd Classes: %02X\n" - " Capacity: %d MiB\n" - " Bus Width: %d\n" - " Current Rate: %d MB/s (%d MHz)\n" - " Speed Class: %d\n" - " UHS Grade: U%d\n" - " Video Class: V%d\n" - " App perf class: A%d\n" - " Write Protect: %d\n" - " SDMMC Errors: %d %d %d\n\n", + " Clases de Cmd: %02X\n" + " Capacidad: %d MiB\n" + " Ancho de Bus: %d\n" + " Tasa Actual: %d MB/s (%d MHz)\n" + " Clase: %d\n" + " Grado UHS: U%d\n" + " Clase de Video: V%d\n" + " Rendim. en App: A%d\n" + " Prot. cont. Esc:%d\n" + " Errores SDMMC: %d %d %d\n\n", sd_storage.csd.cmdclass, sd_storage.sec_cnt >> 11, sd_storage.ssr.bus_width, sd_storage.csd.busspeed, sd_storage.csd.busspeed * 2, sd_storage.ssr.speed_class, sd_storage.ssr.uhs_grade, sd_storage.ssr.video_class, @@ -236,28 +236,28 @@ void print_sdcard_info() int res = f_mount(&sd_fs, "", 1); if (!res) { - gfx_puts("Acquiring FAT volume info...\n\n"); + gfx_puts("Obteniendo info de volumen FAT...\n\n"); f_getfree("", &sd_fs.free_clst, NULL); - gfx_printf("%kFound %s volume:%k\n Free: %d MiB\n Cluster: %d KiB\n", + gfx_printf("%kEncontrado %s volumen:%k\n Libre: %d MiB\n Cluster: %d KiB\n", TXT_CLR_CYAN_L, sd_fs.fs_type == FS_EXFAT ? "exFAT" : "FAT32", TXT_CLR_DEFAULT, sd_fs.free_clst * sd_fs.csize >> SECTORS_TO_MIB_COEFF, (sd_fs.csize > 1) ? (sd_fs.csize >> 1) : 512); f_mount(NULL, "", 1); } else { - EPRINTFARGS("Failed to mount SD card (FatFS Error %d).\n" - "Make sure that a FAT partition exists..", res); + EPRINTFARGS("Error al montar SD (Error FatFS %d).\n" + "Asegurate si existe una particion FAT..", res); } sd_end(); } else { - EPRINTF("Failed to init SD card."); + EPRINTF("Error al iniciar SD."); if (!sdmmc_get_sd_inserted()) - EPRINTF("Make sure that it is inserted."); + EPRINTF("Asegurate de que este insertada."); else - EPRINTF("SD Card Reader is not properly seated!"); + EPRINTF("Lector de SD no colocado correctamente!"); sd_end(); } @@ -268,43 +268,43 @@ void print_fuel_gauge_info() { int value = 0; - gfx_printf("%kFuel Gauge Info:\n%k", TXT_CLR_CYAN_L, TXT_CLR_DEFAULT); + gfx_printf("%kInfo de bateria:\n%k", TXT_CLR_CYAN_L, TXT_CLR_DEFAULT); max17050_get_property(MAX17050_RepSOC, &value); - gfx_printf("Capacity now: %3d%\n", value >> 8); + gfx_printf("Capacidad ahora: %3d%\n", value >> 8); max17050_get_property(MAX17050_RepCap, &value); - gfx_printf("Capacity now: %4d mAh\n", value); + gfx_printf("Capacidad ahora: %4d mAh\n", value); max17050_get_property(MAX17050_FullCAP, &value); - gfx_printf("Capacity full: %4d mAh\n", value); + gfx_printf("Capacidad llena: %4d mAh\n", value); max17050_get_property(MAX17050_DesignCap, &value); - gfx_printf("Capacity (design): %4d mAh\n", value); + gfx_printf("Capacidad (proyecto): %4d mAh\n", value); max17050_get_property(MAX17050_Current, &value); - gfx_printf("Current now: %d mA\n", value / 1000); + gfx_printf("Actual ahora: %d mA\n", value / 1000); max17050_get_property(MAX17050_AvgCurrent, &value); - gfx_printf("Current average: %d mA\n", value / 1000); + gfx_printf("Promedio actual: %d mA\n", value / 1000); max17050_get_property(MAX17050_VCELL, &value); - gfx_printf("Voltage now: %4d mV\n", value); + gfx_printf("Voltaje ahora: %4d mV\n", value); max17050_get_property(MAX17050_OCVInternal, &value); - gfx_printf("Voltage open-circuit: %4d mV\n", value); + gfx_printf("Voltaje circuito-abiert:%4d mV\n", value); max17050_get_property(MAX17050_MinVolt, &value); - gfx_printf("Min voltage reached: %4d mV\n", value); + gfx_printf("Voltaje minimo: %4d mV\n", value); max17050_get_property(MAX17050_MaxVolt, &value); - gfx_printf("Max voltage reached: %4d mV\n", value); + gfx_printf("Voltaje maximo: %4d mV\n", value); max17050_get_property(MAX17050_V_empty, &value); - gfx_printf("Empty voltage (design): %4d mV\n", value); + gfx_printf("Voltaje vacio (proyect):%4d mV\n", value); max17050_get_property(MAX17050_TEMP, &value); - gfx_printf("Battery temperature: %d.%d oC\n", value / 10, + gfx_printf("Temperatura de bateria: %d.%d oC\n", value / 10, (value >= 0 ? value : (~value)) % 10); } @@ -312,64 +312,64 @@ void print_battery_charger_info() { int value = 0; - gfx_printf("%k\n\nBattery Charger Info:\n%k", TXT_CLR_CYAN_L, TXT_CLR_DEFAULT); + gfx_printf("%k\n\nInfo Carga de Bateria:\n%k", TXT_CLR_CYAN_L, TXT_CLR_DEFAULT); bq24193_get_property(BQ24193_InputVoltageLimit, &value); - gfx_printf("Input voltage limit: %4d mV\n", value); + gfx_printf("Limite voltaje de entrada: %4d mV\n", value); bq24193_get_property(BQ24193_InputCurrentLimit, &value); - gfx_printf("Input current limit: %4d mA\n", value); + gfx_printf("Limite de entrada actual %4d mA\n", value); bq24193_get_property(BQ24193_SystemMinimumVoltage, &value); - gfx_printf("Min voltage limit: %4d mV\n", value); + gfx_printf("Limite de voltaje minimo: %4d mV\n", value); bq24193_get_property(BQ24193_FastChargeCurrentLimit, &value); - gfx_printf("Fast charge current limit: %4d mA\n", value); + gfx_printf("Limite corriente Carga Rap:%4d mA\n", value); bq24193_get_property(BQ24193_ChargeVoltageLimit, &value); - gfx_printf("Charge voltage limit: %4d mV\n", value); + gfx_printf("Limite de voltaje de carga:%4d mV\n", value); bq24193_get_property(BQ24193_ChargeStatus, &value); - gfx_printf("Charge status: "); + gfx_printf("Estado de carga: "); switch (value) { case 0: - gfx_printf("Not charging\n"); + gfx_printf("No cargando\n"); break; case 1: - gfx_printf("Pre-charging\n"); + gfx_printf("Pre-cargando\n"); break; case 2: - gfx_printf("Fast charging\n"); + gfx_printf("Carga rapida\n"); break; case 3: - gfx_printf("Charge terminated\n"); + gfx_printf("Carga terminada\n"); break; default: - gfx_printf("Unknown (%d)\n", value); + gfx_printf("Desconocido (%d)\n", value); break; } bq24193_get_property(BQ24193_TempStatus, &value); - gfx_printf("Temperature status: "); + gfx_printf("Estado de temperatura: "); switch (value) { case 0: gfx_printf("Normal\n"); break; case 2: - gfx_printf("Warm\n"); + gfx_printf("Calido\n"); break; case 3: - gfx_printf("Cool\n"); + gfx_printf("Fresco\n"); break; case 5: - gfx_printf("Cold\n"); + gfx_printf("Frio\n"); break; case 6: - gfx_printf("Hot\n"); + gfx_printf("Caliente\n"); break; default: - gfx_printf("Unknown (%d)\n", value); + gfx_printf("Desconocido (%d)\n", value); break; } } @@ -385,7 +385,7 @@ void print_battery_info() u8 *buf = (u8 *)malloc(0x100 * 2); - gfx_printf("%k\n\nBattery Fuel Gauge Registers:\n%k", TXT_CLR_CYAN_L, TXT_CLR_DEFAULT); + gfx_printf("%k\n\nRegistros de carga de Bateria:\n%k", TXT_CLR_CYAN_L, TXT_CLR_DEFAULT); for (int i = 0; i < 0x200; i += 2) { diff --git a/bootloader/frontend/fe_tools.c b/bootloader/frontend/fe_tools.c index 3419f036..f202e988 100644 --- a/bootloader/frontend/fe_tools.c +++ b/bootloader/frontend/fe_tools.c @@ -39,7 +39,7 @@ void _toggle_autorcm(bool enable) if (!emmc_initialize(false)) { - EPRINTF("Failed to init eMMC."); + EPRINTF("Error al iniciar eMMC."); goto out; } @@ -73,10 +73,10 @@ void _toggle_autorcm(bool enable) emmc_end(); if (enable) - gfx_printf("%kAutoRCM mode enabled!%k", TXT_CLR_ORANGE, TXT_CLR_DEFAULT); + gfx_printf("%kModo AutoRCM activado!%k", TXT_CLR_ORANGE, TXT_CLR_DEFAULT); else - gfx_printf("%kAutoRCM mode disabled!%k", TXT_CLR_GREENISH, TXT_CLR_DEFAULT); - gfx_printf("\n\nPress any key...\n"); + gfx_printf("%kModo AutoRCM desactivado!%k", TXT_CLR_GREENISH, TXT_CLR_DEFAULT); + gfx_printf("\n\nPulsa cualquier tecla...\n"); out: btn_wait(); @@ -92,7 +92,7 @@ void menu_autorcm() if (h_cfg.rcm_patched) { - WPRINTF("This device is RCM patched and the\nfunction is disabled to avoid BRICKS!\n"); + WPRINTF("RCM parcheado y se ha desactivado\nla funcion para evitar BRICKS!\n"); btn_wait(); return; @@ -103,7 +103,7 @@ void menu_autorcm() if (!emmc_initialize(false)) { - EPRINTF("Failed to init eMMC."); + EPRINTF("Error al iniciar eMMC."); btn_wait(); return; @@ -129,7 +129,7 @@ void menu_autorcm() ment_t *ments = (ment_t *)malloc(sizeof(ment_t) * 6); ments[0].type = MENT_BACK; - ments[0].caption = "Back"; + ments[0].caption = "Volver"; ments[1].type = MENT_CHGLINE; @@ -137,23 +137,23 @@ void menu_autorcm() ments[3].type = MENT_CHGLINE; if (disabled) { - ments[2].caption = "Status: Disabled!"; + ments[2].caption = "Estado: Desactivado!"; ments[2].color = TXT_CLR_GREENISH; - ments[4].caption = "Enable AutoRCM"; + ments[4].caption = "Activar AutoRCM"; ments[4].handler = _enable_autorcm; } else { - ments[2].caption = "Status: Enabled!"; + ments[2].caption = "Estado: Activado!"; ments[2].color = TXT_CLR_ORANGE; - ments[4].caption = "Disable AutoRCM"; + ments[4].caption = "Desactivar AutoRCM"; ments[4].handler = _disable_autorcm; } ments[4].type = MENT_HDLR_RE; ments[4].data = NULL; memset(&ments[5], 0, sizeof(ment_t)); - menu_t menu = {ments, "This corrupts BOOT0!", 0, 0}; + menu_t menu = {ments, "Esto corrompe el BOOT0!", 0, 0}; tui_do_menu(&menu); } diff --git a/bootloader/gfx/tui.c b/bootloader/gfx/tui.c index 5c1ef280..16f2ab69 100644 --- a/bootloader/gfx/tui.c +++ b/bootloader/gfx/tui.c @@ -46,7 +46,7 @@ void tui_sbar(bool force_update) max17050_get_property(MAX17050_VCELL, &battVoltCurr); gfx_clear_partial_grey(0x30, 1256, 24); - gfx_printf("%K%k Battery: %d.%d%% (%d mV) - Charge:", TXT_CLR_GREY_D, TXT_CLR_GREY, + gfx_printf("%K%k Bateria: %d.%d%% (%d mV) - Carga:", TXT_CLR_GREY_D, TXT_CLR_GREY, (battPercent >> 8) & 0xFF, (battPercent & 0xFF) / 26, battVoltCurr); max17050_get_property(MAX17050_Current, &battVoltCurr); @@ -142,9 +142,9 @@ void *tui_do_menu(menu_t *menu) // Print errors, help and battery status. gfx_con_setpos(0, 1127); - gfx_printf("%k Warning: %kNyx is missing!", TXT_CLR_RED_D, TXT_CLR_GREY_M); + gfx_printf("%k Advert: %kNyx no esta!", TXT_CLR_RED_D, TXT_CLR_GREY_M); gfx_con_setpos(0, 1191); - gfx_printf("%k VOL: Move up/down\n PWR: Select option%k", TXT_CLR_GREY_M, TXT_CLR_DEFAULT); + gfx_printf("%k VOL: Mover arriba/abajo\n PWR: Seleccionar opcion%k", TXT_CLR_GREY_M, TXT_CLR_DEFAULT); display_backlight_brightness(h_cfg.backlight, 1000); diff --git a/bootloader/gfx/tui.h b/bootloader/gfx/tui.h index 0fd3194b..6d8c917c 100644 --- a/bootloader/gfx/tui.h +++ b/bootloader/gfx/tui.h @@ -54,7 +54,7 @@ typedef struct _menu_t #define MDEF_HANDLER(caption, _handler) { MENT_HANDLER, caption, 0, NULL, { .handler = _handler } } #define MDEF_HANDLER_EX(caption, data, _handler) { MENT_HANDLER, caption, 0, data, { .handler = _handler } } #define MDEF_MENU(caption, _menu) { MENT_MENU, caption, 0, NULL, { .menu = _menu } } -#define MDEF_BACK() { MENT_BACK, "Back" } +#define MDEF_BACK() { MENT_BACK, "Volver" } #define MDEF_CAPTION(caption, color) { MENT_CAPTION, caption, color } #define MDEF_CHGLINE() {MENT_CHGLINE} diff --git a/bootloader/hos/fss.c b/bootloader/hos/fss.c index 318f3410..5565d2b0 100644 --- a/bootloader/hos/fss.c +++ b/bootloader/hos/fss.c @@ -159,8 +159,8 @@ int parse_fss(launch_ctxt_t *ctxt, const char *path) if (fss_meta->magic == FSS0_MAGIC) { gfx_printf("Atmosphere %d.%d.%d-%08x via FSS0/PKG3\n" - "Max HOS: %d.%d.%d\n" - "Unpacking.. ", + "HOS Max: %d.%d.%d\n" + "Desempaquetando.. ", fss_meta->version >> 24, (fss_meta->version >> 16) & 0xFF, (fss_meta->version >> 8) & 0xFF, fss_meta->git_rev, fss_meta->hos_ver >> 24, (fss_meta->hos_ver >> 16) & 0xFF, (fss_meta->hos_ver >> 8) & 0xFF); @@ -191,7 +191,7 @@ int parse_fss(launch_ctxt_t *ctxt, const char *path) merge_kip_t *mkip1 = (merge_kip_t *)malloc(sizeof(merge_kip_t)); mkip1->kip1 = content; list_append(&ctxt->kip1_list, &mkip1->link); - DPRINTF("Loaded %s.kip1 from FSS0 (size %08X)\n", curr_fss_cnt[i].name, curr_fss_cnt[i].size); + DPRINTF("Cargado %s.kip1 desde FSS0 (tam. %08X)\n", curr_fss_cnt[i].name, curr_fss_cnt[i].size); break; case CNT_TYPE_KRN: diff --git a/bootloader/hos/hos.c b/bootloader/hos/hos.c index 695c5707..6a4e74c5 100644 --- a/bootloader/hos/hos.c +++ b/bootloader/hos/hos.c @@ -405,7 +405,7 @@ int hos_keygen(void *keyblob, u32 kb, tsec_ctxt_t *tsec_ctxt, bool stock, bool i tsec_ctxt->fw = sd_file_read("bootloader/sys/thk.bin", NULL); if (!tsec_ctxt->fw) { - _hos_crit_error("\nFailed to load thk.bin"); + _hos_crit_error("\nFallo al cargar thk.bin"); return 0; } @@ -429,7 +429,7 @@ int hos_keygen(void *keyblob, u32 kb, tsec_ctxt_t *tsec_ctxt, bool stock, bool i // We rely on racing conditions, make sure we cover even the unluckiest cases. if (retries > 15) { - _hos_crit_error("\nFailed to get TSEC keys. Please try again."); + _hos_crit_error("\nFallo al obtener keys TSEC. Reintentalo."); return 0; } } @@ -618,28 +618,28 @@ static int _read_emmc_pkg1(launch_ctxt_t *ctxt) if (wrong_pkg1) { - _hos_crit_error("Wrong pkg1 flashed:"); - EPRINTFARGS("%s pkg1 on %s!", + _hos_crit_error("Pkg1 flasheado equivocado:"); + EPRINTFARGS("%s pkg1 en %s!", !h_cfg.t210b01 ? "Mariko" : "Erista", !h_cfg.t210b01 ? "Erista" : "Mariko"); } else { - _hos_crit_error("Unknown pkg1 version."); - EPRINTFARGS("HOS version not supported!%s", - (emu_cfg.enabled && !h_cfg.emummc_force_disable) ? "\nOr emuMMC corrupt!" : ""); + _hos_crit_error("Version de pkg1 desconocida."); + EPRINTFARGS("Version de HOS no soportada!%s", + (emu_cfg.enabled && !h_cfg.emummc_force_disable) ? "\nO EmuNAND corrupta!" : ""); } // Try backup bootloader. if (bootloader_offset != PKG1_BOOTLOADER_BACKUP_OFFSET) { - EPRINTF("\nTrying backup bootloader..."); + EPRINTF("\nIntentando backup de bootloader..."); bootloader_offset = PKG1_BOOTLOADER_BACKUP_OFFSET; goto try_load; } return 0; } - gfx_printf("Identified pkg1 and mkey %d\n\n", ctxt->pkg1_id->kb); + gfx_printf("Identificado pkg1 y mkey %d\n\n", ctxt->pkg1_id->kb); // Read the correct keyblob for older HOS versions. if (ctxt->pkg1_id->kb <= KB_FIRMWARE_VERSION_600) @@ -660,7 +660,7 @@ static u8 *_read_emmc_pkg2(launch_ctxt_t *ctxt) // Parse eMMC GPT. LIST_INIT(gpt); emmc_gpt_parse(&gpt); -DPRINTF("Parsed GPT\n"); +DPRINTF("GPT analizado\n"); // Find package2 partition. emmc_part_t *pkg2_part = emmc_part_find(&gpt, "BCPKG2-1-Normal-Main"); if (!pkg2_part) @@ -672,14 +672,14 @@ DPRINTF("Parsed GPT\n"); emmc_part_read(pkg2_part, BCT_SIZE / EMMC_BLOCKSIZE, 1, bctBuf); u32 *hdr = (u32 *)(bctBuf + 0x100); u32 pkg2_size = hdr[0] ^ hdr[2] ^ hdr[3]; -DPRINTF("pkg2 size on emmc is %08X\n", pkg2_size); +DPRINTF("tam. de pkg2 en emmc es %08X\n", pkg2_size); // Read in Boot Config. emmc_part_read(pkg2_part, 0, BCT_SIZE / EMMC_BLOCKSIZE, bctBuf); // Read in package2. u32 pkg2_size_aligned = ALIGN(pkg2_size, EMMC_BLOCKSIZE); -DPRINTF("pkg2 size aligned is %08X\n", pkg2_size_aligned); +DPRINTF("tam. pkg2 alineado es %08X\n", pkg2_size_aligned); ctxt->pkg2 = malloc(pkg2_size_aligned); ctxt->pkg2_size = pkg2_size; emmc_part_read(pkg2_part, BCT_SIZE / EMMC_BLOCKSIZE, @@ -762,16 +762,16 @@ int hos_launch(ini_sec_t *cfg) gfx_clear_grey(0x1B); gfx_con_setpos(0, 0); - gfx_puts("Initializing...\n\n"); + gfx_puts("Inicializando...\n\n"); // Initialize eMMC/emuMMC. int res = emummc_storage_init_mmc(); if (res) { if (res == 2) - _hos_crit_error("Failed to init eMMC."); + _hos_crit_error("Error al iniciar eMMC."); else - _hos_crit_error("Failed to init emuMMC."); + _hos_crit_error("Error al iniciar EmuNAND."); goto error; } @@ -779,7 +779,7 @@ int hos_launch(ini_sec_t *cfg) // Check if SD Card is GPT. if (sd_is_gpt()) { - _hos_crit_error("SD has GPT only!"); + _hos_crit_error("SD solo tiene GPT!"); goto error; } @@ -792,7 +792,7 @@ int hos_launch(ini_sec_t *cfg) // Try to parse config if present. if (ctxt.cfg && !parse_boot_config(&ctxt)) { - _hos_crit_error("Wrong ini cfg or missing/corrupt files!"); + _hos_crit_error("Mala cfg ini o archivos corruptos/faltan!"); goto error; } @@ -803,7 +803,7 @@ int hos_launch(ini_sec_t *cfg) { if (ctxt.stock) { - _hos_crit_error("Stock emuMMC is not supported yet!"); + _hos_crit_error("EmuNAND Stock no soportada todavia!"); goto error; } @@ -812,7 +812,7 @@ int hos_launch(ini_sec_t *cfg) } else if (!emu_cfg.enabled && ctxt.emummc_forced) { - _hos_crit_error("emuMMC is forced but not enabled!"); + _hos_crit_error("EmuNAND forzada pero no activada!"); goto error; } @@ -842,7 +842,7 @@ int hos_launch(ini_sec_t *cfg) config_kip1patch(&ctxt, "nogc"); } - gfx_printf("Loaded config and pkg1\n%s mode\n", ctxt.stock ? "Stock" : "CFW"); + gfx_printf("Cargada conf. y pkg1\n%s modo\n", ctxt.stock ? "Stock" : "CFW"); // Check if secmon is exosphere. if (ctxt.secmon) @@ -859,7 +859,7 @@ int hos_launch(ini_sec_t *cfg) if (!hos_keygen(ctxt.keyblob, kb, &tsec_ctxt, ctxt.stock, is_exo)) goto error; - gfx_puts("Generated keys\n"); + gfx_puts("Keys Generadas\n"); // Decrypt and unpack package1 if we require parts of it. if (!ctxt.warmboot || !ctxt.secmon) @@ -869,7 +869,7 @@ int hos_launch(ini_sec_t *cfg) { if (!pkg1_decrypt(ctxt.pkg1_id, ctxt.pkg1)) { - _hos_crit_error("Pkg1 decryption failed!"); + _hos_crit_error("Descifrado de Pkg1 fallido!"); // Check if T210B01 BEK is missing or wrong. if (h_cfg.t210b01) @@ -877,9 +877,9 @@ int hos_launch(ini_sec_t *cfg) u32 bek_vector[4] = {0}; se_aes_crypt_ecb(13, ENCRYPT, bek_vector, SE_KEY_128_SIZE, bek_vector, SE_KEY_128_SIZE); if (bek_vector[0] == 0x59C14895) // Encrypted zeroes first 32bits. - EPRINTF("Pkg1 corrupt?"); + EPRINTF("Pkg1 corrupto?"); else - EPRINTF("BEK is missing!"); + EPRINTF("BEK no esta!"); } goto error; } @@ -897,11 +897,11 @@ int hos_launch(ini_sec_t *cfg) !is_exo ? (void *)ctxt.pkg1_id->secmon_base : NULL, NULL, ctxt.pkg1_id, ctxt.pkg1 + pk1_offset); - gfx_puts("Decrypted & unpacked pkg1\n"); + gfx_puts("Pkg1 descifrado y desempaquetado\n"); } else { - _hos_crit_error("No mandatory secmon or warmboot provided!"); + _hos_crit_error("Secmon no oblig. o warmboot proporcionado!"); goto error; } } @@ -910,9 +910,9 @@ int hos_launch(ini_sec_t *cfg) if (!pkg1_warmboot_config(&ctxt, warmboot_base, ctxt.pkg1_id->fuses, kb)) { // Can only happen on T210B01. - _hos_crit_error("\nFailed to match warmboot with fuses!\nIf you continue, sleep wont work!"); + _hos_crit_error("\nError al coincidir warmboot con fusibles!\nSi continuas, modo sleep no funcionara!"); - gfx_puts("\nPress POWER to continue.\nPress VOL to go to the menu.\n"); + gfx_puts("\nPulsa POWER para continuar.\nPulsa VOL para ir al menu.\n"); display_backlight_brightness(h_cfg.backlight, 1000); if (!(btn_wait() & BTN_POWER)) @@ -927,7 +927,7 @@ int hos_launch(ini_sec_t *cfg) // Patch warmboot on T210 to allow downgrading. if (kb >= KB_FIRMWARE_VERSION_700) { - _hos_crit_error("No warmboot provided!"); + _hos_crit_error("Warmboot no proporcionado!"); goto error; } @@ -940,23 +940,23 @@ int hos_launch(ini_sec_t *cfg) else pkg1_secmon_patch((void *)&ctxt, secmon_base, h_cfg.t210b01); - gfx_puts("Loaded warmboot and secmon\n"); + gfx_puts("Warmboot y secmon cargados\n"); // Read package2. u8 *bootConfigBuf = _read_emmc_pkg2(&ctxt); if (!bootConfigBuf) { - _hos_crit_error("Pkg2 read failed!"); + _hos_crit_error("Lectura de Pkg2 fallo!"); goto error; } - gfx_puts("Read pkg2\n"); + gfx_puts("Lectura de pkg2\n"); // Decrypt package2 and parse KIP1 blobs in INI1 section. pkg2_hdr_t *pkg2_hdr = pkg2_decrypt(ctxt.pkg2, kb, is_exo); if (!pkg2_hdr) { - _hos_crit_error("Pkg2 decryption failed!\npkg1/pkg2 mismatch or old hekate!"); + _hos_crit_error("Descifrado de Pkg2 fallo!\nDesajuste de pkg1/pkg2 o hekate antiguo!"); // Clear EKS slot, in case something went wrong with tsec keygen. hos_eks_clear(kb); @@ -966,11 +966,11 @@ int hos_launch(ini_sec_t *cfg) LIST_INIT(kip1_info); if (!pkg2_parse_kips(&kip1_info, pkg2_hdr, &ctxt.new_pkg2)) { - _hos_crit_error("INI1 parsing failed!"); + _hos_crit_error("Analisis de INI1 fallo!"); goto error; } - gfx_puts("Parsed ini1\n"); + gfx_puts("Analisis de ini1\n"); // Use the kernel included in package2 in case we didn't load one already. if (!ctxt.kernel) @@ -991,7 +991,7 @@ int hos_launch(ini_sec_t *cfg) ctxt.pkg2_kernel_id = pkg2_identify(kernel_hash); if (!ctxt.pkg2_kernel_id) { - _hos_crit_error("Failed to identify kernel!"); + _hos_crit_error("Error al identificar kernel!"); goto error; } @@ -1000,7 +1000,7 @@ int hos_launch(ini_sec_t *cfg) kernel_patch_t *kernel_patchset = ctxt.pkg2_kernel_id->kernel_patchset; if (kernel_patchset != NULL) { - gfx_printf("%kPatching kernel%k\n", TXT_CLR_ORANGE, TXT_CLR_DEFAULT); + gfx_printf("%kParcheando kernel%k\n", TXT_CLR_ORANGE, TXT_CLR_DEFAULT); u32 *temp; for (u32 i = 0; kernel_patchset[i].id != 0xFFFFFFFF; i++) { @@ -1032,7 +1032,7 @@ int hos_launch(ini_sec_t *cfg) if (sd_fs.fs_type == FS_EXFAT && !exfat_compat) { - _hos_crit_error("SD Card is exFAT but installed HOS driver\nonly supports FAT32!"); + _hos_crit_error("SD en exFAT pero el driver de HOS solo\nsoporta FAT32!"); _free_launch_components(&ctxt); goto error; @@ -1041,16 +1041,16 @@ int hos_launch(ini_sec_t *cfg) // Patch kip1s in memory if needed. if (ctxt.kip1_patches) - gfx_printf("%kPatching kips%k\n", TXT_CLR_ORANGE, TXT_CLR_DEFAULT); + gfx_printf("%kParcheando kips%k\n", TXT_CLR_ORANGE, TXT_CLR_DEFAULT); const char* unappliedPatch = pkg2_patch_kips(&kip1_info, ctxt.kip1_patches); if (unappliedPatch != NULL) { - EHPRINTFARGS("Failed to apply '%s'!", unappliedPatch); + EHPRINTFARGS("Error al aplicar '%s'!", unappliedPatch); bool emmc_patch_failed = !strcmp(unappliedPatch, "emummc"); if (!emmc_patch_failed) { - gfx_puts("\nPress POWER to continue.\nPress VOL to go to the menu.\n"); + gfx_puts("\nPulsa POWER para continuar.\nPulsa VOL para ir al menu.\n"); display_backlight_brightness(h_cfg.backlight, 1000); } @@ -1075,7 +1075,7 @@ int hos_launch(ini_sec_t *cfg) // Close AHB aperture. Important when stock old secmon is used. mc_disable_ahb_redirect(); - gfx_printf("Rebuilt & loaded pkg2\n\n%kBooting...%k\n", TXT_CLR_GREENISH, TXT_CLR_DEFAULT); + gfx_printf("Pkg2 reconstruido y cargado\n\n%kArrancando...%k\n", TXT_CLR_GREENISH, TXT_CLR_DEFAULT); // Clear pkg1/pkg2 keys. se_aes_key_clear(8); @@ -1183,7 +1183,7 @@ int hos_launch(ini_sec_t *cfg) error: emmc_end(); - EPRINTF("\nFailed to launch HOS!"); + EPRINTF("\nError al iniciar HOS!"); return 0; } diff --git a/bootloader/hos/hos.h b/bootloader/hos/hos.h index ed757c16..5034de10 100644 --- a/bootloader/hos/hos.h +++ b/bootloader/hos/hos.h @@ -73,7 +73,7 @@ typedef struct _hos_eks_mbr_t u8 troot_dev[SE_KEY_128_SIZE]; } hos_eks_mbr_t; -static_assert(sizeof(hos_eks_mbr_t) == 64, "HOS EKS size is wrong!"); +static_assert(sizeof(hos_eks_mbr_t) == 64, "Tam. de HOS EKS equivocado!"); typedef struct _launch_ctxt_t { diff --git a/bootloader/hos/hos_config.c b/bootloader/hos/hos_config.c index 1311e947..6dfcad27 100644 --- a/bootloader/hos/hos_config.c +++ b/bootloader/hos/hos_config.c @@ -90,7 +90,7 @@ static int _config_kip1(launch_ctxt_t *ctxt, const char *value) return 0; } - DPRINTF("Loaded kip1 from SD (size %08X)\n", size); + DPRINTF("Cargado kip1 desde SD (tam. %08X)\n", size); list_append(&ctxt->kip1_list, &mkip1->link); i++; @@ -110,7 +110,7 @@ static int _config_kip1(launch_ctxt_t *ctxt, const char *value) return 0; } - DPRINTF("Loaded kip1 from SD (size %08X)\n", size); + DPRINTF("Cargado kip1 desde SD (tam. %08X)\n", size); list_append(&ctxt->kip1_list, &mkip1->link); } @@ -151,7 +151,7 @@ static int _config_svcperm(launch_ctxt_t *ctxt, const char *value) { if (*value == '1') { - DPRINTF("Disabled SVC verification\n"); + DPRINTF("Verificacion SVC desactivada\n"); ctxt->svcperm = true; } return 1; @@ -161,7 +161,7 @@ static int _config_debugmode(launch_ctxt_t *ctxt, const char *value) { if (*value == '1') { - DPRINTF("Enabled Debug mode\n"); + DPRINTF("Modo Debug activado\n"); ctxt->debugmode = true; } return 1; @@ -171,7 +171,7 @@ static int _config_stock(launch_ctxt_t *ctxt, const char *value) { if (*value == '1') { - DPRINTF("Disabled all patching\n"); + DPRINTF("Parches desactivados\n"); ctxt->stock = true; } return 1; @@ -181,7 +181,7 @@ static int _config_emummc_forced(launch_ctxt_t *ctxt, const char *value) { if (*value == '1') { - DPRINTF("Forced emuMMC\n"); + DPRINTF("EmuNAND forzada\n"); ctxt->emummc_forced = true; } return 1; @@ -191,7 +191,7 @@ static int _config_atmosphere(launch_ctxt_t *ctxt, const char *value) { if (*value == '1') { - DPRINTF("Enabled atmosphere patching\n"); + DPRINTF("Parcheo de atmosphere activado\n"); ctxt->atmosphere = true; } return 1; @@ -201,7 +201,7 @@ static int _config_dis_exo_user_exceptions(launch_ctxt_t *ctxt, const char *valu { if (*value == '1') { - DPRINTF("Disabled exosphere user exception handlers\n"); + DPRINTF("Excepciones desactivadas para exosphere\n"); ctxt->exo_ctx.no_user_exceptions = true; } return 1; @@ -211,7 +211,7 @@ static int _config_exo_user_pmu_access(launch_ctxt_t *ctxt, const char *value) { if (*value == '1') { - DPRINTF("Enabled user access to PMU\n"); + DPRINTF("Acceso de usuario a PMU activado\n"); ctxt->exo_ctx.user_pmu = true; } return 1; @@ -224,7 +224,7 @@ static int _config_exo_usb3_force(launch_ctxt_t *ctxt, const char *value) if (*value == '1') { - DPRINTF("Enabled USB 3.0\n"); + DPRINTF("USB 3.0 activado\n"); *ctxt->exo_ctx.usb3_force = true; } return 1; @@ -237,7 +237,7 @@ static int _config_exo_cal0_blanking(launch_ctxt_t *ctxt, const char *value) if (*value == '1') { - DPRINTF("Enabled prodinfo blanking\n"); + DPRINTF("Prodinfo en blanco activado\n"); *ctxt->exo_ctx.cal0_blank = true; } return 1; @@ -250,7 +250,7 @@ static int _config_exo_cal0_writes_enable(launch_ctxt_t *ctxt, const char *value if (*value == '1') { - DPRINTF("Enabled prodinfo writes\n"); + DPRINTF("Escritura en prodinfo activada\n"); *ctxt->exo_ctx.cal0_allow_writes_sys = true; } @@ -309,7 +309,7 @@ int parse_boot_config(launch_ctxt_t *ctxt) if (!_config_handlers[i].handler(ctxt, kv->val)) { gfx_con.mute = false; - EPRINTFARGS("Error while loading %s:\n%s", kv->key, kv->val); + EPRINTFARGS("Error al cargar %s:\n%s", kv->key, kv->val); return 0; } diff --git a/bootloader/hos/pkg1.c b/bootloader/hos/pkg1.c index 7fee4c84..392fd5ab 100644 --- a/bootloader/hos/pkg1.c +++ b/bootloader/hos/pkg1.c @@ -183,7 +183,7 @@ const pkg1_id_t *pkg1_identify(u8 *pkg1) memcpy(build_date, hdr->timestamp, 14); build_date[14] = 0; - gfx_printf("Found pkg1 ('%s').\n\n", build_date); + gfx_printf("Encontrado pkg1 ('%s').\n\n", build_date); for (int i = ARRAY_SIZE(_pkg1_ids) - 1; i >= 0; i--) if (!memcmp(hdr->timestamp, _pkg1_ids[i].id, 8)) @@ -310,7 +310,7 @@ void pkg1_secmon_patch(void *hos_ctxt, u32 secmon_base, bool t210b01) return; // Patch Secmon. - gfx_printf("%kPatching Secure Monitor%k\n", TXT_CLR_ORANGE, TXT_CLR_DEFAULT); + gfx_printf("%kParcheando Secure Monitor%k\n", TXT_CLR_ORANGE, TXT_CLR_DEFAULT); for (u32 i = 0; secmon_patchset[i].off != 0xFFFFFFFF; i++) *(vu32 *)(secmon_base + secmon_patchset[i].off) = secmon_patchset[i].val; } @@ -333,7 +333,7 @@ void pkg1_warmboot_patch(void *hos_ctxt) warmboot_patchset = _warmboot_4_patchset; break; } - gfx_printf("%kPatching Warmboot%k\n", TXT_CLR_ORANGE, TXT_CLR_DEFAULT); + gfx_printf("%kParcheando Warmboot%k\n", TXT_CLR_ORANGE, TXT_CLR_DEFAULT); for (u32 i = 0; warmboot_patchset[i].off != 0xFFFFFFFF; i++) *(vu32 *)(ctxt->pkg1_id->warmboot_base + warmboot_patchset[i].off) = warmboot_patchset[i].val; } diff --git a/bootloader/hos/pkg2.c b/bootloader/hos/pkg2.c index c09df645..37a7e124 100644 --- a/bootloader/hos/pkg2.c +++ b/bootloader/hos/pkg2.c @@ -267,7 +267,7 @@ void pkg2_replace_kip(link_t *info, u64 tid, pkg2_kip1_t *kip1) { ki->kip1 = kip1; ki->size = _pkg2_calc_kip1_size(kip1); -DPRINTF("replaced kip %s (new size %08X)\n", kip1->name, ki->size); +DPRINTF("reemplazado kip %s (nuevo tam. %08X)\n", kip1->name, ki->size); return; } } @@ -278,7 +278,7 @@ void pkg2_add_kip(link_t *info, pkg2_kip1_t *kip1) pkg2_kip1_info_t *ki = (pkg2_kip1_info_t *)malloc(sizeof(pkg2_kip1_info_t)); ki->kip1 = kip1; ki->size = _pkg2_calc_kip1_size(kip1); -DPRINTF("added kip %s (size %08X)\n", kip1->name, ki->size); +DPRINTF("unido kip %s (tam. %08X)\n", kip1->name, ki->size); list_append(info, &ki->link); } @@ -331,18 +331,18 @@ int pkg2_decompress_kip(pkg2_kip1_info_t* ki, u32 sectsToDecomp) unsigned int compSize = hdr.sections[sectIdx].size_comp; unsigned int outputSize = hdr.sections[sectIdx].size_decomp; - gfx_printf("Decomping '%s', sect %d, size %d..\n", (const char*)hdr.name, sectIdx, compSize); + gfx_printf("Expandiendo '%s', sect %d, tam. %d..\n", (const char*)hdr.name, sectIdx, compSize); if (blz_uncompress_srcdest(srcDataPtr, compSize, dstDataPtr, outputSize) == 0) { gfx_con.mute = false; - gfx_printf("%kERROR decomping sect %d of '%s'!%k\n", TXT_CLR_ERROR, sectIdx, (char*)hdr.name, TXT_CLR_DEFAULT); + gfx_printf("%kERROR expandiendo sect %d of '%s'!%k\n", TXT_CLR_ERROR, sectIdx, (char*)hdr.name, TXT_CLR_DEFAULT); free(newKip); return 1; } else { - DPRINTF("Done! Decompressed size is %d!\n", outputSize); + DPRINTF("Hecho! Tam. descomprimido: %d!\n", outputSize); } hdr.sections[sectIdx].size_comp = outputSize; srcDataPtr += compSize; @@ -474,7 +474,7 @@ const char* pkg2_patch_kips(link_t *info, char* patchNames) } patches[i][valueLen] = 0; - DPRINTF("Requested patch: '%s'\n", patches[i]); + DPRINTF("Parche requerido: '%s'\n", patches[i]); } // Parse external patches if needed. @@ -572,7 +572,7 @@ const char* pkg2_patch_kips(link_t *info, char* patchNames) if (currPatchset->patches == NULL) { - DPRINTF("Patch '%s' not necessary for %s\n", currPatchset->name, (const char*)ki->kip1->name); + DPRINTF("Parche '%s' no necesario para %s\n", currPatchset->name, (const char*)ki->kip1->name); patchesApplied |= appliedMask; continue; // Continue in case it's double defined. @@ -583,7 +583,7 @@ const char* pkg2_patch_kips(link_t *info, char* patchNames) { if (bitsAffected & BIT(currSectIdx)) { - gfx_printf("Applying '%s' on %s, sect %d\n", currPatchset->name, (const char*)ki->kip1->name, currSectIdx); + gfx_printf("Aplicando '%s' en %s, sect %d\n", currPatchset->name, (const char*)ki->kip1->name, currSectIdx); for (const kip1_patch_t* currPatch = currPatchset->patches; currPatch != NULL && currPatch->srcData != NULL; currPatch++) { if (GET_KIP_PATCH_SECTION(currPatch->offset) != currSectIdx) @@ -592,7 +592,7 @@ const char* pkg2_patch_kips(link_t *info, char* patchNames) if (!currPatch->length) { gfx_con.mute = false; - gfx_printf("%kPatch empty!%k\n", TXT_CLR_ERROR, TXT_CLR_DEFAULT); + gfx_printf("%kParche vacio!%k\n", TXT_CLR_ERROR, TXT_CLR_DEFAULT); return currPatchset->name; // MUST stop here as it's not probably intended. } @@ -602,12 +602,12 @@ const char* pkg2_patch_kips(link_t *info, char* patchNames) (memcmp(&kipSectData[currOffset], currPatch->dstData, currPatch->length) != 0)) { gfx_con.mute = false; - gfx_printf("%kPatch mismatch at 0x%x!%k\n", TXT_CLR_ERROR, currOffset, TXT_CLR_DEFAULT); + gfx_printf("%kDesajuste de parche en 0x%x!%k\n", TXT_CLR_ERROR, currOffset, TXT_CLR_DEFAULT); return currPatchset->name; // MUST stop here as kip is likely corrupt. } else { - DPRINTF("Patching %d bytes at offset 0x%x\n", currPatch->length, currOffset); + DPRINTF("Parcheando %d bytes en offset 0x%x\n", currPatch->length, currOffset); memcpy(&kipSectData[currOffset], currPatch->dstData, currPatch->length); } } @@ -630,7 +630,7 @@ const char* pkg2_patch_kips(link_t *info, char* patchNames) if (currKipIdx > 17) emu_cfg.fs_ver -= 2; - gfx_printf("Injecting emuMMC. FS ID: %d\n", emu_cfg.fs_ver); + gfx_printf("Inyectando EmuNAND. FS ID: %d\n", emu_cfg.fs_ver); if (_kipm_inject("/bootloader/sys/emummc.kipm", "FS", ki)) return "emummc"; } @@ -690,7 +690,7 @@ pkg2_hdr_t *pkg2_decrypt(void *data, u8 kb, bool is_exo) // Decrypt sections. for (u32 i = 0; i < 4; i++) { -DPRINTF("sec %d has size %08X\n", i, hdr->sec_size[i]); +DPRINTF("tam. sec %d: %08X\n", i, hdr->sec_size[i]); if (!hdr->sec_size[i]) continue; @@ -715,7 +715,7 @@ static u32 _pkg2_ini1_build(u8 *pdst, pkg2_hdr_t *hdr, link_t *kips_info, bool n // Merge kips into INI1. LIST_FOREACH_ENTRY(pkg2_kip1_info_t, ki, kips_info, link) { -DPRINTF("adding kip1 '%s' @ %08X (%08X)\n", ki->kip1->name, (u32)ki->kip1, ki->size); +DPRINTF("Agregando kip1 '%s' @ %08X (%08X)\n", ki->kip1->name, (u32)ki->kip1, ki->size); memcpy(pdst, ki->kip1, ki->size); pdst += ki->size; ini1_size += ki->size; @@ -799,13 +799,13 @@ DPRINTF("%s @ %08X (%08X)\n", is_meso ? "Mesosphere": "kernel",(u32)ctxt->kernel hdr->sec_size[PKG2_SEC_KERNEL] = kernel_size; se_aes_crypt_ctr(pkg2_keyslot, pdst, kernel_size, pdst, kernel_size, &hdr->sec_ctr[PKG2_SEC_KERNEL * SE_AES_IV_SIZE]); pdst += kernel_size; -DPRINTF("kernel encrypted\n"); +DPRINTF("kernel encriptado\n"); // Build INI1 for old Package2. u32 ini1_size = 0; if (!ctxt->new_pkg2) ini1_size = _pkg2_ini1_build(pdst, hdr, kips_info, false); -DPRINTF("INI1 encrypted\n"); +DPRINTF("INI1 encriptado\n"); if (!is_exo) // Not needed on Exosphere 1.0.0 and up. { diff --git a/bootloader/hos/secmon_exo.c b/bootloader/hos/secmon_exo.c index 03ea4da6..ff80a66d 100644 --- a/bootloader/hos/secmon_exo.c +++ b/bootloader/hos/secmon_exo.c @@ -405,13 +405,13 @@ void secmon_exo_check_panic() gfx_clear_grey(0x1B); gfx_con_setpos(0, 0); - WPRINTF("Panic occurred while running Atmosphere.\n\n"); - WPRINTFARGS("Title ID: %08X%08X", (u32)((u64)rpt->title_id >> 32), (u32)rpt->title_id); + WPRINTF("Ocurrio un error al ejecutar Atmosphere.\n\n"); + WPRINTFARGS("ID Titulo: %08X%08X", (u32)((u64)rpt->title_id >> 32), (u32)rpt->title_id); WPRINTFARGS("Error: %s (0x%x)\n", get_error_desc(rpt->error_desc), rpt->error_desc); // Check if mixed atmosphere sysmodules. if ((u32)rpt->title_id == HOS_PID_BOOT2) - WPRINTF("Mismatched Atmosphere files?\n"); + WPRINTF("Desajuste en archivos de Atmosphere?\n"); // Save context to the SD card. char filepath[0x40]; @@ -424,14 +424,14 @@ void secmon_exo_check_panic() if (!sd_save_to_file((void *)rpt, sizeof(atm_fatal_error_ctx), filepath)) { gfx_con.fntsz = 8; - WPRINTFARGS("Report saved to %s\n", filepath); + WPRINTFARGS("Reporte guardado en %s\n", filepath); gfx_con.fntsz = 16; } // Change magic to invalid, to prevent double-display of error/bootlooping. rpt->magic = 0; - gfx_printf("\n\nPress POWER to continue.\n"); + gfx_printf("\n\nPulsa POWER para continuar.\n"); display_backlight_brightness(100, 1000); msleep(1000); diff --git a/bootloader/l4t/l4t.c b/bootloader/l4t/l4t.c index c06524af..90bcc06c 100644 --- a/bootloader/l4t/l4t.c +++ b/bootloader/l4t/l4t.c @@ -333,8 +333,8 @@ enum { static void _l4t_crit_error(const char *text, bool needs_update) { gfx_con.mute = false; - gfx_printf("%kL4T Error: %s!%sFailed to launch L4T!\n%k", - TXT_CLR_ERROR, text, needs_update ? "\nUpdate bootloader folder!\n\n" : "\n\n", TXT_CLR_DEFAULT); + gfx_printf("%kL4T Error: %s!%sError al iniciar L4T!\n%k", + TXT_CLR_ERROR, text, needs_update ? "\nActualiza la carpeta bootloader!\n\n" : "\n\n", TXT_CLR_DEFAULT); } char *sd_path; @@ -523,7 +523,7 @@ static void _l4t_mc_config_carveout(bool t210b01) MC(MC_SEC_CARVEOUT_REG_CTRL) = 0; // Print real one, not temp disabled. - UPRINTF("TZD: TZDRAM Carveout: %08X - %08X\n", TZDRAM_BASE, TZDRAM_BASE - 1 + TZDRAM_SIZE); + UPRINTF("TZD: Exclusion TZDRAM: %08X - %08X\n", TZDRAM_BASE, TZDRAM_BASE - 1 + TZDRAM_SIZE); // Configure generalized security carveouts. u32 carveout_base = TZDRAM_BASE - SZ_1M; // Always leave space for Secure Firmware. @@ -564,7 +564,7 @@ static void _l4t_mc_config_carveout(bool t210b01) SEC_CARVEOUT_CFG_WR_FALCON_HS | SEC_CARVEOUT_CFG_APERTURE_ID(1) | SEC_CARVEOUT_CFG_FORCE_APERTURE_ID_MATCH; - UPRINTF("GSC1: NVDEC Carveout: %08X - %08X\n", + UPRINTF("GSC1: Exclusion NVDEC: %08X - %08X\n", MC(MC_SECURITY_CARVEOUT1_BOM), MC(MC_SECURITY_CARVEOUT1_BOM) + MC(MC_SECURITY_CARVEOUT1_SIZE_128KB) * SZ_128K); #elif CARVEOUT_SECFW_ENABLE @@ -595,7 +595,7 @@ static void _l4t_mc_config_carveout(bool t210b01) MC(MC_SECURITY_CARVEOUT1_CFG0) = SEC_CARVEOUT_CFG_RD_NS | SEC_CARVEOUT_CFG_WR_NS | SEC_CARVEOUT_CFG_LOCKED; - UPRINTF("GSC1: SECFW Carveout: %08X - %08X\n", + UPRINTF("GSC1: Exclusion SECFW: %08X - %08X\n", MC(MC_SECURITY_CARVEOUT1_BOM), MC(MC_SECURITY_CARVEOUT1_BOM) + MC(MC_SECURITY_CARVEOUT1_SIZE_128KB) * SZ_128K); #endif @@ -642,7 +642,7 @@ static void _l4t_mc_config_carveout(bool t210b01) SEC_CARVEOUT_CFG_APERTURE_ID(2) | SEC_CARVEOUT_CFG_SEND_CFG_TO_GPU | SEC_CARVEOUT_CFG_FORCE_APERTURE_ID_MATCH; // SEC_CARVEOUT_CFG_IS_WPR is set from GPU. - UPRINTF("GSC2: GPUFW Carveout: %08X - %08X\n", + UPRINTF("GSC2: Exclusion GPUFW: %08X - %08X\n", MC(MC_SECURITY_CARVEOUT2_BOM), MC(MC_SECURITY_CARVEOUT2_BOM) + MC(MC_SECURITY_CARVEOUT2_SIZE_128KB) * SZ_128K); // Set GPU WPR carveout. @@ -675,7 +675,7 @@ static void _l4t_mc_config_carveout(bool t210b01) SEC_CARVEOUT_CFG_APERTURE_ID(3) | SEC_CARVEOUT_CFG_SEND_CFG_TO_GPU | SEC_CARVEOUT_CFG_FORCE_APERTURE_ID_MATCH; // SEC_CARVEOUT_CFG_IS_WPR is set from GPU. - UPRINTF("GSC3: GPUW2 Carveout: %08X - %08X\n", + UPRINTF("GSC3: Exclusion GPUW2: %08X - %08X\n", MC(MC_SECURITY_CARVEOUT3_BOM), MC(MC_SECURITY_CARVEOUT3_BOM) + MC(MC_SECURITY_CARVEOUT3_SIZE_128KB) * SZ_128K); /* @@ -706,7 +706,7 @@ static void _l4t_mc_config_carveout(bool t210b01) SEC_CARVEOUT_CFG_APERTURE_ID(4) | SEC_CARVEOUT_CFG_FORCE_APERTURE_ID_MATCH; - UPRINTF("GSC4: TSEC1 Carveout: %08X - %08X\n", + UPRINTF("GSC4: Exclusion TSEC1: %08X - %08X\n", MC(MC_SECURITY_CARVEOUT4_BOM), MC(MC_SECURITY_CARVEOUT4_BOM) + MC(MC_SECURITY_CARVEOUT4_SIZE_128KB) * SZ_128K); // Set TSECA carveout. Only for NVDEC bl/prod and TSEC. Otherwise disabled. @@ -729,10 +729,10 @@ static void _l4t_mc_config_carveout(bool t210b01) SEC_CARVEOUT_CFG_WR_FALCON_HS | SEC_CARVEOUT_CFG_APERTURE_ID(5) | SEC_CARVEOUT_CFG_FORCE_APERTURE_ID_MATCH; - UPRINTF("GSC5: TSEC2 Carveout: %08X - %08X\n", + UPRINTF("GSC5: Exclusion TSEC2: %08X - %08X\n", MC(MC_SECURITY_CARVEOUT5_BOM), MC(MC_SECURITY_CARVEOUT5_BOM) + MC(MC_SECURITY_CARVEOUT5_SIZE_128KB) * SZ_128K); - UPRINTF("DRAM Bank 0 TOP: %08X\n", carveout_base); + UPRINTF("DRAM Banco 0 TOP: %08X\n", carveout_base); // Save carveouts to lp0 pmc registers. _l4t_sdram_lp0_save_params(t210b01); @@ -869,7 +869,7 @@ static void _l4t_bpmpfw_b01_config(l4t_ctxt_t *ctxt) // Enable table. BPMPFW_B01_DTB_EMC_TBL_ENABLE(tbl_idx); - UPRINTF("RAM Frequency set to: %d KHz. Voltage: %d mV\n", ram_oc_freq, ram_oc_volt); + UPRINTF("Frecuencia de RAM en: %d KHz. Voltaje: %d mV\n", ram_oc_freq, ram_oc_volt); } // Save BPMP-FW entrypoint for TZ. @@ -898,9 +898,9 @@ static int _l4t_sc7_exit_config(bool t210b01) if (!pkg1_warmboot_config(&hos_ctxt, 0, fw_fuses, 0)) { gfx_con.mute = false; - gfx_wputs("\nFailed to match warmboot with fuses!\nIf you continue, sleep wont work!"); + gfx_wputs("\nError al coincidir warmboot con fusibles!\nSi continuas, modo sleep no funcionara!"); - gfx_puts("\nPress POWER to continue.\nPress VOL to go to the menu.\n"); + gfx_puts("\nPulsa POWER para continuar.\nPulsa VOL para ir al menu.\n"); if (!(btn_wait() & BTN_POWER)) return 0; @@ -1012,7 +1012,7 @@ void launch_l4t(const ini_sec_t *ini_sec, int entry_idx, int is_list, bool t210b if (!ctxt.path) { - _l4t_crit_error("Path missing", false); + _l4t_crit_error("Falta ruta", false); return; } @@ -1020,28 +1020,28 @@ void launch_l4t(const ini_sec_t *ini_sec, int entry_idx, int is_list, bool t210b ctxt.mtc_table = minerva_get_mtc_table(); if (!t210b01 && !ctxt.mtc_table) { - _l4t_crit_error("Minerva missing", true); + _l4t_crit_error("Minerva no esta", true); return; } // U-BOOT does not support exfat. if (sd_fs.fs_type == FS_EXFAT) { - _l4t_crit_error("exFAT not supported", false); + _l4t_crit_error("exFAT no soportado", false); return; } // Load BL31 (ATF/TrustZone fw). if (!_l4t_sd_load(BL31_FW)) { - _l4t_crit_error("BL31 missing", false); + _l4t_crit_error("BL31 no esta", false); return; } // Load BL33 (U-BOOT/CBOOT). if (!_l4t_sd_load(BL33_FW)) { - _l4t_crit_error("BL33 missing", false); + _l4t_crit_error("BL33 no esta", false); return; } @@ -1055,14 +1055,14 @@ void launch_l4t(const ini_sec_t *ini_sec, int entry_idx, int is_list, bool t210b ctxt.sc7entry_size = _l4t_sd_load(SC7ENTRY_FW); if (!ctxt.sc7entry_size) { - _l4t_crit_error("loading SC7-Entry", true); + _l4t_crit_error("cargando SC7-Entry", true); return; } // Load BPMP-FW. Does power management. if (!_l4t_sd_load(BPMPFW_FW)) { - _l4t_crit_error("loading BPMP-FW", true); + _l4t_crit_error("cargando BPMP-FW", true); return; } } @@ -1071,14 +1071,14 @@ void launch_l4t(const ini_sec_t *ini_sec, int entry_idx, int is_list, bool t210b // Load BPMP-FW. Manages SC7-Entry also. if (!_l4t_sd_load(BPMPFW_B01_FW)) { - _l4t_crit_error("loading BPMP-FW", true); + _l4t_crit_error("cargando BPMP-FW", true); return; } // Load BPMP-FW MTC table. if (!_l4t_sd_load(BPMPFW_B01_MTC_TBL)) { - _l4t_crit_error("loading BPMP-FW MTC", true); + _l4t_crit_error("cargando BPMP-FW MTC", true); return; } } @@ -1086,7 +1086,7 @@ void launch_l4t(const ini_sec_t *ini_sec, int entry_idx, int is_list, bool t210b // Load SC7-Exit firmware. if (!_l4t_sd_load(!t210b01 ? SC7EXIT_FW : SC7EXIT_B01_FW)) { - _l4t_crit_error("loading SC7-Exit", true); + _l4t_crit_error("cargando SC7-Exit", true); return; } diff --git a/bootloader/main.c b/bootloader/main.c index 94e7d870..89eefc1b 100644 --- a/bootloader/main.c +++ b/bootloader/main.c @@ -205,7 +205,7 @@ static void _launch_payload(char *path, bool update, bool clear_screen) if (f_open(&fp, path, FA_READ)) { gfx_con.mute = false; - EPRINTFARGS("Payload file is missing!\n(%s)", path); + EPRINTFARGS("Falta archivo de payload!\n(%s)", path); goto out; } @@ -225,7 +225,7 @@ static void _launch_payload(char *path, bool update, bool clear_screen) f_close(&fp); gfx_con.mute = false; - EPRINTF("Coreboot not allowed on Mariko!"); + EPRINTF("Coreboot no permitido en Mariko!"); goto out; } @@ -285,7 +285,7 @@ static void _launch_payload(char *path, bool update, bool clear_screen) if (!update) { gfx_con.mute = false; - EPRINTF("Failed to launch payload!"); + EPRINTF("Error al lanzar payload!"); } } @@ -337,7 +337,7 @@ static void _launch_payloads() if (i > 0) { memset(&ments[i + 2], 0, sizeof(ment_t)); - menu_t menu = { ments, "Choose a payload", 0, 0 }; + menu_t menu = { ments, "Elije un payload", 0, 0 }; file_sec = (char *)tui_do_menu(&menu); @@ -352,7 +352,7 @@ static void _launch_payloads() } } else - EPRINTF("No payloads found."); + EPRINTF("Payloads no encontrados."); free(ments); free(filelist); @@ -390,14 +390,14 @@ static void _launch_ini_list() // Check that ini files exist and parse them. if (!ini_parse(&ini_list_sections, "bootloader/ini", true)) { - EPRINTF("No .ini files in bootloader/ini!"); + EPRINTF("No hay archivos .ini en bootloader/ini!"); goto parse_failed; } // Build configuration menu. ment_t *ments = (ment_t *)malloc(sizeof(ment_t) * (max_entries + 3)); ments[0].type = MENT_BACK; - ments[0].caption = "Back"; + ments[0].caption = "Volver"; ments[1].type = MENT_CHGLINE; @@ -425,7 +425,7 @@ static void _launch_ini_list() { memset(&ments[sec_idx], 0, sizeof(ment_t)); menu_t menu = { - ments, "Launch ini entries", 0, 0 + ments, "Iniciar entradas ini", 0, 0 }; cfg_sec = (ini_sec_t *)tui_do_menu(&menu); @@ -444,7 +444,7 @@ static void _launch_ini_list() if (emummc_path && !emummc_set_path(emummc_path)) { - EPRINTF("emupath is wrong!"); + EPRINTF("emupath esta equivocado!"); goto wrong_emupath; } } @@ -457,7 +457,7 @@ static void _launch_ini_list() } } else - EPRINTF("No extra configs found."); + EPRINTF("No hay ajustes extras."); free(ments); parse_failed: @@ -522,7 +522,7 @@ static void _launch_config() // Build configuration menu. ment_t *ments = (ment_t *)malloc(sizeof(ment_t) * (max_entries + 6)); ments[0].type = MENT_BACK; - ments[0].caption = "Back"; + ments[0].caption = "Volver"; ments[1].type = MENT_CHGLINE; @@ -531,7 +531,7 @@ static void _launch_config() ments[2].handler = _launch_payloads; ments[3].type = MENT_HANDLER; - ments[3].caption = "More configs..."; + ments[3].caption = "Mas ajustes..."; ments[3].handler = _launch_ini_list; ments[4].type = MENT_CHGLINE; @@ -559,14 +559,14 @@ static void _launch_config() if (sec_idx < 6) { ments[sec_idx].type = MENT_CAPTION; - ments[sec_idx].caption = "No main configs found..."; + ments[sec_idx].caption = "Ajustes princip. no encontrados..."; ments[sec_idx].color = TXT_CLR_WARNING; sec_idx++; } memset(&ments[sec_idx], 0, sizeof(ment_t)); menu_t menu = { - ments, "Launch configurations", 0, 0 + ments, "Iniciar ajustes", 0, 0 }; cfg_sec = (ini_sec_t *)tui_do_menu(&menu); @@ -585,7 +585,7 @@ static void _launch_config() if (emummc_path && !emummc_set_path(emummc_path)) { - EPRINTF("emupath is wrong!"); + EPRINTF("emupath esta equivocado!"); goto wrong_emupath; } } @@ -602,7 +602,7 @@ static void _launch_config() parse_failed: if (!cfg_sec) { - gfx_printf("\nPress any key...\n"); + gfx_printf("\nPulsa cualquier tecla...\n"); goto out; } @@ -664,9 +664,9 @@ static void _nyx_load_run() h_cfg.errors |= ERR_SYSOLD_NYX; gfx_con_setpos(0, 0); - WPRINTF("Old Nyx GUI found! There will be dragons!\n"); - WPRINTF("\nUpdate the bootloader folder!\n\n"); - WPRINTF("Press any key..."); + WPRINTF("Nyx GUI antiguo encontrado! Habra dragones!\n"); + WPRINTF("\nActualiza la carpeta bootloader!\n\n"); + WPRINTF("Pulsa cualquier tecla..."); msleep(1000); btn_wait(); @@ -1034,7 +1034,7 @@ static void _auto_launch() else if (emummc_path && !emummc_set_path(emummc_path)) { gfx_con.mute = false; - EPRINTF("emupath is wrong!"); + EPRINTF("emupath esta equivocado!"); goto wrong_emupath; } @@ -1049,7 +1049,7 @@ static void _auto_launch() error: gfx_con.mute = false; - gfx_printf("\nPress any key...\n"); + gfx_printf("\nPulsa cualquier tecla...\n"); display_backlight_brightness(h_cfg.backlight, 1000); msleep(500); btn_wait(); @@ -1127,27 +1127,27 @@ static void _show_errors() if (h_cfg.errors & ERR_SD_BOOT_EN) { - WPRINTF("Failed to init or mount SD!\n"); + WPRINTF("Error al iniciar/montar la SD!\n"); // Clear the module bits as to not cram the error screen. h_cfg.errors &= ~(ERR_LIBSYS_LP0 | ERR_LIBSYS_MTC); } if (h_cfg.errors & ERR_LIBSYS_LP0) - WPRINTF("Missing LP0 (sleep) lib!\n"); + WPRINTF("Falta libreria LP0 (sleep)!\n"); if (h_cfg.errors & ERR_LIBSYS_MTC) - WPRINTF("Missing Minerva lib!\n"); + WPRINTF("Falta libreria Minerva!\n"); if (h_cfg.errors & (ERR_LIBSYS_LP0 | ERR_LIBSYS_MTC)) - WPRINTF("\nUpdate bootloader folder!\n\n"); + WPRINTF("\nActualiza la carpeta bootloader!\n\n"); if (h_cfg.errors & ERR_EXCEPTION) { - WPRINTFARGS("hekate exception occurred (LR %08X):\n", *excp_lr); + WPRINTFARGS("Excepcion en Hekate (LR %08X):\n", *excp_lr); switch (*excp_type) { case EXCP_TYPE_WDT: - WPRINTF("Hang detected in LP0/Minerva!"); + WPRINTF("Bloqueo detectado en LP0/Minerva!"); break; case EXCP_TYPE_RESET: WPRINTF("RESET"); @@ -1171,17 +1171,17 @@ static void _show_errors() if (h_cfg.errors & ERR_L4T_KERNEL) { - WPRINTF("Kernel panic occurred!\n"); + WPRINTF("Ocurrio un Kernel Panic!\n"); if (!(h_cfg.errors & ERR_SD_BOOT_EN)) { if (!sd_save_to_file((void *)PSTORE_ADDR, PSTORE_SZ, "L4T_panic.bin")) - WPRINTF("PSTORE saved to L4T_panic.bin"); + WPRINTF("PSTORE guardado en L4T_panic.bin"); pstore_buf_t *buf = (pstore_buf_t *)(PSTORE_ADDR + PSTORE_LOG_OFFSET); if (buf->sig == PSTORE_RAM_SIG && buf->size && buf->size < 0x80000) { u32 log_offset = PSTORE_ADDR + PSTORE_LOG_OFFSET + sizeof(pstore_buf_t); if (!sd_save_to_file((void *)log_offset, buf->size, "L4T_panic.txt")) - WPRINTF("Log saved to L4T_panic.txt"); + WPRINTF("Log guardado en L4T_panic.txt"); } } gfx_puts("\n"); @@ -1197,11 +1197,11 @@ static void _show_errors() b = (b << 0) | (b << 4); u32 color = r | g | b; - WPRINTF("HOS panic occurred!\n"); + WPRINTF("Ocurrio un HOS Panic!\n"); gfx_printf("Color: %k####%k, Code: %02X\n\n", color, TXT_CLR_DEFAULT, panic_status); } - WPRINTF("Press any key..."); + WPRINTF("Pulsa cualquier tecla..."); msleep(1000); // Guard against injection VOL+. btn_wait(); @@ -1380,25 +1380,27 @@ static void _about() { static const char credits[] = "\nhekate (c) 2018, naehrwert, st4rk\n\n" - " (c) 2018-2022, CTCaer\n\n" + " (c) 2018-2023, CTCaer\n\n" " ___________________________________________\n\n" - "Thanks to: %kderrek, nedwill, plutoo,\n" + "Gracias a: %kderrek, nedwill, plutoo,\n" " shuffle2, smea, thexyz, yellows8%k\n" " ___________________________________________\n\n" - "Greetings to: fincs, hexkyz, SciresM,\n" + "Saludos a: fincs, hexkyz, SciresM,\n" " Shiny Quagsire, WinterMute\n" " ___________________________________________\n\n" - "Open source and free packages used:\n\n" + "Paquetes de codigo abierto y libres usados:\n\n" " - FatFs R0.13c\n" " (c) 2018, ChaN\n\n" " - bcl-1.2.0\n" " (c) 2003-2006, Marcus Geelnard\n\n" " - Atmosphere (Exo st/types, prc id patches)\n" - " (c) 2018-2019, Atmosphere-NX\n\n" + " (c) 2018-2019, Atmosphere-NX\n" " - elfload\n" " (c) 2014, Owen Shepherd\n" " (c) 2018, M4xw\n" - " ___________________________________________\n\n"; + " ___________________________________________\n" + "Traduccion: Lopez Tutoriales" + " ___________________________________________\n"; static const char octopus[] = " %k___\n" " .-' `'.\n" @@ -1433,49 +1435,49 @@ ment_t ment_cinfo[] = { MDEF_BACK(), MDEF_CHGLINE(), MDEF_CAPTION("---- SoC Info ----", TXT_CLR_CYAN_L), - MDEF_HANDLER("Fuses", print_fuseinfo), + MDEF_HANDLER("Fusibles", print_fuseinfo), MDEF_CHGLINE(), - MDEF_CAPTION("-- Storage Info --", TXT_CLR_CYAN_L), + MDEF_CAPTION("--Almacenamiento--", TXT_CLR_CYAN_L), MDEF_HANDLER("eMMC", print_mmc_info), - MDEF_HANDLER("SD Card", print_sdcard_info), + MDEF_HANDLER("Tarj. SD", print_sdcard_info), MDEF_CHGLINE(), MDEF_CAPTION("------ Misc ------", TXT_CLR_CYAN_L), - MDEF_HANDLER("Battery", print_battery_info), + MDEF_HANDLER("Bateria", print_battery_info), MDEF_END() }; -menu_t menu_cinfo = { ment_cinfo, "Console Info", 0, 0 }; +menu_t menu_cinfo = { ment_cinfo, "Info de Consola", 0, 0 }; ment_t ment_tools[] = { MDEF_BACK(), MDEF_CHGLINE(), - MDEF_CAPTION("-------- Other -------", TXT_CLR_WARNING), + MDEF_CAPTION("-------- Otro -------", TXT_CLR_WARNING), MDEF_HANDLER("AutoRCM", menu_autorcm), MDEF_END() }; -menu_t menu_tools = { ment_tools, "Tools", 0, 0 }; +menu_t menu_tools = { ment_tools, "Herramientas", 0, 0 }; power_state_t STATE_POWER_OFF = POWER_OFF_RESET; power_state_t STATE_REBOOT_RCM = REBOOT_RCM; power_state_t STATE_REBOOT_BYPASS_FUSES = REBOOT_BYPASS_FUSES; ment_t ment_top[] = { - MDEF_HANDLER("Launch", _launch_config), + MDEF_HANDLER("Iniciar", _launch_config), MDEF_CAPTION("---------------", TXT_CLR_GREY_DM), - MDEF_MENU("Tools", &menu_tools), - MDEF_MENU("Console info", &menu_cinfo), + MDEF_MENU("Herramientas", &menu_tools), + MDEF_MENU("Info de Consola", &menu_cinfo), MDEF_CAPTION("---------------", TXT_CLR_GREY_DM), - MDEF_HANDLER("Reload", _ipl_reload), - MDEF_HANDLER_EX("Reboot (OFW)", &STATE_REBOOT_BYPASS_FUSES, power_set_state_ex), - MDEF_HANDLER_EX("Reboot (RCM)", &STATE_REBOOT_RCM, power_set_state_ex), - MDEF_HANDLER_EX("Power off", &STATE_POWER_OFF, power_set_state_ex), + MDEF_HANDLER("Recargar", _ipl_reload), + MDEF_HANDLER_EX("Reiniciar (OFW)", &STATE_REBOOT_BYPASS_FUSES, power_set_state_ex), + MDEF_HANDLER_EX("Reiniciar (RCM)", &STATE_REBOOT_RCM, power_set_state_ex), + MDEF_HANDLER_EX("Apagar", &STATE_POWER_OFF, power_set_state_ex), MDEF_CAPTION("---------------", TXT_CLR_GREY_DM), - MDEF_HANDLER("About", _about), + MDEF_HANDLER("Acerca de", _about), MDEF_END() }; -menu_t menu_top = { ment_top, "hekate v6.0.5", 0, 0 }; +menu_t menu_top = { ment_top, "Hekate ESP v6.0.5\nTraducido por Lopez Tutoriales", 0, 0 }; extern void pivot_stack(u32 stack_top); @@ -1491,7 +1493,7 @@ void ipl_main() heap_init((void *)IPL_HEAP_START); #ifdef DEBUG_UART_PORT - uart_send(DEBUG_UART_PORT, (u8 *)"hekate: Hello!\r\n", 16); + uart_send(DEBUG_UART_PORT, (u8 *)"Hekate: Hola!\r\n", 16); uart_wait_xfer(DEBUG_UART_PORT, UART_TX_IDLE); #endif diff --git a/bootloader/storage/emummc.c b/bootloader/storage/emummc.c index 64fe907c..171dc805 100644 --- a/bootloader/storage/emummc.c +++ b/bootloader/storage/emummc.c @@ -154,7 +154,7 @@ int emummc_storage_init_mmc() if (f_stat(emu_cfg.emummc_file_based_path, &fno)) { - EPRINTF("Failed to open eMMC folder."); + EPRINTF("Error al abrir carpeta eMMC."); goto out; } f_chmod(emu_cfg.emummc_file_based_path, AM_ARC, AM_ARC); @@ -162,7 +162,7 @@ int emummc_storage_init_mmc() strcat(emu_cfg.emummc_file_based_path, "/00"); if (f_stat(emu_cfg.emummc_file_based_path, &fno)) { - EPRINTF("Failed to open emuMMC rawnand."); + EPRINTF("Error al abrir EmuNAND rawnand."); goto out; } emu_cfg.file_based_part_size = fno.fsize >> 9; @@ -211,13 +211,13 @@ int emummc_storage_read(u32 sector, u32 num_sectors, void *buf) } if (f_open(&fp, emu_cfg.emummc_file_based_path, FA_READ)) { - EPRINTF("Failed to open emuMMC image."); + EPRINTF("Error al abrir imagen de EmuNAND."); return 0; } f_lseek(&fp, (u64)sector << 9); if (f_read(&fp, buf, (u64)num_sectors << 9, NULL)) { - EPRINTF("Failed to read emuMMC image."); + EPRINTF("Error al leer imagen de EmuNAND."); f_close(&fp); return 0; } diff --git a/modules/hekate_libsys_minerva/README.md b/modules/hekate_libsys_minerva/README.md index 9f6e2ed5..b490368c 100644 --- a/modules/hekate_libsys_minerva/README.md +++ b/modules/hekate_libsys_minerva/README.md @@ -1,8 +1,8 @@ # Minerva Training Cell -### Custom Nvidia Tegra X1 DRAM trainer. +### Entrenador personalizado para DRAM Nvidia Tegra X1. -For more, check [Here](https://github.com/CTCaer/minerva_tc). +Para mas, entra [Aqui](https://github.com/CTCaer/minerva_tc). diff --git a/modules/hekate_libsys_minerva/sys_sdrammtc.c b/modules/hekate_libsys_minerva/sys_sdrammtc.c index fd522ac3..2616ebec 100644 --- a/modules/hekate_libsys_minerva/sys_sdrammtc.c +++ b/modules/hekate_libsys_minerva/sys_sdrammtc.c @@ -2608,7 +2608,7 @@ static u32 _minerva_set_clock(emc_table_t *src_emc_entry, emc_table_t *dst_emc_e if (dram_type != DRAM_TYPE_LPDDR4) { - EPRINTF("MTC Error: DRAM is not LPDDR4"); + EPRINTF("MTC Error: DRAM no es LPDDR4"); return 5; } @@ -2622,7 +2622,7 @@ static u32 _minerva_set_clock(emc_table_t *src_emc_entry, emc_table_t *dst_emc_e (void)EMC(EMC_AUTO_CAL_CONFIG); // Step 1 - Pre DVFS SW sequence. - EPRINTF("Step 1"); + EPRINTF("Paso 1"); emc_dbg_o = EMC(EMC_DBG); emc_pin_o = EMC(EMC_PIN); emc_cfg = dst_emc_entry->burst_regs.emc_cfg & 0xFFFFFFF; @@ -2631,12 +2631,12 @@ static u32 _minerva_set_clock(emc_table_t *src_emc_entry, emc_table_t *dst_emc_e _digital_dll_disable(); // Step 1.2 - Disable AUTOCAL temporarily. - EPRINTF("Step 1.2"); + EPRINTF("Paso 1.2"); EMC(EMC_AUTO_CAL_CONFIG) = (dst_emc_entry->emc_auto_cal_config & 0x7FFFF9FF) | 0x600; (void)EMC(EMC_AUTO_CAL_CONFIG); // Step 1.3 - Disable other power features. - EPRINTF("Step 1.3"); + EPRINTF("Paso 1.3"); EMC(EMC_DBG) = emc_dbg_o | 2; EMC(EMC_CFG) = emc_cfg; EMC(EMC_SEL_DPD_CTRL) = emc_sel_dpd_ctrl; @@ -2712,7 +2712,7 @@ static u32 _minerva_set_clock(emc_table_t *src_emc_entry, emc_table_t *dst_emc_e EMC(EMC_DBG) = emc_dbg_o; // Step 2 - Prelock the DLL. - EPRINTF("Step 2"); + EPRINTF("Paso 2"); if (dst_emc_entry->burst_regs.emc_cfg_dig_dll & 1) _digital_dll_prelock(dst_emc_entry, needs_tristate_training, selected_clk_src_emc); // Prelock enabled for target frequency. else @@ -2722,7 +2722,7 @@ static u32 _minerva_set_clock(emc_table_t *src_emc_entry, emc_table_t *dst_emc_e } // Step 3 - Prepare autocal for the clock change. - EPRINTF("Step 3"); + EPRINTF("Paso 3"); EMC(EMC_AUTO_CAL_CONFIG) = (dst_emc_entry->emc_auto_cal_config & 0x7FFFF9FF) | 0x600; EMC(EMC_DBG) = emc_dbg_o | 2; EMC(EMC_AUTO_CAL_CONFIG2) = dst_emc_entry->emc_auto_cal_config2; @@ -2736,21 +2736,21 @@ static u32 _minerva_set_clock(emc_table_t *src_emc_entry, emc_table_t *dst_emc_e EMC(EMC_AUTO_CAL_CONFIG) = (dst_emc_entry->emc_auto_cal_config & 0x7FFFF9FE) | 0x601; // Step 4 - Update EMC_CFG. - EPRINTF("Step 4"); + EPRINTF("Paso 4"); if (src_clock_period <= 50000) EMC(EMC_CFG_2) = dst_emc_entry->emc_cfg_2; else _ccfifo_write(EMC_SELF_REF, 1, 0); // Step 5 - Prepare reference variables for ZQCAL regs. - EPRINTF("Step 5"); + EPRINTF("Paso 5"); // u32 zq_wait_long = 0; // u32 zq_wait_short = 0; // zq_wait_long = _fceil(1000.0f / dst_clock_period); // Step 7 - Bug 200024907 - Patch RP R2P. - EPRINTF("Step 7"); + EPRINTF("Paso 7"); if (needs_ca_combo_training && dram_dev_num == TWO_RANK) EMC(EMC_PIN) = 0x107; @@ -2833,7 +2833,7 @@ static u32 _minerva_set_clock(emc_table_t *src_emc_entry, emc_table_t *dst_emc_e } // Step 7.2 - Program FSP reference registers and send MRWs to new FSPWR. - EPRINTF("Step 7.2"); + EPRINTF("Paso 7.2"); if (enable_fsp_opwr) { mr13_flip_fspop = dst_emc_entry->emc_mrw3 | 0xC0; @@ -2868,7 +2868,7 @@ static u32 _minerva_set_clock(emc_table_t *src_emc_entry, emc_table_t *dst_emc_e EMC(EMC_MRW2) = dst_emc_entry->emc_mrw2; // Step 8 - Program the shadow registers. - EPRINTF("Step 8"); + EPRINTF("Paso 8"); // Writing burst_regs. u32 reg_addr = 0; u32 reg_val = 0; @@ -3060,7 +3060,7 @@ static u32 _minerva_set_clock(emc_table_t *src_emc_entry, emc_table_t *dst_emc_e } // Step 9 - LPDDR4. - EPRINTF("Step 9"); + EPRINTF("Paso 9"); EMC(EMC_ZCAL_INTERVAL) = src_emc_entry->burst_regs.emc_zcal_interval & 0xFF000000; EMC(EMC_ZCAL_WAIT_CNT) = dst_emc_entry->burst_regs.emc_zcal_wait_cnt & 0xFFFFF800; EMC(EMC_DBG) = emc_dbg_o | 0x40000002; @@ -3084,7 +3084,7 @@ static u32 _minerva_set_clock(emc_table_t *src_emc_entry, emc_table_t *dst_emc_e } // Step 10 - Self refresh - EPRINTF("Step 10"); + EPRINTF("Paso 10"); _ccfifo_write(EMC_SELF_REF, 0x101, 0); if (!needs_ca_combo_training && (dst_clock_period <= 2000)) @@ -3142,26 +3142,26 @@ static u32 _minerva_set_clock(emc_table_t *src_emc_entry, emc_table_t *dst_emc_e _ccfifo_write(EMC_PIN, emc_pin_o & 0xFFFFFFF8, 30); // Step 11 - Ramp down. - EPRINTF("Step 11"); + EPRINTF("Paso 11"); _ccfifo_write(EMC_CFG_SYNC, 0, 0); _ccfifo_write(EMC_DBG, emc_dbg_val | 0x40000002, 0); // WRITE_MUX_ACTIVE | WRITE_ACTIVE_ONLY ramp_down_wait = _dvfs_power_ramp_down(false, src_emc_entry, dst_emc_entry, src_clock_period); // Step 12 - Trigger clock change. - EPRINTF("Step 12"); + EPRINTF("Paso 12"); _ccfifo_write(EMC_STALL_THEN_EXE_AFTER_CLKCHANGE, 1, 0); if (!needs_tristate_training) _ccfifo_write(EMC_DBG, (emc_dbg_val & 0xBFFFFFFF) | 2, 0); // Step 13 - Ramp up. - EPRINTF("Step 13"); + EPRINTF("Paso 13"); ramp_up_wait = _dvfs_power_ramp_up(false, src_emc_entry, dst_emc_entry, needs_training, dst_clock_period); _ccfifo_write(EMC_DBG, emc_dbg_val, 0); // Step 14 - Bringup CKE pins. - EPRINTF("Step 14"); + EPRINTF("Paso 14"); u32 emc_pin_val_final = 0; if (needs_ca_combo_training) { @@ -3182,7 +3182,7 @@ static u32 _minerva_set_clock(emc_table_t *src_emc_entry, emc_table_t *dst_emc_e _ccfifo_write(EMC_PIN, emc_pin_val_final, 0); // Step 15 - Zqlatch. - EPRINTF("Step 15"); + EPRINTF("Paso 15"); if (!needs_ca_combo_training) { s32 zq_latch_dvfs_wait_time; @@ -3255,7 +3255,7 @@ static u32 _minerva_set_clock(emc_table_t *src_emc_entry, emc_table_t *dst_emc_e _ccfifo_write(EMC_INTSTATUS, 0, 10); // WAR: delay for zqlatch. // Step 16 - LPDDR4 Conditional training kickoff. - EPRINTF("Step 16"); + EPRINTF("Paso 16"); if (needs_tristate_training) { _ccfifo_write(EMC_INTSTATUS, 0, 1020000 / dst_clock_period); @@ -3346,7 +3346,7 @@ static u32 _minerva_set_clock(emc_table_t *src_emc_entry, emc_table_t *dst_emc_e } // Step 19.2. - EPRINTF("Step 19.2"); + EPRINTF("Paso 19.2"); if (bg_regulator_mode_change) { _ccfifo_write(EMC_DBG, emc_dbg_o | 2, 0); @@ -3370,12 +3370,12 @@ static u32 _minerva_set_clock(emc_table_t *src_emc_entry, emc_table_t *dst_emc_e } // Step 20 - Issue ref and optional QRST. - EPRINTF("Step 20"); + EPRINTF("Paso 20"); if (needs_tristate_training) _ccfifo_write(EMC_REF, 0, 0); // Step 21 - Restore ZCAL and ZCAL interval. - EPRINTF("Step 21"); + EPRINTF("Paso 21"); _ccfifo_write(EMC_DBG, emc_dbg_o | 2, 0); if (needs_tristate_training) @@ -3384,7 +3384,7 @@ static u32 _minerva_set_clock(emc_table_t *src_emc_entry, emc_table_t *dst_emc_e _ccfifo_write(EMC_CFG, dst_emc_entry->burst_regs.emc_cfg & 0xEFFFFFFF, 0); // Step 22 - Restore EMC_CFG_PIPE_CLK. - EPRINTF("Step 22"); + EPRINTF("Paso 22"); //if (needs_tristate_training && dram_type == DRAM_TYPE_LPDDR4)//////////////// if (needs_tristate_training) _ccfifo_write(EMC_SEL_DPD_CTRL, src_emc_entry->emc_sel_dpd_ctrl, 0); @@ -3401,7 +3401,7 @@ static u32 _minerva_set_clock(emc_table_t *src_emc_entry, emc_table_t *dst_emc_e } // Step 23 - Clock Change. - EPRINTF("Step 23"); + EPRINTF("Paso 23"); // During training save current clock. if (needs_tristate_training) { @@ -3426,7 +3426,7 @@ static u32 _minerva_set_clock(emc_table_t *src_emc_entry, emc_table_t *dst_emc_e return 4; // Clkchange handshake timeout error. // Step 24 - Save training results. - EPRINTF("Step 24"); + EPRINTF("Paso 24"); if (needs_tristate_training) { (void)MC(MC_EMEM_ADR_CFG); @@ -3439,7 +3439,7 @@ static u32 _minerva_set_clock(emc_table_t *src_emc_entry, emc_table_t *dst_emc_e } // Step 25 - Program MC updown regs. - EPRINTF("Step 25"); + EPRINTF("Paso 25"); if ((dst_emc_entry->rate_khz > src_emc_entry->rate_khz) && !needs_tristate_training) { for (u32 i = 0; dst_emc_entry->num_up_down > i; i++) @@ -3451,7 +3451,7 @@ static u32 _minerva_set_clock(emc_table_t *src_emc_entry, emc_table_t *dst_emc_e } // Step 26 - Restore ZCAL regs. - EPRINTF("Step 26"); + EPRINTF("Paso 26"); if (!in_self_refresh) { EMC(EMC_DBG) = emc_dbg_o | 2; @@ -3461,7 +3461,7 @@ static u32 _minerva_set_clock(emc_table_t *src_emc_entry, emc_table_t *dst_emc_e } // Step 27 - Restore EMC_CFG, FDPD regs. - EPRINTF("Step 27"); + EPRINTF("Paso 27"); EMC(EMC_DBG) = emc_dbg_o | 2; EMC(EMC_CFG) = dst_emc_entry->burst_regs.emc_cfg; EMC(EMC_DBG) = emc_dbg_o; @@ -3469,7 +3469,7 @@ static u32 _minerva_set_clock(emc_table_t *src_emc_entry, emc_table_t *dst_emc_e EMC(EMC_SEL_DPD_CTRL) = dst_emc_entry->emc_sel_dpd_ctrl; // Step 28 - Training recover. - EPRINTF("Step 28"); + EPRINTF("Paso 28"); if (needs_tristate_training) { EMC(EMC_DBG) = emc_dbg_o | 2; @@ -3493,14 +3493,14 @@ static u32 _minerva_set_clock(emc_table_t *src_emc_entry, emc_table_t *dst_emc_e EMC(EMC_DBG) = emc_dbg_o; // Step 29 - Power fix WAR. - EPRINTF("Step 29"); + EPRINTF("Paso 29"); EMC(EMC_PMACRO_CFG_PM_GLOBAL_0) = 0xFF0000; EMC(EMC_PMACRO_TRAINING_CTRL_0) = CH0_TRAINING_E_WRPTR; EMC(EMC_PMACRO_TRAINING_CTRL_1) = CH0_TRAINING_E_WRPTR; EMC(EMC_PMACRO_CFG_PM_GLOBAL_0) = 0; // Step 30 - Re-enable autocal. - EPRINTF("Step 30"); + EPRINTF("Paso 30"); if (needs_tristate_training) EMC(EMC_AUTO_CAL_CONFIG) = src_emc_entry->emc_auto_cal_config; else @@ -3591,7 +3591,7 @@ static void _minerva_train_patterns(emc_table_t *src_emc_entry, emc_table_t *dst _timing_update(dual_channel); } - EPRINTF("Trained"); + EPRINTF("Entrenada"); dst_emc_entry->trained = 1; } @@ -3764,7 +3764,7 @@ static u32 _minerva_set_rate(mtc_config_t *mtc_cfg) u32 dst_clk_src_emc = dst_emc_entry->clk_src_emc; freq_changed = _check_freq_changed(dst_rate_khz, dst_clk_src_emc, src_rate_khz, src_clk_src_emc); - EPRINTFARGS("Requested freq change from %d to %d.", src_rate_khz, dst_rate_khz); + EPRINTFARGS("Cambio frec. solicitado de %d a %d.", src_rate_khz, dst_rate_khz); // Get current clock source. emc_clk_src = CLOCK(CLK_RST_CONTROLLER_CLK_SOURCE_EMC) >> EMC_2X_CLK_SRC_SHIFT; @@ -3889,7 +3889,7 @@ static void _minerva_get_table(mtc_config_t *mtc_cfg) void _minerva_init(mtc_config_t *mtc_cfg, bdkParams_t bp) { - EPRINTF("-- Minerva Training Cell --"); + EPRINTF("-- Celda de Entrenamiento Minerva --"); train_ram_patterns = mtc_cfg->train_ram_patterns; @@ -3921,23 +3921,23 @@ void _minerva_init(mtc_config_t *mtc_cfg, bdkParams_t bp) switch (mtc_cfg->train_mode) { case OP_SWITCH: - EPRINTF("Switching.."); + EPRINTF("Cambiando.."); _minerva_set_rate(mtc_cfg); break; case OP_TRAIN: - EPRINTF("Training.."); + EPRINTF("Entrenando.."); _minerva_set_rate(mtc_cfg); break; case OP_TRAIN_SWITCH: - EPRINTF("Training and switching.."); + EPRINTF("Entrenando y cambiando.."); _minerva_set_rate(mtc_cfg); break; case OP_PERIODIC_TRAIN: - EPRINTF("Periodic training.."); + EPRINTF("Entrenamiento periodico.."); _minerva_do_periodic_compensation(mtc_cfg->current_emc_table); break; case OP_TEMP_COMP: - EPRINTF("Over temperature compensation.."); + EPRINTF("Compensacion sobretemperatura.."); _minerva_do_over_temp_compensation(mtc_cfg); break; } diff --git a/modules/simple_sample/module_sample.c b/modules/simple_sample/module_sample.c index a113644f..f909816d 100644 --- a/modules/simple_sample/module_sample.c +++ b/modules/simple_sample/module_sample.c @@ -11,7 +11,7 @@ void _modInit(void *moduleConfig, bdkParams_t bp) memcpy(&gfx_con, bp->gfxCon, sizeof(gfx_con_t)); memcpy(&gfx_ctxt, bp->gfxCtx, sizeof(gfx_ctxt_t)); - gfx_puts("Hello World!"); + gfx_puts("Hola Mundo!"); memcpy(bp->gfxCon, &gfx_con, sizeof(gfx_con_t)); memcpy(bp->gfxCtx, &gfx_ctxt, sizeof(gfx_ctxt_t)); diff --git a/nyx/nyx_gui/frontend/fe_emmc_tools.c b/nyx/nyx_gui/frontend/fe_emmc_tools.c index dcbf1e6b..c5d97902 100644 --- a/nyx/nyx_gui/frontend/fe_emmc_tools.c +++ b/nyx/nyx_gui/frontend/fe_emmc_tools.c @@ -165,8 +165,8 @@ static int _dump_emmc_verify(emmc_tool_gui_t *gui, sdmmc_storage_t *storage, u32 f_close(&fp); s_printf(gui->txt_buf, - "\n#FF0000 Hash file could not be written (error %d)!#\n" - "#FF0000 Aborting..#\n", res); + "\n#FF0000 Imposible escribir archivo de\nhash (error %d)!#\n" + "#FF0000 Abortando..#\n", res); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -210,8 +210,8 @@ static int _dump_emmc_verify(emmc_tool_gui_t *gui, sdmmc_storage_t *storage, u32 if (!sdmmc_storage_read(storage, lba_curr, num, bufEm)) { s_printf(gui->txt_buf, - "\n#FF0000 Failed to read %d blocks (@LBA %08X),#\n" - "#FF0000 from eMMC! Verification failed..#\n", + "\n#FF0000 Error al leer %d bloques (@LBA %08X),#\n" + "#FF0000 desde la eMMC! Verificacion fallo..#\n", num, lba_curr); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -230,8 +230,8 @@ static int _dump_emmc_verify(emmc_tool_gui_t *gui, sdmmc_storage_t *storage, u32 if (f_read_fast(&fp, bufSd, num << 9)) { s_printf(gui->txt_buf, - "\n#FF0000 Failed to read %d blocks (@LBA %08X),#\n" - "#FF0000 from SD card! Verification failed..#\n", + "\n#FF0000 Error al leer %d bloques (@LBA %08X),#\n" + "#FF0000 desde la SD! Verificacion fallo..#\n", num, lba_curr); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -251,8 +251,8 @@ static int _dump_emmc_verify(emmc_tool_gui_t *gui, sdmmc_storage_t *storage, u32 if (res) { s_printf(gui->txt_buf, - "\n#FF0000 SD & eMMC data (@LBA %08X) do not match!#\n" - "\n#FF0000 Verification failed..#\n", + "\n#FF0000 Datos de SD y eMMC (@LBA %08X)\nno coinciden!#\n" + "\n#FF0000 Verificacion fallo..#\n", lba_curr); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -302,7 +302,7 @@ static int _dump_emmc_verify(emmc_tool_gui_t *gui, sdmmc_storage_t *storage, u32 // Check for cancellation combo. if (btn_read_vol() == (BTN_VOL_UP | BTN_VOL_DOWN)) { - s_printf(gui->txt_buf, "#FFDD00 Verification was cancelled!#\n"); + s_printf(gui->txt_buf, "#FFDD00 Verificacion cancelada!#\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -328,7 +328,7 @@ static int _dump_emmc_verify(emmc_tool_gui_t *gui, sdmmc_storage_t *storage, u32 } else { - s_printf(gui->txt_buf, "\n#FFDD00 File not found or could not be loaded!#\n#FFDD00 Verification failed..#\n"); + s_printf(gui->txt_buf, "\n#FFDD00 Archivo no encontrado/cargado!#\n#FFDD00 Verificacion fallo..#\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -370,7 +370,7 @@ static int _dump_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_part, _get_valid_partition(§or_start, §or_size, &part_idx, true); if (!part_idx || !sector_size) { - s_printf(gui->txt_buf, "\n#FFDD00 Failed to find a partition...#\n"); + s_printf(gui->txt_buf, "\n#FFDD00 Error al encontrar particion...#\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -385,7 +385,7 @@ static int _dump_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_part, } } - s_printf(gui->txt_buf, "#96FF00 SD Card free space:# %d MiB\n#96FF00 Total backup size:# %d MiB\n\n", + s_printf(gui->txt_buf, "#96FF00 Espacio libre en SD:# %d MiB\n#96FF00 Tam. de backup:# %d MiB\n\n", (u32)(sd_fs.free_clst * sd_fs.csize >> SECTORS_TO_MIB_COEFF), totalSectors >> SECTORS_TO_MIB_COEFF); lv_label_ins_text(gui->label_info, LV_LABEL_POS_LAST, gui->txt_buf); @@ -408,13 +408,13 @@ static int _dump_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_part, { isSmallSdCard = true; - s_printf(gui->txt_buf, "\n#FFBA00 Free space is smaller than backup size.#\n"); + s_printf(gui->txt_buf, "\n#FFBA00 Espacio libre insuficiente para backup.#\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); if (!maxSplitParts) { - s_printf(gui->txt_buf, "#FFDD00 Not enough free space for Partial Backup!#\n"); + s_printf(gui->txt_buf, "#FFDD00 Sin espacio libre para backup parcial!#\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -424,7 +424,7 @@ static int _dump_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_part, // Check if we are continuing a previous raw eMMC or USER partition backup in progress. if (f_open(&partialIdxFp, partialIdxFilename, FA_READ) == FR_OK && totalSectors > (FAT32_FILESIZE_LIMIT / EMMC_BLOCKSIZE)) { - s_printf(gui->txt_buf, "\n#AEFD14 Partial Backup in progress. Continuing...#\n"); + s_printf(gui->txt_buf, "\n#AEFD14 Backup parcial en marcha. Continuando...#\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -437,7 +437,7 @@ static int _dump_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_part, if (!maxSplitParts) { - s_printf(gui->txt_buf, "\n#FFDD00 Not enough free space for Partial Backup!#\n"); + s_printf(gui->txt_buf, "\n#FFDD00 Sin espacio libre para backup parcial!#\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -449,7 +449,7 @@ static int _dump_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_part, } else if (isSmallSdCard) { - s_printf(gui->txt_buf, "\n#FFBA00 Partial Backup enabled (%d MiB parts)...#\n", multipartSplitSize >> 20); + s_printf(gui->txt_buf, "\n#FFBA00 Backup parcial activado\n(particiones de %d MiB)...#\n", multipartSplitSize >> 20); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); } @@ -472,8 +472,8 @@ static int _dump_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_part, f_close(&fp); lv_obj_t *warn_mbox_bg = create_mbox_text( - "#FFDD00 An existing backup has been detected!#\n\n" - "Press #FF8000 POWER# to Continue.\nPress #FF8000 VOL# to abort.", false); + "#FFDD00 Detectado backup existente!#\n\n" + "Pulsa #FF8000 POWER# para Continuar.\nPulsa #FF8000 VOL# para abortar.", false); manual_system_maintenance(true); if (!(btn_wait() & BTN_POWER)) @@ -484,7 +484,7 @@ static int _dump_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_part, lv_obj_del(warn_mbox_bg); } - s_printf(gui->txt_buf, "#96FF00 Filepath:#\n%s\n#96FF00 Filename:# #FF8000 %s#", + s_printf(gui->txt_buf, "#96FF00 Ruta:#\n%s\n#96FF00 Nombre:# #FF8000 %s#", gui->base_path, outFilename + strlen(gui->base_path)); lv_label_ins_text(gui->label_info, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -492,7 +492,7 @@ static int _dump_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_part, res = f_open(&fp, outFilename, FA_CREATE_ALWAYS | FA_WRITE); if (res) { - s_printf(gui->txt_buf, "\n#FF0000 Error (%d) while creating#\n#FFDD00 %s#\n", res, outFilename); + s_printf(gui->txt_buf, "\n#FF0000 Error (%d) al crear#\n#FFDD00 %s#\n", res, outFilename); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -540,7 +540,7 @@ static int _dump_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_part, // Verify part. if (_dump_emmc_verify(gui, storage, lbaStartPart, outFilename, part)) { - s_printf(gui->txt_buf, "#FFDD00 Please try again...#\n"); + s_printf(gui->txt_buf, "#FFDD00 Intentalo de nuevo...#\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -563,7 +563,7 @@ static int _dump_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_part, } else { - s_printf(gui->txt_buf, "\n#FF0000 Error creating partial.idx file!#\n"); + s_printf(gui->txt_buf, "#FF0000 Error al crear partial.idx!#\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -574,12 +574,12 @@ static int _dump_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_part, if (currPartIdx >= maxSplitParts) { create_mbox_text( - "#96FF00 Partial Backup in progress!#\n\n" - "#96FF00 1.# Press OK to unmount SD Card.\n" - "#96FF00 2.# Remove SD Card and move files to free space.\n" - "#FFDD00 Don\'t move the partial.idx file!#\n" - "#96FF00 3.# Re-insert SD Card.\n" - "#96FF00 4.# Select the SAME option again to continue.", true); + "#96FF00 Backup parcial en progreso!#\n\n" + "#96FF00 1.# Pulsa OK para desmontar la SD.\n" + "#96FF00 2.# Retire la SD y libere espacio en ella.\n" + "#FFDD00 No quites el archivo partial.idx de la SD!#\n" + "#96FF00 3.# Reinserta la SD.\n" + "#96FF00 4.# Selecciona la MISMA opcion para continuar.", true); partial_sd_full_unmount = true; @@ -598,7 +598,7 @@ static int _dump_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_part, res = f_open(&fp, outFilename, FA_CREATE_ALWAYS | FA_WRITE); if (res) { - s_printf(gui->txt_buf, "\n#FF0000 Error (%d) while creating#\n#FFDD00 %s#\n", res, outFilename); + s_printf(gui->txt_buf, "\n#FF0000 Error (%d) al crear#\n#FFDD00 %s#\n", res, outFilename); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -623,8 +623,8 @@ static int _dump_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_part, while (res_read) { s_printf(gui->txt_buf, - "\n#FFDD00 Error reading %d blocks @ LBA %08X,#\n" - "#FFDD00 from eMMC (try %d). #", + "\n#FFDD00 Error leyendo %d bloques @ LBA %08X,#\n" + "#FFDD00 desde la eMMC (intento %d). #", num, lba_curr, ++retryCount); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -632,7 +632,7 @@ static int _dump_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_part, msleep(150); if (retryCount >= 3) { - s_printf(gui->txt_buf, "#FF0000 Aborting...#\nPlease try again...\n"); + s_printf(gui->txt_buf, "#FF0000 Abortando...#\nIntentalo de nuevo...\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -644,7 +644,7 @@ static int _dump_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_part, } else { - s_printf(gui->txt_buf, "#FFDD00 Retrying...#\n"); + s_printf(gui->txt_buf, "#FFDD00 Reintentando...#\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); } @@ -655,7 +655,7 @@ static int _dump_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_part, if (res) { - s_printf(gui->txt_buf, "\n#FF0000 Fatal error (%d) when writing to SD Card#\nPlease try again...\n", res); + s_printf(gui->txt_buf, "\n#FF0000 Error (%d) al escribir en la SD#\nIntentalo de nuevo...\n", res); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -693,7 +693,7 @@ static int _dump_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_part, // Check for cancellation combo. if (btn_read_vol() == (BTN_VOL_UP | BTN_VOL_DOWN)) { - s_printf(gui->txt_buf, "\n#FFDD00 The backup was cancelled!#\n"); + s_printf(gui->txt_buf, "\n#FFDD00 El backup fue cancelado!#\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -719,7 +719,7 @@ static int _dump_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_part, // Verify last part or single file backup. if (_dump_emmc_verify(gui, storage, lbaStartPart, outFilename, part)) { - s_printf(gui->txt_buf, "\n#FFDD00 Please try again...#\n"); + s_printf(gui->txt_buf, "\n#FFDD00 Intentalo de nuevo...#\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -736,8 +736,8 @@ static int _dump_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_part, f_unlink(partialIdxFilename); create_mbox_text( - "#96FF00 Partial Backup done!#\n\n" - "You can now join the files if needed\nand get the complete eMMC RAW GPP backup.", true); + "#96FF00 Backup Parcial hecho!#\n\n" + "Ya puedes unir los archivos si lo deseas\ny tener el backup completo eMMC RAW GPP.", true); partial_sd_full_unmount = true; } @@ -756,12 +756,12 @@ void dump_emmc_selected(emmcPartType_t dumpType, emmc_tool_gui_t *gui) txt_buf[0] = 0; lv_label_set_text(gui->label_log, txt_buf); - lv_label_set_text(gui->label_info, "Checking for available free space..."); + lv_label_set_text(gui->label_info, "Comprobando espacio libre..."); manual_system_maintenance(true); if (!sd_mount()) { - lv_label_set_text(gui->label_info, "#FFDD00 Failed to init SD!#"); + lv_label_set_text(gui->label_info, "#FFDD00 Error al iniciar la SD!#"); goto out; } @@ -770,7 +770,7 @@ void dump_emmc_selected(emmcPartType_t dumpType, emmc_tool_gui_t *gui) if (!emmc_initialize(false)) { - lv_label_set_text(gui->label_info, "#FFDD00 Failed to init eMMC!#"); + lv_label_set_text(gui->label_info, "#FFDD00 Error al iniciar la eMMC!#"); goto out; } @@ -804,7 +804,7 @@ void dump_emmc_selected(emmcPartType_t dumpType, emmc_tool_gui_t *gui) bootPart.name[4] = (u8)('0' + i); bootPart.name[5] = 0; - s_printf(txt_buf, "#00DDFF %02d: %s#\n#00DDFF Range: 0x%08X - 0x%08X#\n\n", + s_printf(txt_buf, "#00DDFF %02d: %s#\n#00DDFF Rango: 0x%08X - 0x%08X#\n\n", i, bootPart.name, bootPart.lba_start, bootPart.lba_end); lv_label_set_text(gui->label_info, txt_buf); s_printf(txt_buf, "%02d: %s... ", i, bootPart.name); @@ -822,9 +822,9 @@ void dump_emmc_selected(emmcPartType_t dumpType, emmc_tool_gui_t *gui) res = _dump_emmc_part(gui, sdPath, i, &emmc_storage, &bootPart); if (!res) - s_printf(txt_buf, "#FFDD00 Failed!#\n"); + s_printf(txt_buf, "#FFDD00 Fallo!#\n"); else - s_printf(txt_buf, "Done!\n"); + s_printf(txt_buf, "Hecho!\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, txt_buf); manual_system_maintenance(true); @@ -850,7 +850,7 @@ void dump_emmc_selected(emmcPartType_t dumpType, emmc_tool_gui_t *gui) if ((dumpType & PART_SYSTEM) == 0 && strcmp(part->name, "USER")) continue; - s_printf(txt_buf, "#00DDFF %02d: %s#\n#00DDFF Range: 0x%08X - 0x%08X#\n\n", + s_printf(txt_buf, "#00DDFF %02d: %s#\n#00DDFF Rango: 0x%08X - 0x%08X#\n\n", i, part->name, part->lba_start, part->lba_end); lv_label_set_text(gui->label_info, txt_buf); s_printf(txt_buf, "%02d: %s... ", i, part->name); @@ -863,12 +863,12 @@ void dump_emmc_selected(emmcPartType_t dumpType, emmc_tool_gui_t *gui) // If a part failed, don't continue. if (!res) { - s_printf(txt_buf, "#FFDD00 Failed!#\n"); + s_printf(txt_buf, "#FFDD00 Fallo!#\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, txt_buf); break; } else - s_printf(txt_buf, "Done!\n"); + s_printf(txt_buf, "Hecho!\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, txt_buf); manual_system_maintenance(true); @@ -887,7 +887,7 @@ void dump_emmc_selected(emmcPartType_t dumpType, emmc_tool_gui_t *gui) rawPart.lba_end = RAW_AREA_NUM_SECTORS - 1; strcpy(rawPart.name, "rawnand.bin"); { - s_printf(txt_buf, "#00DDFF %02d: %s#\n#00DDFF Range: 0x%08X - 0x%08X#\n\n", + s_printf(txt_buf, "#00DDFF %02d: %s#\n#00DDFF Rango: 0x%08X - 0x%08X#\n\n", i, rawPart.name, rawPart.lba_start, rawPart.lba_end); lv_label_set_text(gui->label_info, txt_buf); s_printf(txt_buf, "%02d: %s... ", i, rawPart.name); @@ -905,9 +905,9 @@ void dump_emmc_selected(emmcPartType_t dumpType, emmc_tool_gui_t *gui) res = _dump_emmc_part(gui, sdPath, 2, &emmc_storage, &rawPart); if (!res) - s_printf(txt_buf, "#FFDD00 Failed!#\n"); + s_printf(txt_buf, "#FFDD00 Fallo!#\n"); else - s_printf(txt_buf, "Done!\n"); + s_printf(txt_buf, "Hecho!\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, txt_buf); manual_system_maintenance(true); @@ -919,11 +919,11 @@ void dump_emmc_selected(emmcPartType_t dumpType, emmc_tool_gui_t *gui) emmc_end(); if (res && n_cfg.verification && !gui->raw_emummc) - s_printf(txt_buf, "Time taken: %dm %ds.\n#96FF00 Finished and verified!#", timer / 60, timer % 60); + s_printf(txt_buf, "Tiempo: %dm %ds.\n#96FF00 Finalizado y verificado!#", timer / 60, timer % 60); else if (res) - s_printf(txt_buf, "Time taken: %dm %ds.\nFinished!", timer / 60, timer % 60); + s_printf(txt_buf, "Tiempo: %dm %ds.\nFinalizado!", timer / 60, timer % 60); else - s_printf(txt_buf, "Time taken: %dm %ds.", timer / 60, timer % 60); + s_printf(txt_buf, "Tiempo: %dm %ds.", timer / 60, timer % 60); lv_label_set_text(gui->label_finish, txt_buf); @@ -981,7 +981,7 @@ static int _restore_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_pa _update_filename(outFilename, sdPathLen, numSplitParts); - s_printf(gui->txt_buf, "#96FF00 Filepath:#\n%s\n#96FF00 Filename:# #FF8000 %s#", + s_printf(gui->txt_buf, "#96FF00 Ruta:#\n%s\n#96FF00 Nombre:# #FF8000 %s#", gui->base_path, outFilename + strlen(gui->base_path)); lv_label_ins_text(gui->label_info, LV_LABEL_POS_LAST, gui->txt_buf); @@ -999,7 +999,7 @@ static int _restore_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_pa if ((u32)((u64)totalCheckFileSize >> (u64)9) > totalSectors) { - s_printf(gui->txt_buf, "\n#FF8000 Size of SD Card split backup exceeds#\n#FF8000 eMMC's selected part size!#\n#FFDD00 Aborting...#"); + s_printf(gui->txt_buf, "#FF8000 El tam. del backup dividido de la SD#\n#FF8000 supera el tam. de la part. de la eMMC!#\n#FFDD00 Abortando...#"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -1009,7 +1009,7 @@ static int _restore_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_pa { if (!gui->raw_emummc) { - s_printf(gui->txt_buf, "\n#FFDD00 Error (%d) file not found#\n#FFDD00 %s.#\n\n", res, outFilename); + s_printf(gui->txt_buf, "#FFDD00 Error (%d) arch. no encontrado#\n#FFDD00 %s.#\n\n", res, outFilename); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -1027,7 +1027,7 @@ static int _restore_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_pa // Restore folder is empty. if (!numSplitParts) { - s_printf(gui->txt_buf, "\n#FFDD00 Restore folder is empty.#\n\n"); + s_printf(gui->txt_buf, "#FFDD00 Carpeta Restore vacia.#\n\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -1040,7 +1040,7 @@ static int _restore_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_pa if (check_4MB_aligned && (((u64)fno.fsize) % SZ_4M)) { - s_printf(gui->txt_buf, "\n#FFDD00 The split file must be a#\n#FFDD00 multiple of 4 MiB.#\n#FFDD00 Aborting...#"); + s_printf(gui->txt_buf, "#FFDD00 El archivo dividido debe#\n#FFDD00 ser multiplo de 4 MiB#\n#FFDD00 Abortando...#"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -1053,22 +1053,22 @@ static int _restore_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_pa numSplitParts++; } - s_printf(gui->txt_buf, "%X sectors total.\n", (u32)((u64)totalCheckFileSize >> (u64)9)); + s_printf(gui->txt_buf, "%X sectores en total.\n", (u32)((u64)totalCheckFileSize >> (u64)9)); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); if ((u32)((u64)totalCheckFileSize >> (u64)9) != totalSectors) { lv_obj_t *warn_mbox_bg = create_mbox_text( - "#FF8000 Size of SD Card split backup does not match#\n#FF8000 eMMC's selected part size!#\n\n" - "#FFDD00 The backup might be corrupted,#\n#FFDD00 or missing files!#\n#FFDD00 Aborting is suggested!#\n\n" - "Press #FF8000 POWER# to Continue.\nPress #FF8000 VOL# to abort.", false); + "#FF8000 El tam. del backup dividio de la SD no#\n#FF8000 coincide con la part. de la eMMC!#\n\n" + "#FFDD00 El backup podria estar corrupto,#\n#FFDD00 o faltar archivos!#\n#FFDD00 Se sugiere abortar!#\n\n" + "Pulsa #FF8000 POWER# para continuar.\nPulsa #FF8000 VOL# para abortar.", false); manual_system_maintenance(true); if (!(btn_wait() & BTN_POWER)) { lv_obj_del(warn_mbox_bg); - s_printf(gui->txt_buf, "\n#FF0000 Size of SD Card split backup does not match#\n#FF0000 eMMC's selected part size!#\n"); + s_printf(gui->txt_buf, "#FF0000 El tam. del backup dividio de la SD no#\n#FF0000 coincide con la part. de la eMMC!#\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -1097,7 +1097,7 @@ static int _restore_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_pa } else { - s_printf(gui->txt_buf, "#96FF00 Filepath:#\n%s\n#96FF00 Filename:# #FF8000 %s#", + s_printf(gui->txt_buf, "#96FF00 Ruta:#\n%s\n#96FF00 Nombre:# #FF8000 %s#", gui->base_path, outFilename + strlen(gui->base_path)); lv_label_ins_text(gui->label_info, LV_LABEL_POS_LAST, gui->txt_buf); } @@ -1106,13 +1106,13 @@ static int _restore_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_pa { if (res != FR_NO_FILE) { - s_printf(gui->txt_buf, "\n#FF0000 Error (%d) while opening file. Continuing...#\n", res); + s_printf(gui->txt_buf, "\n#FF0000 Error (%d) abriendo archivo. Continuando...#\n", res); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); } else { - s_printf(gui->txt_buf, "\n#FFDD00 Error (%d) file not found. Continuing...#\n", res); + s_printf(gui->txt_buf, "\n#FFDD00 Error (%d) arch. no encontrado. Continuando...#\n", res); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); } @@ -1123,7 +1123,7 @@ static int _restore_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_pa { if (((u32)((u64)f_size(&fp) >> (u64)9)) > totalSectors) { - s_printf(gui->txt_buf, "\n#FF8000 Size of SD Card backup exceeds#\n#FF8000 eMMC's selected part size!#\n#FFDD00 Aborting...#"); + s_printf(gui->txt_buf, "#FF8000 El tam. del backup de la SD supera#\n#FF8000 el tam. de la part. de la eMMC!#\n#FFDD00 Abortando...#"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -1134,15 +1134,15 @@ static int _restore_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_pa else if (!gui->raw_emummc) { lv_obj_t *warn_mbox_bg = create_mbox_text( - "#FF8000 Size of the SD Card backup does not match#\n#FF8000 eMMC's selected part size!#\n\n" - "#FFDD00 The backup might be corrupted!#\n#FFDD00 Aborting is suggested!#\n\n" - "Press #FF8000 POWER# to Continue.\nPress #FF8000 VOL# to abort.", false); + "#FF8000 El tam. del backup de la SD no coincide#\n#FF8000 con el de la part. de eMMC seleccionada#\n\n" + "#FFDD00 El backup podria estar corrupto!#\n#FFDD00 Se sugiere abortar!#\n\n" + "Pulsa #FF8000 POWER# para continuar.\nPulsa #FF8000 VOL# para abortar.", false); manual_system_maintenance(true); if (!(btn_wait() & BTN_POWER)) { lv_obj_del(warn_mbox_bg); - s_printf(gui->txt_buf, "\n#FF0000 Size of the SD Card backup does not match#\n#FF0000 eMMC's selected part size.#\n"); + s_printf(gui->txt_buf, "\n#FF0000 El tam. del backup de la SD no coincide#\n#FF0000 con el de la part. de eMMC seleccionada#\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -1159,7 +1159,7 @@ static int _restore_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_pa else { fileSize = (u64)f_size(&fp); - s_printf(gui->txt_buf, "\nTotal restore size: %d MiB.\n", + s_printf(gui->txt_buf, "\nTam. total de Restauracion: %d MiB.\n", (u32)((use_multipart ? (u64)totalCheckFileSize : fileSize) >> (u64)9) >> SECTORS_TO_MIB_COEFF); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -1186,7 +1186,7 @@ static int _restore_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_pa _get_valid_partition(§or_start, §or_size, &part_idx, false); if (!part_idx || !sector_size) { - s_printf(gui->txt_buf, "\n#FFDD00 Failed to find a partition...#\n"); + s_printf(gui->txt_buf, "\n#FFDD00 Error al encontrar particion...#\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -1213,7 +1213,7 @@ static int _restore_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_pa // Verify part. if (_dump_emmc_verify(gui, storage, lbaStartPart, outFilename, part)) { - s_printf(gui->txt_buf, "\n#FFDD00 Please try again...#\n"); + s_printf(gui->txt_buf, "\n#FFDD00 Intentalo de nuevo...#\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -1237,7 +1237,7 @@ static int _restore_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_pa res = f_open(&fp, outFilename, FA_READ); if (res) { - s_printf(gui->txt_buf, "\n#FF0000 Error (%d) while opening file#\n#FFDD00 %s!#\n", res, outFilename); + s_printf(gui->txt_buf, "\n#FF0000 Error (%d) abriendo archivo#\n#FFDD00 %s!#\n", res, outFilename); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -1257,9 +1257,9 @@ static int _restore_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_pa if (res) { s_printf(gui->txt_buf, - "\n#FF0000 Fatal error (%d) when reading from SD!#\n" - "#FF0000 This device may be in an inoperative state!#\n" - "#FFDD00 Please try again now!#\n", res); + "\n#FF0000 Error fatal (%d) al leer desde la SD!#\n" + "#FF0000 La consola puede estar inoperativa ahora!#\n" + "#FFDD00 Intentalo de nuevo AHORA!#\n", res); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -1277,8 +1277,8 @@ static int _restore_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_pa while (res) { s_printf(gui->txt_buf, - "\n#FFDD00 Error writing %d blocks @ LBA %08X,#\n" - "#FFDD00 from eMMC (try %d). #", + "\n#FFDD00 Error escribiendo %d bloques @ LBA %08X,#\n" + "#FFDD00 desde la eMMC (intento %d). #", num, lba_curr, ++retryCount); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -1286,9 +1286,9 @@ static int _restore_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_pa msleep(150); if (retryCount >= 3) { - s_printf(gui->txt_buf, "#FF0000 Aborting...#\n" - "#FF0000 This device may be in an inoperative state!#\n" - "#FFDD00 Please try again now!#\n"); + s_printf(gui->txt_buf, "#FF0000 Abortando...#\n" + "#FF0000 La consola puede estar inoperativa ahora!#\n" + "#FFDD00 Intentalo de nuevo AHORA!#\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -1298,7 +1298,7 @@ static int _restore_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_pa } else { - s_printf(gui->txt_buf, "#FFDD00 Retrying...#\n"); + s_printf(gui->txt_buf, "#FFDD00 Reintentando...#\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); } @@ -1335,7 +1335,7 @@ static int _restore_emmc_part(emmc_tool_gui_t *gui, char *sd_path, int active_pa // Verify restored data. if (_dump_emmc_verify(gui, storage, lbaStartPart, outFilename, part)) { - s_printf(gui->txt_buf, "#FFDD00 Please try again...#\n"); + s_printf(gui->txt_buf, "#FFDD00 Intentalo de nuevo...#\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -1380,13 +1380,13 @@ void restore_emmc_selected(emmcPartType_t restoreType, emmc_tool_gui_t *gui) manual_system_maintenance(true); s_printf(txt_buf, - "#FFDD00 This may render the device inoperative!#\n\n" - "#FFDD00 Are you really sure?#"); + "#FFDD00 Esto puede dejar la consola inoperativa!#\n\n" + "#FFDD00 Estas seguro?#"); if ((restoreType & PART_BOOT) || (restoreType & PART_GP_ALL)) { s_printf(txt_buf + strlen(txt_buf), - "\n\nThe mode you selected will only restore\nthe partitions that it can find.\n" - "If it is not found, it will be skipped\nand continue with the next."); + "\n\nEl modo seleccionado solo restaura las\nparticiones que pueda encontrar.\n" + "Si no la encuentra, la saltara y\ncontinuara con la siguiente."); } u32 orig_msg_len = strlen(txt_buf); @@ -1397,20 +1397,20 @@ void restore_emmc_selected(emmcPartType_t restoreType, emmc_tool_gui_t *gui) u8 failsafe_wait = 6; while (failsafe_wait > 0) { - s_printf(txt_buf + orig_msg_len, "\n\n#888888 Wait... (%ds)#", failsafe_wait); + s_printf(txt_buf + orig_msg_len, "\n\n#888888 Espere... (%ds)#", failsafe_wait); lv_mbox_set_text(warn_mbox, txt_buf); msleep(1000); manual_system_maintenance(true); failsafe_wait--; } - s_printf(txt_buf + orig_msg_len, "\n\nPress #FF8000 POWER# to Continue.\nPress #FF8000 VOL# to abort."); + s_printf(txt_buf + orig_msg_len, "\n\nPulsa #FF8000 POWER# para continuar.\nPulsa #FF8000 VOL# para abortar."); lv_mbox_set_text(warn_mbox, txt_buf); manual_system_maintenance(true); if (!(btn_wait() & BTN_POWER)) { - lv_label_set_text(gui->label_info, "#FFDD00 Restore operation was aborted!#"); + lv_label_set_text(gui->label_info, "#FFDD00 Operacion restaurar abortada!#"); lv_obj_del(warn_mbox_bg); goto out; } @@ -1419,13 +1419,13 @@ void restore_emmc_selected(emmcPartType_t restoreType, emmc_tool_gui_t *gui) if (!sd_mount()) { - lv_label_set_text(gui->label_info, "#FFDD00 Failed to init SD!#"); + lv_label_set_text(gui->label_info, "#FFDD00 Error al iniciar la SD!#"); goto out; } if (!emmc_initialize(false)) { - lv_label_set_text(gui->label_info, "#FFDD00 Failed to init eMMC!#"); + lv_label_set_text(gui->label_info, "#FFDD00 Error al iniciar la eMMC!#"); goto out; } @@ -1455,7 +1455,7 @@ void restore_emmc_selected(emmcPartType_t restoreType, emmc_tool_gui_t *gui) bootPart.name[4] = (u8)('0' + i); bootPart.name[5] = 0; - s_printf(txt_buf, "#00DDFF %02d: %s#\n#00DDFF Range: 0x%08X - 0x%08X#\n\n\n\n\n", + s_printf(txt_buf, "#00DDFF %02d: %s#\n#00DDFF Rango: 0x%08X - 0x%08X#\n\n\n\n\n", i, bootPart.name, bootPart.lba_start, bootPart.lba_end); lv_label_set_text(gui->label_info, txt_buf); s_printf(txt_buf, "%02d: %s... ", i, bootPart.name); @@ -1468,9 +1468,9 @@ void restore_emmc_selected(emmcPartType_t restoreType, emmc_tool_gui_t *gui) res = _restore_emmc_part(gui, sdPath, i, &emmc_storage, &bootPart, false); if (!res) - s_printf(txt_buf, "#FFDD00 Failed!#\n"); + s_printf(txt_buf, "#FFDD00 Fallo!#\n"); else - s_printf(txt_buf, "Done!\n"); + s_printf(txt_buf, "Hecho!\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, txt_buf); manual_system_maintenance(true); @@ -1489,7 +1489,7 @@ void restore_emmc_selected(emmcPartType_t restoreType, emmc_tool_gui_t *gui) emmc_gpt_parse(&gpt); LIST_FOREACH_ENTRY(emmc_part_t, part, &gpt, link) { - s_printf(txt_buf, "#00DDFF %02d: %s#\n#00DDFF Range: 0x%08X - 0x%08X#\n\n\n\n\n", + s_printf(txt_buf, "#00DDFF %02d: %s#\n#00DDFF Rango: 0x%08X - 0x%08X#\n\n\n\n\n", i, part->name, part->lba_start, part->lba_end); lv_label_set_text(gui->label_info, txt_buf); s_printf(txt_buf, "%02d: %s... ", i, part->name); @@ -1501,9 +1501,9 @@ void restore_emmc_selected(emmcPartType_t restoreType, emmc_tool_gui_t *gui) res = _restore_emmc_part(gui, sdPath, 0, &emmc_storage, part, false); if (!res) - s_printf(txt_buf, "#FFDD00 Failed!#\n"); + s_printf(txt_buf, "#FFDD00 Fallo!#\n"); else - s_printf(txt_buf, "Done!\n"); + s_printf(txt_buf, "Hecho!\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, txt_buf); manual_system_maintenance(true); @@ -1522,7 +1522,7 @@ void restore_emmc_selected(emmcPartType_t restoreType, emmc_tool_gui_t *gui) rawPart.lba_end = RAW_AREA_NUM_SECTORS - 1; strcpy(rawPart.name, "rawnand.bin"); { - s_printf(txt_buf, "#00DDFF %02d: %s#\n#00DDFF Range: 0x%08X - 0x%08X#\n\n\n\n\n", + s_printf(txt_buf, "#00DDFF %02d: %s#\n#00DDFF Rango: 0x%08X - 0x%08X#\n\n\n\n\n", i, rawPart.name, rawPart.lba_start, rawPart.lba_end); lv_label_set_text(gui->label_info, txt_buf); s_printf(txt_buf, "%02d: %s... ", i, rawPart.name); @@ -1534,9 +1534,9 @@ void restore_emmc_selected(emmcPartType_t restoreType, emmc_tool_gui_t *gui) res = _restore_emmc_part(gui, sdPath, 2, &emmc_storage, &rawPart, true); if (!res) - s_printf(txt_buf, "#FFDD00 Failed!#\n"); + s_printf(txt_buf, "#FFDD00 Fallo!#\n"); else - s_printf(txt_buf, "Done!\n"); + s_printf(txt_buf, "Hecho!\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, txt_buf); manual_system_maintenance(true); @@ -1547,11 +1547,11 @@ void restore_emmc_selected(emmcPartType_t restoreType, emmc_tool_gui_t *gui) emmc_end(); if (res && n_cfg.verification && !gui->raw_emummc) - s_printf(txt_buf, "Time taken: %dm %ds.\n#96FF00 Finished and verified!#", timer / 60, timer % 60); + s_printf(txt_buf, "Tiempo: %dm %ds.\n#96FF00 Finalizado y verificado!#", timer / 60, timer % 60); else if (res) - s_printf(txt_buf, "Time taken: %dm %ds.\nFinished!", timer / 60, timer % 60); + s_printf(txt_buf, "Tiempo: %dm %ds.\nFinalizado!", timer / 60, timer % 60); else - s_printf(txt_buf, "Time taken: %dm %ds.", timer / 60, timer % 60); + s_printf(txt_buf, "Tiempo: %dm %ds.", timer / 60, timer % 60); lv_label_set_text(gui->label_finish, txt_buf); diff --git a/nyx/nyx_gui/frontend/fe_emummc_tools.c b/nyx/nyx_gui/frontend/fe_emummc_tools.c index 0da4b0ec..61fe6392 100644 --- a/nyx/nyx_gui/frontend/fe_emummc_tools.c +++ b/nyx/nyx_gui/frontend/fe_emummc_tools.c @@ -156,7 +156,7 @@ static int _dump_emummc_file_part(emmc_tool_gui_t *gui, char *sd_path, sdmmc_sto char *outFilename = sd_path; u32 sdPathLen = strlen(sd_path); - s_printf(gui->txt_buf, "#96FF00 SD Card free space:# %d MiB\n#96FF00 Total size:# %d MiB\n\n", + s_printf(gui->txt_buf, "#96FF00 Espacio libre en SD:# %d MiB\n#96FF00 Tam. Total:# %d MiB\n\n", (u32)(sd_fs.free_clst * sd_fs.csize >> SECTORS_TO_MIB_COEFF), totalSectors >> SECTORS_TO_MIB_COEFF); lv_label_ins_text(gui->label_info, LV_LABEL_POS_LAST, gui->txt_buf); @@ -169,7 +169,7 @@ static int _dump_emummc_file_part(emmc_tool_gui_t *gui, char *sd_path, sdmmc_sto // Check if the USER partition or the RAW eMMC fits the sd card free space. if (totalSectors > (sd_fs.free_clst * sd_fs.csize)) { - s_printf(gui->txt_buf, "\n#FFDD00 Not enough free space for file based emuMMC!#\n"); + s_printf(gui->txt_buf, "\n#FFDD00 Sin espacio para EmuNAND basada en archivos!#\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -187,7 +187,7 @@ static int _dump_emummc_file_part(emmc_tool_gui_t *gui, char *sd_path, sdmmc_sto } FIL fp; - s_printf(gui->txt_buf, "#96FF00 Filepath:#\n%s\n#96FF00 Filename:# #FF8000 %s#", + s_printf(gui->txt_buf, "#96FF00 Ruta:#\n%s\n#96FF00 Nombre:# #FF8000 %s#", gui->base_path, outFilename + strlen(gui->base_path)); lv_label_ins_text(gui->label_info, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -195,7 +195,7 @@ static int _dump_emummc_file_part(emmc_tool_gui_t *gui, char *sd_path, sdmmc_sto res = f_open(&fp, outFilename, FA_CREATE_ALWAYS | FA_WRITE); if (res) { - s_printf(gui->txt_buf, "\n#FF0000 Error (%d) while creating#\n#FFDD00 %s#\n", res, outFilename); + s_printf(gui->txt_buf, "\n#FF0000 Error (%d) creando#\n#FFDD00 %s#\n", res, outFilename); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -241,7 +241,7 @@ static int _dump_emummc_file_part(emmc_tool_gui_t *gui, char *sd_path, sdmmc_sto res = f_open(&fp, outFilename, FA_CREATE_ALWAYS | FA_WRITE); if (res) { - s_printf(gui->txt_buf, "\n#FF0000 Error (%d) while creating#\n#FFDD00 %s#\n", res, outFilename); + s_printf(gui->txt_buf, "\n#FF0000 Error (%d) creando#\n#FFDD00 %s#\n", res, outFilename); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -257,7 +257,7 @@ static int _dump_emummc_file_part(emmc_tool_gui_t *gui, char *sd_path, sdmmc_sto // Check for cancellation combo. if (btn_read_vol() == (BTN_VOL_UP | BTN_VOL_DOWN)) { - s_printf(gui->txt_buf, "\n#FFDD00 The emuMMC was cancelled!#\n"); + s_printf(gui->txt_buf, "\n#FFDD00 La EmuNAND fue cancelada!#\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -276,8 +276,8 @@ static int _dump_emummc_file_part(emmc_tool_gui_t *gui, char *sd_path, sdmmc_sto while (!sdmmc_storage_read(storage, lba_curr, num, buf)) { s_printf(gui->txt_buf, - "\n#FFDD00 Error reading %d blocks @ LBA %08X,#\n" - "#FFDD00 from eMMC (try %d). #", + "\n#FFDD00 Error leyendo %d bloques @ LBA %08X,#\n" + "#FFDD00 desde eMMC (intento %d). #", num, lba_curr, ++retryCount); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -285,7 +285,7 @@ static int _dump_emummc_file_part(emmc_tool_gui_t *gui, char *sd_path, sdmmc_sto msleep(150); if (retryCount >= 3) { - s_printf(gui->txt_buf, "#FF0000 Aborting...#\nPlease try again...\n"); + s_printf(gui->txt_buf, "#FF0000 Abortando...#\nIntentalo de nuevo...\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -297,7 +297,7 @@ static int _dump_emummc_file_part(emmc_tool_gui_t *gui, char *sd_path, sdmmc_sto } else { - s_printf(gui->txt_buf, "#FFDD00 Retrying...#"); + s_printf(gui->txt_buf, "#FFDD00 Reintentando...#"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); } @@ -311,7 +311,7 @@ static int _dump_emummc_file_part(emmc_tool_gui_t *gui, char *sd_path, sdmmc_sto if (res) { - s_printf(gui->txt_buf, "\n#FF0000 Fatal error (%d) when writing to SD Card#\nPlease try again...\n", res); + s_printf(gui->txt_buf, "\n#FF0000 Error fatal (%d) escribiendo en la SD#\nIntentalo de nuevo...\n", res); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -373,11 +373,11 @@ void dump_emummc_file(emmc_tool_gui_t *gui) if (!sd_mount()) { - lv_label_set_text(gui->label_info, "#FFDD00 Failed to init SD!#"); + lv_label_set_text(gui->label_info, "#FFDD00 Error al iniciar la SD!#"); goto out; } - lv_label_set_text(gui->label_info, "Checking for available free space..."); + lv_label_set_text(gui->label_info, "Comprobando espacio libre..."); manual_system_maintenance(true); // Get SD Card free space for file based emuMMC. @@ -385,7 +385,7 @@ void dump_emummc_file(emmc_tool_gui_t *gui) if (!emmc_initialize(false)) { - lv_label_set_text(gui->label_info, "#FFDD00 Failed to init eMMC!#"); + lv_label_set_text(gui->label_info, "#FFDD00 Error al iniciar la eMMC!#"); goto out; } @@ -423,7 +423,7 @@ void dump_emummc_file(emmc_tool_gui_t *gui) bootPart.name[4] = (u8)('0' + i); bootPart.name[5] = 0; - s_printf(txt_buf, "#00DDFF %02d: %s#\n#00DDFF Range: 0x%08X - 0x%08X#\n\n", + s_printf(txt_buf, "#00DDFF %02d: %s#\n#00DDFF Rango: 0x%08X - 0x%08X#\n\n", i, bootPart.name, bootPart.lba_start, bootPart.lba_end); lv_label_set_text(gui->label_info, txt_buf); s_printf(txt_buf, "%02d: %s... ", i, bootPart.name); @@ -437,11 +437,11 @@ void dump_emummc_file(emmc_tool_gui_t *gui) if (!res) { - s_printf(txt_buf, "#FFDD00 Failed!#\n"); + s_printf(txt_buf, "#FFDD00 Fallo!#\n"); goto out_failed; } else - s_printf(txt_buf, "Done!\n"); + s_printf(txt_buf, "Hecho!\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, txt_buf); manual_system_maintenance(true); @@ -461,7 +461,7 @@ void dump_emummc_file(emmc_tool_gui_t *gui) rawPart.lba_end = RAW_AREA_NUM_SECTORS - 1; strcpy(rawPart.name, "GPP"); - s_printf(txt_buf, "#00DDFF %02d: %s#\n#00DDFF Range: 0x%08X - 0x%08X#\n\n", + s_printf(txt_buf, "#00DDFF %02d: %s#\n#00DDFF Rango: 0x%08X - 0x%08X#\n\n", i, rawPart.name, rawPart.lba_start, rawPart.lba_end); lv_label_set_text(gui->label_info, txt_buf); s_printf(txt_buf, "%02d: %s... ", i, rawPart.name); @@ -471,9 +471,9 @@ void dump_emummc_file(emmc_tool_gui_t *gui) res = _dump_emummc_file_part(gui, sdPath, &emmc_storage, &rawPart); if (!res) - s_printf(txt_buf, "#FFDD00 Failed!#\n"); + s_printf(txt_buf, "#FFDD00 Fallo!#\n"); else - s_printf(txt_buf, "Done!\n"); + s_printf(txt_buf, "Hecho!\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, txt_buf); manual_system_maintenance(true); @@ -484,7 +484,7 @@ void dump_emummc_file(emmc_tool_gui_t *gui) if (res) { - s_printf(txt_buf, "Time taken: %dm %ds.\nFinished!", timer / 60, timer % 60); + s_printf(txt_buf, "Tiempo: %dm %ds.\nFinalizado!", timer / 60, timer % 60); gui->base_path[strlen(gui->base_path) - 5] = '\0'; strcpy(sdPath, gui->base_path); strcat(sdPath, "file_based"); @@ -496,7 +496,7 @@ void dump_emummc_file(emmc_tool_gui_t *gui) save_emummc_cfg(0, 0, gui->base_path); } else - s_printf(txt_buf, "Time taken: %dm %ds.", timer / 60, timer % 60); + s_printf(txt_buf, "Tiempo: %dm %ds.", timer / 60, timer % 60); lv_label_set_text(gui->label_finish, txt_buf); @@ -524,7 +524,7 @@ static int _dump_emummc_raw_part(emmc_tool_gui_t *gui, int active_part, int part lv_label_set_text(gui->label_pct, " "SYMBOL_DOT" 0%"); manual_system_maintenance(true); - s_printf(gui->txt_buf, "#96FF00 Base folder:#\n%s\n#96FF00 Partition offset:# #FF8000 0x%08X#", + s_printf(gui->txt_buf, "#96FF00 Carp. base:#\n%s\n#96FF00 Offset particion:# #FF8000 0x%08X#", gui->base_path, sd_part_off); lv_label_ins_text(gui->label_info, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -542,7 +542,7 @@ static int _dump_emummc_raw_part(emmc_tool_gui_t *gui, int active_part, int part emmc_part_t *user_part = emmc_part_find(&gpt_parsed, "USER"); if (!user_part) { - s_printf(gui->txt_buf, "\n#FFDD00 USER partition not found!#\n"); + s_printf(gui->txt_buf, "\n#FFDD00 Particion USER no esta!#\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -560,7 +560,7 @@ static int _dump_emummc_raw_part(emmc_tool_gui_t *gui, int active_part, int part // Check for cancellation combo. if (btn_read_vol() == (BTN_VOL_UP | BTN_VOL_DOWN)) { - s_printf(gui->txt_buf, "\n#FFDD00 The emuMMC was cancelled!#\n"); + s_printf(gui->txt_buf, "\n#FFDD00 La EmuNAND fue cancelada!#\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -576,8 +576,8 @@ static int _dump_emummc_raw_part(emmc_tool_gui_t *gui, int active_part, int part while (!sdmmc_storage_read(&emmc_storage, lba_curr, num, buf)) { s_printf(gui->txt_buf, - "\n#FFDD00 Error reading %d blocks @LBA %08X,#\n" - "#FFDD00 from eMMC (try %d). #", + "\n#FFDD00 Error leyendo %d bloques @LBA %08X,#\n" + "#FFDD00 desde eMMC (intento %d). #", num, lba_curr, ++retryCount); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -585,7 +585,7 @@ static int _dump_emummc_raw_part(emmc_tool_gui_t *gui, int active_part, int part msleep(150); if (retryCount >= 3) { - s_printf(gui->txt_buf, "#FF0000 Aborting...#\nPlease try again...\n"); + s_printf(gui->txt_buf, "#FF0000 Abortando...#\nIntentalo de nuevo...\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -593,7 +593,7 @@ static int _dump_emummc_raw_part(emmc_tool_gui_t *gui, int active_part, int part } else { - s_printf(gui->txt_buf, "#FFDD00 Retrying...#\n"); + s_printf(gui->txt_buf, "#FFDD00 Reintentando...#\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); } @@ -606,8 +606,8 @@ static int _dump_emummc_raw_part(emmc_tool_gui_t *gui, int active_part, int part while (!sdmmc_storage_write(&sd_storage, sd_sector_off + lba_curr, num, buf)) { s_printf(gui->txt_buf, - "\n#FFDD00 Error writing %d blocks @LBA %08X,#\n" - "#FFDD00 to SD (try %d). #", + "\n#FFDD00 Error escribiendo %d bloques @LBA %08X,#\n" + "#FFDD00 a la SD (intento %d). #", num, lba_curr, ++retryCount); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -615,7 +615,7 @@ static int _dump_emummc_raw_part(emmc_tool_gui_t *gui, int active_part, int part msleep(150); if (retryCount >= 3) { - s_printf(gui->txt_buf, "#FF0000 Aborting...#\nPlease try again...\n"); + s_printf(gui->txt_buf, "#FF0000 Abortando...#\nIntentalo de nuevo...\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -623,7 +623,7 @@ static int _dump_emummc_raw_part(emmc_tool_gui_t *gui, int active_part, int part } else { - s_printf(gui->txt_buf, "#FFDD00 Retrying...#\n"); + s_printf(gui->txt_buf, "#FFDD00 Reintentando...#\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); } @@ -660,7 +660,7 @@ static int _dump_emummc_raw_part(emmc_tool_gui_t *gui, int active_part, int part if (resized_count) { - lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, "Done!\n"); + lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, "Hecho!\n"); // Calculate USER size and set it for FatFS. u32 user_sectors = resized_count - user_offset - 33; @@ -674,7 +674,7 @@ static int _dump_emummc_raw_part(emmc_tool_gui_t *gui, int active_part, int part strcpy(user_part.name, "USER"); nx_emmc_bis_init(&user_part, true, sd_sector_off); - s_printf(gui->txt_buf, "Formatting USER... \n"); + s_printf(gui->txt_buf, "Formateando USER... \n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -688,18 +688,18 @@ static int _dump_emummc_raw_part(emmc_tool_gui_t *gui, int active_part, int part if (mkfs_error) { - s_printf(gui->txt_buf, "#FF0000 Failed (%d)!#\nPlease try again...\n", mkfs_error); + s_printf(gui->txt_buf, "#FF0000 Error (%d)!#\nIntentalo de nuevo...\n", mkfs_error); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); return 0; } - lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, "Done!\n"); + lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, "Hecho!\n"); // Flush BIS cache, deinit, clear BIS keys slots and reinstate SBK. nx_emmc_bis_end(); hos_bis_keys_clear(); - s_printf(gui->txt_buf, "Writing new GPT... "); + s_printf(gui->txt_buf, "Escribiendo nuevo GPT... "); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); manual_system_maintenance(true); @@ -719,7 +719,7 @@ static int _dump_emummc_raw_part(emmc_tool_gui_t *gui, int active_part, int part if (gpt_entry_idx >= gpt->header.num_part_ents) { - s_printf(gui->txt_buf, "\n#FF0000 No USER partition...#\nPlease try again...\n"); + s_printf(gui->txt_buf, "\n#FF0000 Sin particion USER...#\nIntentalo de nuevo...\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); free(gpt); @@ -799,7 +799,7 @@ static int _emummc_raw_derive_bis_keys(emmc_tool_gui_t *gui, u32 resized_count) // Clear EKS keys. hos_eks_clear(KB_FIRMWARE_VERSION_MAX); - strcpy(txt_buf, "#FFDD00 BIS keys validation failed!#\n"); + strcpy(txt_buf, "#FFDD00 Validacion de BIS keys fallo!#\n"); error = true; } @@ -811,12 +811,12 @@ static int _emummc_raw_derive_bis_keys(emmc_tool_gui_t *gui, u32 resized_count) lv_obj_set_style(dark_bg, &mbox_darken); lv_obj_set_size(dark_bg, LV_HOR_RES, LV_VER_RES); - static const char * mbox_btn_map[] = { "\251", "\222Close", "\251", "" }; + static const char * mbox_btn_map[] = { "\251", "\222Cerrar", "\251", "" }; lv_obj_t * mbox = lv_mbox_create(dark_bg, NULL); lv_mbox_set_recolor_text(mbox, true); lv_obj_set_width(mbox, LV_HOR_RES / 9 * 5); - lv_mbox_set_text(mbox, "#C7EA46 BIS Keys Generation#"); + lv_mbox_set_text(mbox, "#C7EA46 Generacion de BIS Keys#"); lv_obj_t * lb_desc = lv_label_create(mbox, NULL); lv_label_set_long_mode(lb_desc, LV_LABEL_LONG_BREAK); @@ -856,19 +856,19 @@ void dump_emummc_raw(emmc_tool_gui_t *gui, int part_idx, u32 sector_start, u32 r if (!sd_mount()) { - lv_label_set_text(gui->label_info, "#FFDD00 Failed to init SD!#"); + lv_label_set_text(gui->label_info, "#FFDD00 Error al iniciar la SD!#"); goto out; } if (!emmc_initialize(false)) { - lv_label_set_text(gui->label_info, "#FFDD00 Failed to init eMMC!#"); + lv_label_set_text(gui->label_info, "#FFDD00 Error al iniciar la eMMC!#"); goto out; } if (!_emummc_raw_derive_bis_keys(gui, resized_count)) { - s_printf(gui->txt_buf, "#FFDD00 For formatting USER partition,#\n#FFDD00 BIS keys are needed!#\n"); + s_printf(gui->txt_buf, "#FFDD00 Para formatear particion USER,#\n#FFDD00 las BIS keys son necesarias!#\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, gui->txt_buf); emmc_end(); goto out; @@ -901,7 +901,7 @@ void dump_emummc_raw(emmc_tool_gui_t *gui, int part_idx, u32 sector_start, u32 r bootPart.name[4] = (u8)('0' + i); bootPart.name[5] = 0; - s_printf(txt_buf, "#00DDFF %02d: %s#\n#00DDFF Range: 0x%08X - 0x%08X#\n\n", + s_printf(txt_buf, "#00DDFF %02d: %s#\n#00DDFF Rango: 0x%08X - 0x%08X#\n\n", i, bootPart.name, bootPart.lba_start, bootPart.lba_end); lv_label_set_text(gui->label_info, txt_buf); s_printf(txt_buf, "%02d: %s... ", i, bootPart.name); @@ -915,11 +915,11 @@ void dump_emummc_raw(emmc_tool_gui_t *gui, int part_idx, u32 sector_start, u32 r if (!res) { - s_printf(txt_buf, "#FFDD00 Failed!#\n"); + s_printf(txt_buf, "#FFDD00 Fallo!#\n"); goto out_failed; } else - s_printf(txt_buf, "Done!\n"); + s_printf(txt_buf, "Hecho!\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, txt_buf); manual_system_maintenance(true); @@ -938,7 +938,7 @@ void dump_emummc_raw(emmc_tool_gui_t *gui, int part_idx, u32 sector_start, u32 r rawPart.lba_end = RAW_AREA_NUM_SECTORS - 1; strcpy(rawPart.name, "GPP"); { - s_printf(txt_buf, "#00DDFF %02d: %s#\n#00DDFF Range: 0x%08X - 0x%08X#\n\n", + s_printf(txt_buf, "#00DDFF %02d: %s#\n#00DDFF Rango: 0x%08X - 0x%08X#\n\n", i, rawPart.name, rawPart.lba_start, rawPart.lba_end); lv_label_set_text(gui->label_info, txt_buf); s_printf(txt_buf, "%02d: %s... ", i, rawPart.name); @@ -948,9 +948,9 @@ void dump_emummc_raw(emmc_tool_gui_t *gui, int part_idx, u32 sector_start, u32 r res = _dump_emummc_raw_part(gui, 2, part_idx, sector_start, &rawPart, resized_count); if (!res) - s_printf(txt_buf, "#FFDD00 Failed!#\n"); + s_printf(txt_buf, "#FFDD00 Fallo!#\n"); else - s_printf(txt_buf, "Done!\n"); + s_printf(txt_buf, "Hecho!\n"); lv_label_ins_text(gui->label_log, LV_LABEL_POS_LAST, txt_buf); manual_system_maintenance(true); @@ -962,7 +962,7 @@ void dump_emummc_raw(emmc_tool_gui_t *gui, int part_idx, u32 sector_start, u32 r if (res) { - s_printf(txt_buf, "Time taken: %dm %ds.\nFinished!", timer / 60, timer % 60); + s_printf(txt_buf, "Tiempo: %dm %ds.\nFinalizado!", timer / 60, timer % 60); strcpy(sdPath, gui->base_path); strcat(sdPath, "raw_based"); FIL fp; @@ -974,7 +974,7 @@ void dump_emummc_raw(emmc_tool_gui_t *gui, int part_idx, u32 sector_start, u32 r save_emummc_cfg(part_idx, sector_start, gui->base_path); } else - s_printf(txt_buf, "Time taken: %dm %ds.", timer / 60, timer % 60); + s_printf(txt_buf, "Tiempo: %dm %ds.", timer / 60, timer % 60); lv_label_set_text(gui->label_finish, txt_buf); diff --git a/nyx/nyx_gui/frontend/gui.c b/nyx/nyx_gui/frontend/gui.c index 6d8604b5..ef821ddb 100644 --- a/nyx/nyx_gui/frontend/gui.c +++ b/nyx/nyx_gui/frontend/gui.c @@ -219,7 +219,7 @@ static void _save_fb_to_bmp() // Create notification box. lv_obj_t * mbox = lv_mbox_create(lv_layer_top(), NULL); lv_mbox_set_recolor_text(mbox, true); - lv_mbox_set_text(mbox, SYMBOL_CAMERA" #FFDD00 Saving screenshot...#"); + lv_mbox_set_text(mbox, SYMBOL_CAMERA" #FFDD00 Guardando captura...#"); lv_obj_set_width(mbox, LV_DPI * 4); lv_obj_set_top(mbox, true); lv_obj_align(mbox, NULL, LV_ALIGN_IN_TOP_LEFT, 0, 0); @@ -300,9 +300,9 @@ static void _save_fb_to_bmp() free(fb); if (!res) - lv_mbox_set_text(mbox, SYMBOL_CAMERA" #96FF00 Screenshot saved!#"); + lv_mbox_set_text(mbox, SYMBOL_CAMERA" #96FF00 Captura guardada!#"); else - lv_mbox_set_text(mbox, SYMBOL_WARNING" #FFDD00 Screenshot failed!#"); + lv_mbox_set_text(mbox, SYMBOL_WARNING" #FFDD00 Captura fallo!#"); manual_system_maintenance(true); lv_mbox_start_auto_close(mbox, 4000); @@ -472,7 +472,7 @@ static bool _jc_virt_mouse_read(lv_indev_data_t *data) console_enabled = true; gfx_con_getpos(&gfx_con.savedx, &gfx_con.savedy); gfx_con_setpos(964, 630); - gfx_printf("Press -/+ to close"); + gfx_printf("Pulsa -/+ para cerrar"); gfx_con_setpos(gfx_con.savedx, gfx_con.savedy); } else @@ -804,10 +804,10 @@ bool nyx_emmc_check_battery_enough() lv_mbox_set_recolor_text(mbox, true); lv_mbox_set_text(mbox, - "#FF8000 Battery Check#\n\n" - "#FFDD00 Battery is not enough to carry on#\n" - "#FFDD00 with selected operation!#\n\n" - "Charge to at least #C7EA46 3650 mV#, and try again!"); + "#FF8000 Comprobando Bateria#\n\n" + "#FFDD00 Bateria insuficiente para hacer#\n" + "#FFDD00 la operacion seleccionada!#\n\n" + "Cargala al menos a #C7EA46 3650 mV#, y reintentalo!"); lv_mbox_add_btns(mbox, mbox_btn_map, mbox_action); lv_obj_set_width(mbox, LV_HOR_RES / 9 * 5); @@ -831,10 +831,10 @@ static void _nyx_sd_card_issues(void *param) lv_mbox_set_recolor_text(mbox, true); lv_mbox_set_text(mbox, - "#FF8000 SD Card Issues Check#\n\n" - "#FFDD00 The SD Card is initialized in 1-bit mode!#\n" - "#FFDD00 This might mean detached or broken connector!#\n\n" - "You might want to check\n#C7EA46 Console Info# -> #C7EA46 microSD#"); + "#FF8000 Comprobando problemas de SD#\n\n" + "#FFDD00 SD inicializada en modo de 1 bit!#\n" + "#FFDD00 El conector podria estar roto o desconectado!#\n\n" + "Deberias consultar\n#C7EA46 Info Consola# -> #C7EA46 microSD#"); lv_mbox_add_btns(mbox, mbox_btn_map, mbox_action); lv_obj_set_width(mbox, LV_HOR_RES / 9 * 5); @@ -891,7 +891,7 @@ lv_obj_t *nyx_create_standard_window(const char *win_title) lv_win_set_style(win, LV_WIN_STYLE_BG, &win_bg_style); lv_obj_set_size(win, LV_HOR_RES, LV_VER_RES); - close_btn = lv_win_add_btn(win, NULL, SYMBOL_CLOSE" Close", lv_win_close_action_custom); + close_btn = lv_win_add_btn(win, NULL, SYMBOL_CLOSE" Cerrar", lv_win_close_action_custom); return win; } @@ -909,7 +909,7 @@ lv_obj_t *nyx_create_window_custom_close_btn(const char *win_title, lv_action_t lv_win_set_style(win, LV_WIN_STYLE_BG, &win_bg_style); lv_obj_set_size(win, LV_HOR_RES, LV_VER_RES); - close_btn = lv_win_add_btn(win, NULL, SYMBOL_CLOSE" Close", rel_action); + close_btn = lv_win_add_btn(win, NULL, SYMBOL_CLOSE" Cerrar", rel_action); return win; } @@ -995,13 +995,13 @@ static void _check_sd_card_removed(void *params) lv_obj_set_style(dark_bg, &mbox_darken); lv_obj_set_size(dark_bg, LV_HOR_RES, LV_VER_RES); - static const char * mbox_btn_map[] = { "\221Reboot (RCM)", "\221Power Off", "\221Do not reload", "" }; - static const char * mbox_btn_map_rcm_patched[] = { "\221Reboot", "\221Power Off", "\221Do not reload", "" }; + static const char * mbox_btn_map[] = { "\221Reiniciar (RCM)", "\221Apagar", "\221No recargar", "" }; + static const char * mbox_btn_map_rcm_patched[] = { "\221Reiniciar", "\221Apagar", "\221No recargar", "" }; lv_obj_t *mbox = lv_mbox_create(dark_bg, NULL); lv_mbox_set_recolor_text(mbox, true); lv_obj_set_width(mbox, LV_HOR_RES * 6 / 9); - lv_mbox_set_text(mbox, "\n#FF8000 SD card was removed!#\n\n#96FF00 Nyx will reload after inserting it.#\n\nReminder that you can use UMS instead of removing it.\n"); + lv_mbox_set_text(mbox, "\n#FF8000 Tarjeta SD retirada!#\n\n#96FF00 Nyx se recargara al insertarla.#\n\nRecuerda que puedes usar UMS en vez de retirarla.\n"); lv_mbox_add_btns(mbox, h_cfg.rcm_patched ? mbox_btn_map_rcm_patched : mbox_btn_map, _removed_sd_action); lv_obj_align(mbox, NULL, LV_ALIGN_CENTER, 0, 0); @@ -1032,10 +1032,10 @@ static void _nyx_emmc_issues(void *params) lv_mbox_set_recolor_text(mbox, true); lv_mbox_set_text(mbox, - "#FF8000 eMMC Issues Check#\n\n" - "#FFDD00 Your eMMC is initialized in slower mode!#\n" - "#FFDD00 This might mean hardware issues!#\n\n" - "You might want to check\n#C7EA46 Console Info# -> #C7EA46 eMMC#"); + "#FF8000 Comprobando errores de eMMC#\n\n" + "#FFDD00 Tu eMMC esta iniciada en modo lento!#\n" + "#FFDD00 Puedes tener problemas de hardware!#\n\n" + "Deberias consultar\n#C7EA46 Info de Consola# -> #C7EA46 eMMC#"); lv_mbox_add_btns(mbox, mbox_btn_map, mbox_action); lv_obj_set_width(mbox, LV_HOR_RES / 9 * 5); @@ -1078,13 +1078,13 @@ static lv_res_t _create_mbox_reload(lv_obj_t *btn) lv_obj_set_style(dark_bg, &mbox_darken); lv_obj_set_size(dark_bg, LV_HOR_RES, LV_VER_RES); - static const char * mbox_btn_map[] = { "\221Reload", "\221Cancel", "" }; + static const char * mbox_btn_map[] = { "\221Recargar", "\221Cancelar", "" }; lv_obj_t *mbox = lv_mbox_create(dark_bg, NULL); lv_mbox_set_recolor_text(mbox, true); lv_obj_set_width(mbox, LV_HOR_RES * 4 / 10); - lv_mbox_set_text(mbox, "#FF8000 Do you really want#\n#FF8000 to reload hekate & Nyx?#\n\n" - "This also checks\n#96FF00 bootloader/update.bin#\nfor hekate updates"); + lv_mbox_set_text(mbox, "#FF8000 De verdad quieres#\n#FF8000 recargar hekate y Nyx?#\n\n" + "Esto comprueba\n#96FF00 bootloader/update.bin#\npara actual. de hekate"); lv_mbox_add_btns(mbox, mbox_btn_map, reload_action); @@ -1100,14 +1100,14 @@ static lv_res_t _create_mbox_reboot(lv_obj_t *btn) lv_obj_set_style(dark_bg, &mbox_darken); lv_obj_set_size(dark_bg, LV_HOR_RES, LV_VER_RES); - static const char * mbox_btn_map[] = { "\221OFW", "\221RCM", "\221Cancel", "" }; - static const char * mbox_btn_map_autorcm[] = { "\261OFW", "\221RCM", "\221Cancel", "" }; - static const char * mbox_btn_map_patched[] = { "\221OFW", "\221Normal", "\221Cancel", "" }; + static const char * mbox_btn_map[] = { "\221OFW", "\221RCM", "\221Cancelar", "" }; + static const char * mbox_btn_map_autorcm[] = { "\261OFW", "\221RCM", "\221Cancelar", "" }; + static const char * mbox_btn_map_patched[] = { "\221OFW", "\221Normal", "\221Cancelar", "" }; lv_obj_t *mbox = lv_mbox_create(dark_bg, NULL); lv_mbox_set_recolor_text(mbox, true); lv_obj_set_width(mbox, LV_HOR_RES / 2); - lv_mbox_set_text(mbox, "#FF8000 Choose where to reboot:#"); + lv_mbox_set_text(mbox, "#FF8000 Elije como reiniciar:#"); if (h_cfg.rcm_patched) lv_mbox_add_btns(mbox, mbox_btn_map_patched, _reboot_action); @@ -1126,12 +1126,12 @@ static lv_res_t _create_mbox_poweroff(lv_obj_t *btn) lv_obj_set_style(dark_bg, &mbox_darken); lv_obj_set_size(dark_bg, LV_HOR_RES, LV_VER_RES); - static const char * mbox_btn_map[] = { "\221Power Off", "\221Cancel", "" }; + static const char * mbox_btn_map[] = { "\221Apagar", "\221Cancelar", "" }; lv_obj_t *mbox = lv_mbox_create(dark_bg, NULL); lv_mbox_set_recolor_text(mbox, true); lv_obj_set_width(mbox, LV_HOR_RES * 4 / 10); - lv_mbox_set_text(mbox, "#FF8000 Do you really want#\n#FF8000 to power off?#"); + lv_mbox_set_text(mbox, "#FF8000 De verdad quieres#\n#FF8000 apagar?#"); lv_mbox_add_btns(mbox, mbox_btn_map, _poweroff_action); @@ -1240,17 +1240,17 @@ static void _create_tab_about(lv_theme_t * th, lv_obj_t * parent) lv_label_set_recolor(lbl_credits, true); lv_label_set_static_text(lbl_credits, "#C7EA46 hekate# (c) 2018, #C7EA46 naehrwert#, #C7EA46 st4rk#\n" - " (c) 2018-2022, #C7EA46 CTCaer#\n" + " (c) 2018-2023, #C7EA46 CTCaer#\n" "\n" - "#C7EA46 Nyx GUI# (c) 2019-2022, #C7EA46 CTCaer#\n" + "#C7EA46 Nyx GUI# (c) 2019-2023, #C7EA46 CTCaer#\n" "\n" - "Thanks to: #00CCFF derrek, nedwill, plutoo, #\n" + "Gracias a: #00CCFF derrek, nedwill, plutoo, #\n" " #00CCFF shuffle2, smea, thexyz, yellows8 #\n" "\n" - "Greetings to: fincs, hexkyz, SciresM,\n" + "Saludos a: fincs, hexkyz, SciresM,\n" " Shiny Quagsire, WinterMute\n" "\n" - "Open source and free packages used:\n\n" + "Paquetes de codigo abierto y libres usados:\n\n" " - FatFs R0.13c,\n" " Copyright (c) 2018, ChaN\n\n" " - bcl-1.2.0,\n" @@ -1259,9 +1259,10 @@ static void _create_tab_about(lv_theme_t * th, lv_obj_t * parent) " Copyright (c) 2018-2019, Atmosphere-NX\n\n" " - elfload,\n" " Copyright (c) 2014, Owen Shepherd\n" - " Copyright (c) 2018, M4xw\n\n" + " Copyright (c) 2018, M4xw\n" " - Littlev Graphics Library,\n" - " Copyright (c) 2016 Gabor Kiss-Vamosi" + " Copyright (c) 2016 Gabor Kiss-Vamosi\n" + "Traduccion: Lopez Tutoriales" ); lv_obj_t * lbl_octopus = lv_label_create(parent, NULL); @@ -1299,7 +1300,7 @@ static void _create_tab_about(lv_theme_t * th, lv_obj_t * parent) lv_obj_align(ctcaer_img, lbl_octopus, LV_ALIGN_OUT_BOTTOM_RIGHT, 0, LV_DPI * 2 / 3); char version[32]; - s_printf(version, "Nyx v%d.%d.%d", NYX_VER_MJ, NYX_VER_MN, NYX_VER_HF); + s_printf(version, "Nyx v%d.%d.%d ESP", NYX_VER_MJ, NYX_VER_MN, NYX_VER_HF); lv_obj_t * lbl_ver = lv_label_create(parent, NULL); lv_obj_align(lbl_ver, ctcaer_img, LV_ALIGN_OUT_BOTTOM_RIGHT, -LV_DPI / 20, LV_DPI / 4); lv_label_set_style(lbl_ver, &monospace_text); @@ -1390,12 +1391,12 @@ static lv_res_t _create_mbox_payloads(lv_obj_t *btn) lv_obj_set_style(dark_bg, &mbox_darken); lv_obj_set_size(dark_bg, LV_HOR_RES, LV_VER_RES); - static const char * mbox_btn_map[] = { "\251", "\222Cancel", "\251", "" }; + static const char * mbox_btn_map[] = { "\251", "\222Cancelar", "\251", "" }; lv_obj_t *mbox = lv_mbox_create(dark_bg, NULL); lv_mbox_set_recolor_text(mbox, true); lv_obj_set_width(mbox, LV_HOR_RES * 5 / 9); - lv_mbox_set_text(mbox, "Select a payload to launch:"); + lv_mbox_set_text(mbox, "Selecciona payload para lanzar:"); // Create a list with all found payloads. //! TODO: SHould that be tabs with buttons? + Icon support? @@ -1406,7 +1407,7 @@ static lv_res_t _create_mbox_payloads(lv_obj_t *btn) if (!sd_mount()) { - lv_mbox_set_text(mbox, "#FFDD00 Failed to init SD!#"); + lv_mbox_set_text(mbox, "#FFDD00 Error al iniciar la SD!#"); goto out_end; } @@ -1525,7 +1526,7 @@ static lv_obj_t *create_window_launch(const char *win_title) lv_win_set_style(win, LV_WIN_STYLE_BG, &win_bg_style); - close_btn = lv_win_add_btn(win, NULL, SYMBOL_CLOSE" Close", _win_launch_close_action); + close_btn = lv_win_add_btn(win, NULL, SYMBOL_CLOSE" Cerrar", _win_launch_close_action); return win; } @@ -1633,7 +1634,7 @@ static lv_res_t _create_window_home_launch(lv_obj_t *btn) bool combined_cfg = false; if (btn) { - if (strcmp(lv_label_get_text(lv_obj_get_child(btn, NULL)) + 8,"Launch#")) + if (strcmp(lv_label_get_text(lv_obj_get_child(btn, NULL)) + 8,"Lanzar#")) more_cfg = true; } else @@ -1650,11 +1651,11 @@ static lv_res_t _create_window_home_launch(lv_obj_t *btn) } if (!btn) - win = create_window_launch(SYMBOL_GPS" hekate - Launch"); + win = create_window_launch(SYMBOL_GPS" Hekate - Lanzar"); else if (!more_cfg) - win = create_window_launch(SYMBOL_GPS" Launch"); + win = create_window_launch(SYMBOL_GPS" Lanzar"); else - win = create_window_launch(SYMBOL_GPS" More Configurations"); + win = create_window_launch(SYMBOL_GPS" Mas Ajustes"); lv_win_add_btn(win, NULL, SYMBOL_LIST" Logs #D0D0D0 OFF#", logs_onoff_toggle); launch_logs_enable = false; @@ -1924,16 +1925,16 @@ static lv_res_t _create_window_home_launch(lv_obj_t *btn) if (!more_cfg) { lv_label_set_static_text(label_error, - "#FFDD00 No main boot entries found...#\n" - "Check that #96FF00 bootloader/hekate_ipl.ini# has boot entries\n" - "or use #C7EA46 More configs# button for more boot entries."); + "#FFDD00 Sin entradas de arranque...#\n" + "Mira que #96FF00 bootloader/hekate_ipl.ini# tenga entradas de arranque\n" + "o usa el boton #C7EA46 Mas Ajustes# para mas opciones de arranque."); } else { lv_label_set_static_text(label_error, - "#FFDD00 No .ini or boot entries found...#\n" - "Check that a .ini file exists in #96FF00 bootloader/ini/#\n" - "and that it contains at least one entry."); + "#FFDD00 Sin archivo .ini o arranques encontrados...#\n" + "Mira que un archivo .ini existe en #96FF00 bootloader/ini/#\n" + "y que contiene al menos una entrada de arranque."); } lv_obj_set_pos(label_error, 19, 0); @@ -1953,14 +1954,14 @@ static void _create_tab_home(lv_theme_t *th, lv_obj_t *parent) // Set brand label. lv_obj_t *label_brand = lv_label_create(parent, NULL); lv_label_set_recolor(label_brand, true); - s_printf(btn_colored_text, "%s%s", text_color, " hekate#"); + s_printf(btn_colored_text, "%s%s", text_color, " Hekate ESP#"); lv_label_set_text(label_brand, btn_colored_text); lv_obj_set_pos(label_brand, 50, 48); // Set tagline label. lv_obj_t *label_tagline = lv_label_create(parent, NULL); lv_obj_set_style(label_tagline, &hint_small_style_white); - lv_label_set_static_text(label_tagline, "THE ALL IN ONE BOOTLOADER FOR ALL YOUR NEEDS"); + lv_label_set_static_text(label_tagline, "EL BOOTLOADER TODO EN UNO QUE NECESITAS\nTraducido por LOPEZ TUTORIALES"); lv_obj_set_pos(label_tagline, 50, 82); static lv_style_t icons; @@ -1986,7 +1987,7 @@ static void _create_tab_home(lv_theme_t *th, lv_obj_t *parent) lv_obj_align(label_btn, NULL, LV_ALIGN_CENTER, 0, -28); lv_obj_t *label_btn2 = lv_label_create(btn_launch, NULL); lv_label_set_recolor(label_btn2, true); - s_printf(btn_colored_text, "%s%s", text_color, " Launch#"); + s_printf(btn_colored_text, "%s%s", text_color, " Lanzar#"); lv_label_set_text(label_btn2, btn_colored_text); lv_obj_align(label_btn2, NULL, LV_ALIGN_IN_TOP_MID, 0, 174); @@ -1999,7 +2000,7 @@ static void _create_tab_home(lv_theme_t *th, lv_obj_t *parent) lv_btn_set_layout(btn_more_cfg, LV_LAYOUT_OFF); lv_obj_align(label_btn, NULL, LV_ALIGN_CENTER, 0, -28); label_btn2 = lv_label_create(btn_more_cfg, label_btn2); - s_printf(btn_colored_text, "%s%s", text_color, " More Configs#"); + s_printf(btn_colored_text, "%s%s", text_color, " Mas Ajustes#"); lv_label_set_text(label_btn2, btn_colored_text); lv_obj_set_pos(btn_more_cfg, 341, 160); lv_obj_align(label_btn2, NULL, LV_ALIGN_IN_TOP_MID, 0, 174); @@ -2013,7 +2014,7 @@ static void _create_tab_home(lv_theme_t *th, lv_obj_t *parent) // lv_btn_set_action(btn_quick_launch, LV_BTN_ACTION_CLICK, NULL); lv_obj_t *btn_nyx_options = lv_btn_create(parent, NULL); - _create_text_button(th, NULL, btn_nyx_options, SYMBOL_SETTINGS" Nyx Settings", NULL); + _create_text_button(th, NULL, btn_nyx_options, SYMBOL_SETTINGS" Ajustes de Nyx", NULL); //lv_obj_set_width(btn_nyx_options, 256); lv_btn_set_action(btn_nyx_options, LV_BTN_ACTION_CLICK, create_win_nyx_options); lv_obj_align(btn_nyx_options, NULL, LV_ALIGN_IN_BOTTOM_LEFT, LV_DPI / 4, -LV_DPI / 12); @@ -2048,7 +2049,7 @@ static void _create_tab_home(lv_theme_t *th, lv_obj_t *parent) lv_obj_align(label_btn, NULL, LV_ALIGN_CENTER, 0, -28); lv_obj_set_pos(btn_emummc, 959, 160); label_btn2 = lv_label_create(btn_emummc, label_btn2); - s_printf(btn_colored_text, "%s%s", text_color, " emuMMC#"); + s_printf(btn_colored_text, "%s%s", text_color, " EmuNAND#"); lv_label_set_text(label_btn2, btn_colored_text); lv_obj_align(label_btn2, NULL, LV_ALIGN_IN_TOP_MID, 0, 174); @@ -2057,13 +2058,13 @@ static void _create_tab_home(lv_theme_t *th, lv_obj_t *parent) lv_obj_t *btn_power_off = lv_btn_create(parent, NULL); lv_obj_t *btn_reload = lv_btn_create(parent, NULL); - _create_text_button(th, NULL, btn_power_off, SYMBOL_POWER" Power Off", _create_mbox_poweroff); + _create_text_button(th, NULL, btn_power_off, SYMBOL_POWER" Apagar", _create_mbox_poweroff); lv_obj_align(btn_power_off, NULL, LV_ALIGN_IN_BOTTOM_RIGHT, -LV_DPI / 4, -LV_DPI / 12); - _create_text_button(th, NULL, btn_reboot, SYMBOL_REBOOT" Reboot", _create_mbox_reboot); + _create_text_button(th, NULL, btn_reboot, SYMBOL_REBOOT" Reiniciar", _create_mbox_reboot); lv_obj_align(btn_reboot, btn_power_off, LV_ALIGN_OUT_LEFT_MID, 0, 0); - _create_text_button(th, NULL, btn_reload, SYMBOL_REFRESH" Reload", _create_mbox_reload); + _create_text_button(th, NULL, btn_reload, SYMBOL_REFRESH" Recargar", _create_mbox_reload); lv_obj_align(btn_reload, btn_reboot, LV_ALIGN_OUT_LEFT_MID, 0, 0); } @@ -2076,9 +2077,9 @@ static lv_res_t _save_options_action(lv_obj_t *btn) int res = !create_config_entry(); if (res) - lv_mbox_set_text(mbox, "#FF8000 hekate Configuration#\n\n#96FF00 The configuration was saved to sd card!#"); + lv_mbox_set_text(mbox, "#FF8000 Configuracion de hekate#\n\n#96FF00 Configuracion guardada en la SD!#"); else - lv_mbox_set_text(mbox, "#FF8000 hekate Configuration#\n\n#FFDD00 Failed to save the configuration#\n#FFDD00 to sd card!#"); + lv_mbox_set_text(mbox, "#FF8000 Configuracion de hekate#\n\n#FFDD00 Fallo al guardar configuracion#\n#FFDD00 en la SD!#"); lv_mbox_add_btns(mbox, mbox_btn_map, NULL); lv_obj_set_top(mbox, true); @@ -2139,7 +2140,7 @@ static void _create_status_bar(lv_theme_t * th) //! TODO: Utilize it for more. lv_obj_t *btn_mid = lv_btn_create(status_bar_bg, NULL); lv_obj_t *lbl_mid = lv_label_create(btn_mid, NULL); - lv_label_set_static_text(lbl_mid, "Save Options"); + lv_label_set_static_text(lbl_mid, "Guardar Ajustes"); lv_obj_set_size(btn_mid, LV_DPI * 5 / 2, LV_DPI / 2); lv_obj_align(btn_mid, NULL, LV_ALIGN_CENTER, 0, 0); status_bar.mid = btn_mid; @@ -2169,14 +2170,14 @@ void nyx_check_ini_changes() lv_obj_set_style(dark_bg, &mbox_darken); lv_obj_set_size(dark_bg, LV_HOR_RES, LV_VER_RES); - static const char * mbox_btn_map[] = { "\222Save", "\222Cancel", "" }; + static const char * mbox_btn_map[] = { "\222Guardar", "\222Cancelar", "" }; lv_obj_t * mbox = lv_mbox_create(dark_bg, NULL); lv_mbox_set_recolor_text(mbox, true); lv_mbox_set_text(mbox, - "#FF8000 Main configuration#\n\n" - "You changed the configuration!\n\n" - "Do you want to save it?"); + "#FF8000 Configuracion Principal#\n\n" + "Has cambiado la configuracion!\n\n" + "Quieres guardarla?"); lv_mbox_add_btns(mbox, mbox_btn_map, _create_mbox_save_changes_action); lv_obj_set_width(mbox, LV_HOR_RES / 9 * 5); @@ -2329,20 +2330,20 @@ static void _nyx_main_menu(lv_theme_t * th) // Add all tabs content. char version[32]; - s_printf(version, "hekate v%d.%d.%d", nyx_str->version & 0xFF, (nyx_str->version >> 8) & 0xFF, (nyx_str->version >> 16) & 0xFF); + s_printf(version, "hekate v%d.%d.%d ESP", nyx_str->version & 0xFF, (nyx_str->version >> 8) & 0xFF, (nyx_str->version >> 16) & 0xFF); lv_obj_t *tab_about = lv_tabview_add_tab(tv, version); - lv_obj_t *tab_home = lv_tabview_add_tab(tv, SYMBOL_HOME" Home"); + lv_obj_t *tab_home = lv_tabview_add_tab(tv, SYMBOL_HOME" INICIO"); - lv_obj_t *tab_tools = lv_tabview_add_tab(tv, SYMBOL_TOOLS" Tools"); + lv_obj_t *tab_tools = lv_tabview_add_tab(tv, SYMBOL_TOOLS" HERRAMIENT."); lv_page_set_style(tab_tools, LV_PAGE_STYLE_BG, &no_padding); lv_page_set_style(tab_tools, LV_PAGE_STYLE_SCRL, &no_padding); - lv_obj_t *tab_info = lv_tabview_add_tab(tv, SYMBOL_INFO" Console Info"); + lv_obj_t *tab_info = lv_tabview_add_tab(tv, SYMBOL_INFO" INFO CONSOLA"); lv_page_set_style(tab_info, LV_PAGE_STYLE_BG, &no_padding); lv_page_set_style(tab_info, LV_PAGE_STYLE_SCRL, &no_padding); - lv_obj_t *tab_options = lv_tabview_add_tab(tv, SYMBOL_SETTINGS" Options"); + lv_obj_t *tab_options = lv_tabview_add_tab(tv, SYMBOL_SETTINGS" OPCIONES"); _create_tab_about(th, tab_about); _create_tab_home(th, tab_home); diff --git a/nyx/nyx_gui/frontend/gui_emmc_tools.c b/nyx/nyx_gui/frontend/gui_emmc_tools.c index 9a4df698..50dabf79 100644 --- a/nyx/nyx_gui/frontend/gui_emmc_tools.c +++ b/nyx/nyx_gui/frontend/gui_emmc_tools.c @@ -53,7 +53,7 @@ static void _create_window_backup_restore(emmcPartType_t type, const char* win_l char win_label_full[80]; - s_printf(win_label_full, "%s%s", emmc_btn_ctxt.restore ? SYMBOL_DOWNLOAD" Restore " : SYMBOL_UPLOAD" Backup ", win_label+3); + s_printf(win_label_full, "%s%s", emmc_btn_ctxt.restore ? SYMBOL_DOWNLOAD" Restaurar " : SYMBOL_UPLOAD" Backup ", win_label+3); lv_obj_t *win = nyx_create_standard_window(win_label_full); @@ -209,9 +209,9 @@ static lv_res_t _emmc_backup_buttons_raw_toggle(lv_obj_t *btn) if (!(lv_btn_get_state(btn) & LV_BTN_STATE_TGL_REL)) { if (!emmc_btn_ctxt.restore) - lv_label_set_static_text(lv_obj_get_child(emmc_btn_ctxt.emmc_boot, NULL), SYMBOL_UPLOAD" eMMC BOOT0 & BOOT1"); + lv_label_set_static_text(lv_obj_get_child(emmc_btn_ctxt.emmc_boot, NULL), SYMBOL_UPLOAD" eMMC BOOT0 y BOOT1"); else - lv_label_set_static_text(lv_obj_get_child(emmc_btn_ctxt.emmc_boot, NULL), SYMBOL_DOWNLOAD" eMMC BOOT0 & BOOT1"); + lv_label_set_static_text(lv_obj_get_child(emmc_btn_ctxt.emmc_boot, NULL), SYMBOL_DOWNLOAD" eMMC BOOT0 y BOOT1"); lv_obj_realign(emmc_btn_ctxt.emmc_boot); if (!emmc_btn_ctxt.restore) @@ -223,7 +223,7 @@ static lv_res_t _emmc_backup_buttons_raw_toggle(lv_obj_t *btn) if (!emmc_btn_ctxt.restore) lv_label_set_static_text(lv_obj_get_child(emmc_btn_ctxt.emmc_sys, NULL), SYMBOL_MODULES" eMMC SYS"); else - lv_label_set_static_text(lv_obj_get_child(emmc_btn_ctxt.emmc_sys, NULL), SYMBOL_MODULES" eMMC ALL"); + lv_label_set_static_text(lv_obj_get_child(emmc_btn_ctxt.emmc_sys, NULL), SYMBOL_MODULES" eMMC TODO"); lv_obj_realign(emmc_btn_ctxt.emmc_sys); if (!emmc_btn_ctxt.restore) @@ -240,15 +240,15 @@ static lv_res_t _emmc_backup_buttons_raw_toggle(lv_obj_t *btn) else // Backup/Restore from and to emuMMC. { if (!emmc_btn_ctxt.restore) - lv_label_set_static_text(lv_obj_get_child(emmc_btn_ctxt.emmc_boot, NULL), SYMBOL_UPLOAD" SD emuMMC BOOT0 & BOOT1"); + lv_label_set_static_text(lv_obj_get_child(emmc_btn_ctxt.emmc_boot, NULL), SYMBOL_UPLOAD" EmuNAND SD BOOT0 y BOOT1"); else - lv_label_set_static_text(lv_obj_get_child(emmc_btn_ctxt.emmc_boot, NULL), SYMBOL_DOWNLOAD" SD emuMMC BOOT0 & BOOT1"); + lv_label_set_static_text(lv_obj_get_child(emmc_btn_ctxt.emmc_boot, NULL), SYMBOL_DOWNLOAD" EmuNAND SD BOOT0 yy BOOT1"); lv_obj_realign(emmc_btn_ctxt.emmc_boot); if (!emmc_btn_ctxt.restore) - lv_label_set_static_text(lv_obj_get_child(emmc_btn_ctxt.emmc_raw_gpp, NULL), SYMBOL_UPLOAD" SD emuMMC RAW GPP"); + lv_label_set_static_text(lv_obj_get_child(emmc_btn_ctxt.emmc_raw_gpp, NULL), SYMBOL_UPLOAD" EmuNAND SD RAW GPP"); else - lv_label_set_static_text(lv_obj_get_child(emmc_btn_ctxt.emmc_raw_gpp, NULL), SYMBOL_DOWNLOAD" SD emuMMC RAW GPP"); + lv_label_set_static_text(lv_obj_get_child(emmc_btn_ctxt.emmc_raw_gpp, NULL), SYMBOL_DOWNLOAD" EmuNAND SD RAW GPP"); lv_obj_realign(emmc_btn_ctxt.emmc_raw_gpp); lv_obj_set_click(emmc_btn_ctxt.emmc_sys, false); @@ -277,7 +277,7 @@ lv_res_t create_window_backup_restore_tool(lv_obj_t *btn) if (!emmc_btn_ctxt.restore) win = nyx_create_standard_window(SYMBOL_SD" Backup"); else - win = nyx_create_standard_window(SYMBOL_SD" Restore"); + win = nyx_create_standard_window(SYMBOL_SD" Restaurar"); static lv_style_t h_style; lv_style_copy(&h_style, &lv_style_transp); @@ -297,7 +297,7 @@ lv_res_t create_window_backup_restore_tool(lv_obj_t *btn) lv_label_set_static_text(label_sep, ""); lv_obj_t *label_txt = lv_label_create(h1, NULL); - lv_label_set_static_text(label_txt, "Full"); + lv_label_set_static_text(label_txt, "Completo"); lv_obj_set_style(label_txt, lv_theme_get_current()->label.prim); lv_obj_align(label_txt, label_sep, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, -LV_DPI * 3 / 10); @@ -312,9 +312,9 @@ lv_res_t create_window_backup_restore_tool(lv_obj_t *btn) lv_obj_t *label_btn = lv_label_create(btn1, NULL); lv_btn_set_fit(btn1, true, true); if (!emmc_btn_ctxt.restore) - lv_label_set_static_text(label_btn, SYMBOL_UPLOAD" eMMC BOOT0 & BOOT1"); + lv_label_set_static_text(label_btn, SYMBOL_UPLOAD" eMMC BOOT0 y BOOT1"); else - lv_label_set_static_text(label_btn, SYMBOL_DOWNLOAD" eMMC BOOT0 & BOOT1"); + lv_label_set_static_text(label_btn, SYMBOL_DOWNLOAD" eMMC BOOT0 y BOOT1"); lv_obj_align(btn1, line_sep, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, LV_DPI / 4); lv_btn_set_action(btn1, LV_BTN_ACTION_CLICK, _emmc_backup_buttons_decider); @@ -325,16 +325,16 @@ lv_res_t create_window_backup_restore_tool(lv_obj_t *btn) if (!emmc_btn_ctxt.restore) { lv_label_set_static_text(label_txt2, - "Allows you to backup the BOOT physical partitions.\n" - "They contain the BCT, keys and various package1.\n" - "#FF8000 These are paired with the RAW GPP backup.#"); + "Permite hacer un backup de las particiones BOOT.\n" + "Ellas contienen el BCT, keys y varios package1.\n" + "#FF8000 Se combinan con el backup de RAW GPP.#"); } else { lv_label_set_static_text(label_txt2, - "Allows you to restore the BOOT physical partitions.\n" - "They contain the BCT, keys and various package1.\n" - "#FF8000 These are paired with the RAW GPP restore.#"); + "Permite restaurar las particiones BOOT.\n" + "Ellas contienen el BCT, keys y varios package1.\n" + "#FF8000 Se combinan con la restauracion de RAW GPP.#"); } lv_obj_set_style(label_txt2, &hint_small_style); lv_obj_align(label_txt2, btn1, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 3); @@ -355,16 +355,16 @@ lv_res_t create_window_backup_restore_tool(lv_obj_t *btn) if (!emmc_btn_ctxt.restore) { lv_label_set_static_text(label_txt2, - "Allows you to backup the GPP physical partition.\n" - "It contains, CAL0, various package2, SYSTEM, USER, etc.\n" - "#FF8000 This is paired with the BOOT0/1 backups.#"); + "Permite hacer un backup de la particion GPP.\n" + "Contiene, CAL0, varios package2, SYSTEM, USER, etc.\n" + "#FF8000 Se combina con los backups de BOOT0/1.#"); } else { lv_label_set_static_text(label_txt2, - "Allows you to restore the GPP physical partition.\n" - "It contains, CAL0, various package2, SYSTEM, USER, etc.\n" - "#FF8000 This is paired with the BOOT0/1 restore.#"); + "Permite restaurar la particion GPP.\n" + "Contiene, CAL0, varios package2, SYSTEM, USER, etc.\n" + "#FF8000 Se combina con la restauracion de BOOT0/1.#"); } lv_obj_set_style(label_txt2, &hint_small_style); lv_obj_align(label_txt2, btn2, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 3); @@ -406,15 +406,15 @@ lv_res_t create_window_backup_restore_tool(lv_obj_t *btn) if (!emmc_btn_ctxt.restore) { lv_label_set_static_text(label_txt4, - "Allows you to backup the partitions from RAW GPP except\n" - "USER. It contains, CAL0, various package2, SYSTEM, etc.\n" - "#FF8000 This is an incomplete backup.#"); + "Permite hacer backup de las particiones RAW GPP excepto\n" + "USER. Contiene, CAL0, varios package2, SYSTEM, etc.\n" + "#FF8000 Este es un backup incompleto.#"); } else { lv_label_set_static_text(label_txt4, - "Allows you to restore ALL partitions from RAW GPP\n" - "It contains, CAL0, various package2, SYSTEM, USER, etc.\n"); + "Permite restaurar TODAS las particiones de RAW GPP\n" + "Contiene, CAL0, varios package2, SYSTEM, USER, etc.\n"); } lv_obj_set_style(label_txt4, &hint_small_style); @@ -433,8 +433,8 @@ lv_res_t create_window_backup_restore_tool(lv_obj_t *btn) label_txt4 = lv_label_create(h2, NULL); lv_label_set_recolor(label_txt4, true); lv_label_set_static_text(label_txt4, - "Allows you to backup the USER partition from RAW GPP.\n" - "#FF8000 This is an incomplete backup.#\n"); + "Permite hacer backup de la particion USER de RAW GPP.\n" + "#FF8000 Este es un backup incompleto.#\n"); lv_obj_set_style(label_txt4, &hint_small_style); lv_obj_align(label_txt4, btn4, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 3); } @@ -454,7 +454,7 @@ lv_res_t create_window_backup_restore_tool(lv_obj_t *btn) lv_obj_t *sd_emummc_raw = lv_btn_create(h3, NULL); nyx_create_onoff_button(lv_theme_get_current(), h3, - sd_emummc_raw, SYMBOL_SD" SD emuMMC Raw Partition", _emmc_backup_buttons_raw_toggle, false); + sd_emummc_raw, SYMBOL_SD" Particion Raw EmuNAND SD", _emmc_backup_buttons_raw_toggle, false); emmc_btn_ctxt.raw_emummc = false; return LV_RES_OK; diff --git a/nyx/nyx_gui/frontend/gui_emummc_tools.c b/nyx/nyx_gui/frontend/gui_emummc_tools.c index 16f2c555..d10cb5c8 100644 --- a/nyx/nyx_gui/frontend/gui_emummc_tools.c +++ b/nyx/nyx_gui/frontend/gui_emummc_tools.c @@ -58,9 +58,9 @@ static void _create_window_emummc() lv_obj_t *win; if (!mbr_ctx.part_idx) - win = nyx_create_window_custom_close_btn(SYMBOL_DRIVE" Create SD File emuMMC", _action_emummc_window_close); + win = nyx_create_window_custom_close_btn(SYMBOL_DRIVE" Crear Archivo SD EmuNAND", _action_emummc_window_close); else - win = nyx_create_window_custom_close_btn(SYMBOL_DRIVE" Create SD Partition emuMMC", _action_emummc_window_close); + win = nyx_create_window_custom_close_btn(SYMBOL_DRIVE" Crear Particion SD EmuNAND", _action_emummc_window_close); //Disable buttons. nyx_window_toggle_buttons(win, true); @@ -202,8 +202,8 @@ static void _create_mbox_emummc_raw() lv_obj_set_style(dark_bg, &mbox_darken); lv_obj_set_size(dark_bg, LV_HOR_RES, LV_VER_RES); - static const char *mbox_btn_format[] = { "\222Continue", "\222Cancel", "" }; - static char *mbox_btn_parts[] = { "\262Part 1", "\262Part 2", "\262Part 3", "\222Cancel", "" }; + static const char *mbox_btn_format[] = { "\222Continuar", "\222Cancelar", "" }; + static char *mbox_btn_parts[] = { "\262Part 1", "\262Part 2", "\262Part 3", "\222Cancelar", "" }; lv_obj_t * mbox = lv_mbox_create(dark_bg, NULL); lv_mbox_set_recolor_text(mbox, true); lv_obj_set_width(mbox, LV_HOR_RES / 9 * 6); @@ -254,18 +254,18 @@ static void _create_mbox_emummc_raw() if (mbr_ctx.available) { s_printf(txt_buf, - "#C7EA46 Found applicable partition(s)!#\n" - "#FF8000 Choose a partition to continue:#\n\n"); + "#C7EA46 Particion(es) encontradas!#\n" + "#FF8000 Elije particion para continuar:#\n\n"); } else - s_printf(txt_buf, "#FFDD00 Failed to find applicable partition!#\n\n"); + s_printf(txt_buf, "#FFDD00 Error al encontrar particion!#\n\n"); s_printf(txt_buf + strlen(txt_buf), - "Partition table:\n" - "#C0C0C0 Part 0: Type: %02x, Start: %08x, Size: %08x#\n" - "#%s Part 1: Type: %02x, Start: %08x, Size: %08x#\n" - "#%s Part 2: Type: %02x, Start: %08x, Size: %08x#\n" - "#%s Part 3: Type: %02x, Start: %08x, Size: %08x#", + "Tabla de particiones:\n" + "#C0C0C0 Part 0: Tipo: %02x, Inicio: %08x, Tam: %08x#\n" + "#%s Part 1: Tipo: %02x, Inicio: %08x, Tam: %08x#\n" + "#%s Part 2: Tipo: %02x, Inicio: %08x, Tam: %08x#\n" + "#%s Part 3: Tipo: %02x, Inicio: %08x, Tam: %08x#", mbr->partitions[0].type, mbr->partitions[0].start_sct, mbr->partitions[0].size_sct, (mbr_ctx.available & BIT(0)) ? (mbr_ctx.resized_cnt[0] ? "FFDD00" : "C7EA46") : "C0C0C0", mbr->partitions[1].type, mbr->partitions[1].start_sct, mbr->partitions[1].size_sct, @@ -275,11 +275,11 @@ static void _create_mbox_emummc_raw() mbr->partitions[3].type, mbr->partitions[3].start_sct, mbr->partitions[3].size_sct); if (mbr_ctx.resized_cnt[0] || mbr_ctx.resized_cnt[1] || mbr_ctx.resized_cnt[2]) - strcat(txt_buf, "\n\n#FFDD00 Note:# Yellow entries have USER partition resized."); + strcat(txt_buf, "\n\n#FFDD00 Nota:# Las amarillas tienen part. USER redimensio."); if (!mbr_ctx.available) - strcat(txt_buf, "\n#FF8000 Do you want to partition the SD card?#\n" - "#FF8000 (You will be asked on how to proceed)#"); + strcat(txt_buf, "\n#FF8000 Quieres particionar la tarjeta SD?#\n" + "#FF8000 (Se le preguntara como proceder)#"); lv_mbox_set_text(mbox, txt_buf); free(txt_buf); @@ -343,16 +343,16 @@ static lv_res_t _create_mbox_emummc_create(lv_obj_t *btn) lv_obj_set_style(dark_bg, &mbox_darken); lv_obj_set_size(dark_bg, LV_HOR_RES, LV_VER_RES); - static const char * mbox_btn_map[] = { "\222SD File", "\222SD Partition", "\222Cancel", "" }; + static const char * mbox_btn_map[] = { "\222Archivo SD", "\222Particion SD", "\222Cancelar", "" }; lv_obj_t * mbox = lv_mbox_create(dark_bg, NULL); lv_mbox_set_recolor_text(mbox, true); lv_obj_set_width(mbox, LV_HOR_RES / 9 * 6); lv_mbox_set_text(mbox, - "Welcome to #C7EA46 emuMMC# creation tool!\n\n" - "Please choose what type of emuMMC you want to create.\n" - "#FF8000 SD File# is saved as files in the FAT partition.\n" - "#FF8000 SD Partition# is saved as raw image in an available partition."); + "Bienvenido a la herramienta para crear una #C7EA46 EmuNAND#!\n\n" + "Elije el tipo de EmuNAND que quieres crear.\n" + "#FF8000 Archivo SD# se guarda como archivos en la SD.\n" + "#FF8000 Particion SD# se guarda como imagen raw en una particion disponible."); lv_mbox_add_btns(mbox, mbox_btn_map, _create_emummc_action); @@ -394,8 +394,8 @@ static void _create_emummc_migrated_mbox() lv_obj_set_width(mbox, LV_HOR_RES / 9 * 4); lv_mbox_set_text(mbox, - "#FF8000 emuMMC Configuration#\n\n" - "#96FF00 The emuMMC configuration#\n#96FF00 was saved to sd card!#"); + "#FF8000 Configuracion de EmuNAND#\n\n" + "#96FF00 Configuracion de EmuNAND#\n#96FF00 guardada en la SD!#"); lv_mbox_add_btns(mbox, mbox_btn_map, _save_emummc_cfg_mig_mbox_action); @@ -678,8 +678,8 @@ static lv_res_t _create_emummc_migrate_action(lv_obj_t * btns, const char * txt) lv_obj_set_style(dark_bg, &mbox_darken); lv_obj_set_size(dark_bg, LV_HOR_RES, LV_VER_RES); - static const char *mbox_btn_map[] = { "\222Continue", "\222Cancel", "" }; - static const char *mbox_btn_map1[] = { "\222SD File", "\222SD Partition", "\222Cancel", "" }; + static const char *mbox_btn_map[] = { "\222Continuar", "\222Cancelar", "" }; + static const char *mbox_btn_map1[] = { "\222Archivo SD", "\222Particion SD", "\222Cancelar", "" }; static const char *mbox_btn_map3[] = { "\251", "OK", "\251", "" }; lv_obj_t * mbox = lv_mbox_create(dark_bg, NULL); lv_mbox_set_recolor_text(mbox, true); @@ -690,41 +690,41 @@ static lv_res_t _create_emummc_migrate_action(lv_obj_t * btns, const char * txt) if (backup) { s_printf(txt_buf, - "#C7EA46 Found suitable backup for emuMMC!#\n\n" - "#FF8000 Do you want to migrate it?#\n"); + "#C7EA46 Encontrado backup de la EmuNAND!#\n\n" + "#FF8000 Quieres migrarlo?#\n"); lv_mbox_add_btns(mbox, mbox_btn_map, _create_emummc_mig4_action); } else if (emummc) { s_printf(txt_buf, - "#C7EA46 Found SD Partition based emuMMC!#\n\n" - "#FF8000 Do you want to repair the config and partition type for it?#\n"); + "#C7EA46 Encontrada EmuNAND en Particion SD!#\n\n" + "#FF8000 Quieres repararle la configuracion y tipo de particion?#\n"); lv_mbox_add_btns(mbox, mbox_btn_map, _create_emummc_mig3_action); } else if (em_raw && em_file) { s_printf(txt_buf, - "#C7EA46 Found both foreign SD File and Partition emunand!#\n\n" - "#FF8000 Choose what to migrate:#\n"); + "#C7EA46 Encontrada EmuNANDs en archivo SD y en Particion!#\n\n" + "#FF8000 Elije cual quieres migrar:#\n"); lv_mbox_add_btns(mbox, mbox_btn_map1, _create_emummc_mig1_action); } else if (em_raw) { s_printf(txt_buf, - "#C7EA46 Found foreign SD Partition emunand!#\n\n" - "#FF8000 Do you want to migrate it?#\n"); + "#C7EA46 Encontrada EmuNAND extranjera en Particion SD!#\n\n" + "#FF8000 Quieres migrarla?#\n"); lv_mbox_add_btns(mbox, mbox_btn_map, _create_emummc_mig2_action); } else if (em_file) { s_printf(txt_buf, - "#C7EA46 Found foreign SD File emunand!#\n\n" - "#FF8000 Do you want to migrate it?#\n"); + "#C7EA46 Encontrada EmuNAND extranjera en Archivo SD!#\n\n" + "#FF8000 Quieres migrarla?#\n"); lv_mbox_add_btns(mbox, mbox_btn_map, _create_emummc_mig0_action); } else { - s_printf(txt_buf, "No emuMMC or foreign emunand found!\n"); + s_printf(txt_buf, "Ninguna EmuNAND extranjera encontrada!\n"); lv_mbox_add_btns(mbox, mbox_btn_map3, mbox_action); } @@ -755,15 +755,15 @@ static lv_res_t _create_mbox_emummc_migrate(lv_obj_t *btn) lv_obj_set_style(dark_bg, &mbox_darken); lv_obj_set_size(dark_bg, LV_HOR_RES, LV_VER_RES); - static char *mbox_btn_map[] = { "\262Backup", "\262Fix RAW", "\262Emunand", "\222Cancel", "" }; + static char *mbox_btn_map[] = { "\262Backup", "\262Arreglar RAW", "\262EmuNAND", "\222Cancelar", "" }; lv_obj_t * mbox = lv_mbox_create(dark_bg, NULL); lv_mbox_set_recolor_text(mbox, true); lv_obj_set_width(mbox, LV_HOR_RES / 9 * 6); lv_mbox_set_text(mbox, - "Welcome to #C7EA46 emuMMC# migration tool!\n\n" - "Please choose what type of migration you want to do.\n" - "Anything that was not found will have the button disabled."); + "Bienvenido a la herramienta de migracion de EmuNAND!\n\n" + "Elije del tipo de migracion que quieres hacer.\n" + "Lo que no se encuentre tendra el boton deshabilitado."); char *path_buf = (char *)malloc(0x512); mbr_t *mbr = (mbr_t *)malloc(sizeof(mbr_t)); @@ -895,8 +895,8 @@ static void _create_emummc_saved_mbox() lv_obj_set_width(mbox, LV_HOR_RES / 9 * 4); lv_mbox_set_text(mbox, - "#FF8000 emuMMC Configuration#\n\n" - "#96FF00 The emuMMC configuration#\n#96FF00 was saved to sd card!#"); + "#FF8000 Configuracion de EmuNAND#\n\n" + "#96FF00 Configuracion de EmuNAND#\n#96FF00 guardada en la SD!#"); lv_mbox_add_btns(mbox, mbox_btn_map, _save_emummc_cfg_mbox_action); @@ -946,8 +946,8 @@ static lv_res_t _save_file_emummc_cfg_action(lv_obj_t *btn) static lv_res_t _create_change_emummc_window(lv_obj_t *btn_caller) { - lv_obj_t *win = nyx_create_standard_window(SYMBOL_SETTINGS" Change emuMMC"); - lv_win_add_btn(win, NULL, SYMBOL_POWER" Disable", _save_disable_emummc_cfg_action); + lv_obj_t *win = nyx_create_standard_window(SYMBOL_SETTINGS" Cambiar EmuNAND"); + lv_win_add_btn(win, NULL, SYMBOL_POWER" Desactivar", _save_disable_emummc_cfg_action); sd_mount(); @@ -1053,7 +1053,7 @@ out0:; lv_label_set_static_text(label_sep, ""); lv_obj_t *label_txt = lv_label_create(h1, NULL); - lv_label_set_static_text(label_txt, "SD Raw Partitions"); + lv_label_set_static_text(label_txt, "Particiones SD Raw"); lv_obj_set_style(label_txt, lv_theme_get_current()->label.prim); lv_obj_align(label_txt, label_sep, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, -(LV_DPI / 2)); @@ -1110,7 +1110,7 @@ out0:; lv_label_set_recolor(lv_desc, true); lv_obj_set_style(lv_desc, &hint_small_style); - s_printf(txt_buf, "Sector start: 0x%08X\nFolder: %s", emummc_img->part_sector[raw_btn_idx], &emummc_img->part_path[raw_btn_idx * 128]); + s_printf(txt_buf, "Inicio Sector: 0x%08X\nCarpeta: %s", emummc_img->part_sector[raw_btn_idx], &emummc_img->part_path[raw_btn_idx * 128]); lv_label_set_text(lv_desc, txt_buf); lv_obj_align(lv_desc, btn, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 5); } @@ -1129,7 +1129,7 @@ out0:; lv_label_set_static_text(label_sep, ""); lv_obj_t *label_txt3 = lv_label_create(h2, NULL); - lv_label_set_static_text(label_txt3, "SD File Based"); + lv_label_set_static_text(label_txt3, "Archivo SD"); lv_obj_set_style(label_txt3, lv_theme_get_current()->label.prim); lv_obj_align(label_txt3, label_sep, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, -LV_DPI / 7); @@ -1167,7 +1167,7 @@ out0:; lv_res_t create_win_emummc_tools(lv_obj_t *btn) { - lv_obj_t *win = nyx_create_standard_window(SYMBOL_EDIT" emuMMC Manage"); + lv_obj_t *win = nyx_create_standard_window(SYMBOL_EDIT" Administrar EmuNAND"); // Set resources to be managed by other windows. emummc_manage_window = win; @@ -1198,7 +1198,7 @@ lv_res_t create_win_emummc_tools(lv_obj_t *btn) lv_label_set_static_text(label_sep, ""); lv_obj_t *label_txt = lv_label_create(h1, NULL); - lv_label_set_static_text(label_txt, "emuMMC Info & Selection"); + lv_label_set_static_text(label_txt, "Info EmuNAND y Seleccion"); lv_obj_set_style(label_txt, lv_theme_get_current()->label.prim); lv_obj_align(label_txt, label_sep, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, -LV_DPI / 9); @@ -1211,7 +1211,7 @@ lv_res_t create_win_emummc_tools(lv_obj_t *btn) // Create emuMMC info labels. lv_obj_t *label_btn = lv_label_create(h1, NULL); lv_label_set_recolor(label_btn, true); - lv_label_set_static_text(label_btn, emu_info.enabled ? "#96FF00 "SYMBOL_OK" Enabled!#" : "#FF8000 "SYMBOL_CLOSE" Disabled!#"); + lv_label_set_static_text(label_btn, emu_info.enabled ? "#96FF00 "SYMBOL_OK" Activada!#" : "#FF8000 "SYMBOL_CLOSE" Desactivada!#"); lv_obj_align(label_btn, line_sep, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, LV_DPI / 4); lv_obj_t *label_txt2 = lv_label_create(h1, NULL); @@ -1221,17 +1221,17 @@ lv_res_t create_win_emummc_tools(lv_obj_t *btn) if (emu_info.enabled) { if (emu_info.sector) - s_printf(txt_buf, "#00DDFF Type:# SD Raw Partition\n#00DDFF Sector:# 0x%08X\n#00DDFF Nintendo folder:# %s", + s_printf(txt_buf, "#00DDFF Tipo:# Particion SD Raw\n#00DDFF Sector:# 0x%08X\n#00DDFF Carpeta Nintendo:# %s", emu_info.sector, emu_info.nintendo_path ? emu_info.nintendo_path : ""); else - s_printf(txt_buf, "#00DDFF Type:# SD File\n#00DDFF Base folder:# %s\n#00DDFF Nintendo folder:# %s", + s_printf(txt_buf, "#00DDFF Tipo:# Archivo SD\n#00DDFF Basado en Carpeta:# %s\n#00DDFF Carpeta Nintendo:# %s", emu_info.path ? emu_info.path : "", emu_info.nintendo_path ? emu_info.nintendo_path : ""); lv_label_set_text(label_txt2, txt_buf); } else { - lv_label_set_static_text(label_txt2, "emuMMC is disabled and eMMC will be used for boot.\n\n"); + lv_label_set_static_text(label_txt2, "EmuNAND desactivada. Se usara eMMC para arrancar.\n\n"); } if (emu_info.path) @@ -1247,16 +1247,16 @@ lv_res_t create_win_emummc_tools(lv_obj_t *btn) lv_obj_t *btn2 = lv_btn_create(h1, NULL); lv_btn_set_fit(btn2, true, true); label_btn = lv_label_create(btn2, NULL); - lv_label_set_static_text(label_btn, SYMBOL_SETTINGS" Change emuMMC"); + lv_label_set_static_text(label_btn, SYMBOL_SETTINGS" Cambiar EmuNAND"); lv_obj_align(btn2, label_txt2, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI * 6 / 10); lv_btn_set_action(btn2, LV_BTN_ACTION_CLICK, _create_change_emummc_window); label_txt2 = lv_label_create(h1, NULL); lv_label_set_recolor(label_txt2, true); lv_label_set_static_text(label_txt2, - "Choose between images created in the emuMMC folder\n" - "or in SD card partitions. You can have at most 3 partition\n" - "based and countless file based."); + "Elije entre imagenes creadas en la carpeta emuMMC o en\n" + "particiones en la SD. Puedes tener maximo 3 basadas en\n" + "particiones e infinitas basadas en archivo."); lv_obj_set_style(label_txt2, &hint_small_style); lv_obj_align(label_txt2, btn2, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 3); @@ -1274,7 +1274,7 @@ lv_res_t create_win_emummc_tools(lv_obj_t *btn) lv_label_set_static_text(label_sep, ""); lv_obj_t *label_txt3 = lv_label_create(h2, NULL); - lv_label_set_static_text(label_txt3, "emuMMC Tools"); + lv_label_set_static_text(label_txt3, "Herramientas de EmuNAND"); lv_obj_set_style(label_txt3, lv_theme_get_current()->label.prim); lv_obj_align(label_txt3, label_sep, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, 0); @@ -1285,15 +1285,15 @@ lv_res_t create_win_emummc_tools(lv_obj_t *btn) lv_obj_t *btn3 = lv_btn_create(h2, btn2); label_btn = lv_label_create(btn3, NULL); lv_btn_set_fit(btn3, true, true); - lv_label_set_static_text(label_btn, SYMBOL_DRIVE" Create emuMMC"); + lv_label_set_static_text(label_btn, SYMBOL_DRIVE" Crear EmuNAND"); lv_obj_align(btn3, line_sep, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, LV_DPI / 4); lv_btn_set_action(btn3, LV_BTN_ACTION_CLICK, _create_mbox_emummc_create); lv_obj_t *label_txt4 = lv_label_create(h2, NULL); lv_label_set_recolor(label_txt4, true); lv_label_set_static_text(label_txt4, - "Allows you to create a new #C7EA46 SD File# or #C7EA46 SD Raw Partition#\n" - "emuMMC. You can create it from eMMC or a eMMC Backup."); + "Permite crear una EmuNAND en #C7EA46 archivo SD# o en #C7EA46 particion\n" + "SD Raw. Puedes crearla desde la eMMC o desde un Backup."); lv_obj_set_style(label_txt4, &hint_small_style); lv_obj_align(label_txt4, btn3, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 3); @@ -1301,7 +1301,7 @@ lv_res_t create_win_emummc_tools(lv_obj_t *btn) // Create Migrate emuMMC button. lv_obj_t *btn4 = lv_btn_create(h2, btn2); label_btn = lv_label_create(btn4, NULL); - lv_label_set_static_text(label_btn, SYMBOL_SHUFFLE" Migrate emuMMC"); + lv_label_set_static_text(label_btn, SYMBOL_SHUFFLE" Migrar EmuNAND"); lv_obj_align(btn4, label_txt4, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 2); lv_btn_set_action(btn4, LV_BTN_ACTION_CLICK, NULL); lv_btn_set_action(btn4, LV_BTN_ACTION_CLICK, _create_mbox_emummc_migrate); @@ -1309,8 +1309,8 @@ lv_res_t create_win_emummc_tools(lv_obj_t *btn) label_txt4 = lv_label_create(h2, NULL); lv_label_set_recolor(label_txt4, true); lv_label_set_static_text(label_txt4, - "Migrate a backup to a #C7EA46 SD File# or repair existing #C7EA46 SD Raw Partition#.\n" - "Additionally it allows you to migrate from other emunand\nsolutions."); + "Migra un backup a #C7EA46 Archivo SD# o repara una #C7EA46 Particion SD RAW#\n" + "existente. Adicionalmente puedes migrar desde otras EmuNANDs."); lv_obj_set_style(label_txt4, &hint_small_style); lv_obj_align(label_txt4, btn4, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 3); diff --git a/nyx/nyx_gui/frontend/gui_info.c b/nyx/nyx_gui/frontend/gui_info.c index 0eb0a47f..3d1fb7f6 100644 --- a/nyx/nyx_gui/frontend/gui_info.c +++ b/nyx/nyx_gui/frontend/gui_info.c @@ -49,11 +49,11 @@ static lv_res_t _create_window_dump_done(int error, char *dump_filenames) char *txt_buf = (char *)malloc(SZ_4K); if (error) - s_printf(txt_buf, "#FFDD00 Failed to dump to# %s#FFDD00 !#\nError: %d", dump_filenames, error); + s_printf(txt_buf, "#FFDD00 Fallo al dumpear a# %s#FFDD00 !#\nError: %d", dump_filenames, error); else { char *sn = emmcsn_path_impl(NULL, NULL, NULL, NULL); - s_printf(txt_buf, "Dumping to SD card finished!\nFiles: #C7EA46 backup/%s/dumps/#\n%s", sn, dump_filenames); + s_printf(txt_buf, "Dumpeo a la SD finalizado!\nArch: #C7EA46 backup/%s/dumps/#\n%s", sn, dump_filenames); } lv_mbox_set_text(mbox, txt_buf); free(txt_buf); @@ -292,12 +292,12 @@ static lv_res_t _create_mbox_cal0(lv_obj_t *btn) lv_obj_set_style(dark_bg, &mbox_darken); lv_obj_set_size(dark_bg, LV_HOR_RES, LV_VER_RES); - static const char * mbox_btn_map[] = { "\251", "\222Dump", "\222Close", "\251", "" }; + static const char * mbox_btn_map[] = { "\251", "\222Dumpear", "\222Cerrar", "\251", "" }; lv_obj_t * mbox = lv_mbox_create(dark_bg, NULL); lv_mbox_set_recolor_text(mbox, true); lv_obj_set_width(mbox, LV_HOR_RES / 9 * 5); - lv_mbox_set_text(mbox, "#C7EA46 CAL0 Info#"); + lv_mbox_set_text(mbox, "#C7EA46 info CAL0#"); char *txt_buf = (char *)malloc(SZ_16K); txt_buf[0] = 0; @@ -316,13 +316,13 @@ static lv_res_t _create_mbox_cal0(lv_obj_t *btn) // Check result. Don't error if hash doesn't match. if (cal0_res == 1) { - lv_label_set_text(lb_desc, "#FFDD00 Failed to init eMMC!#"); + lv_label_set_text(lb_desc, "#FFDD00 Fallo al iniciar la eMMC!#"); goto out; } else if (cal0_res == 2) { - lv_label_set_text(lb_desc, "#FFDD00 CAL0 is corrupt or wrong keys!#\n"); + lv_label_set_text(lb_desc, "#FFDD00 CAL0 corrupto o keys equivocadas!#\n"); goto out; } @@ -332,13 +332,13 @@ static lv_res_t _create_mbox_cal0(lv_obj_t *btn) se_calc_sha256_oneshot(hash, (u8 *)cal0 + 0x40, cal0->body_size); s_printf(txt_buf, - "#FF8000 CAL0 Version:# %d\n" - "#FF8000 Update Count:# %d\n" - "#FF8000 Serial Number:# %s\n" - "#FF8000 WLAN MAC:# %02X:%02X:%02X:%02X:%02X:%02X\n" - "#FF8000 Bluetooth MAC:# %02X:%02X:%02X:%02X:%02X:%02X\n" - "#FF8000 Battery LOT:# %s (%d)\n" - "#FF8000 LCD Vendor:# ", + "#FF8000 Version de CAL0:# %d\n" + "#FF8000 Contador de Actualiz:# %d\n" + "#FF8000 Numero de Serie:# %s\n" + "#FF8000 MAC de Wifi:# %02X:%02X:%02X:%02X:%02X:%02X\n" + "#FF8000 MAC de Bluetooth:# %02X:%02X:%02X:%02X:%02X:%02X\n" + "#FF8000 LOTE de Bateria:# %s (%d)\n" + "#FF8000 Marca de LCD:# ", cal0->version, cal0->update_cnt, cal0->serial_number, cal0->wlan_mac[0], cal0->wlan_mac[1], cal0->wlan_mac[2], cal0->wlan_mac[3], cal0->wlan_mac[4], cal0->wlan_mac[5], cal0->bd_mac[0], cal0->bd_mac[1], cal0->bd_mac[2], cal0->bd_mac[3], cal0->bd_mac[4], cal0->bd_mac[5], @@ -389,12 +389,12 @@ static lv_res_t _create_mbox_cal0(lv_obj_t *btn) strcat(txt_buf, "Samsung "); break; } - strcat(txt_buf, "Unknown"); + strcat(txt_buf, "Desconocido"); break; } bool valid_cal0 = !memcmp(hash, cal0->body_sha256, 0x20); - s_printf(txt_buf + strlen(txt_buf), " (%06X)\n#FF8000 SHA256 Hash Match:# %s", cal0->lcd_vendor, valid_cal0 ? "Pass" : "Failed"); + s_printf(txt_buf + strlen(txt_buf), " (%06X)\n#FF8000 Coincid. Hash SHA256:# %s", cal0->lcd_vendor, valid_cal0 ? "Paso" : "Fallo"); lv_label_set_text(lb_desc, txt_buf); @@ -412,9 +412,9 @@ static lv_res_t _create_mbox_cal0(lv_obj_t *btn) static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn) { - lv_obj_t *win = nyx_create_standard_window(SYMBOL_CHIP" HW & Fuses Info"); - lv_win_add_btn(win, NULL, SYMBOL_DOWNLOAD" Dump fuses", _fuse_dump_window_action); - lv_win_add_btn(win, NULL, SYMBOL_INFO" CAL0 Info", _create_mbox_cal0); + lv_obj_t *win = nyx_create_standard_window(SYMBOL_CHIP" Info Fusibles y HW"); + lv_win_add_btn(win, NULL, SYMBOL_DOWNLOAD" Dumpear fusibles", _fuse_dump_window_action); + lv_win_add_btn(win, NULL, SYMBOL_INFO" Info CAL0", _create_mbox_cal0); lv_obj_t *desc = lv_cont_create(win, NULL); lv_obj_set_size(desc, LV_HOR_RES / 2 / 5 * 2, LV_VER_RES - (LV_DPI * 11 / 7) - 5); @@ -425,33 +425,33 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn) lv_label_set_style(lb_desc, &monospace_text); lv_label_set_static_text(lb_desc, - "SKU:\n" + "Tipo de Consola:\n" "DRAM ID:\n" - "#FF8000 Burnt Fuses (ODM 7/6):#\n" - "ODM Fields (4, 6, 7):\n" - "Secure Boot Key (SBK):\n" - "Device Key (DK):\n" - "Keygen Revision:\n" - "USB Stack:\n" - "Final Test Revision:\n" - "Chip Probing Revision:\n" - "CPU Speedo 0 (CPU Val):\n" - "CPU Speedo 1:\n" - "CPU Speedo 2 (GPU Val):\n" - "SoC Speedo 0 (SoC Val):\n" - "SoC Speedo 1 (BROM rev):\n" - "SoC Speedo 2:\n" - "CPU IDDQ Val:\n" - "SoC IDDQ Val:\n" - "Gpu IDDQ Val:\n" - "Vendor Code:\n" - "FAB Code:\n" - "LOT Code 0:\n" - "LOT Code 1:\n" - "Wafer ID:\n" - "X Coordinate:\n" - "Y Coordinate:\n" - "#FF8000 Chip ID Revision:#" + "#FF8000 Fusibles quemados:#\n" + "Campos ODM (4, 6, 7):\n" + "Clave Segura Arranque:\n" + "Clave de Dispositivo:\n" + "Revision de Keygen:\n" + "Pila USB:\n" + "Revision Test Final:\n" + "Revision Sondeo Chip:\n" + "Vel. CPU 0 (Valor CPU):\n" + "Vel. CPU 1:\n" + "Vel. CPU 2 (Valor GPU):\n" + "Vel. SoC 0 (Valor SoC):\n" + "Vel. SoC 1 (Rev. BROM):\n" + "Vel. SoC 2:\n" + "Valor de IDDQ de CPU:\n" + "Valor de IDDQ de SoC:\n" + "Valor de IDDQ de GPU:\n" + "Codigo de Proveedor:\n" + "Codigo de FAB:\n" + "Codigo de LOTE 0:\n" + "Codigo de LOTE 1:\n" + "Codigo de Wafer:\n" + "Coordenada X:\n" + "Coordenada Y:\n" + "#FF8000 Revision ID de Chip:#" ); lv_obj_set_width(lb_desc, lv_obj_get_width(desc)); @@ -483,7 +483,7 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn) sku = "Aula (Mariko)"; break; default: - sku = "#FF8000 Unknown#"; + sku = "#FF8000 Desconocido#"; break; } @@ -509,7 +509,7 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn) strcpy(dram_man, "Samsung K4FBE3D4HM-MGXX 8GB"); break; default: - strcpy(dram_man, "#FF8000 Unknown#"); + strcpy(dram_man, "#FF8000 Desconocido#"); break; } } @@ -571,11 +571,11 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn) case LPDDR4X_UNK0_4GB_MICRON_1A: case LPDDR4X_UNK1_4GB_MICRON_1A: case LPDDR4X_UNK2_4GB_MICRON_1A: - strcpy(dram_man, "Micron 1a 4GB #FF8000 Contact me!#"); + strcpy(dram_man, "Micron 1a 4GB #FF8000 Contactame!#"); break; default: - strcpy(dram_man, "#FF8000 Contact me!#"); + strcpy(dram_man, "#FF8000 Contactame!#"); break; } } @@ -591,7 +591,7 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn) switch (burnt_fuses_hos) { case 0: - strcpy(fuses_hos_version, "#96FF00 Golden sample#"); + strcpy(fuses_hos_version, "#96FF00 Muestra de Oro#"); break; case 1: strcpy(fuses_hos_version, "1.0.0"); @@ -648,10 +648,10 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn) strcpy(fuses_hos_version, "16.0.0+"); break; case 255: - strcpy(fuses_hos_version, "#FFD000 Overburnt#"); + strcpy(fuses_hos_version, "#FFD000 Sobrequemado#"); break; default: - strcpy(fuses_hos_version, "#FF8000 Unknown#"); + strcpy(fuses_hos_version, "#FF8000 Desconocido#"); break; } @@ -672,7 +672,7 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn) "%X - %s - %s\n%02d: %s\n%d - %d (HOS: %s)\n%08X %08X %08X\n%08X%08X%08X%08X\n%08X\n%d\n" "%s\n%d.%02d (0x%X)\n%d.%02d (0x%X)\n%d\n%d\n%d\n%d\n0x%X\n%d\n%d\n%d\n%d\n" "%d\n%d\n%d (0x%X)\n%d\n%d\n%d\n%d\n" - "ID: %02X, Major: A%02d, Minor: %d", + "ID: %02X, Mayor: A%02d, Menor: %d", FUSE(FUSE_SKU_INFO), sku, fuse_read_hw_state() ? "Dev" : "Retail", dram_id, dram_man, burnt_fuses_7, burnt_fuses_6, fuses_hos_version, fuse_read_odm(4), fuse_read_odm(6), fuse_read_odm(7), @@ -709,7 +709,7 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn) u32 ranks = EMC(EMC_ADR_CFG) + 1; u32 channels = (EMC(EMC_FBIO_CFG7) >> 1) & 3; u32 die_channels = ranks * ((channels & 1) + ((channels & 2) >> 1)); - s_printf(txt_buf, "#00DDFF %s SDRAM ##FF8000 (Ch 0 | Ch 1):#\n#FF8000 Vendor:# ", h_cfg.t210b01 ? "LPDDR4X" : "LPDDR4"); + s_printf(txt_buf, "#00DDFF %s SDRAM ##FF8000 (Ch 0 | Ch 1):#\n#FF8000 Marca:# ", h_cfg.t210b01 ? "LPDDR4X" : "LPDDR4"); switch (ram_vendor.rank0_ch0) { case 1: @@ -750,7 +750,7 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn) strcat(txt_buf, "Micron"); break; default: - s_printf(txt_buf + strlen(txt_buf), "#FF8000 Unknown# (%d)", ram_vendor.rank0_ch0); + s_printf(txt_buf + strlen(txt_buf), "#FF8000 Desconocido# (%d)", ram_vendor.rank0_ch0); break; } strcat(txt_buf, " #FF8000 |# "); @@ -766,10 +766,10 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn) strcat(txt_buf, "Micron"); break; default: - s_printf(txt_buf + strlen(txt_buf), "#FF8000 Unknown# (%d)", ram_vendor.rank0_ch1); + s_printf(txt_buf + strlen(txt_buf), "#FF8000 Desconocido# (%d)", ram_vendor.rank0_ch1); break; } - s_printf(txt_buf + strlen(txt_buf), "\n#FF8000 Rev ID:# %X.%02X #FF8000 |# %X.%02X\n#FF8000 Density:# %d", + s_printf(txt_buf + strlen(txt_buf), "\n#FF8000 Revision ID:# %X.%02X #FF8000 |# %X.%02X\n#FF8000 Densidad:# %d", ram_rev0.rank0_ch0, ram_rev1.rank0_ch0, ram_rev0.rank0_ch1, ram_rev1.rank0_ch1, die_channels); switch ((ram_density.rank0_ch0 & 0x3C) >> 2) { @@ -789,7 +789,7 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn) strcat(txt_buf, " x 2GB"); break; default: - s_printf(txt_buf + strlen(txt_buf), " x Unk (%d)", (ram_density.rank0_ch0 & 0x3C) >> 2); + s_printf(txt_buf + strlen(txt_buf), " x Des (%d)", (ram_density.rank0_ch0 & 0x3C) >> 2); break; } s_printf(txt_buf + strlen(txt_buf), " #FF8000 |# %d", die_channels); @@ -811,7 +811,7 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn) strcat(txt_buf, " x 2GB"); break; default: - s_printf(txt_buf + strlen(txt_buf), " x Unk (%d)", (ram_density.rank0_ch1 & 0x3C) >> 2); + s_printf(txt_buf + strlen(txt_buf), " x Des (%d)", (ram_density.rank0_ch1 & 0x3C) >> 2); break; } strcat(txt_buf, "\n\n"); @@ -820,7 +820,7 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn) u8 display_rev = (nyx_str->info.disp_id >> 8) & 0xFF; u32 display_id = ((nyx_str->info.disp_id >> 8) & 0xFF00) | (nyx_str->info.disp_id & 0xFF); - strcat(txt_buf, "#00DDFF Display Panel:#\n#FF8000 Model:# "); + strcat(txt_buf, "#00DDFF Pantalla LCD:#\n#FF8000 Modelo:# "); switch (display_id) { @@ -850,7 +850,7 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn) strcat(txt_buf, "-???"); break; default: - strcat(txt_buf, " #FFDD00 Contact me!#"); + strcat(txt_buf, " #FFDD00 Contactame!#"); break; } break; @@ -877,7 +877,7 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn) strcat(txt_buf, "XX"); break; default: - strcat(txt_buf, " #FFDD00 Contact me!#"); + strcat(txt_buf, " #FFDD00 Contactame!#"); break; } break; @@ -895,7 +895,7 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn) strcat(txt_buf, "Samsung AMS699VC01"); break; case 0xCCCC: - strcat(txt_buf, "#FFDD00 Failed to get info!#"); + strcat(txt_buf, "#FFDD00 Fallo al obt. info!#"); break; default: switch (display_id & 0xFF) @@ -913,7 +913,7 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn) strcat(txt_buf, "Samsung "); break; } - strcat(txt_buf, "Unknown #FFDD00 Contact me!#"); + strcat(txt_buf, "Unknown #FFDD00 Contactame!#"); break; } @@ -927,14 +927,14 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn) // Prepare touch panel/ic info. if (!touch_get_fw_info(&touch_fw)) { - strcat(txt_buf, "\n\n#00DDFF Touch Panel:#\n#FF8000 Model:# "); + strcat(txt_buf, "\n\n#00DDFF Panel Tactil:#\n#FF8000 Modelo:# "); touch_panel = touch_get_panel_vendor(); if (touch_panel) { if ((u8)touch_panel->idx == (u8)-2) // Touch panel not found, print gpios. { - s_printf(txt_buf + strlen(txt_buf), "%2X%2X%2X #FFDD00 Contact me!#", + s_printf(txt_buf + strlen(txt_buf), "%2X%2X%2X #FFDD00 Contactame!#", touch_panel->gpio0, touch_panel->gpio1, touch_panel->gpio2); touch_panel = NULL; } @@ -964,7 +964,7 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn) case 0x98000004: // New 6.2" panel? case 0x50000001: case 0x50000002: - strcat(txt_buf, "FST2 UNK"); + strcat(txt_buf, "FST2 DES"); if (touch_panel) panel_ic_paired = touch_panel->idx == 0; break; @@ -995,23 +995,23 @@ static lv_res_t _create_window_fuses_info_status(lv_obj_t *btn) panel_ic_paired = touch_panel->idx == 4; // Samsung BH2109. break; default: - strcat(txt_buf, "#FF8000 Unknown#"); + strcat(txt_buf, "#FF8000 Desconocido#"); break; } - s_printf(txt_buf + strlen(txt_buf), " - %s)\n#FF8000 FTB ver:# %04X\n#FF8000 FW rev:# %04X", + s_printf(txt_buf + strlen(txt_buf), " - %s)\n#FF8000 Version de FTB:# %04X\n#FF8000 Version de FW:# %04X", panel_ic_paired ? "Paired" : "#FFDD00 Error#", touch_fw.ftb_ver, byte_swap_16(touch_fw.fw_rev)); // Byte swapping makes more sense here. } else - strcat(txt_buf, "\n\n#FFDD00 Failed to get touch info!#"); + strcat(txt_buf, "\n\n#FFDD00 Fallo al obt. info!#"); // Check if patched unit. if (!fuse_check_patched_rcm()) - strcat(txt_buf, "\n\n#96FF00 This unit is exploitable#\n#96FF00 to the RCM bug!#"); + strcat(txt_buf, "\n\n#96FF00 Esta Switch es exploitable#\n#96FF00 para el bug RCM!#"); else - strcat(txt_buf, "\n\n#FF8000 This unit is patched#\n#FF8000 to the RCM bug!#"); + strcat(txt_buf, "\n\n#FF8000 Esta Switch esta parcheada#\n#FF8000 para el bug RCM!#"); lv_label_set_text(lb_desc2, txt_buf); @@ -1048,8 +1048,8 @@ static void _ipatch_process(u32 offset, u32 value) static lv_res_t _create_window_bootrom_info_status(lv_obj_t *btn) { - lv_obj_t *win = nyx_create_standard_window(SYMBOL_CHIP" Bootrom Info"); - lv_win_add_btn(win, NULL, SYMBOL_DOWNLOAD" Dump Bootrom", _bootrom_dump_window_action); + lv_obj_t *win = nyx_create_standard_window(SYMBOL_CHIP" Informacion de Bootrom"); + lv_win_add_btn(win, NULL, SYMBOL_DOWNLOAD" Dumpear Bootrom", _bootrom_dump_window_action); lv_obj_t *desc = lv_cont_create(win, NULL); lv_obj_set_size(desc, LV_HOR_RES / 2 / 3 * 2, LV_VER_RES - (LV_DPI * 11 / 7) - 5); @@ -1061,11 +1061,11 @@ static lv_res_t _create_window_bootrom_info_status(lv_obj_t *btn) char *txt_buf = (char *)malloc(SZ_4K); ipatches_txt = txt_buf; - s_printf(txt_buf, "#00DDFF Ipatches:#\n#FF8000 Address "SYMBOL_DOT" Val "SYMBOL_DOT" Instruction#\n"); + s_printf(txt_buf, "#00DDFF Ipatches:#\n#FF8000 Direcc. "SYMBOL_DOT" Val "SYMBOL_DOT" Instruccion#\n"); u32 res = fuse_read_ipatch(_ipatch_process); if (res != 0) - s_printf(txt_buf + strlen(txt_buf), "#FFDD00 Failed to read ipatches. Error: %d#", res); + s_printf(txt_buf + strlen(txt_buf), "#FFDD00 Fallo al leer ipatches. Error: %d#", res); lv_label_set_text(lb_desc, txt_buf); @@ -1103,12 +1103,12 @@ static lv_res_t _create_mbox_lockpick(lv_obj_t *btn) lv_obj_set_style(dark_bg, &mbox_darken); lv_obj_set_size(dark_bg, LV_HOR_RES, LV_VER_RES); - static const char * mbox_btn_map[] = { "\251", "\222Continue", "\222Close", "\251", "" }; + static const char * mbox_btn_map[] = { "\251", "\222Continuar", "\222Cerrar", "\251", "" }; lv_obj_t * mbox = lv_mbox_create(dark_bg, NULL); lv_mbox_set_recolor_text(mbox, true); - lv_mbox_set_text(mbox, "#FF8000 Lockpick RCM#\n\nThis will launch Lockpick RCM.\nDo you want to continue?\n\n" - "To return back from lockpick use\n#96FF00 Reboot to hekate#."); + lv_mbox_set_text(mbox, "#FF8000 Lockpick RCM#\n\nEsto ejecutara Lockpick RCM.\nQuieres continuar?\n\n" + "Para volver desde Lockpick usa\n#96FF00 Reiniciar a hekate#."); lv_mbox_add_btns(mbox, mbox_btn_map, _launch_lockpick_action); lv_obj_set_width(mbox, LV_HOR_RES / 9 * 5); @@ -1130,12 +1130,12 @@ static lv_res_t _create_mbox_emmc_sandisk_report(lv_obj_t * btn) lv_obj_set_style(dark_bg, &mbox_darken); lv_obj_set_size(dark_bg, LV_HOR_RES, LV_VER_RES); - static const char * mbox_btn_map[] = { "\251", "\222Close", "\251", "" }; + static const char * mbox_btn_map[] = { "\251", "\222Cerrar", "\251", "" }; lv_obj_t * mbox = lv_mbox_create(dark_bg, NULL); lv_mbox_set_recolor_text(mbox, true); lv_obj_set_width(mbox, LV_HOR_RES / 9 * 8); - lv_mbox_set_text(mbox, "#C7EA46 Sandisk Device Report#"); + lv_mbox_set_text(mbox, "#C7EA46 Reporte Disp. Sandisk#"); u8 *buf = calloc(512, 1); char *txt_buf = (char *)malloc(SZ_32K); @@ -1167,7 +1167,7 @@ static lv_res_t _create_mbox_emmc_sandisk_report(lv_obj_t * btn) if (!emmc_initialize(false)) { - lv_label_set_text(lb_desc, "#FFDD00 Failed to init eMMC!#"); + lv_label_set_text(lb_desc, "#FFDD00 Fallo al iniciar la eMMC!#"); goto out; } @@ -1177,7 +1177,7 @@ static lv_res_t _create_mbox_emmc_sandisk_report(lv_obj_t * btn) if (!res) { - lv_label_set_text(lb_desc, "#FFDD00 Device Report not supported!#"); + lv_label_set_text(lb_desc, "#FFDD00 Reporte no soportado!#"); lv_label_set_text(lb_desc2, " "); goto out; @@ -1191,28 +1191,28 @@ static lv_res_t _create_mbox_emmc_sandisk_report(lv_obj_t * btn) memcpy(fw_update_time, rpt->fw_update_time, sizeof(rpt->fw_update_time)); s_printf(txt_buf, - "#00DDFF Device report#\n" + "#00DDFF Reporte Dispositivo#\n" //"#FF8000 Average Erases SYS:# %d\n" - "#FF8000 Average Erases SLC:# %d\n" - "#FF8000 Average Erases MLC:# %d\n" + "#FF8000 Promedio Borrados SLC:# %d\n" + "#FF8000 Promedio Borrados MLC:# %d\n" //"#FF8000 Read Reclaims SYS:# %d\n" - "#FF8000 Read Reclaims SLC:# %d\n" - "#FF8000 Read Reclaims MLC:# %d\n" - "#FF8000 Bad Blocks Factory:# %d\n" - "#FF8000 Bad Blocks SYS:# %d\n" - "#FF8000 Bad Blocks SLC:# %d\n" - "#FF8000 Bad Blocks MLC:# %d\n" - "#FF8000 FW Updates:# %d\n" - "#FF8000 FW Buildtime:# %s %s\n" - "#FF8000 Total Writes:# %d MB\n" + "#FF8000 Lect. Recuperadas SLC:# %d\n" + "#FF8000 Lect. Recuperadas MLC:# %d\n" + "#FF8000 Bloques Malos Fabrica:# %d\n" + "#FF8000 Bloques Malos SYS:# %d\n" + "#FF8000 Bloques Malos SLC:# %d\n" + "#FF8000 Bloques Malos MLC:# %d\n" + "#FF8000 Actualizaciones de FW:# %d\n" + "#FF8000 Fecha de FW:# %s %s\n" + "#FF8000 Escrituras totales:# %d MB\n" //"#FF8000 Voltage Drops:# %d\n" //"#FF8000 Voltage Droops:# %d\n" //"#FF8000 VD Failed Recovers:# %d\n" //"#FF8000 VD Recover Operations:# %d\n" - "#FF8000 Total Writes SLC:# %d MB\n" - "#FF8000 Total Writes MLC:# %d MB\n" - "#FF8000 BigFile limit status:# %d\n" - "#FF8000 Average Erases Hybrid:# %d", + "#FF8000 Escrituras totales SLC:#%d MB\n" + "#FF8000 Escrituras totales MLC:#%d MB\n" + "#FF8000 Est. Limite de BigFile:#%d\n" + "#FF8000 Prom. Borrados Hibrido:#%d", //rpt->avg_erase_cycles_sys, rpt->avg_erase_cycles_slc, @@ -1244,29 +1244,29 @@ static lv_res_t _create_mbox_emmc_sandisk_report(lv_obj_t * btn) if (advanced_report) { s_printf(txt_buf2, - "#00DDFF Advanced Health Status#\n" - "#FF8000 Power ups:# %d\n" + "#00DDFF Estado Salud Avanzado#\n" + "#FF8000 Potenciadores:# %d\n" //"#FF8000 Maximum Erases SYS:# %d\n" - "#FF8000 Maximum Erases SLC:# %d\n" - "#FF8000 Maximum Erases MLC:# %d\n" + "#FF8000 Borrados Maximos SLC:# %d\n" + "#FF8000 Borrados Maximos MLC:# %d\n" //"#FF8000 Minimum Erases SYS:# %d\n" - "#FF8000 Minimum Erases SLC:# %d\n" - "#FF8000 Minimum Erases MLC:# %d\n" - "#FF8000 Maximum Erases EUDA:# %d\n" - "#FF8000 Minimum Erases EUDA:# %d\n" - "#FF8000 Average Erases EUDA:# %d\n" - "#FF8000 Read Reclaims EUDA:# %d\n" - "#FF8000 Bad Blocks EUDA:# %d\n" + "#FF8000 Borrados Minimos SLC:# %d\n" + "#FF8000 Borrados Minimos MLC:# %d\n" + "#FF8000 Borrados Maximos EUDA:# %d\n" + "#FF8000 Borrados Minimos EUDA:# %d\n" + "#FF8000 Promedio Borrados EUDA:#%d\n" + "#FF8000 Lect. Recuperadas EUDA:#%d\n" + "#FF8000 Bloques Malos EUDA:# %d\n" //"#FF8000 Pre EOL State EUDA:# %d\n" //"#FF8000 Pre EOL State SYS:# %d\n" //"#FF8000 Pre EOL State MLC:# %d\n" - "#FF8000 Uncorrectable ECC:# %d\n" - "#FF8000 Temperature Now:# %d oC\n" + "#FF8000 ECC Incorregible:# %d\n" + "#FF8000 Temperatura Ahora:# %d oC\n" //"#FF8000 Temperature Min:# %d oC\n" - "#FF8000 Temperature Max:# %d oC\n" - "#FF8000 Health Level EUDA:# %d%%\n" + "#FF8000 Temperatura Maxima:# %d oC\n" + "#FF8000 Nivel Salud de EUDA:# %d%%\n" //"#FF8000 Health Level SYS:# %d%%\n" - "#FF8000 Health Level MLC:# %d%%", + "#FF8000 Nivel Salud de MLC:# %d%%", rpt->advanced.power_inits, //rpt->advanced.max_erase_cycles_sys, @@ -1292,7 +1292,7 @@ static lv_res_t _create_mbox_emmc_sandisk_report(lv_obj_t * btn) rpt->advanced.health_pct_mlc ? 101 - rpt->advanced.health_pct_mlc : 0); } else - strcpy(txt_buf2, "#00DDFF Advanced Health Status#\n#FFDD00 Empty!#"); + strcpy(txt_buf2, "#00DDFF Estado Salud Avanzado#\n#FFDD00 Vacio!#"); lv_label_set_text(lb_desc, txt_buf); lv_label_set_text(lb_desc2, txt_buf2); @@ -1324,8 +1324,8 @@ static lv_res_t _create_mbox_benchmark(bool sd_bench) char *txt_buf = (char *)malloc(SZ_16K); - s_printf(txt_buf, "#FF8000 %s Benchmark#\n[Raw Reads] Abort: VOL- & VOL+", - sd_bench ? "SD Card" : "eMMC"); + s_printf(txt_buf, "#FF8000 %s Benchmark#\n[Lect. Raw] Abortar: VOL- & VOL+", + sd_bench ? "SD" : "eMMC"); lv_mbox_set_text(mbox, txt_buf); txt_buf[0] = 0; @@ -1370,7 +1370,7 @@ static lv_res_t _create_mbox_benchmark(bool sd_bench) if (res) { - lv_mbox_set_text(mbox, "#FFDD00 Failed to init Storage!#"); + lv_mbox_set_text(mbox, "#FFDD00 Fallo al iniciar Almac.!#"); goto out; } @@ -1390,7 +1390,7 @@ static lv_res_t _create_mbox_benchmark(bool sd_bench) u32 sector_num = 0x8000; // 16MB chunks. u32 data_remaining = 0x200000; // 1GB. - s_printf(txt_buf + strlen(txt_buf), "#C7EA46 %d/3# - Sector Offset #C7EA46 %08X#:\n", iter_curr + 1, sector); + s_printf(txt_buf + strlen(txt_buf), "#C7EA46 %d/3# - Offset Sector #C7EA46 %08X#:\n", iter_curr + 1, sector); u32 render_min_ms = 66; u32 render_timer = get_tmr_ms() + render_min_ms; @@ -1425,7 +1425,7 @@ static lv_res_t _create_mbox_benchmark(bool sd_bench) u32 rate_1k = ((u64)1024 * 1000 * 1000 * 1000) / timer; s_printf(txt_buf + strlen(txt_buf), - " Sequential 16MiB - Rate: #C7EA46 %3d.%02d MiB/s#\n", + " Secuencial 16MiB - Ratio:#C7EA46 %3d.%02d MiB/s#\n", rate_1k / 1000, (rate_1k % 1000) / 10); lv_label_set_text(lbl_status, txt_buf); lv_obj_align(lbl_status, NULL, LV_ALIGN_CENTER, 0, 0); @@ -1472,7 +1472,7 @@ static lv_res_t _create_mbox_benchmark(bool sd_bench) rate_1k = ((u64)512 * 1000 * 1000 * 1000) / timer; u32 iops_1k = ((u64)512 * 1024 * 1000 * 1000 * 1000) / (4096 / 1024) / timer / 1000; s_printf(txt_buf + strlen(txt_buf), - " Sequential 4KiB - Rate: #C7EA46 %3d.%02d MiB/s#, IOPS: #C7EA46 %4d#\n", + " Secuencial 4KiB - Ratio:#C7EA46 %3d.%02d MiB/s#, IOPS: #C7EA46 %4d#\n", rate_1k / 1000, (rate_1k % 1000) / 10, iops_1k); lv_label_set_text(lbl_status, txt_buf); lv_obj_align(lbl_status, NULL, LV_ALIGN_CENTER, 0, 0); @@ -1536,7 +1536,7 @@ static lv_res_t _create_mbox_benchmark(bool sd_bench) rate_1k = ((u64)512 * 1000 * 1000 * 1000) / timer; iops_1k = ((u64)512 * 1024 * 1000 * 1000 * 1000) / (4096 / 1024) / timer / 1000; s_printf(txt_buf + strlen(txt_buf), - " Random 4KiB - Rate: #C7EA46 %3d.%02d MiB/s#, IOPS: #C7EA46 %4d#\n", + " Aleatorio 4KiB - Ratio:#C7EA46 %3d.%02d MiB/s#, IOPS: #C7EA46 %4d#\n", rate_1k / 1000, (rate_1k % 1000) / 10, iops_1k); if (iter_curr == iters - 1) txt_buf[strlen(txt_buf) - 1] = 0; // Cut off last line change. @@ -1551,9 +1551,9 @@ static lv_res_t _create_mbox_benchmark(bool sd_bench) if (error) { if (error == -1) - s_printf(txt_buf + strlen(txt_buf), "\n#FFDD00 Aborted!#"); + s_printf(txt_buf + strlen(txt_buf), "\n#FFDD00 Abortado!#"); else - s_printf(txt_buf + strlen(txt_buf), "\n#FFDD00 IO Error occurred!#"); + s_printf(txt_buf + strlen(txt_buf), "\n#FFDD00 Ocurrio Error E/S!#"); lv_label_set_text(lbl_status, txt_buf); lv_obj_align(lbl_status, NULL, LV_ALIGN_CENTER, 0, 0); @@ -1598,7 +1598,7 @@ static lv_res_t _create_mbox_sd_bench(lv_obj_t * btn) static lv_res_t _create_window_emmc_info_status(lv_obj_t *btn) { - lv_obj_t *win = nyx_create_standard_window(SYMBOL_CHIP" Internal eMMC Info"); + lv_obj_t *win = nyx_create_standard_window(SYMBOL_CHIP" Info eMMC Interna"); lv_win_add_btn(win, NULL, SYMBOL_CHIP" Benchmark", _create_mbox_emmc_bench); lv_obj_t *desc = lv_cont_create(win, NULL); @@ -1615,7 +1615,7 @@ static lv_res_t _create_window_emmc_info_status(lv_obj_t *btn) if (!emmc_initialize(false)) { - lv_label_set_text(lb_desc, "#FFDD00 Failed to init eMMC!#"); + lv_label_set_text(lb_desc, "#FFDD00 Fallo al iniciar la eMMC!#"); lv_obj_set_width(lb_desc, lv_obj_get_width(desc)); emmc_errors = emmc_get_error_count(); @@ -1644,7 +1644,7 @@ static lv_res_t _create_window_emmc_info_status(lv_obj_t *btn) break; case 0x45: // Unofficial. strcat(txt_buf, "SanDisk "); - lv_win_add_btn(win, NULL, SYMBOL_FILE_ALT" Device Report", _create_mbox_emmc_sandisk_report); + lv_win_add_btn(win, NULL, SYMBOL_FILE_ALT" Reporte Disp.", _create_mbox_emmc_sandisk_report); break; case 0x90: strcat(txt_buf, "SK Hynix "); @@ -1708,13 +1708,13 @@ static lv_res_t _create_window_emmc_info_status(lv_obj_t *btn) rsvd_blocks = "Normal (< 80%)"; break; case 2: - rsvd_blocks = "Warning (> 80%)"; + rsvd_blocks = "Advert. (> 80%)"; break; case 3: - rsvd_blocks = "Critical (> 90%)"; + rsvd_blocks = "Critico (> 90%)"; break; default: - rsvd_blocks = "#FF8000 Unknown#"; + rsvd_blocks = "#FF8000 Desconocido#"; break; } @@ -1729,20 +1729,20 @@ static lv_res_t _create_window_emmc_info_status(lv_obj_t *btn) lv_label_set_static_text(lb_desc, "#00DDFF CID:#\n" - "Vendor ID:\n" - "Model:\n" - "Prod Rev:\n" - "S/N:\n" - "Month/Year:\n\n" - "#00DDFF Ext CSD:#\n" - "Cmd Classes:\n" - "Max Rate:\n" - "Current Rate:\n" - "Type Support:\n\n" - "Write Cache:\n" - "Enhanced Area:\n" - "Estimated Life:\n" - "Reserved Used:" + "Marca:\n" + "Modelo:\n" + "Rev Prod:\n" + "N/S:\n" + "Mes/Anio:\n\n" + "#00DDFF CSD Ext:#\n" + "Clases Cmd:\n" + "Ratio Maximo:\n" + "Ratio Actual:\n" + "Tipo Soporte:\n\n" + "Cache Escrit:\n" + "Area Mejorada:\n" + "Vida Estimada:\n" + "Reservado Usa:" ); lv_obj_set_width(lb_desc, lv_obj_get_width(desc)); @@ -1764,12 +1764,12 @@ static lv_res_t _create_window_emmc_info_status(lv_obj_t *btn) u32 boot_size = emmc_storage.ext_csd.boot_mult << 17; u32 rpmb_size = emmc_storage.ext_csd.rpmb_mult << 17; - strcpy(txt_buf, "#00DDFF eMMC Physical Partitions:#\n"); - s_printf(txt_buf + strlen(txt_buf), "1: #96FF00 BOOT0# Size: %6d KiB (Sect: 0x%08X)\n", boot_size / 1024, boot_size / 512); - s_printf(txt_buf + strlen(txt_buf), "2: #96FF00 BOOT1# Size: %6d KiB (Sect: 0x%08X)\n", boot_size / 1024, boot_size / 512); - s_printf(txt_buf + strlen(txt_buf), "3: #96FF00 RPMB# Size: %6d KiB (Sect: 0x%08X)\n", rpmb_size / 1024, rpmb_size / 512); - s_printf(txt_buf + strlen(txt_buf), "0: #96FF00 GPP# Size: %6d MiB (Sect: 0x%08X)\n", emmc_storage.sec_cnt >> SECTORS_TO_MIB_COEFF, emmc_storage.sec_cnt); - strcat(txt_buf, "\n#00DDFF GPP (eMMC USER) Partition Table:#\n"); + strcpy(txt_buf, "#00DDFF eMMC Particiones Fisicas:#\n"); + s_printf(txt_buf + strlen(txt_buf), "1: #96FF00 BOOT0# Tam: %6d KiB (Sect: 0x%08X)\n", boot_size / 1024, boot_size / 512); + s_printf(txt_buf + strlen(txt_buf), "2: #96FF00 BOOT1# Tam: %6d KiB (Sect: 0x%08X)\n", boot_size / 1024, boot_size / 512); + s_printf(txt_buf + strlen(txt_buf), "3: #96FF00 RPMB# Tam: %6d KiB (Sect: 0x%08X)\n", rpmb_size / 1024, rpmb_size / 512); + s_printf(txt_buf + strlen(txt_buf), "0: #96FF00 GPP# Tam: %6d MiB (Sect: 0x%08X)\n", emmc_storage.sec_cnt >> SECTORS_TO_MIB_COEFF, emmc_storage.sec_cnt); + strcat(txt_buf, "\n#00DDFF GPP (eMMC USER) Tabla Particion:#\n"); emmc_set_partition(EMMC_GPP); LIST_INIT(gpt); @@ -1780,20 +1780,20 @@ static lv_res_t _create_window_emmc_info_status(lv_obj_t *btn) { if (idx > 10) { - strcat(txt_buf, "#FFDD00 Table does not fit on screen!#"); + strcat(txt_buf, "#FFDD00 La tabla no cabe en pantalla!#"); break; } if (part->index < 2) { - s_printf(txt_buf + strlen(txt_buf), "%02d: #96FF00 %s#%s Size: %d MiB (Sect: 0x%X), Start: %06X\n", + s_printf(txt_buf + strlen(txt_buf), "%02d: #96FF00 %s#%s Tam: %d MiB (Sect: 0x%X), Inicio: %06X\n", part->index, part->name, !part->name[8] ? " " : "", (part->lba_end - part->lba_start + 1) >> SECTORS_TO_MIB_COEFF, part->lba_end - part->lba_start + 1, part->lba_start); } else { - s_printf(txt_buf + strlen(txt_buf), "%02d: #96FF00 %s#\n Size: %7d MiB (Sect: 0x%07X), Start: %07X\n", + s_printf(txt_buf + strlen(txt_buf), "%02d: #96FF00 %s#\n Tam: %7d MiB (Sect: 0x%07X), Inicio: %07X\n", part->index, part->name, (part->lba_end - part->lba_start + 1) >> SECTORS_TO_MIB_COEFF, part->lba_end - part->lba_start + 1, part->lba_start); } @@ -1801,7 +1801,7 @@ static lv_res_t _create_window_emmc_info_status(lv_obj_t *btn) idx++; } if (!idx) - strcat(txt_buf, "#FFDD00 Partition table is empty!#"); + strcat(txt_buf, "#FFDD00 Tabla particion vacia!#"); emmc_gpt_free(&gpt); @@ -1825,15 +1825,15 @@ static lv_res_t _create_window_emmc_info_status(lv_obj_t *btn) lv_mbox_set_recolor_text(mbox, true); s_printf(txt_buf, - "#FF8000 eMMC Issues Check#\n\n" - "#FFDD00 Your eMMC is initialized in slower mode,#\n" - "#FFDD00 or init/read/write errors occurred!#\n" - "#FFDD00 This might mean hardware issues!#\n\n" - "#00DDFF Bus Speed:# %d MB/s\n\n" - "#00DDFF SDMMC4 Errors:#\n" - "Init fails: %d\n" - "Read/Write fails: %d\n" - "Read/Write errors: %d", + "#FF8000 Comprobacion Errores en eMMC#\n\n" + "#FFDD00 La eMMC esta iniciada en modo lento, u#\n" + "#FFDD00 ocurrieron errores de inicio/lect/esc!#\n" + "#FFDD00 Podrian ser problemas de hardware!#\n\n" + "#00DDFF Velocidad Bus:# %d MB/s\n\n" + "#00DDFF Errores SDMMC4:#\n" + "Fallos Inicio: %d\n" + "Fallos Lect/Esc: %d\n" + "Errores Lect/Esc: %d", emmc_storage.csd.busspeed, emmc_errors[EMMC_ERROR_INIT_FAIL], emmc_errors[EMMC_ERROR_RW_FAIL], @@ -1854,7 +1854,7 @@ static lv_res_t _create_window_emmc_info_status(lv_obj_t *btn) static lv_res_t _create_window_sdcard_info_status(lv_obj_t *btn) { - lv_obj_t *win = nyx_create_standard_window(SYMBOL_SD" microSD Card Info"); + lv_obj_t *win = nyx_create_standard_window(SYMBOL_SD" Info Tarjeta SD"); lv_win_add_btn(win, NULL, SYMBOL_SD" Benchmark", _create_mbox_sd_bench); lv_obj_t *desc = lv_cont_create(win, NULL); @@ -1864,7 +1864,7 @@ static lv_res_t _create_window_sdcard_info_status(lv_obj_t *btn) lv_label_set_long_mode(lb_desc, LV_LABEL_LONG_BREAK); lv_label_set_recolor(lb_desc, true); - lv_label_set_text(lb_desc, "#D4FF00 Please wait...#"); + lv_label_set_text(lb_desc, "#D4FF00 Espere...#"); lv_obj_set_width(lb_desc, lv_obj_get_width(desc)); // Disable buttons. @@ -1874,21 +1874,21 @@ static lv_res_t _create_window_sdcard_info_status(lv_obj_t *btn) if (!sd_mount()) { - lv_label_set_text(lb_desc, "#FFDD00 Failed to init SD!#"); + lv_label_set_text(lb_desc, "#FFDD00 Fallo al iniciar la SD!#"); goto failed; } lv_label_set_text(lb_desc, - "#00DDFF Card IDentification:#\n" - "Vendor ID:\n" - "Model:\n" - "OEM ID:\n" - "HW rev:\n" - "FW rev:\n" - "S/N:\n" - "Month/Year:\n\n" - "Max Power:\n" - "Bootloader bus:" + "#00DDFF IDentificacion SD:#\n" + "Marca:\n" + "Modelo:\n" + "ID OEM:\n" + "Rev HW:\n" + "Rev FW:\n" + "N/S:\n" + "Mes/Anio:\n\n" + "Poder Max:\n" + "Bus Bootloader:" ); lv_obj_t *val = lv_cont_create(win, NULL); @@ -1904,7 +1904,7 @@ static lv_res_t _create_window_sdcard_info_status(lv_obj_t *btn) switch (sd_storage.cid.manfid) { case 0x00: - strcat(txt_buf, "Fake "); + strcat(txt_buf, "Falsa "); break; case 0x01: strcat(txt_buf, "Panasonic "); @@ -1994,7 +1994,7 @@ static lv_res_t _create_window_sdcard_info_status(lv_obj_t *btn) strcat(txt_buf, "Longsys "); break; default: - strcat(txt_buf, "Unknown "); + strcat(txt_buf, "Desconocido "); break; } @@ -2024,7 +2024,7 @@ static lv_res_t _create_window_sdcard_info_status(lv_obj_t *btn) break; case 0: default: - strcat(txt_buf, "Undefined"); + strcat(txt_buf, "Indefinido"); break; } @@ -2039,17 +2039,17 @@ static lv_res_t _create_window_sdcard_info_status(lv_obj_t *btn) lv_obj_t * lb_desc2 = lv_label_create(desc2, lb_desc); lv_label_set_static_text(lb_desc2, - "#00DDFF Card-Specific Data#\n" - "Cmd Classes:\n" - "Capacity:\n" - "Capacity (LBA):\n" - "Bus Width:\n" - "Current Rate:\n" - "Speed Class:\n" - "UHS Grade:\n" - "Video Class:\n" - "App perf class:\n" - "Write Protect:" + "#00DDFF Datos Especif. SD#\n" + "Clases Cmd:\n" + "Capacidad:\n" + "Capacidad (LBA):\n" + "Ancho Bus:\n" + "Ratio Actual:\n" + "Clase Vel:\n" + "Grado UHS:\n" + "Clase Video:\n" + "Clase rend. App:\n" + "Protec. Esc:" ); lv_obj_set_width(lb_desc2, lv_obj_get_width(desc2)); lv_obj_align(desc2, val, LV_ALIGN_OUT_RIGHT_MID, LV_DPI / 2, 0); @@ -2063,14 +2063,14 @@ static lv_res_t _create_window_sdcard_info_status(lv_obj_t *btn) switch (sd_storage.csd.write_protect) { case 1: - wp_info = "Temporary"; + wp_info = "Temporal"; break; case 2: case 3: - wp_info = "Permanent"; + wp_info = "Permanente"; break; default: - wp_info = "None"; + wp_info = "Ninguno"; break; } @@ -2106,7 +2106,7 @@ static lv_res_t _create_window_sdcard_info_status(lv_obj_t *btn) lv_obj_set_size(desc3, LV_HOR_RES / 2 / 2 * 2, LV_VER_RES - (LV_DPI * 11 / 8) * 4); lv_obj_t * lb_desc3 = lv_label_create(desc3, lb_desc); - lv_label_set_text(lb_desc3, "#D4FF00 Acquiring FAT volume info...#"); + lv_label_set_text(lb_desc3, "#D4FF00 Obt. info de volumen FAT...#"); lv_obj_set_width(lb_desc3, lv_obj_get_width(desc3)); lv_obj_align(desc3, desc, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 2); @@ -2116,10 +2116,10 @@ static lv_res_t _create_window_sdcard_info_status(lv_obj_t *btn) f_getfree("", &sd_fs.free_clst, NULL); lv_label_set_text(lb_desc3, - "#00DDFF Found FAT volume:#\n" - "Filesystem:\n" + "#00DDFF Enc. volumen FAT:#\n" + "Formato:\n" "Cluster:\n" - "Size free/total:" + "Tam lib/total:" ); lv_obj_set_size(desc3, LV_HOR_RES / 2 / 5 * 2, LV_VER_RES - (LV_DPI * 11 / 8) * 4); lv_obj_set_width(lb_desc3, lv_obj_get_width(desc3)); @@ -2146,14 +2146,14 @@ static lv_res_t _create_window_sdcard_info_status(lv_obj_t *btn) lv_obj_set_size(desc4, LV_HOR_RES / 2 / 2 * 2, LV_VER_RES - (LV_DPI * 11 / 8) * 4); lv_obj_t * lb_desc4 = lv_label_create(desc4, lb_desc); - lv_label_set_text(lb_desc4, "#D4FF00 Acquiring FAT volume info...#"); + lv_label_set_text(lb_desc4, "#D4FF00 Obt. info de volumen FAT...#"); lv_obj_set_width(lb_desc4, lv_obj_get_width(desc4)); lv_label_set_text(lb_desc4, - "#00DDFF SDMMC1 Errors:#\n" - "Init fails:\n" - "Read/Write fails:\n" - "Read/Write errors:" + "#00DDFF Errores SDMMC:#\n" + "Fallos Inicio:\n" + "Fallos Lect/Esc:\n" + "Errores Lect/Esc:" ); lv_obj_set_size(desc4, LV_HOR_RES / 2 / 5 * 2, LV_VER_RES - (LV_DPI * 11 / 8) * 4); lv_obj_set_width(lb_desc4, lv_obj_get_width(desc4)); @@ -2186,8 +2186,8 @@ static lv_res_t _create_window_sdcard_info_status(lv_obj_t *btn) static lv_res_t _create_window_battery_status(lv_obj_t *btn) { - lv_obj_t *win = nyx_create_standard_window(SYMBOL_BATTERY_FULL" Battery Info"); - lv_win_add_btn(win, NULL, SYMBOL_DOWNLOAD" Dump Fuel Regs", _battery_dump_window_action); + lv_obj_t *win = nyx_create_standard_window(SYMBOL_BATTERY_FULL" Info Bateria"); + lv_win_add_btn(win, NULL, SYMBOL_DOWNLOAD" Dump. Reg. Comb.", _battery_dump_window_action); lv_obj_t *desc = lv_cont_create(win, NULL); lv_obj_set_size(desc, LV_HOR_RES / 2 / 4 * 2, LV_VER_RES - (LV_DPI * 11 / 7) - 5); @@ -2197,21 +2197,21 @@ static lv_res_t _create_window_battery_status(lv_obj_t *btn) lv_label_set_recolor(lb_desc, true); lv_label_set_static_text(lb_desc, - "#00DDFF Fuel Gauge IC Info:#\n" - "Capacity now:\n" - "Capacity full:\n" - "Capacity (design):\n" - "Current now:\n" - "Current average:\n" - "Voltage now:\n" - "Voltage open-circuit:\n" - "Min voltage reached:\n" - "Max voltage reached:\n" - "Empty voltage:\n" - "Battery temp:\n\n" - "#00DDFF PMIC IC Info:#\n" - "Main PMIC:\n\n" - "CPU/GPU PMIC:\n" + "#00DDFF Info IC Indicador:#\n" + "Capacidad ahora:\n" + "Capacidad completa:\n" + "Capacidad (fabrica):\n" + "Actual ahora:\n" + "Promedio actual:\n" + "Voltaje ahora:\n" + "Voltaje circuito-abi:\n" + "Tension minima alcan:\n" + "Tension maxima alcan:\n" + "Voltaje vacia:\n" + "Temp. Bateria:\n\n" + "#00DDFF Info IC PMIC:#\n" + "PMIC Principal:\n\n" + "PMIC CPU/GPU:\n" ); lv_obj_set_width(lb_desc, lv_obj_get_width(desc)); @@ -2235,7 +2235,7 @@ static lv_res_t _create_window_battery_status(lv_obj_t *btn) max17050_get_property(MAX17050_DesignCap, &value); bool design_cap_init = value == 1000; s_printf(txt_buf + strlen(txt_buf), "%s%d mAh%s\n", - design_cap_init ? "#FF8000 " : "", value, design_cap_init ? " - Init "SYMBOL_WARNING"#" : ""); + design_cap_init ? "#FF8000 " : "", value, design_cap_init ? " - Inic "SYMBOL_WARNING"#" : ""); max17050_get_property(MAX17050_Current, &value); s_printf(txt_buf + strlen(txt_buf), "%d mA\n", value / 1000); @@ -2246,7 +2246,7 @@ static lv_res_t _create_window_battery_status(lv_obj_t *btn) max17050_get_property(MAX17050_VCELL, &value); bool voltage_empty = value < 3200; s_printf(txt_buf + strlen(txt_buf), "%s%d mV%s\n", - voltage_empty ? "#FF8000 " : "", value, voltage_empty ? " - Low "SYMBOL_WARNING"#" : ""); + voltage_empty ? "#FF8000 " : "", value, voltage_empty ? " - Baja "SYMBOL_WARNING"#" : ""); max17050_get_property(MAX17050_OCVInternal, &value); s_printf(txt_buf + strlen(txt_buf), "%d mV\n", value); @@ -2272,7 +2272,7 @@ static lv_res_t _create_window_battery_status(lv_obj_t *btn) else if (value == 0x53) s_printf(txt_buf + strlen(txt_buf), "max77620 v%d\nMariko OTP\n", main_pmic_version); else - s_printf(txt_buf + strlen(txt_buf), "max77620 v%d\n#FF8000 Unknown OTP# (%02X)\n", main_pmic_version, value); + s_printf(txt_buf + strlen(txt_buf), "max77620 v%d\n#FF8000 Desconocido OTP# (%02X)\n", main_pmic_version, value); // CPU/GPU/DRAM Pmic IC info. u32 cpu_gpu_pmic_type = h_cfg.t210b01 ? (FUSE(FUSE_RESERVED_ODM28_T210B01) & 1) + 1 : 0; @@ -2303,18 +2303,18 @@ static lv_res_t _create_window_battery_status(lv_obj_t *btn) lv_obj_t * lb_desc2 = lv_label_create(desc2, lb_desc); lv_label_set_static_text(lb_desc2, - "#00DDFF Battery Charger IC Info:#\n" - "Input voltage limit:\n" - "Input current limit:\n" - "Min voltage limit:\n" - "Fast charge current limit:\n" - "Charge voltage limit:\n" - "Charge status:\n" - "Temperature status:\n\n" - "#00DDFF USB-PD IC Info:#\n" - "Connection status:\n" - "Input Wattage Limit:\n" - "USB-PD Profiles:" + "#00DDFF Info IC Carga Bateria:#\n" + "Limite voltaje entrada:\n" + "Limite entrada actual:\n" + "Limite voltaje min:\n" + "Limite actual carga rap:\n" + "Limite voltaje de carga:\n" + "Estado de carga:\n" + "Estado temperatura:\n\n" + "#00DDFF Info IC USB-PD:#\n" + "Estado de conexion:\n" + "Limite Watts entrada:\n" + "Perfiles USB-PD:" ); lv_obj_set_width(lb_desc2, lv_obj_get_width(desc2)); lv_obj_align(desc2, val, LV_ALIGN_OUT_RIGHT_MID, LV_DPI / 2, 0); @@ -2345,19 +2345,19 @@ static lv_res_t _create_window_battery_status(lv_obj_t *btn) switch (value) { case 0: - strcat(txt_buf, "Not charging\n"); + strcat(txt_buf, "No cargando\n"); break; case 1: - strcat(txt_buf, "Pre-charging\n"); + strcat(txt_buf, "Pre-cargando\n"); break; case 2: - strcat(txt_buf, "Fast charging\n"); + strcat(txt_buf, "Carga rapida\n"); break; case 3: - strcat(txt_buf, "Charge terminated\n"); + strcat(txt_buf, "Carga terminada\n"); break; default: - s_printf(txt_buf + strlen(txt_buf), "Unknown (%d)\n", value); + s_printf(txt_buf + strlen(txt_buf), "Desconocido (%d)\n", value); break; } @@ -2368,19 +2368,19 @@ static lv_res_t _create_window_battery_status(lv_obj_t *btn) strcat(txt_buf, "Normal"); break; case 2: - strcat(txt_buf, "Warm"); + strcat(txt_buf, "Calido"); break; case 3: - strcat(txt_buf, "Cool"); + strcat(txt_buf, "Fresco"); break; case 5: - strcat(txt_buf, "#FF8000 Cold#"); + strcat(txt_buf, "#FF8000 Frio#"); break; case 6: - strcat(txt_buf, "#FF8000 Hot#"); + strcat(txt_buf, "#FF8000 Caliente#"); break; default: - s_printf(txt_buf + strlen(txt_buf), "Unknown (%d)", value); + s_printf(txt_buf + strlen(txt_buf), "Desconocido (%d)", value); break; } @@ -2390,7 +2390,7 @@ static lv_res_t _create_window_battery_status(lv_obj_t *btn) usb_pd_objects_t usb_pd; bm92t36_get_sink_info(&inserted, &usb_pd); strcat(txt_buf, "\n\n\n"); - strcat(txt_buf, inserted ? "Connected" : "Disconnected"); + strcat(txt_buf, inserted ? "Conectado" : "Desconectado"); // Select 5V is no PD contract. wattage = iinlim * (usb_pd.pdo_no ? usb_pd.selected_pdo.voltage : 5); @@ -2398,7 +2398,7 @@ static lv_res_t _create_window_battery_status(lv_obj_t *btn) s_printf(txt_buf + strlen(txt_buf), "\n%d.%d W", wattage / 1000, (wattage % 1000) / 100); if (!usb_pd.pdo_no) - strcat(txt_buf, "\nNon PD"); + strcat(txt_buf, "\nNo PD"); // Limit to 5 profiles so it can fit. usb_pd.pdo_no = MIN(usb_pd.pdo_no, 5); @@ -2485,7 +2485,7 @@ void create_tab_info(lv_theme_t *th, lv_obj_t *parent) lv_label_set_static_text(label_sep, ""); lv_obj_t *label_txt = lv_label_create(h1, NULL); - lv_label_set_static_text(label_txt, "SoC & HW Info"); + lv_label_set_static_text(label_txt, "Info SoC y HW"); lv_obj_set_style(label_txt, th->label.prim); lv_obj_align(label_txt, label_sep, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, 0); @@ -2525,14 +2525,14 @@ void create_tab_info(lv_theme_t *th, lv_obj_t *parent) if (lockpick_found) { lv_label_set_static_text(label_txt2, - "View Ipatches and dump the unpatched and patched versions\nof BootROM.\n" - "Or dump every single key via #C7EA46 Lockpick RCM#.\n"); + "Ver Ipatches y dumpear las versiones sin parchear y\nparcheadas de BootROM.\n" + "O dumpear cada key por #C7EA46 Lockpick RCM#.\n"); } else { lv_label_set_static_text(label_txt2, - "View Ipatches and dump the unpatched and patched versions\nof BootROM. Or dump every single key via #C7EA46 Lockpick RCM#.\n" - "#FFDD00 bootloader/payloads/Lockpick_RCM.bin is missing or old!#\n"); + "Ver Ipatches y dumpear las versiones sin/con parches de\nBootROM. O dumpear cada key por #C7EA46 Lockpick RCM#.\n" + "#FFDD00 bootloader/payloads/Lockpick_RCM.bin antiguo o no esta!#\n"); } lv_obj_set_style(label_txt2, &hint_small_style); @@ -2550,23 +2550,23 @@ void create_tab_info(lv_theme_t *th, lv_obj_t *parent) lv_obj_t *btn3 = lv_btn_create(h1, btn); label_btn = lv_label_create(btn3, NULL); lv_btn_set_fit(btn3, true, true); - lv_label_set_static_text(label_btn, SYMBOL_CIRCUIT" HW & Fuses"); + lv_label_set_static_text(label_btn, SYMBOL_CIRCUIT" Fusib. y HW"); lv_obj_align(btn3, line_sep, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, LV_DPI / 2); lv_btn_set_action(btn3, LV_BTN_ACTION_CLICK, _create_window_fuses_info_status); // Create KFuses button. lv_obj_t *btn4 = lv_btn_create(h1, btn); label_btn = lv_label_create(btn4, NULL); - lv_label_set_static_text(label_btn, SYMBOL_SHUFFLE" KFuses"); + lv_label_set_static_text(label_btn, SYMBOL_SHUFFLE" KFusibles"); lv_obj_align(btn4, btn3, LV_ALIGN_OUT_RIGHT_TOP, LV_DPI * 46 / 100, 0); lv_btn_set_action(btn4, LV_BTN_ACTION_CLICK, _kfuse_dump_window_action); lv_obj_t *label_txt4 = lv_label_create(h1, NULL); lv_label_set_recolor(label_txt4, true); lv_label_set_static_text(label_txt4, - "View and dump the cached #C7EA46 Fuses# and #C7EA46 KFuses#.\n" - "Fuses contain info about the SoC/SKU and KFuses HDCP keys.\n" - "You can also see info about #C7EA46 DRAM#, #C7EA46 Screen# and #C7EA46 Touch panel#."); + "Ver y dumpear #C7EA46 Fusibles# y #C7EA46 KFusibles# en cache.\n" + "Fusibles contienen info de SoC/SKU y KFusibles keys HDCP.\n" + "Puedes ver info sobre la #C7EA46 DRAM#, #C7EA46 Pantalla# y el #C7EA46 Tactil#."); lv_obj_set_style(label_txt4, &hint_small_style); lv_obj_align(label_txt4, btn3, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 3); @@ -2583,7 +2583,7 @@ void create_tab_info(lv_theme_t *th, lv_obj_t *parent) lv_label_set_static_text(label_sep, ""); lv_obj_t *label_txt3 = lv_label_create(h2, NULL); - lv_label_set_static_text(label_txt3, "Storage & Battery Info"); + lv_label_set_static_text(label_txt3, "Info Almacenamiento y Bateria"); lv_obj_set_style(label_txt3, th->label.prim); lv_obj_align(label_txt3, label_sep, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, 0); @@ -2614,8 +2614,8 @@ void create_tab_info(lv_theme_t *th, lv_obj_t *parent) lv_obj_t *label_txt5 = lv_label_create(h2, NULL); lv_label_set_recolor(label_txt5, true); lv_label_set_static_text(label_txt5, - "View info about the eMMC or microSD and their partition list.\n" - "Additionally you can benchmark read speeds."); + "Ver info sobre la eMMC o la SD y su lista de particiones.\n" + "Adicionalmente puedes comparar velocidades de lectura."); lv_obj_set_style(label_txt5, &hint_small_style); lv_obj_align(label_txt5, btn5, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 3); @@ -2632,15 +2632,15 @@ void create_tab_info(lv_theme_t *th, lv_obj_t *parent) } label_btn = lv_label_create(btn7, NULL); lv_btn_set_fit(btn7, true, true); - lv_label_set_static_text(label_btn, SYMBOL_BATTERY_FULL" Battery"); + lv_label_set_static_text(label_btn, SYMBOL_BATTERY_FULL" Bateria"); lv_obj_align(btn7, line_sep, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, LV_DPI / 2); lv_btn_set_action(btn7, LV_BTN_ACTION_CLICK, _create_window_battery_status); lv_obj_t *label_txt6 = lv_label_create(h2, NULL); lv_label_set_recolor(label_txt6, true); lv_label_set_static_text(label_txt6, - "View battery and battery charger related info.\n" - "Additionally you can dump battery charger's registers.\n"); + "Ver info de la bateria y el cargador de la bateria.\n" + "Puedes dumpear los registros de carga de la bateria.\n"); lv_obj_set_style(label_txt6, &hint_small_style); lv_obj_align(label_txt6, btn7, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 3); } diff --git a/nyx/nyx_gui/frontend/gui_options.c b/nyx/nyx_gui/frontend/gui_options.c index 0c467223..19e626ce 100644 --- a/nyx/nyx_gui/frontend/gui_options.c +++ b/nyx/nyx_gui/frontend/gui_options.c @@ -123,7 +123,7 @@ lv_obj_t *create_window_autoboot(const char *win_title) lv_win_set_style(win, LV_WIN_STYLE_BG, &win_bg_style); lv_obj_set_size(win, LV_HOR_RES, LV_VER_RES); - close_btn = lv_win_add_btn(win, NULL, SYMBOL_CLOSE" Close", _win_autoboot_close_action); + close_btn = lv_win_add_btn(win, NULL, SYMBOL_CLOSE" Cerrar", _win_autoboot_close_action); return win; } @@ -188,8 +188,8 @@ static lv_res_t _autoboot_enable_more_action(lv_obj_t *btn) static void _create_autoboot_window() { - lv_obj_t *win = create_window_autoboot(SYMBOL_GPS" Auto Boot"); - lv_win_add_btn(win, NULL, SYMBOL_POWER" Disable", _autoboot_disable_action); + lv_obj_t *win = create_window_autoboot(SYMBOL_GPS" Auto Iniciar"); + lv_win_add_btn(win, NULL, SYMBOL_POWER" Desactivar", _autoboot_disable_action); static lv_style_t h_style; lv_style_copy(&h_style, &lv_style_transp); @@ -209,7 +209,7 @@ static void _create_autoboot_window() lv_label_set_static_text(label_sep, ""); lv_obj_t *label_txt = lv_label_create(h1, NULL); - lv_label_set_static_text(label_txt, "Main configurations"); + lv_label_set_static_text(label_txt, "Configuraciones principales"); lv_obj_set_style(label_txt, lv_theme_get_current()->label.prim); lv_obj_align(label_txt, label_sep, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, -(LV_DPI / 4)); @@ -257,7 +257,7 @@ static void _create_autoboot_window() lv_label_set_static_text(label_sep, ""); lv_obj_t *label_txt3 = lv_label_create(h2, NULL); - lv_label_set_static_text(label_txt3, "Ini folder configurations"); + lv_label_set_static_text(label_txt3, "Configuraciones de carpeta ini"); lv_obj_set_style(label_txt3, lv_theme_get_current()->label.prim); lv_obj_align(label_txt3, label_sep, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, -LV_DPI / 11); @@ -366,9 +366,9 @@ static lv_res_t _save_nyx_options_action(lv_obj_t *btn) nyx_changes_made = false; if (res) - lv_mbox_set_text(mbox, "#FF8000 Nyx Configuration#\n\n#96FF00 The configuration was saved to sd card!#"); + lv_mbox_set_text(mbox, "#FF8000 Configuracion de Nyx#\n\n#96FF00 Configuracion guardada en la SD!#"); else - lv_mbox_set_text(mbox, "#FF8000 Nyx Configuration#\n\n#FFDD00 Failed to save the configuration#\n#FFDD00 to sd card!#"); + lv_mbox_set_text(mbox, "#FF8000 Configuracion de Nyx#\n\n#FFDD00 Fallo al guardar configuracion#\n#FFDD00 en la SD!#"); lv_mbox_add_btns(mbox, mbox_btn_map, NULL); lv_obj_align(mbox, NULL, LV_ALIGN_CENTER, 0, 0); lv_obj_set_top(mbox, true); @@ -551,9 +551,9 @@ const u16 theme_colors[17] = { static lv_res_t _create_window_nyx_colors(lv_obj_t *btn) { - lv_obj_t *win = nyx_create_standard_window(SYMBOL_COPY" Nyx Color Theme"); - lv_win_add_btn(win, NULL, SYMBOL_HINT" Toggle Background", _preset_bg_action); - lv_win_add_btn(win, NULL, SYMBOL_SAVE" Save & Reload", _save_theme_color_action); + lv_obj_t *win = nyx_create_standard_window(SYMBOL_COPY" Color de Tema de Nyx"); + lv_win_add_btn(win, NULL, SYMBOL_HINT" Cambiar Fondo", _preset_bg_action); + lv_win_add_btn(win, NULL, SYMBOL_SAVE" Guardar y Recargar", _save_theme_color_action); color_test.window = win; // Set current theme colors. @@ -613,7 +613,7 @@ static lv_res_t _create_window_nyx_colors(lv_obj_t *btn) color_test.header2 = h2; lv_obj_t *lbl_sample = lv_label_create(h2, NULL); - lv_label_set_static_text(lbl_sample, "Sample:"); + lv_label_set_static_text(lbl_sample, "Ejemplo:"); lv_obj_t *lbl_test = lv_label_create(h2, NULL); lv_label_set_long_mode(lbl_test, LV_LABEL_LONG_BREAK); @@ -735,12 +735,12 @@ static lv_res_t _create_mbox_clock_edit(lv_obj_t *btn) lv_obj_set_style(dark_bg, &mbox_darken); lv_obj_set_size(dark_bg, LV_HOR_RES, LV_VER_RES); - static const char * mbox_btn_map[] = { "\251", "\222Done", "\222Cancel", "\251", "" }; + static const char * mbox_btn_map[] = { "\251", "\222Hecho", "\222Cancelar", "\251", "" }; lv_obj_t *mbox = lv_mbox_create(dark_bg, NULL); lv_mbox_set_recolor_text(mbox, true); lv_obj_set_width(mbox, LV_HOR_RES / 9 * 6); - lv_mbox_set_text(mbox, "Enter #C7EA46 Date# and #C7EA46 Time# for Nyx\nThis will not alter the actual HW clock!"); + lv_mbox_set_text(mbox, "Pon #C7EA46 Fecha# y #C7EA46 Hora# para Nyx\nEsto no alterara el reloj HW actual!"); // Get current time. rtc_time_t time; @@ -783,18 +783,18 @@ static lv_res_t _create_mbox_clock_edit(lv_obj_t *btn) // Create month roller. lv_obj_t *roller_month = lv_roller_create(h1, roller_year); lv_roller_set_options(roller_month, - "January\n" - "February\n" - "March\n" - "April\n" - "May\n" - "June\n" - "July\n" - "August\n" - "September\n" - "October\n" - "November\n" - "December"); + "Enero\n" + "Febrero\n" + "Marzo\n" + "Abril\n" + "Mayo\n" + "Junio\n" + "Julio\n" + "Agosto\n" + "Septiembre\n" + "Octubre\n" + "Noviembre\n" + "Diciembre"); lv_roller_set_selected(roller_month, time.month - 1, false); lv_obj_align(roller_month, roller_year, LV_ALIGN_OUT_RIGHT_MID, 0, 0); clock_ctxt.month = roller_month; @@ -900,7 +900,7 @@ static lv_res_t _joycon_info_dump_action(lv_obj_t * btn) // Save readable dump. jc_bt_conn_t *bt = &jc_pad->bt_conn_l; s_printf(data, - "[joycon_00]\ntype=%d\nmac=%02X:%02X:%02X:%02X:%02X:%02X\n" + "[joycon_00]\ntipo=%d\nmac=%02X:%02X:%02X:%02X:%02X:%02X\n" "host=%02X:%02X:%02X:%02X:%02X:%02X\n" "ltk=%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X\n\n", bt->type, bt->mac[0], bt->mac[1], bt->mac[2], bt->mac[3], bt->mac[4], bt->mac[5], @@ -909,7 +909,7 @@ static lv_res_t _joycon_info_dump_action(lv_obj_t * btn) bt->ltk[8], bt->ltk[9], bt->ltk[10], bt->ltk[11], bt->ltk[12], bt->ltk[13], bt->ltk[14], bt->ltk[15]); bt = &jc_pad->bt_conn_r; s_printf(data + strlen(data), - "[joycon_01]\ntype=%d\nmac=%02X:%02X:%02X:%02X:%02X:%02X\n" + "[joycon_01]\ntipo=%d\nmac=%02X:%02X:%02X:%02X:%02X:%02X\n" "host=%02X:%02X:%02X:%02X:%02X:%02X\n" "ltk=%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X\n", bt->type, bt->mac[0], bt->mac[1], bt->mac[2], bt->mac[3], bt->mac[4], bt->mac[5], @@ -933,22 +933,22 @@ static lv_res_t _joycon_info_dump_action(lv_obj_t * btn) f_mkdir("switchroot"); + //! TODO: Add Accelerometer and Gyroscope calibration. // Save Lite Gamepad Calibration data. - // Actual max/min are right/left and up/down offsets. s_printf(data, - "lite_cal_lx_lof=0x%X\n" + "lite_cal_lx_min=0x%X\n" "lite_cal_lx_cnt=0x%X\n" - "lite_cal_lx_rof=0x%X\n" - "lite_cal_ly_dof=0x%X\n" + "lite_cal_lx_max=0x%X\n" + "lite_cal_ly_min=0x%X\n" "lite_cal_ly_cnt=0x%X\n" - "lite_cal_ly_uof=0x%X\n\n" + "lite_cal_ly_max=0x%X\n\n" - "lite_cal_rx_lof=0x%X\n" + "lite_cal_rx_min=0x%X\n" "lite_cal_rx_cnt=0x%X\n" - "lite_cal_rx_rof=0x%X\n" - "lite_cal_ry_dof=0x%X\n" + "lite_cal_rx_max=0x%X\n" + "lite_cal_ry_min=0x%X\n" "lite_cal_ry_cnt=0x%X\n" - "lite_cal_ry_uof=0x%X\n\n" + "lite_cal_ry_max=0x%X\n\n" "acc_cal_off_x=0x%X\n" "acc_cal_off_y=0x%X\n" @@ -965,10 +965,10 @@ static lv_res_t _joycon_info_dump_action(lv_obj_t * btn) "gyr_cal_scl_z=0x%X\n\n" "device_bt_mac=%02X:%02X:%02X:%02X:%02X:%02X\n", - stick_cal_l->x_min, stick_cal_l->x_center, stick_cal_l->x_max, - stick_cal_l->y_min, stick_cal_l->y_center, stick_cal_l->y_max, - stick_cal_r->x_min, stick_cal_r->x_center, stick_cal_r->x_max, - stick_cal_r->y_min, stick_cal_r->y_center, stick_cal_r->y_max, + stick_cal_l->x_center - stick_cal_l->x_min, stick_cal_l->x_center, stick_cal_l->x_center + stick_cal_l->x_max, + stick_cal_l->y_center - stick_cal_l->y_min, stick_cal_l->y_center, stick_cal_l->y_center + stick_cal_l->y_max, + stick_cal_r->x_center - stick_cal_r->x_min, stick_cal_r->x_center, stick_cal_r->x_center + stick_cal_r->x_max, + stick_cal_r->y_center - stick_cal_r->y_min, stick_cal_r->y_center, stick_cal_r->y_center + stick_cal_r->y_max, cal0->acc_offset[0], cal0->acc_offset[1], cal0->acc_offset[2], cal0->acc_scale[0], cal0->acc_scale[1], cal0->acc_scale[2], cal0->gyro_offset[0], cal0->gyro_offset[1], cal0->gyro_offset[2], @@ -1002,58 +1002,58 @@ disabled:; if (!nx_hoag) { s_printf(txt_buf, - "Dumping to SD card finished!\n" - "Saved to: #C7EA46 switchroot/joycon_mac.[bin/ini]#\n\n"); + "Dumpeo a la SD finalizado!\n" + "Guardado en: #C7EA46 switchroot/joycon_mac.[bin/ini]#\n\n"); bool success = true; // Check if pairing info was found. if (joycon_found == 2) - strcat(txt_buf, "#C7EA46 Success!#\n#C7EA46 Found 2 out of 2 Joy-Con pairing data!#\n"); + strcat(txt_buf, "#C7EA46 Exito!#\n#C7EA46 Encontr. 2 de 2 datos de emparej.!#\n"); else { - s_printf(txt_buf + strlen(txt_buf), "#FF8000 Failed!#\n#FF8000 Warning:# Found #FFDD00 %d out of 2# pairing data!\n", joycon_found); + s_printf(txt_buf + strlen(txt_buf), "#FF8000 Error!#\n#FF8000 Adv:# Encontr. #FFDD00 %d de 2# datos de emparej.!\n", joycon_found); success = false; } // Check if pairing was done in HOS. if (is_l_hos && is_r_hos) - strcat(txt_buf, "#C7EA46 Both pairing data are HOS based!#"); + strcat(txt_buf, "#C7EA46 Datos emparej. basados en HOS!#"); else if (!is_l_hos && is_r_hos) { - strcat(txt_buf, "#FF8000 Warning:# #FFDD00 Left# pairing data is not HOS based!"); + strcat(txt_buf, "#FF8000 Adv:# Datos emparej. #FFDD00 izq.# no basados en HOS!"); success = false; } else if (is_l_hos && !is_r_hos) { - strcat(txt_buf, "#FF8000 Warning:# #FFDD00 Right# pairing data is not HOS based!"); + strcat(txt_buf, "#FF8000 Adv:# Datos emparej. #FFDD00 der.# no basados en HOS!"); success = false; } else { - strcat(txt_buf, "#FF8000 Warning:# #FFDD00 No# pairing data is HOS based!"); + strcat(txt_buf, "#FF8000 Adv:# Datos emparej. #FFDD00 no# basados en HOS!Adv:# Datos emparej. #FFDD00 no# basados en HOS!"); success = false; } if (!success) strcat(txt_buf, - "\n\n#FFDD00 Make sure that both Joy-Con are connected,#\n" - "#FFDD00 and that you paired them in HOS!#"); + "\n\n#FFDD00 Fijese que ambos Joy-Con esten conectados,#\n" + "#FFDD00 y que esten emparejados en HOS!#"); } else { s_printf(txt_buf, - "Dumping to SD card finished!\n" - "Saved to: #C7EA46 switchroot/lite_gamepad.cal#\n\n"); - strcat(txt_buf, "#C7EA46 Success!#\n#C7EA46 Found Lite Gamepad data!#\n"); + "Dumpeo a la SD finalizado!\n" + "Guardado en: #C7EA46 switchroot/lite_gamepad.cal#\n\n"); + strcat(txt_buf, "#C7EA46 Exito!#\n#C7EA46 Encont. Datos de Gamepad Lite!#\n"); } } else { if (!nx_hoag) - s_printf(txt_buf, "#FFDD00 Failed to dump Joy-Con pairing info!#\n#FFDD00 Error: %d#", error); + s_printf(txt_buf, "#FFDD00 Fallo al dumpear info emparej.!#\n#FFDD00 Error: %d#", error); else - s_printf(txt_buf, "#FFDD00 Failed to get Lite Gamepad info!#\n"); + s_printf(txt_buf, "#FFDD00 Fallo al obt. info de Gamepad Lite!#\n"); } lv_mbox_set_text(mbox, txt_buf); @@ -1101,14 +1101,14 @@ static void _check_nyx_changes() lv_obj_set_style(dark_bg, &mbox_darken); lv_obj_set_size(dark_bg, LV_HOR_RES, LV_VER_RES); - static const char * mbox_btn_map[] = { "\222Save", "\222Cancel", "" }; + static const char * mbox_btn_map[] = { "\222Guardar", "\222Cancelar", "" }; lv_obj_t * mbox = lv_mbox_create(dark_bg, NULL); lv_mbox_set_recolor_text(mbox, true); lv_mbox_set_text(mbox, - "#FF8000 Nyx configuration#\n\n" - "You changed the configuration!\n\n" - "Do you want to save it?"); + "#FF8000 Configuracion de Nyx#\n\n" + "Cambiaste la configuracion!\n\n" + "Quieres guardarla?"); lv_mbox_add_btns(mbox, mbox_btn_map, _action_nyx_options_save); lv_obj_set_width(mbox, LV_HOR_RES / 9 * 5); @@ -1138,7 +1138,7 @@ lv_res_t create_win_nyx_options(lv_obj_t *parrent_btn) { lv_theme_t *th = lv_theme_get_current(); - lv_obj_t *win = nyx_create_window_custom_close_btn(SYMBOL_HOME" Nyx Settings", _action_win_nyx_options_close); + lv_obj_t *win = nyx_create_window_custom_close_btn(SYMBOL_HOME" Ajustes de Nyx", _action_win_nyx_options_close); static lv_style_t h_style; lv_style_copy(&h_style, &lv_style_transp); @@ -1176,13 +1176,13 @@ lv_res_t create_win_nyx_options(lv_obj_t *parrent_btn) lv_obj_t *btn = lv_btn_create(sw_h2, NULL); lv_obj_t *label_btn = lv_label_create(btn, NULL); lv_btn_set_fit(btn, true, true); - lv_label_set_static_text(label_btn, SYMBOL_COPY" Color Theme"); + lv_label_set_static_text(label_btn, SYMBOL_COPY" Color de Tema"); lv_obj_align(btn, label_sep, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, -LV_DPI / 5 + 3); lv_btn_set_action(btn, LV_BTN_ACTION_CLICK, _create_window_nyx_colors); lv_obj_t *label_txt2 = lv_label_create(sw_h2, NULL); lv_label_set_recolor(label_txt2, true); - lv_label_set_static_text(label_txt2, "Select a color for all #00FFC8 highlights# in Nyx.\n"); + lv_label_set_static_text(label_txt2, "Elije un color para los #00FFC8 destacados# en Nyx.\n"); lv_obj_set_style(label_txt2, &hint_small_style); lv_obj_align(label_txt2, btn, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 3 - 8); @@ -1194,7 +1194,7 @@ lv_res_t create_win_nyx_options(lv_obj_t *parrent_btn) lv_obj_align(line_sep, label_txt2, LV_ALIGN_OUT_BOTTOM_LEFT, -(LV_DPI / 4), LV_DPI / 4); lv_obj_t *label_txt = lv_label_create(l_cont, NULL); - lv_label_set_static_text(label_txt, SYMBOL_HOME" Home Screen"); + lv_label_set_static_text(label_txt, SYMBOL_HOME" Pantalla Inicio"); lv_obj_set_style(label_txt, th->label.prim); lv_obj_align(label_txt, line_sep, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, LV_DPI / 4); @@ -1202,10 +1202,10 @@ lv_res_t create_win_nyx_options(lv_obj_t *parrent_btn) lv_obj_set_top(ddlist, true); lv_ddlist_set_draw_arrow(ddlist, true); lv_ddlist_set_options(ddlist, - "Main menu \n" - "All Configs\n" - "Launch\n" - "More Configs"); + "Menu Princip. \n" + "Todas Config.\n" + "Lanzar\n" + "Mas Ajustes"); lv_ddlist_set_selected(ddlist, n_cfg.home_screen); lv_ddlist_set_action(ddlist, _home_screen_action); lv_obj_align(ddlist, label_txt, LV_ALIGN_OUT_RIGHT_MID, LV_DPI * 2 / 3, 0); @@ -1213,9 +1213,9 @@ lv_res_t create_win_nyx_options(lv_obj_t *parrent_btn) label_txt2 = lv_label_create(l_cont, NULL); lv_label_set_recolor(label_txt2, true); lv_label_set_static_text(label_txt2, - "Select what screen to show on Nyx boot.\n" - "#FF8000 All Configs:# #C7EA46 Combines More configs into Launch empty slots.#\n" - "#FF8000 Launch / More Configs:# #C7EA46 Uses the classic divided view.#"); + "Selecciona que pantalla mostrara Nyx al iniciar.\n" + "#FF8000 Todos los ajust:# #C7EA46 Combina Mas Ajustes en slots para lanzar.#\n" + "#FF8000 Lanzar / Mas Ajustes:# #C7EA46 Usa la vista clasica dividida.#"); lv_obj_set_style(label_txt2, &hint_small_style); lv_obj_align(label_txt2, label_txt, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 4); @@ -1224,7 +1224,7 @@ lv_res_t create_win_nyx_options(lv_obj_t *parrent_btn) // Create entries per line button. lv_obj_t *btn2 = lv_btn_create(sw_h2, NULL); - nyx_create_onoff_button(th, sw_h2, btn2, SYMBOL_GPS" Extended Boot Entries", _entries_columns_action, true); + nyx_create_onoff_button(th, sw_h2, btn2, SYMBOL_GPS" Entradas de Arranque Extend.", _entries_columns_action, true); lv_obj_align(btn2, line_sep, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 10); if (n_cfg.entries_5_col) lv_btn_set_state(btn2, LV_BTN_STATE_TGL_REL); @@ -1233,9 +1233,9 @@ lv_res_t create_win_nyx_options(lv_obj_t *parrent_btn) label_txt2 = lv_label_create(sw_h2, NULL); lv_label_set_recolor(label_txt2, true); lv_label_set_static_text(label_txt2, - "Sets the boot entries per line to 5. (Default is 4)\n" - "#C7EA46 This allows a total of 10 boot entries to be shown in Launch#\n" - "#C7EA46 and More Configs sections.#\n\n\n"); + "Pone las entrad. de arranque por linea en 5 (por def. son 4)\n" + "#C7EA46 Permite mostrar un total de 10 entradas de arranque en las#\n" + "#C7EA46 secciones Lanzar y Mas Ajustes.#\n\n\n"); lv_obj_set_style(label_txt2, &hint_small_style); lv_obj_align(label_txt2, btn2, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, LV_DPI / 12); @@ -1247,15 +1247,15 @@ lv_res_t create_win_nyx_options(lv_obj_t *parrent_btn) lv_obj_t *btn3 = lv_btn_create(sw_h3, NULL); lv_obj_t *label_btn3 = lv_label_create(btn3, NULL); lv_btn_set_fit(btn3, true, true); - lv_label_set_static_text(label_btn3, SYMBOL_DOWNLOAD" Dump Joy-Con BT"); + lv_label_set_static_text(label_btn3, SYMBOL_DOWNLOAD" Dump. BT Joy-Con"); lv_obj_align(btn3, label_sep, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, -LV_DPI / 3); lv_btn_set_action(btn3, LV_BTN_ACTION_CLICK, _joycon_info_dump_action); label_txt2 = lv_label_create(sw_h3, NULL); lv_label_set_recolor(label_txt2, true); lv_label_set_static_text(label_txt2, - "Allows you to save the Switch and Joy-Con MAC addresses\n" - "and the LTKs associated with them. For #C7EA46 Android# and #C7EA46 Linux#."); + "Permite guardar las MAC de la Switch y los Joy-Con y\n" + "los LTKs asociados con ellos. Para #C7EA46 Android# y #C7EA46 Linux#."); lv_obj_set_style(label_txt2, &hint_small_style); lv_obj_align(label_txt2, btn3, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 4); @@ -1264,7 +1264,7 @@ lv_res_t create_win_nyx_options(lv_obj_t *parrent_btn) // Create Backup/Restore Verification list. label_txt = lv_label_create(sw_h3, NULL); - lv_label_set_static_text(label_txt, SYMBOL_MODULES_ALT" Data Verification"); + lv_label_set_static_text(label_txt, SYMBOL_MODULES_ALT" Verific. de Datos"); lv_obj_set_style(label_txt, th->label.prim); lv_obj_align(label_txt, line_sep, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, LV_DPI / 4); @@ -1272,17 +1272,17 @@ lv_res_t create_win_nyx_options(lv_obj_t *parrent_btn) lv_obj_set_top(ddlist2, true); lv_ddlist_set_draw_arrow(ddlist2, true); lv_ddlist_set_options(ddlist2, - "Off (Fastest)\n" - "Sparse (Fast) \n" - "Full (Slow)\n" - "Full (Hashes)"); + "No (Mas rap.)\n" + "Escaso (Rap.) \n" + "Todo (Lento)\n" + "Todo (Hashes)"); lv_ddlist_set_selected(ddlist2, n_cfg.verification); lv_obj_align(ddlist2, label_txt, LV_ALIGN_OUT_RIGHT_MID, LV_DPI * 3 / 8, 0); lv_ddlist_set_action(ddlist2, _data_verification_action); label_txt2 = lv_label_create(sw_h3, NULL); - lv_label_set_static_text(label_txt2, "Set the type of data verification done for backup and restore.\n" - "Can be canceled without losing the backup/restore.\n"); + lv_label_set_static_text(label_txt2, "Pon el tipo de verificacion de datos para backup y restaurar.\n" + "Puede cancelarse sin perder el backup/restauracion.\n"); lv_obj_set_style(label_txt2, &hint_small_style); lv_obj_align(label_txt2, label_txt, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 4); @@ -1293,16 +1293,16 @@ lv_res_t create_win_nyx_options(lv_obj_t *parrent_btn) lv_obj_t *btn5 = lv_btn_create(sw_h3, NULL); lv_obj_t *label_btn5 = lv_label_create(btn5, NULL); lv_btn_set_fit(btn5, true, true); - lv_label_set_static_text(label_btn5, SYMBOL_CLOCK" Clock (Offset)"); + lv_label_set_static_text(label_btn5, SYMBOL_CLOCK" Reloj (Offset)"); lv_obj_align(btn5, line_sep, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, LV_DPI / 4); lv_btn_set_action(btn5, LV_BTN_ACTION_CLICK, _create_mbox_clock_edit); label_txt2 = lv_label_create(sw_h3, NULL); lv_label_set_recolor(label_txt2, true); lv_label_set_static_text(label_txt2, - "Change clock offset manually.\n" - "#C7EA46 The entered Date and Time will be converted to an offset#\n" - "#C7EA46 automatically. This will be also used for FatFS operations.#"); + "Cambia el offset del reloj manualmente.\n" + "#C7EA46 La fecha y hora introducidas se convertiran a offset#\n" + "#C7EA46 automaticamente. Esto se usara para operaciones FatFS.#"); lv_obj_set_style(label_txt2, &hint_small_style); lv_obj_align(label_txt2, btn5, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 4); @@ -1368,14 +1368,14 @@ void create_tab_options(lv_theme_t *th, lv_obj_t *parent) lv_label_set_recolor(label_btn, true); lv_btn_set_fit(btn, true, true); lv_btn_set_toggle(btn, true); - lv_label_set_static_text(label_btn, SYMBOL_GPS" Auto Boot #00FFC9 ON #"); + lv_label_set_static_text(label_btn, SYMBOL_GPS" Auto Iniciar #00FFC9 ON #"); lv_btn_set_action(btn, LV_BTN_ACTION_CLICK, _autoboot_hide_delay_action); lv_obj_align(btn, label_sep, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, -LV_DPI / 18 + 6); lv_btn_set_fit(btn, false, false); autoboot_btn = btn; lv_obj_t *label_txt2 = lv_label_create(sw_h2, NULL); - lv_label_set_static_text(label_txt2, "Choose which boot entry or payload to automatically boot\nwhen injecting."); + lv_label_set_static_text(label_txt2, "Elije cual entrada de arranque o payload iniciara\nautomaticamente al encender."); lv_obj_set_style(label_txt2, &hint_small_style); lv_obj_align(label_txt2, btn, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 3 - 4); @@ -1387,7 +1387,7 @@ void create_tab_options(lv_theme_t *th, lv_obj_t *parent) // Create Boot time delay list. lv_obj_t *label_txt = lv_label_create(l_cont, NULL); - lv_label_set_static_text(label_txt, SYMBOL_CLOCK" Boot Time Delay "); + lv_label_set_static_text(label_txt, SYMBOL_CLOCK" Retardo Inicio "); lv_obj_set_style(label_txt, th->label.prim); lv_obj_align(label_txt, line_sep, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, LV_DPI / 4); @@ -1395,13 +1395,13 @@ void create_tab_options(lv_theme_t *th, lv_obj_t *parent) lv_obj_set_top(ddlist, true); lv_ddlist_set_draw_arrow(ddlist, true); lv_ddlist_set_options(ddlist, - "No bootlogo \n" - "1 second\n" - "2 seconds\n" - "3 seconds\n" - "4 seconds\n" - "5 seconds\n" - "6 seconds"); + "Sin logo \n" + "1 segundo\n" + "2 segundos\n" + "3 segundos\n" + "4 segundos\n" + "5 segundos\n" + "6 segundos"); lv_ddlist_set_selected(ddlist, 3); lv_obj_align(ddlist, label_txt, LV_ALIGN_OUT_RIGHT_MID, LV_DPI / 4, 0); lv_ddlist_set_action(ddlist, _autoboot_delay_action); @@ -1418,8 +1418,8 @@ void create_tab_options(lv_theme_t *th, lv_obj_t *parent) label_txt2 = lv_label_create(l_cont, NULL); lv_label_set_recolor(label_txt2, true); lv_label_set_static_text(label_txt2, - "Set how long to show bootlogo when autoboot is enabled.\n" - "#C7EA46 You can press# #FF8000 VOL-# #C7EA46 during that time to enter hekate's menu.#\n"); + "Tiempo que sale el logo cuando Auto Iniciar esta activo.\n" + "#C7EA46 Si pulsas # #FF8000 VOL-# #C7EA46 en ese tiempo entraras en hekate.#\n"); lv_obj_set_style(label_txt2, &hint_small_style); lv_obj_align(label_txt2, label_txt, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 4); @@ -1434,9 +1434,9 @@ void create_tab_options(lv_theme_t *th, lv_obj_t *parent) label_txt2 = lv_label_create(sw_h2, NULL); lv_label_set_recolor(label_txt2, true); lv_label_set_static_text(label_txt2, - "It checks fuses and applies the patch automatically\n" - "if higher firmware. It is now a global config and set\n" - "at auto by default. (ON: Auto)\n\n\n"); + "Comprueba fusibles y aplica el parche automaticamente\n" + "si el firmware es superior. Es una configuracion global\n" + "y esta en automatico por defecto. (ON: Auto)\n\n\n"); lv_obj_set_style(label_txt2, &hint_small_style); lv_obj_align(label_txt2, btn2, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, LV_DPI / 12); @@ -1445,13 +1445,13 @@ void create_tab_options(lv_theme_t *th, lv_obj_t *parent) // Create Auto HOS Power Off button. lv_obj_t *btn3 = lv_btn_create(sw_h3, NULL); - nyx_create_onoff_button(th, sw_h3, btn3, SYMBOL_POWER" Auto HOS Power Off", auto_hos_poweroff_toggle, true); + nyx_create_onoff_button(th, sw_h3, btn3, SYMBOL_POWER" Auto apagado de HOS", auto_hos_poweroff_toggle, true); lv_obj_align(btn3, label_sep, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 0); label_txt2 = lv_label_create(sw_h3, NULL); lv_label_set_static_text(label_txt2, - "When Shutdown is used from HOS, the device wakes up after\n" - "15s. Enable this to automatically power off on the next\npayload injection."); + "Cuando apagas la Switch desde el HOS, se enciende a los\n" + "15s. Activalo para apagarla automaticamente en la\nsiguiente inyeccion de payload."); lv_obj_set_style(label_txt2, &hint_small_style); lv_obj_align(label_txt2, btn3, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, LV_DPI / 12); @@ -1460,7 +1460,7 @@ void create_tab_options(lv_theme_t *th, lv_obj_t *parent) // Create Backlight slider. label_txt = lv_label_create(sw_h3, NULL); - lv_label_set_static_text(label_txt, SYMBOL_BRIGHTNESS" Backlight"); + lv_label_set_static_text(label_txt, SYMBOL_BRIGHTNESS" Brillo"); lv_obj_set_style(label_txt, th->label.prim); lv_obj_align(label_txt, line_sep, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, LV_DPI / 4); @@ -1473,7 +1473,7 @@ void create_tab_options(lv_theme_t *th, lv_obj_t *parent) lv_obj_align(slider, label_txt, LV_ALIGN_OUT_RIGHT_MID, LV_DPI * 20 / 15, 0); label_txt2 = lv_label_create(sw_h3, NULL); - lv_label_set_static_text(label_txt2, "Set backlight brightness.\n\n"); + lv_label_set_static_text(label_txt2, "Establece el brillo de la pantalla.\n\n"); lv_obj_set_style(label_txt2, &hint_small_style); lv_obj_align(label_txt2, label_txt, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 4); @@ -1482,14 +1482,15 @@ void create_tab_options(lv_theme_t *th, lv_obj_t *parent) // Create Update r2p button. lv_obj_t *btn4 = lv_btn_create(sw_h3, NULL); - nyx_create_onoff_button(th, sw_h3, btn4, SYMBOL_REFRESH" Update Reboot 2 Payload", _update_r2p_action, true); + nyx_create_onoff_button(th, sw_h3, btn4, SYMBOL_REFRESH" Act. Reinicio 2 Payload", _update_r2p_action, true); lv_obj_align(btn4, line_sep, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 10); label_txt2 = lv_label_create(sw_h3, NULL); lv_label_set_recolor(label_txt2, true); lv_label_set_static_text(label_txt2, - "If #FF8000 FSS0# is used in the selected boot entry, the reboot 2 payload\n" - "binary will be checked and forced to be updated to hekate.\n\n\n\n"); + "Si #FF8000 FSS0# es usado en la entrada de arranque seleccionada, el\n" + "binario de reiniciar a payload se comprobara y forzara la\n" + "actualizacion de hekate\n\n\n"); lv_obj_set_style(label_txt2, &hint_small_style); lv_obj_align(label_txt2, btn4, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, LV_DPI / 12); diff --git a/nyx/nyx_gui/frontend/gui_tools.c b/nyx/nyx_gui/frontend/gui_tools.c index 1a7bb742..d548ff11 100644 --- a/nyx/nyx_gui/frontend/gui_tools.c +++ b/nyx/nyx_gui/frontend/gui_tools.c @@ -148,15 +148,15 @@ static lv_res_t _create_mbox_autorcm_status(lv_obj_t *btn) if (enabled) { lv_mbox_set_text(mbox, - "AutoRCM is now #C7EA46 ENABLED!#\n\n" - "You can now automatically enter RCM by only pressing #FF8000 POWER#.\n" - "Use the AutoRCM button here again if you want to remove it later on."); + "AutoRCM esta ahora #C7EA46 ACTIVADO!#\n\n" + "Puedes entrar automaticamente en RCM solo pulsando #FF8000 POWER#.\n" + "Usa el boton AutoRCM de nuevo si quieres desactivarlo mas adelante."); } else { lv_mbox_set_text(mbox, - "AutoRCM is now #FF8000 DISABLED!#\n\n" - "The boot process is now normal and you need the #FF8000 VOL+# + #FF8000 HOME# (jig) combo to enter RCM.\n"); + "AutoRCM esta ahora #FF8000 DESACTIVADO!#\n\n" + "El arranque es ahora normal y necesitas el combo #FF8000 VOL+# + #FF8000 HOME# (jig) para entrar en RCM.\n"); } lv_mbox_add_btns(mbox, mbox_btn_map, mbox_action); @@ -179,14 +179,14 @@ static lv_res_t _create_mbox_hid(usb_ctxt_t *usbs) lv_obj_set_style(dark_bg, &mbox_darken); lv_obj_set_size(dark_bg, LV_HOR_RES, LV_VER_RES); - static const char *mbox_btn_map[] = { "\251", "\262Close", "\251", "" }; - static const char *mbox_btn_map2[] = { "\251", "\222Close", "\251", "" }; + static const char *mbox_btn_map[] = { "\251", "\262Cerrar", "\251", "" }; + static const char *mbox_btn_map2[] = { "\251", "\222Cerrar", "\251", "" }; lv_obj_t *mbox = lv_mbox_create(dark_bg, NULL); lv_mbox_set_recolor_text(mbox, true); char *txt_buf = malloc(SZ_4K); - s_printf(txt_buf, "#FF8000 HID Emulation#\n\n#C7EA46 Device:# "); + s_printf(txt_buf, "#FF8000 Emulacion HID#\n\n#C7EA46 Dispositivo:# "); if (usbs->type == USB_HID_GAMEPAD) strcat(txt_buf, "Gamepad"); @@ -203,7 +203,7 @@ static lv_res_t _create_mbox_hid(usb_ctxt_t *usbs) lv_obj_t *lbl_tip = lv_label_create(mbox, NULL); lv_label_set_recolor(lbl_tip, true); - lv_label_set_static_text(lbl_tip, "Note: To end it, press #C7EA46 L3# + #C7EA46 HOME# or remove the cable."); + lv_label_set_static_text(lbl_tip, "Nota: Para acabar, pulsa #C7EA46 L3# + #C7EA46 HOME# y quita el cable."); lv_obj_set_style(lbl_tip, &hint_small_style); lv_mbox_add_btns(mbox, mbox_btn_map, mbox_action); @@ -224,14 +224,14 @@ static lv_res_t _create_mbox_ums(usb_ctxt_t *usbs) lv_obj_set_style(dark_bg, &mbox_darken); lv_obj_set_size(dark_bg, LV_HOR_RES, LV_VER_RES); - static const char *mbox_btn_map[] = { "\251", "\262Close", "\251", "" }; - static const char *mbox_btn_map2[] = { "\251", "\222Close", "\251", "" }; + static const char *mbox_btn_map[] = { "\251", "\262Cerrar", "\251", "" }; + static const char *mbox_btn_map2[] = { "\251", "\222Cerrar", "\251", "" }; lv_obj_t *mbox = lv_mbox_create(dark_bg, NULL); lv_mbox_set_recolor_text(mbox, true); char *txt_buf = malloc(SZ_4K); - s_printf(txt_buf, "#FF8000 USB Mass Storage#\n\n#C7EA46 Device:# "); + s_printf(txt_buf, "#FF8000 Almacenam. USB#\n\n#C7EA46 Dispositivo:# "); if (usbs->type == MMC_SD) { @@ -282,21 +282,21 @@ static lv_res_t _create_mbox_ums(usb_ctxt_t *usbs) if (usbs->type == MMC_SD) { lv_label_set_static_text(lbl_tip, - "Note: To end it, #C7EA46 safely eject# from inside the OS.\n" - " #FFDD00 DO NOT remove the cable!#"); + "Nota: Para acabar, #C7EA46 expulse# desde dentro del SO.\n" + " #FFDD00 NO QUITES el cable!#"); } else { lv_label_set_static_text(lbl_tip, - "Note: To end it, #C7EA46 safely eject# from inside the OS.\n" - " #FFDD00 If it's not mounted, you might need to remove the cable!#"); + "Nota: Para acabar, #C7EA46 expulse# desde dentro del SO.\n" + " #FFDD00 Si no esta montado, quizas necesite quitar el cable!#"); } } else { lv_label_set_static_text(lbl_tip, - "Note: To end it, #C7EA46 safely eject# from inside the OS\n" - " or by removing the cable!#"); + "Nota: Para acabar, #C7EA46 expulse# desde dentro del SO.\n" + " o quitando el cable!#"); } lv_obj_set_style(lbl_tip, &hint_small_style); @@ -333,13 +333,13 @@ static lv_res_t _create_mbox_ums_error(int error) switch (error) { case 1: - lv_mbox_set_text(mbox, "#FF8000 USB Mass Storage#\n\n#FFFF00 Error mounting SD Card!#"); + lv_mbox_set_text(mbox, "#FF8000 Almacenam. USB#\n\n#FFFF00 Error montando la SD!#"); break; case 2: - lv_mbox_set_text(mbox, "#FF8000 USB Mass Storage#\n\n#FFFF00 No emuMMC found active!#"); + lv_mbox_set_text(mbox, "#FF8000 Almacenam. USB#\n\n#FFFF00 Ninguna EmuNAND activa encontrada!#"); break; case 3: - lv_mbox_set_text(mbox, "#FF8000 USB Mass Storage#\n\n#FFFF00 Active emuMMC is not partition based!#"); + lv_mbox_set_text(mbox, "#FF8000 Almacenam. USB#\n\n#FFFF00 EmuNAND no basada en particion!#"); break; } @@ -676,7 +676,7 @@ static lv_res_t _emmc_read_only_toggle(lv_obj_t *btn) static lv_res_t _create_window_usb_tools(lv_obj_t *parent) { - lv_obj_t *win = nyx_create_standard_window(SYMBOL_USB" USB Tools"); + lv_obj_t *win = nyx_create_standard_window(SYMBOL_USB" Herram. USB"); static lv_style_t h_style; lv_style_copy(&h_style, &lv_style_transp); @@ -696,7 +696,7 @@ static lv_res_t _create_window_usb_tools(lv_obj_t *parent) lv_label_set_static_text(label_sep, ""); lv_obj_t *label_txt = lv_label_create(h1, NULL); - lv_label_set_static_text(label_txt, "USB Mass Storage"); + lv_label_set_static_text(label_txt, "Almacenam. USB"); lv_obj_set_style(label_txt, lv_theme_get_current()->label.prim); lv_obj_align(label_txt, label_sep, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, -LV_DPI * 3 / 10); @@ -710,7 +710,7 @@ static lv_res_t _create_window_usb_tools(lv_obj_t *parent) lv_obj_t *btn1 = lv_btn_create(h1, NULL); lv_obj_t *label_btn = lv_label_create(btn1, NULL); lv_btn_set_fit(btn1, true, true); - lv_label_set_static_text(label_btn, SYMBOL_SD" SD Card"); + lv_label_set_static_text(label_btn, SYMBOL_SD" SD"); lv_obj_align(btn1, line_sep, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, LV_DPI / 4); lv_btn_set_action(btn1, LV_BTN_ACTION_CLICK, action_ums_sd); @@ -718,8 +718,8 @@ static lv_res_t _create_window_usb_tools(lv_obj_t *parent) lv_obj_t *label_txt2 = lv_label_create(h1, NULL); lv_label_set_recolor(label_txt2, true); lv_label_set_static_text(label_txt2, - "Allows you to mount the SD Card to a PC/Phone.\n" - "#C7EA46 All operating systems are supported. Access is# #FF8000 Read/Write.#"); + "Permite montar la SD en un PC/Telefono.\n" + "#C7EA46 Todos sistemas operativos soportados. Acceso de # #FF8000 Lect/Esc.#"); lv_obj_set_style(label_txt2, &hint_small_style); lv_obj_align(label_txt2, btn1, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 3); @@ -748,7 +748,7 @@ static lv_res_t _create_window_usb_tools(lv_obj_t *parent) // Create emuMMC RAW GPP button. lv_obj_t *btn_emu_gpp = lv_btn_create(h1, btn1); label_btn = lv_label_create(btn_emu_gpp, NULL); - lv_label_set_static_text(label_btn, SYMBOL_MODULES_ALT" emu RAW GPP"); + lv_label_set_static_text(label_btn, SYMBOL_MODULES_ALT" Emu RAW GPP"); lv_obj_align(btn_emu_gpp, btn_gpp, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 2); lv_btn_set_action(btn_emu_gpp, LV_BTN_ACTION_CLICK, _action_ums_emuemmc_gpp); @@ -769,8 +769,8 @@ static lv_res_t _create_window_usb_tools(lv_obj_t *parent) label_txt2 = lv_label_create(h1, NULL); lv_label_set_recolor(label_txt2, true); lv_label_set_static_text(label_txt2, - "Allows you to mount the eMMC/emuMMC.\n" - "#C7EA46 Default access is# #FF8000 read-only.#"); + "Permite montar la eMMC/EmuNAND.\n" + "#C7EA46 Acceso por def. de # #FF8000 solo-lectura.#"); lv_obj_set_style(label_txt2, &hint_small_style); lv_obj_align(label_txt2, btn_emu_gpp, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 3); @@ -785,7 +785,7 @@ static lv_res_t _create_window_usb_tools(lv_obj_t *parent) // Create read/write access button. lv_obj_t *btn_write_access = lv_btn_create(h_write, NULL); nyx_create_onoff_button(lv_theme_get_current(), h_write, - btn_write_access, SYMBOL_EDIT" Read-Only", _emmc_read_only_toggle, false); + btn_write_access, SYMBOL_EDIT" Solo-Lect", _emmc_read_only_toggle, false); if (!n_cfg.ums_emmc_rw) lv_btn_set_state(btn_write_access, LV_BTN_STATE_TGL_REL); _emmc_read_only_toggle(btn_write_access); @@ -803,7 +803,7 @@ static lv_res_t _create_window_usb_tools(lv_obj_t *parent) lv_label_set_static_text(label_sep, ""); lv_obj_t *label_txt3 = lv_label_create(h2, NULL); - lv_label_set_static_text(label_txt3, "USB Input Devices"); + lv_label_set_static_text(label_txt3, "Disp. Entrada USB"); lv_obj_set_style(label_txt3, lv_theme_get_current()->label.prim); lv_obj_align(label_txt3, label_sep, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, -LV_DPI * 4 / 21); @@ -814,16 +814,16 @@ static lv_res_t _create_window_usb_tools(lv_obj_t *parent) lv_obj_t *btn3 = lv_btn_create(h2, NULL); label_btn = lv_label_create(btn3, NULL); lv_btn_set_fit(btn3, true, true); - lv_label_set_static_text(label_btn, SYMBOL_CIRCUIT" Gamepad"); + lv_label_set_static_text(label_btn, SYMBOL_CIRCUIT" Mando"); lv_obj_align(btn3, line_sep, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, LV_DPI / 4); lv_btn_set_action(btn3, LV_BTN_ACTION_CLICK, _action_hid_jc); lv_obj_t *label_txt4 = lv_label_create(h2, NULL); lv_label_set_recolor(label_txt4, true); lv_label_set_static_text(label_txt4, - "Plug-in the Joy-Con and convert the device\n" - "into a gamepad for PC or Phone.\n" - "#C7EA46 Needs both Joy-Con in order to function.#"); + "Conecta el Joy-Con y conviertelo en un\n" + "mando para PC o Telefono.\n" + "#C7EA46 Necesita ambos Joy-Con para funcionar.#"); lv_obj_set_style(label_txt4, &hint_small_style); lv_obj_align(label_txt4, btn3, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 3); @@ -929,7 +929,7 @@ static int _fix_attributes(lv_obj_t *lb_val, char *path, u32 *total) static lv_res_t _create_window_unset_abit_tool(lv_obj_t *btn) { - lv_obj_t *win = nyx_create_standard_window(SYMBOL_COPY" Fix Archive Bit (All folders)"); + lv_obj_t *win = nyx_create_standard_window(SYMBOL_COPY" Arreglar Bit de Archivos (Todas las carpetas)"); // Disable buttons. nyx_window_toggle_buttons(win, true); @@ -943,12 +943,12 @@ static lv_res_t _create_window_unset_abit_tool(lv_obj_t *btn) if (!sd_mount()) { - lv_label_set_text(lb_desc, "#FFDD00 Failed to init SD!#"); + lv_label_set_text(lb_desc, "#FFDD00 Error al iniciar la SD!#"); lv_obj_set_width(lb_desc, lv_obj_get_width(desc)); } else { - lv_label_set_text(lb_desc, "#00DDFF Traversing all SD card files!#\nThis may take some time..."); + lv_label_set_text(lb_desc, "#00DDFF Atravesando todos los archivos de la SD!#\nEsto puede tomar un tiempo..."); lv_obj_set_width(lb_desc, lv_obj_get_width(desc)); lv_obj_t *val = lv_cont_create(win, NULL); @@ -975,15 +975,15 @@ static lv_res_t _create_window_unset_abit_tool(lv_obj_t *btn) char *txt_buf = (char *)malloc(0x500); if (!total[0] && !total[1]) - s_printf(txt_buf, "#96FF00 Done! No change was needed.#"); + s_printf(txt_buf, "#96FF00 Hecho! No se necesito hacer ningun cambio.#"); else - s_printf(txt_buf, "#96FF00 Done! Archive bits fixed:# #FF8000 %d unset and %d set!#", total[1], total[0]); + s_printf(txt_buf, "#96FF00 Hecho! Bit archivos arreglados:# #FF8000 %d desajustados y %d ajustados!#", total[1], total[0]); // Check errors. if (total[2] || total[3]) { - s_printf(txt_buf, "\n\n#FFDD00 Errors: folder accesses: %d, arc bit fixes: %d!#\n" - "#FFDD00 Filesystem should be checked for errors.#", + s_printf(txt_buf, "\n\n#FFDD00 Errores: Acceso a carpetas: %d, Arreg. bit arch: %d!#\n" + "#FFDD00 Debe revisar el sist. de archivos en busca de errores#", total[2], total[3]); } @@ -1012,7 +1012,7 @@ static lv_res_t _create_mbox_fix_touchscreen(lv_obj_t *btn) lv_mbox_set_recolor_text(mbox, true); char *txt_buf = malloc(SZ_16K); - strcpy(txt_buf, "#FF8000 Don't touch the screen!#\n\nThe tuning process will start in "); + strcpy(txt_buf, "#FF8000 No toques la pantalla!#\n\nEl proceso de tuning empezara en "); u32 text_idx = strlen(txt_buf); lv_mbox_set_text(mbox, txt_buf); @@ -1021,8 +1021,8 @@ static lv_res_t _create_mbox_fix_touchscreen(lv_obj_t *btn) lv_obj_set_top(mbox, true); lv_mbox_set_text(mbox, - "#FFDD00 Warning: Only run this if you really have issues!#\n\n" - "Press #FF8000 POWER# to Continue.\nPress #FF8000 VOL# to abort."); + "#FFDD00 Adv: Usa esto solo si realmente tienes problemas!#\n\n" + "Pulsa #FF8000 POWER# para Continuar.\nPulsa #FF8000 VOL# para abortar."); manual_system_maintenance(true); if (!(btn_wait() & BTN_POWER)) @@ -1034,7 +1034,7 @@ static lv_res_t _create_mbox_fix_touchscreen(lv_obj_t *btn) u32 seconds = 5; while (seconds) { - s_printf(txt_buf + text_idx, "%d seconds...", seconds); + s_printf(txt_buf + text_idx, "%d segundos...", seconds); lv_mbox_set_text(mbox, txt_buf); manual_system_maintenance(true); msleep(1000); @@ -1055,49 +1055,49 @@ static lv_res_t _create_mbox_fix_touchscreen(lv_obj_t *btn) { touch_sense_enable(); - s_printf(txt_buf, "#FFFF00 ITO Test: "); + s_printf(txt_buf, "#FFFF00 Test ITO: "); switch (err[0]) { case ITO_FORCE_OPEN: - strcat(txt_buf, "Force Open"); + strcat(txt_buf, "Forzar Apertura"); break; case ITO_SENSE_OPEN: - strcat(txt_buf, "Sense Open"); + strcat(txt_buf, "Deteccion Abierta"); break; case ITO_FORCE_SHRT_GND: - strcat(txt_buf, "Force Short to GND"); + strcat(txt_buf, "Forzar Corto en GND"); break; case ITO_SENSE_SHRT_GND: - strcat(txt_buf, "Sense Short to GND"); + strcat(txt_buf, "Deteccion Corto en GND"); break; case ITO_FORCE_SHRT_VCM: - strcat(txt_buf, "Force Short to VDD"); + strcat(txt_buf, "Forzar Corto en VDD"); break; case ITO_SENSE_SHRT_VCM: - strcat(txt_buf, "Sense Short to VDD"); + strcat(txt_buf, "Deteccion Corto en VDD"); break; case ITO_FORCE_SHRT_FORCE: - strcat(txt_buf, "Force Short to Force"); + strcat(txt_buf, "Forzar Corto en Force"); break; case ITO_SENSE_SHRT_SENSE: - strcat(txt_buf, "Sense Short to Sense"); + strcat(txt_buf, "Deteccion Corto en Sense"); break; case ITO_F2E_SENSE: - strcat(txt_buf, "Force Short to Sense"); + strcat(txt_buf, "Forzar Corto en Sense"); break; case ITO_FPC_FORCE_OPEN: - strcat(txt_buf, "FPC Force Open"); + strcat(txt_buf, "FPC Forzar apertura"); break; case ITO_FPC_SENSE_OPEN: - strcat(txt_buf, "FPC Sense Open"); + strcat(txt_buf, "FPC Deteccion Abierta"); break; default: - strcat(txt_buf, "Unknown"); + strcat(txt_buf, "Desconocido"); break; } s_printf(txt_buf + strlen(txt_buf), " (%d), Chn: %d#\n\n", err[0], err[1]); - strcat(txt_buf, "#FFFF00 The touchscreen calibration failed!"); + strcat(txt_buf, "#FFFF00 La calibracion fallo!"); lv_mbox_set_text(mbox, txt_buf); goto out2; } @@ -1107,9 +1107,9 @@ static lv_res_t _create_mbox_fix_touchscreen(lv_obj_t *btn) out: if (res) - lv_mbox_set_text(mbox, "#C7EA46 The touchscreen calibration finished!"); + lv_mbox_set_text(mbox, "#C7EA46 La calibracion termino!"); else - lv_mbox_set_text(mbox, "#FFFF00 The touchscreen calibration failed!"); + lv_mbox_set_text(mbox, "#FFFF00 La calibracion fallo!"); out2: lv_mbox_add_btns(mbox, mbox_btn_map, mbox_action); @@ -1121,7 +1121,7 @@ static lv_res_t _create_mbox_fix_touchscreen(lv_obj_t *btn) static lv_res_t _create_window_dump_pk12_tool(lv_obj_t *btn) { - lv_obj_t *win = nyx_create_standard_window(SYMBOL_MODULES" Dump package1/2"); + lv_obj_t *win = nyx_create_standard_window(SYMBOL_MODULES" Dump. package1/2"); // Disable buttons. nyx_window_toggle_buttons(win, true); @@ -1137,7 +1137,7 @@ static lv_res_t _create_window_dump_pk12_tool(lv_obj_t *btn) if (!sd_mount()) { - lv_label_set_text(lb_desc, "#FFDD00 Failed to init SD!#"); + lv_label_set_text(lb_desc, "#FFDD00 Error al iniciar la SD!#"); goto out_end; } @@ -1155,7 +1155,7 @@ static lv_res_t _create_window_dump_pk12_tool(lv_obj_t *btn) if (!emmc_initialize(false)) { - lv_label_set_text(lb_desc, "#FFDD00 Failed to init eMMC!#"); + lv_label_set_text(lb_desc, "#FFDD00 Error al iniciar la eMMC!#"); goto out_free; } @@ -1173,7 +1173,7 @@ static lv_res_t _create_window_dump_pk12_tool(lv_obj_t *btn) const pkg1_id_t *pkg1_id = pkg1_identify(pkg1 + pk1_offset, build_date); - s_printf(txt_buf, "#00DDFF Found pkg1 ('%s')#\n\n", build_date); + s_printf(txt_buf, "#00DDFF Encontrado pkg1 ('%s')#\n\n", build_date); free(build_date); lv_label_set_text(lb_desc, txt_buf); manual_system_maintenance(true); @@ -1185,13 +1185,13 @@ static lv_res_t _create_window_dump_pk12_tool(lv_obj_t *btn) // Exit if unknown. if (!pkg1_id) { - strcat(txt_buf, "#FFDD00 Unknown pkg1 version!#"); + strcat(txt_buf, "#FFDD00 Version de pkg1 desconocida!#"); lv_label_set_text(lb_desc, txt_buf); manual_system_maintenance(true); if (!res) { - strcat(txt_buf, "\nEncrypted pkg1 dumped to pkg1_enc.bin"); + strcat(txt_buf, "\nPkg1 encriptado dumpeado a pkg1_enc.bin"); lv_label_set_text(lb_desc, txt_buf); manual_system_maintenance(true); } @@ -1219,9 +1219,9 @@ static lv_res_t _create_window_dump_pk12_tool(lv_obj_t *btn) { if (!pkg1_decrypt(pkg1_id, pkg1)) { - strcat(txt_buf, "#FFDD00 Pkg1 decryption failed!#\n"); + strcat(txt_buf, "#FFDD00 Descrifrado de Pkg1 fallo!#\n"); if (h_cfg.t210b01) - strcat(txt_buf, "#FFDD00 Is BEK missing?#\n"); + strcat(txt_buf, "#FFDD00 Esta BEK desaparecido?#\n"); lv_label_set_text(lb_desc, txt_buf); goto out_free; } @@ -1234,11 +1234,11 @@ static lv_res_t _create_window_dump_pk12_tool(lv_obj_t *btn) // Display info. s_printf(txt_buf + strlen(txt_buf), - "#C7EA46 NX Bootloader size: #0x%05X\n" - "#C7EA46 Secure monitor addr: #0x%05X\n" - "#C7EA46 Secure monitor size: #0x%05X\n" - "#C7EA46 Warmboot addr: #0x%05X\n" - "#C7EA46 Warmboot size: #0x%05X\n\n", + "#C7EA46 Tam. Bootloader NX: #0x%05X\n" + "#C7EA46 Dir. Secure monitor: #0x%05X\n" + "#C7EA46 Tam. Secure monitor: #0x%05X\n" + "#C7EA46 Dir. Warmboot: #0x%05X\n" + "#C7EA46 Tam. Warmboot: #0x%05X\n\n", hdr_pk11->ldr_size, pkg1_id->secmon_base, hdr_pk11->sm_size, pkg1_id->warmboot_base, hdr_pk11->wb_size); lv_label_set_text(lb_desc, txt_buf); @@ -1248,7 +1248,7 @@ static lv_res_t _create_window_dump_pk12_tool(lv_obj_t *btn) emmcsn_path_impl(path, "/pkg1", "pkg1_decr.bin", &emmc_storage); if (sd_save_to_file(pkg1, SZ_256K, path)) goto out_free; - strcat(txt_buf, "pkg1 dumped to pkg1_decr.bin\n"); + strcat(txt_buf, "pkg1 dumpeado a pkg1_decr.bin\n"); lv_label_set_text(lb_desc, txt_buf); manual_system_maintenance(true); @@ -1256,7 +1256,7 @@ static lv_res_t _create_window_dump_pk12_tool(lv_obj_t *btn) emmcsn_path_impl(path, "/pkg1", "nxloader.bin", &emmc_storage); if (sd_save_to_file(loader, hdr_pk11->ldr_size, path)) goto out_free; - strcat(txt_buf, "NX Bootloader dumped to nxloader.bin\n"); + strcat(txt_buf, "Bootloader NX dumpeado a nxloader.bin\n"); lv_label_set_text(lb_desc, txt_buf); manual_system_maintenance(true); @@ -1264,7 +1264,7 @@ static lv_res_t _create_window_dump_pk12_tool(lv_obj_t *btn) emmcsn_path_impl(path, "/pkg1", "secmon.bin", &emmc_storage); if (sd_save_to_file(secmon, hdr_pk11->sm_size, path)) goto out_free; - strcat(txt_buf, "Secure Monitor dumped to secmon.bin\n"); + strcat(txt_buf, "Secure Monitor dumpeado a secmon.bin\n"); lv_label_set_text(lb_desc, txt_buf); manual_system_maintenance(true); @@ -1283,7 +1283,7 @@ static lv_res_t _create_window_dump_pk12_tool(lv_obj_t *btn) if (sd_save_to_file(warmboot, hdr_pk11->wb_size, path)) goto out_free; } - strcat(txt_buf, "Warmboot dumped to warmboot.bin\n\n"); + strcat(txt_buf, "Warmboot dumpeado a warmboot.bin\n\n"); lv_label_set_text(lb_desc, txt_buf); manual_system_maintenance(true); } @@ -1318,13 +1318,13 @@ static lv_res_t _create_window_dump_pk12_tool(lv_obj_t *btn) pkg2_hdr_t *pkg2_hdr = pkg2_decrypt(pkg2, kb); if (!pkg2_hdr) { - strcat(txt_buf, "#FFDD00 Pkg2 decryption failed!#"); + strcat(txt_buf, "#FFDD00 Descrifrado de pkg2 fallo!#"); lv_label_set_text(lb_desc, txt_buf); manual_system_maintenance(true); if (!res) { - strcat(txt_buf, "\npkg2 encrypted dumped to pkg2_encr.bin\n"); + strcat(txt_buf, "\nPkg2 encriptado dumpeado a pkg2_encr.bin\n"); lv_label_set_text(lb_desc, txt_buf); manual_system_maintenance(true); } @@ -1337,8 +1337,8 @@ static lv_res_t _create_window_dump_pk12_tool(lv_obj_t *btn) // Display info. s_printf(txt_buf + strlen(txt_buf), - "#C7EA46 Kernel size: #0x%05X\n" - "#C7EA46 INI1 size: #0x%05X\n\n", + "#C7EA46 Tam. de Kernel:#0x%05X\n" + "#C7EA46 Tam. de INI1: #0x%05X\n\n", pkg2_hdr->sec_size[PKG2_SEC_KERNEL], pkg2_hdr->sec_size[PKG2_SEC_INI1]); lv_label_set_text(lb_desc, txt_buf); @@ -1348,7 +1348,7 @@ static lv_res_t _create_window_dump_pk12_tool(lv_obj_t *btn) emmcsn_path_impl(path, "/pkg2", "pkg2_decr.bin", &emmc_storage); if (sd_save_to_file(pkg2, pkg2_hdr->sec_size[PKG2_SEC_KERNEL] + pkg2_hdr->sec_size[PKG2_SEC_INI1], path)) goto out; - strcat(txt_buf, "pkg2 dumped to pkg2_decr.bin\n"); + strcat(txt_buf, "Pkg2 dumpeado a pkg2_decr.bin\n"); lv_label_set_text(lb_desc, txt_buf); manual_system_maintenance(true); @@ -1356,7 +1356,7 @@ static lv_res_t _create_window_dump_pk12_tool(lv_obj_t *btn) emmcsn_path_impl(path, "/pkg2", "kernel.bin", &emmc_storage); if (sd_save_to_file(pkg2_hdr->data, pkg2_hdr->sec_size[PKG2_SEC_KERNEL], path)) goto out; - strcat(txt_buf, "Kernel dumped to kernel.bin\n"); + strcat(txt_buf, "Kernel dumpeado a kernel.bin\n"); lv_label_set_text(lb_desc, txt_buf); manual_system_maintenance(true); @@ -1372,7 +1372,7 @@ static lv_res_t _create_window_dump_pk12_tool(lv_obj_t *btn) if (!ini1_off) { - strcat(txt_buf, "#FFDD00 Failed to dump INI1 and kips!#\n"); + strcat(txt_buf, "#FFDD00 Error al dumpear INI1 y kips!#\n"); goto out; } @@ -1381,7 +1381,7 @@ static lv_res_t _create_window_dump_pk12_tool(lv_obj_t *btn) if (sd_save_to_file(ini1, ini1_size, path)) goto out; - strcat(txt_buf, "INI1 dumped to ini1.bin\n\n"); + strcat(txt_buf, "INI1 dumpeado a ini1.bin\n\n"); lv_label_set_text(lb_desc, txt_buf); manual_system_maintenance(true); @@ -1411,7 +1411,7 @@ static lv_res_t _create_window_dump_pk12_tool(lv_obj_t *btn) goto out; } - s_printf(txt_buf + strlen(txt_buf), "%s kip dumped to %s.kip1\n", kip1->name, kip1->name); + s_printf(txt_buf + strlen(txt_buf), "%s kip dumpeado a %s.kip1\n", kip1->name, kip1->name); lv_label_set_text(lb_desc, txt_buf); manual_system_maintenance(true); @@ -1451,7 +1451,7 @@ static void _create_tab_tools_emmc_pkg12(lv_theme_t *th, lv_obj_t *parent) lv_label_set_static_text(label_sep, ""); lv_obj_t *label_txt = lv_label_create(h1, NULL); - lv_label_set_static_text(label_txt, "Backup & Restore"); + lv_label_set_static_text(label_txt, "Respaldar y Restaurar"); lv_obj_set_style(label_txt, th->label.prim); lv_obj_align(label_txt, label_sep, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, -LV_DPI * 3 / 10); @@ -1477,27 +1477,27 @@ static void _create_tab_tools_emmc_pkg12(lv_theme_t *th, lv_obj_t *parent) lv_obj_t *label_txt2 = lv_label_create(h1, NULL); lv_label_set_recolor(label_txt2, true); lv_label_set_static_text(label_txt2, - "Allows you to backup the eMMC partitions individually or as\n" - "a whole raw image to the SD card.\n" - "#C7EA46 Supports SD cards from# #FF8000 4GB# #C7EA46 and up. #" - "#FF8000 FAT32# #C7EA46 and ##FF8000 exFAT##C7EA46 .#"); + "Permite hacer un backup de las particiones de la eMMC\n" + "individualmente o como una imagen RAW en la SD.\n" + "#C7EA46 Soporta SD desde# #FF8000 4GB# #C7EA46 en adelante. #" + "#FF8000 FAT32# #C7EA46 y ##FF8000 exFAT##C7EA46 .#"); lv_obj_set_style(label_txt2, &hint_small_style); lv_obj_align(label_txt2, btn, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 3); // Create Restore eMMC button. lv_obj_t *btn2 = lv_btn_create(h1, btn); label_btn = lv_label_create(btn2, NULL); - lv_label_set_static_text(label_btn, SYMBOL_DOWNLOAD" Restore eMMC"); + lv_label_set_static_text(label_btn, SYMBOL_DOWNLOAD" Restaurar eMMC"); lv_obj_align(btn2, label_txt2, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 2); lv_btn_set_action(btn2, LV_BTN_ACTION_CLICK, create_window_backup_restore_tool); label_txt2 = lv_label_create(h1, NULL); lv_label_set_recolor(label_txt2, true); lv_label_set_static_text(label_txt2, - "Allows you to restore the eMMC/emuMMC partitions individually\n" - "or as a whole raw image from the SD card.\n" - "#C7EA46 Supports SD cards from# #FF8000 4GB# #C7EA46 and up. #" - "#FF8000 FAT32# #C7EA46 and ##FF8000 exFAT##C7EA46 .#"); + "Permite restaurar las particiones de la eMMC/EmuNAND\n" + "individualmente o como imagen raw desde la SD.\n" + "#C7EA46 Soporta SD desde# #FF8000 4GB# #C7EA46 en adelante. #" + "#FF8000 FAT32# #C7EA46 y ##FF8000 exFAT##C7EA46 .#"); lv_obj_set_style(label_txt2, &hint_small_style); lv_obj_align(label_txt2, btn2, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 3); @@ -1509,7 +1509,7 @@ static void _create_tab_tools_emmc_pkg12(lv_theme_t *th, lv_obj_t *parent) lv_label_set_static_text(label_sep, ""); lv_obj_t *label_txt3 = lv_label_create(h2, NULL); - lv_label_set_static_text(label_txt3, "SD Partitions & USB"); + lv_label_set_static_text(label_txt3, "Particiones SD y USB"); lv_obj_set_style(label_txt3, th->label.prim); lv_obj_align(label_txt3, label_sep, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, -LV_DPI * 3 / 10); @@ -1525,15 +1525,15 @@ static void _create_tab_tools_emmc_pkg12(lv_theme_t *th, lv_obj_t *parent) } label_btn = lv_label_create(btn3, NULL); lv_btn_set_fit(btn3, true, true); - lv_label_set_static_text(label_btn, SYMBOL_SD" Partition SD Card"); + lv_label_set_static_text(label_btn, SYMBOL_SD" Particionar SD"); lv_obj_align(btn3, line_sep, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, LV_DPI / 4); lv_btn_set_action(btn3, LV_BTN_ACTION_CLICK, create_window_partition_manager); lv_obj_t *label_txt4 = lv_label_create(h2, NULL); lv_label_set_recolor(label_txt4, true); lv_label_set_static_text(label_txt4, - "Allows you to partition the SD Card for using it with #C7EA46 emuMMC#,\n" - "#C7EA46 Android# and #C7EA46 Linux#. You can also flash Linux and Android.\n"); + "Permite particionar la SD para usarla con #C7EA46 EmuNAND#,\n" + "#C7EA46 Android# y #C7EA46 Linux#. Puedes flashear Linux y Android.\n"); lv_obj_set_style(label_txt4, &hint_small_style); lv_obj_align(label_txt4, btn3, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 3); @@ -1544,16 +1544,16 @@ static void _create_tab_tools_emmc_pkg12(lv_theme_t *th, lv_obj_t *parent) // Create USB Tools button. lv_obj_t *btn4 = lv_btn_create(h2, btn3); label_btn = lv_label_create(btn4, NULL); - lv_label_set_static_text(label_btn, SYMBOL_USB" USB Tools"); + lv_label_set_static_text(label_btn, SYMBOL_USB" Herram. USB"); lv_obj_align(btn4, label_txt4, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 2); lv_btn_set_action(btn4, LV_BTN_ACTION_CLICK, _create_window_usb_tools); label_txt4 = lv_label_create(h2, NULL); lv_label_set_recolor(label_txt4, true); lv_label_set_static_text(label_txt4, - "#C7EA46 USB mass storage#, #C7EA46 gamepad# and other USB tools.\n" - "Mass storage can mount SD, eMMC and emuMMC. The\n" - "gamepad transforms the Switch into an input device.#"); + "#C7EA46 Almacenam. USB#, #C7EA46 gamepad# y otras herram. USB.\n" + "El Alm. puede montar la SD, eMMC y la EmuNAND. El\n" + "gamepad transforma la Switch en un disp. de entrada.#"); lv_obj_set_style(label_txt4, &hint_small_style); lv_obj_align(label_txt4, btn4, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 3); } @@ -1569,7 +1569,7 @@ static void _create_tab_tools_arc_autorcm(lv_theme_t *th, lv_obj_t *parent) lv_label_set_static_text(label_sep, ""); lv_obj_t *label_txt = lv_label_create(h1, NULL); - lv_label_set_static_text(label_txt, "Misc"); + lv_label_set_static_text(label_txt, "Miscelaneo"); lv_obj_set_style(label_txt, th->label.prim); lv_obj_align(label_txt, label_sep, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, -LV_DPI * 3 / 10); @@ -1588,32 +1588,32 @@ static void _create_tab_tools_arc_autorcm(lv_theme_t *th, lv_obj_t *parent) } lv_obj_t *label_btn = lv_label_create(btn, NULL); lv_btn_set_fit(btn, true, true); - lv_label_set_static_text(label_btn, SYMBOL_DIRECTORY" Fix Archive Bit"); + lv_label_set_static_text(label_btn, SYMBOL_DIRECTORY" Arreglar Bit de Arch."); lv_obj_align(btn, line_sep, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, LV_DPI / 4); lv_btn_set_action(btn, LV_BTN_ACTION_CLICK, _create_window_unset_abit_tool); lv_obj_t *label_txt2 = lv_label_create(h1, NULL); lv_label_set_recolor(label_txt2, true); lv_label_set_static_text(label_txt2, - "Allows you to fix the archive bit for all folders including\n" - "the root and emuMMC \'Nintendo\' folders.\n" - "#C7EA46 It sets the archive bit to folders named with ##FF8000 .[ext]#\n" - "#FF8000 Use that option when you have corruption messages.#"); + "Permite arreglar el bit de archivo de todas las carpetas\n" + "incluyendo la raiz y la carpeta \'Nintendo\' de la EmuNAND.\n" + "#C7EA46 Pone el bit de arch. a las carpetas llamadas ##FF8000 .[ext]#\n" + "#FF8000 Usa esta opcion cuando tengas mensajes corruptos.#"); lv_obj_set_style(label_txt2, &hint_small_style); lv_obj_align(label_txt2, btn, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 3); // Create Fix touch calibration button. lv_obj_t *btn2 = lv_btn_create(h1, btn); label_btn = lv_label_create(btn2, NULL); - lv_label_set_static_text(label_btn, SYMBOL_KEYBOARD" Calibrate Touchscreen"); + lv_label_set_static_text(label_btn, SYMBOL_KEYBOARD" Calibrar Tactil"); lv_obj_align(btn2, label_txt2, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 2); lv_btn_set_action(btn2, LV_BTN_ACTION_CLICK, _create_mbox_fix_touchscreen); label_txt2 = lv_label_create(h1, NULL); lv_label_set_recolor(label_txt2, true); lv_label_set_static_text(label_txt2, - "Allows you to calibrate the touchscreen module.\n" - "#FF8000 This fixes any issues with touchscreen in Nyx and HOS.#"); + "Permite calibrar el modulo de la pantalla tactil.\n" + "#FF8000 Arregla fallos con la pantalla tactil en Nyx y el HOS.#"); lv_obj_set_style(label_txt2, &hint_small_style); lv_obj_align(label_txt2, btn2, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 3); @@ -1625,7 +1625,7 @@ static void _create_tab_tools_arc_autorcm(lv_theme_t *th, lv_obj_t *parent) lv_label_set_static_text(label_sep, ""); lv_obj_t *label_txt3 = lv_label_create(h2, NULL); - lv_label_set_static_text(label_txt3, "Others"); + lv_label_set_static_text(label_txt3, "Otros"); lv_obj_set_style(label_txt3, th->label.prim); lv_obj_align(label_txt3, label_sep, LV_ALIGN_OUT_BOTTOM_LEFT, LV_DPI / 4, -LV_DPI * 3 / 10); @@ -1665,13 +1665,13 @@ static void _create_tab_tools_arc_autorcm(lv_theme_t *th, lv_obj_t *parent) char *txt_buf = (char *)malloc(SZ_4K); s_printf(txt_buf, - "Allows you to enter RCM without using #C7EA46 VOL+# & #C7EA46 HOME# (jig).\n" - "#FF8000 It can restore all versions of AutoRCM whenever requested.#\n" - "#FF3C28 This corrupts the BCT and you can't boot without a custom#\n" - "#FF3C28 bootloader.#"); + "Permite entrar en RCM sin usar #C7EA46 VOL+# & #C7EA46 HOME# (jig).\n" + "#FF8000 Puedes restaurar AutoRCM siempre que lo solicites.#\n" + "#FF3C28 Esto corrompe el BCT y no podras iniciar sin un bootloader#\n" + "#FF3C28 personalizado.#"); if (h_cfg.rcm_patched) - strcat(txt_buf, " #FF8000 This is disabled because this unit is patched!#"); + strcat(txt_buf, " #FF8000 Desactivado porque la Switch esta parcheada!#"); lv_obj_t *label_txt4 = lv_label_create(h2, NULL); lv_label_set_recolor(label_txt4, true); @@ -1688,15 +1688,15 @@ static void _create_tab_tools_arc_autorcm(lv_theme_t *th, lv_obj_t *parent) // Create Dump Package1/2 button. lv_obj_t *btn4 = lv_btn_create(h2, btn); label_btn = lv_label_create(btn4, NULL); - lv_label_set_static_text(label_btn, SYMBOL_MODULES" Dump Package1/2"); + lv_label_set_static_text(label_btn, SYMBOL_MODULES" Dump. Package1/2"); lv_obj_align(btn4, label_txt4, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 2); lv_btn_set_action(btn4, LV_BTN_ACTION_CLICK, _create_window_dump_pk12_tool); label_txt2 = lv_label_create(h2, NULL); lv_label_set_recolor(label_txt2, true); lv_label_set_static_text(label_txt2, - "Allows you to dump and decrypt pkg1 and pkg2 and further\n" - "split it up into their individual parts. It also dumps the kip1."); + "Permite dumpear y descifrar el pkg1 y pkg2, y ademas los\n" + "divide en partes individuales. Tambien dumpea el kip1."); lv_obj_set_style(label_txt2, &hint_small_style); lv_obj_align(label_txt2, btn4, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 3); } @@ -1721,8 +1721,8 @@ void create_tab_tools(lv_theme_t *th, lv_obj_t *parent) lv_tabview_set_sliding(tv, false); lv_tabview_set_btns_pos(tv, LV_TABVIEW_BTNS_POS_BOTTOM); - lv_obj_t *tab1= lv_tabview_add_tab(tv, "eMMC "SYMBOL_DOT" SD Partitions "SYMBOL_DOT" USB"); - lv_obj_t *tab2 = lv_tabview_add_tab(tv, "Arch bit "SYMBOL_DOT" RCM "SYMBOL_DOT" Touch "SYMBOL_DOT" Pkg1/2"); + lv_obj_t *tab1= lv_tabview_add_tab(tv, "eMMC "SYMBOL_DOT" Particiones SD "SYMBOL_DOT" USB"); + lv_obj_t *tab2 = lv_tabview_add_tab(tv, "Bit Arch "SYMBOL_DOT" RCM "SYMBOL_DOT" Tactil "SYMBOL_DOT" Pkg1/2"); lv_obj_t *line_sep = lv_line_create(tv, NULL); static const lv_point_t line_pp[] = { {0, 0}, { 0, LV_DPI / 4} }; diff --git a/nyx/nyx_gui/frontend/gui_tools_partition_manager.c b/nyx/nyx_gui/frontend/gui_tools_partition_manager.c index e9fbe920..5437072d 100644 --- a/nyx/nyx_gui/frontend/gui_tools_partition_manager.c +++ b/nyx/nyx_gui/frontend/gui_tools_partition_manager.c @@ -232,7 +232,7 @@ static int _stat_and_copy_files(const char *src, const char *dst, char *path, u3 } else // It's a directory. { - if (!memcmp("System Volume Information", fno.fname, 25)) + if (!memcmp("Informacion de Volumen", fno.fname, 25)) continue; // Create folder to destination. @@ -555,16 +555,16 @@ static lv_res_t _action_flash_linux_data(lv_obj_t * btns, const char * txt) lv_obj_set_size(dark_bg, LV_HOR_RES, LV_VER_RES); static const char *mbox_btn_map[] = { "\251", "\222OK", "\251", "" }; - static const char *mbox_btn_map2[] = { "\223Delete Installation Files", "\221OK", "" }; + static const char *mbox_btn_map2[] = { "\223Borrar arch. de instalacion", "\221OK", "" }; lv_obj_t *mbox = lv_mbox_create(dark_bg, NULL); lv_mbox_set_recolor_text(mbox, true); lv_obj_set_width(mbox, LV_HOR_RES / 10 * 5); - lv_mbox_set_text(mbox, "#FF8000 Linux Flasher#"); + lv_mbox_set_text(mbox, "#FF8000 Flasheador de Linux#"); lv_obj_t *lbl_status = lv_label_create(mbox, NULL); lv_label_set_recolor(lbl_status, true); - lv_label_set_text(lbl_status, "#C7EA46 Status:# Flashing Linux..."); + lv_label_set_text(lbl_status, "#C7EA46 Estado:# Flasheando Linux..."); // Create container to keep content inside. lv_obj_t *h1 = lv_cont_create(mbox, NULL); @@ -598,7 +598,7 @@ static lv_res_t _action_flash_linux_data(lv_obj_t * btns, const char * txt) res = f_open(&fp, path, FA_READ); if (res) { - lv_label_set_text(lbl_status, "#FFDD00 Error:# Failed to open 1st part!"); + lv_label_set_text(lbl_status, "#FFDD00 Error:# Fallo al abrir part. 1st!"); goto exit; } @@ -641,7 +641,7 @@ static lv_res_t _action_flash_linux_data(lv_obj_t * btns, const char * txt) res = f_open(&fp, path, FA_READ); if (res) { - s_printf(txt_buf, "#FFDD00 Error:# Failed to open part %d#", currPartIdx); + s_printf(txt_buf, "#FFDD00 Error:# Fallo al abrir part. %d#", currPartIdx); lv_label_set_text(lbl_status, txt_buf); manual_system_maintenance(true); @@ -661,7 +661,7 @@ static lv_res_t _action_flash_linux_data(lv_obj_t * btns, const char * txt) if (res) { - lv_label_set_text(lbl_status, "#FFDD00 Error:# Reading from SD!"); + lv_label_set_text(lbl_status, "#FFDD00 Error:# Leyendo desde SD!"); manual_system_maintenance(true); f_close(&fp); @@ -682,7 +682,7 @@ static lv_res_t _action_flash_linux_data(lv_obj_t * btns, const char * txt) if (retryCount >= 3) { - lv_label_set_text(lbl_status, "#FFDD00 Error:# Writing to SD!"); + lv_label_set_text(lbl_status, "#FFDD00 Error:# Escribiendo a SD!"); manual_system_maintenance(true); f_close(&fp); @@ -823,16 +823,16 @@ static lv_res_t _action_check_flash_linux(lv_obj_t *btn) lv_obj_set_size(dark_bg, LV_HOR_RES, LV_VER_RES); static const char *mbox_btn_map[] = { "\251", "\222OK", "\251", "" }; - static const char *mbox_btn_map2[] = { "\222Continue", "\222Cancel", "" }; + static const char *mbox_btn_map2[] = { "\222Continuar", "\222Cancelar", "" }; lv_obj_t *mbox = lv_mbox_create(dark_bg, NULL); lv_mbox_set_recolor_text(mbox, true); lv_obj_set_width(mbox, LV_HOR_RES / 9 * 6); - lv_mbox_set_text(mbox, "#FF8000 Linux Flasher#"); + lv_mbox_set_text(mbox, "#FF8000 Flasheador de Linux#"); lv_obj_t *lbl_status = lv_label_create(mbox, NULL); lv_label_set_recolor(lbl_status, true); - lv_label_set_text(lbl_status, "#C7EA46 Status:# Searching for files and partitions..."); + lv_label_set_text(lbl_status, "#C7EA46 Estado:# Buscando archivos y particiones..."); lv_obj_align(mbox, NULL, LV_ALIGN_CENTER, 0, 0); lv_obj_set_top(mbox, true); @@ -845,7 +845,7 @@ static lv_res_t _action_check_flash_linux(lv_obj_t *btn) strcpy(path, "switchroot/install/l4t.00"); if (f_stat(path, NULL)) { - lv_label_set_text(lbl_status, "#FFDD00 Error:# Installation files not found!"); + lv_label_set_text(lbl_status, "#FFDD00 Error:# Arch. de instalacion no estan!"); goto error; } @@ -853,7 +853,7 @@ static lv_res_t _action_check_flash_linux(lv_obj_t *btn) u32 size_sct = _get_available_l4t_partition(); if (!l4t_flash_ctxt.offset_sct || !size_sct || size_sct < 0x800000) { - lv_label_set_text(lbl_status, "#FFDD00 Error:# No partition found!"); + lv_label_set_text(lbl_status, "#FFDD00 Error:# Particion no encontrada!"); goto error; } @@ -891,7 +891,7 @@ static lv_res_t _action_check_flash_linux(lv_obj_t *btn) // If it exists, unaligned size for current part is not permitted. if (!f_stat(path, NULL)) // NULL: Don't override current part fs info. { - lv_label_set_text(lbl_status, "#FFDD00 Error:# The image is not aligned to 4 MiB!"); + lv_label_set_text(lbl_status, "#FFDD00 Error:# Imagen no alineada a 4 MiB!"); goto error; } @@ -907,15 +907,15 @@ static lv_res_t _action_check_flash_linux(lv_obj_t *btn) // Check if image size is bigger than the partition available. if (l4t_flash_ctxt.image_size_sct > size_sct) { - lv_label_set_text(lbl_status, "#FFDD00 Error:# The image is bigger than the partition!"); + lv_label_set_text(lbl_status, "#FFDD00 Error:# Imagen mas grande que la particion!"); goto error; } char *txt_buf = malloc(SZ_4K); s_printf(txt_buf, - "#C7EA46 Status:# Found installation files and partition.\n" - "#00DDFF Offset:# %08x, #00DDFF Size:# %X, #00DDFF Image size:# %d MiB\n" - "\nDo you want to continue?", l4t_flash_ctxt.offset_sct, size_sct, l4t_flash_ctxt.image_size_sct >> 11); + "#C7EA46 Estado:# Arch. instalacion y particion encontr.\n" + "#00DDFF Offset:# %08x, #00DDFF Tam:# %X, #00DDFF Tam. Imagen:# %d MiB\n" + "\nQuieres continuar?", l4t_flash_ctxt.offset_sct, size_sct, l4t_flash_ctxt.image_size_sct >> 11); lv_label_set_text(lbl_status, txt_buf); free(txt_buf); lv_mbox_add_btns(mbox, mbox_btn_map2, _action_flash_linux_data); @@ -984,16 +984,16 @@ static lv_res_t _action_flash_android_data(lv_obj_t * btns, const char * txt) lv_obj_set_size(dark_bg, LV_HOR_RES, LV_VER_RES); static const char *mbox_btn_map[] = { "\251", "\222OK", "\251", "" }; - static const char *mbox_btn_map2[] = { "\222Continue", "\222No", "" }; + static const char *mbox_btn_map2[] = { "\222Continuar", "\222No", "" }; lv_obj_t *mbox = lv_mbox_create(dark_bg, NULL); lv_mbox_set_recolor_text(mbox, true); lv_obj_set_width(mbox, LV_HOR_RES / 9 * 6); - lv_mbox_set_text(mbox, "#FF8000 Android Flasher#"); + lv_mbox_set_text(mbox, "#FF8000 Flasheador de Android#"); lv_obj_t *lbl_status = lv_label_create(mbox, NULL); lv_label_set_recolor(lbl_status, true); - lv_label_set_text(lbl_status, "#C7EA46 Status:# Searching for files and partitions..."); + lv_label_set_text(lbl_status, "#C7EA46 Estado:# Buscando archivos y particiones..."); lv_obj_align(mbox, NULL, LV_ALIGN_CENTER, 0, 0); lv_obj_set_top(mbox, true); @@ -1008,7 +1008,7 @@ static lv_res_t _action_flash_android_data(lv_obj_t * btns, const char * txt) // Validate GPT header. if (memcmp(&gpt->header.signature, "EFI PART", 8) || gpt->header.num_part_ents > 128) { - lv_label_set_text(lbl_status, "#FFDD00 Error:# No Android GPT was found!"); + lv_label_set_text(lbl_status, "#FFDD00 Error:# GPT Android no encontrado!"); goto error; } @@ -1019,7 +1019,7 @@ static lv_res_t _action_flash_android_data(lv_obj_t * btns, const char * txt) strcpy(path, "switchroot/install/boot.img"); if (f_stat(path, NULL)) { - s_printf(txt_buf, "#FF8000 Warning:# Kernel image not found!\n"); + s_printf(txt_buf, "#FF8000 Adv:# Imagen Kernel no encontrada!\n"); goto boot_img_not_found; } @@ -1053,19 +1053,19 @@ static lv_res_t _action_flash_android_data(lv_obj_t * btns, const char * txt) } if ((file_size >> 9) > size_sct) - s_printf(txt_buf, "#FF8000 Warning:# Kernel image too big!\n"); + s_printf(txt_buf, "#FF8000 Adv:# Imagen Kernel muy grande!\n"); else { sdmmc_storage_write(&sd_storage, offset_sct, file_size >> 9, buf); - s_printf(txt_buf, "#C7EA46 Success:# Kernel image flashed!\n"); + s_printf(txt_buf, "#C7EA46 Exito:# Imagen Kernel flasheada!\n"); f_unlink(path); } free(buf); } else - s_printf(txt_buf, "#FF8000 Warning:# Kernel partition not found!\n"); + s_printf(txt_buf, "#FF8000 Adv:# Particion Kernel no encontrada!\n"); boot_img_not_found: lv_label_set_text(lbl_status, txt_buf); @@ -1079,7 +1079,7 @@ static lv_res_t _action_flash_android_data(lv_obj_t * btns, const char * txt) strcpy(path, "switchroot/install/twrp.img"); if (f_stat(path, NULL)) { - strcat(txt_buf, "#FF8000 Warning:# Recovery image not found!\n"); + strcat(txt_buf, "#FF8000 Adv:# Imagen Recovery no encontrada!\n"); goto recovery_not_found; } } @@ -1117,18 +1117,18 @@ static lv_res_t _action_flash_android_data(lv_obj_t * btns, const char * txt) } if ((file_size >> 9) > size_sct) - strcat(txt_buf, "#FF8000 Warning:# Recovery image too big!\n"); + strcat(txt_buf, "#FF8000 Adv:# Imagen Recovery muy grande!\n"); else { sdmmc_storage_write(&sd_storage, offset_sct, file_size >> 9, buf); - strcat(txt_buf, "#C7EA46 Success:# Recovery image flashed!\n"); + strcat(txt_buf, "#C7EA46 Exito:# Imagen Recovery flasheada!\n"); f_unlink(path); } free(buf); } else - strcat(txt_buf, "#FF8000 Warning:# Recovery partition not found!\n"); + strcat(txt_buf, "#FF8000 Adv:# Particion Recovery no encontrada!\n"); recovery_not_found: lv_label_set_text(lbl_status, txt_buf); @@ -1141,7 +1141,7 @@ static lv_res_t _action_flash_android_data(lv_obj_t * btns, const char * txt) strcpy(path, "switchroot/install/tegra210-icosa.dtb"); if (f_stat(path, NULL)) { - strcat(txt_buf, "#FF8000 Warning:# DTB image not found!"); + strcat(txt_buf, "#FF8000 Adv:# Imagen DTB no encontrada!"); goto dtb_not_found; } } @@ -1179,18 +1179,18 @@ static lv_res_t _action_flash_android_data(lv_obj_t * btns, const char * txt) } if ((file_size >> 9) > size_sct) - strcat(txt_buf, "#FF8000 Warning:# DTB image too big!"); + strcat(txt_buf, "#FF8000 Adv:# Imagen DTB muy grande!"); else { sdmmc_storage_write(&sd_storage, offset_sct, file_size >> 9, buf); - strcat(txt_buf, "#C7EA46 Success:# DTB image flashed!"); + strcat(txt_buf, "#C7EA46 Exito:# Imagen DTB flasheada!"); f_unlink(path); } free(buf); } else - strcat(txt_buf, "#FF8000 Warning:# DTB partition not found!"); + strcat(txt_buf, "#FF8000 Adv:# Particion DTB no encontrada!"); dtb_not_found: lv_label_set_text(lbl_status, txt_buf); @@ -1216,7 +1216,7 @@ static lv_res_t _action_flash_android_data(lv_obj_t * btns, const char * txt) if (boot_recovery) { // If a Recovery partition was found, ask user if rebooting into it is wanted. - strcat(txt_buf,"\n\nDo you want to reboot into Recovery\nto finish Android installation?"); + strcat(txt_buf,"\n\nQuieres reiniciar en Recovery para\nacabar instalacion de Android?"); lv_label_set_text(lbl_status, txt_buf); lv_mbox_add_btns(mbox, mbox_btn_map2, _action_reboot_recovery); } @@ -1239,19 +1239,19 @@ static lv_res_t _action_flash_android(lv_obj_t *btn) lv_obj_set_style(dark_bg, &mbox_darken); lv_obj_set_size(dark_bg, LV_HOR_RES, LV_VER_RES); - static const char *mbox_btn_map[] = { "\222Continue", "\222Cancel", "" }; + static const char *mbox_btn_map[] = { "\222Continuar", "\222Cancelar", "" }; lv_obj_t *mbox = lv_mbox_create(dark_bg, NULL); lv_mbox_set_recolor_text(mbox, true); lv_obj_set_width(mbox, LV_HOR_RES / 9 * 6); - lv_mbox_set_text(mbox, "#FF8000 Android Flasher#"); + lv_mbox_set_text(mbox, "#FF8000 Flasheador de Android#"); lv_obj_t *lbl_status = lv_label_create(mbox, NULL); lv_label_set_recolor(lbl_status, true); lv_label_set_text(lbl_status, - "This will flash #C7EA46 Kernel#, #C7EA46 DTB# and #C7EA46 Recovery# if found.\n" - "These will be deleted after a successful flash.\n" - "Do you want to continue?"); + "Esto flasheara #C7EA46 Kernel#, #C7EA46 DTB# y #C7EA46 Recovery#.\n" + "Esto se borrara despues de flashearse exitosamente.\n" + "Quieres continuar?"); lv_mbox_add_btns(mbox, mbox_btn_map, _action_flash_android_data); lv_obj_align(mbox, NULL, LV_ALIGN_CENTER, 0, 0); @@ -1387,14 +1387,14 @@ static lv_res_t _create_mbox_start_partitioning(lv_obj_t *btn) lv_obj_set_size(dark_bg, LV_HOR_RES, LV_VER_RES); static const char *mbox_btn_map[] = { "\251", "\222OK", "\251", "" }; - static const char *mbox_btn_map1[] = { "\222SD UMS", "\222Flash Linux", "\222Flash Android", "\221OK", "" }; - static const char *mbox_btn_map2[] = { "\222SD UMS", "\222Flash Linux", "\221OK", "" }; - static const char *mbox_btn_map3[] = { "\222SD UMS", "\222Flash Android", "\221OK", "" }; + static const char *mbox_btn_map1[] = { "\222SD UMS", "\222Flashear Linux", "\222Flashear Android", "\221OK", "" }; + static const char *mbox_btn_map2[] = { "\222SD UMS", "\222Flashear Linux", "\221OK", "" }; + static const char *mbox_btn_map3[] = { "\222SD UMS", "\222Flashear Android", "\221OK", "" }; lv_obj_t *mbox = lv_mbox_create(dark_bg, NULL); lv_mbox_set_recolor_text(mbox, true); lv_obj_set_width(mbox, LV_HOR_RES / 9 * 6); - lv_mbox_set_text(mbox, "#FF8000 Partition Manager#"); + lv_mbox_set_text(mbox, "#FF8000 Gestor de Particiones#"); lv_obj_align(mbox, NULL, LV_ALIGN_CENTER, 0, 0); lv_obj_set_top(mbox, true); @@ -1402,14 +1402,14 @@ static lv_res_t _create_mbox_start_partitioning(lv_obj_t *btn) // Use safety wait if backup is not possible. char *txt_buf = malloc(SZ_4K); - strcpy(txt_buf, "#FF8000 Partition Manager#\n\nSafety wait ends in "); + strcpy(txt_buf, "#FF8000 Gestor de Particiones#\n\nLa espera acabara en "); lv_mbox_set_text(mbox, txt_buf); u32 seconds = 5; u32 text_idx = strlen(txt_buf); while (seconds) { - s_printf(txt_buf + text_idx, "%d seconds...", seconds); + s_printf(txt_buf + text_idx, "%d segundos...", seconds); lv_mbox_set_text(mbox, txt_buf); manual_system_maintenance(true); msleep(1000); @@ -1417,9 +1417,9 @@ static lv_res_t _create_mbox_start_partitioning(lv_obj_t *btn) } lv_mbox_set_text(mbox, - "#FF8000 Partition Manager#\n\n" - "#FFDD00 Warning: Do you really want to continue?!#\n\n" - "Press #FF8000 POWER# to Continue.\nPress #FF8000 VOL# to abort."); + "#FF8000 Gestor de Particiones#\n\n" + "#FFDD00 Adv: Seguro que quieres continuar?!#\n\n" + "Pulsa #FF8000 POWER# para Continuar.\nPulsa #FF8000 VOL# para abortar."); lv_obj_align(mbox, NULL, LV_ALIGN_CENTER, 0, 0); manual_system_maintenance(true); @@ -1429,7 +1429,7 @@ static lv_res_t _create_mbox_start_partitioning(lv_obj_t *btn) goto exit; // Start partitioning. - lv_mbox_set_text(mbox, "#FF8000 Partition Manager#"); + lv_mbox_set_text(mbox, "#FF8000 Gestor de Particiones#"); lv_obj_align(mbox, NULL, LV_ALIGN_CENTER, 0, 0); manual_system_maintenance(true); @@ -1459,7 +1459,7 @@ static lv_res_t _create_mbox_start_partitioning(lv_obj_t *btn) // Read current MBR. sdmmc_storage_read(&sd_storage, 0, 1, &part_info.mbr_old); - lv_label_set_text(lbl_status, "#00DDFF Status:# Initializing Ramdisk..."); + lv_label_set_text(lbl_status, "#00DDFF Estado:# Inicializando Ramdisk..."); lv_label_set_text(lbl_paths[0], "Please wait..."); lv_obj_align(mbox, NULL, LV_ALIGN_CENTER, 0, 0); manual_system_maintenance(true); @@ -1467,24 +1467,24 @@ static lv_res_t _create_mbox_start_partitioning(lv_obj_t *btn) // Initialize RAM disk. if (ram_disk_init(&ram_fs, RAM_DISK_SZ)) { - lv_label_set_text(lbl_status, "#FFDD00 Error:# Failed to initialize Ramdisk!"); + lv_label_set_text(lbl_status, "#FFDD00 Error:# Fallo al inicializar Ramdisk!"); goto error; } - lv_label_set_text(lbl_status, "#00DDFF Status:# Backing up files..."); + lv_label_set_text(lbl_status, "#00DDFF Estado:# Haciendo backup de arch..."); manual_system_maintenance(true); // Do full or hekate/Nyx backup. if (_backup_and_restore_files(true, lbl_paths)) { - lv_label_set_text(lbl_status, "#FFDD00 Error:# Failed to back up files!"); + lv_label_set_text(lbl_status, "#FFDD00 Error:# Fallo al hacer backup!"); goto error; } f_mount(NULL, "sd:", 1); // Unmount SD card. - lv_label_set_text(lbl_status, "#00DDFF Status:# Formatting FAT32 partition..."); - lv_label_set_text(lbl_paths[0], "Please wait..."); + lv_label_set_text(lbl_status, "#00DDFF Estado:# Formateando particion FAT32..."); + lv_label_set_text(lbl_paths[0], "Espere..."); lv_label_set_text(lbl_paths[1], " "); manual_system_maintenance(true); @@ -1514,8 +1514,8 @@ static lv_res_t _create_mbox_start_partitioning(lv_obj_t *btn) if (mkfs_error) { // Failed to format. - s_printf((char *)buf, "#FFDD00 Error:# Failed to format disk (%d)!\n\n" - "Remove the SD card and check that is OK.\nIf not, format it, reinsert it and\npress #FF8000 POWER#!", mkfs_error); + s_printf((char *)buf, "#FFDD00 Error:# Fallo al formatear (%d)!\n\n" + "Quita la SD y mira si esta bien.\nSi no, formateala, reinsertala y pulsa\n#FF8000 POWER#!", mkfs_error); lv_label_set_text(lbl_status, (char *)buf); lv_label_set_text(lbl_paths[0], " "); @@ -1527,7 +1527,7 @@ static lv_res_t _create_mbox_start_partitioning(lv_obj_t *btn) sd_mount(); - lv_label_set_text(lbl_status, "#00DDFF Status:# Restoring files..."); + lv_label_set_text(lbl_status, "#00DDFF Estado:# Restaurando archivos..."); manual_system_maintenance(true); // Restore backed up files back to SD. @@ -1536,13 +1536,13 @@ static lv_res_t _create_mbox_start_partitioning(lv_obj_t *btn) // Failed to restore files. Try again once more. if (_backup_and_restore_files(false, lbl_paths)) { - lv_label_set_text(lbl_status, "#FFDD00 Error:# Failed to restore files!"); + lv_label_set_text(lbl_status, "#FFDD00 Error:# Fallo al restaurar arch.!"); free(buf); goto error; } } - lv_label_set_text(lbl_status, "#00DDFF Status:# Restored files but the operation failed!"); + lv_label_set_text(lbl_status, "#00DDFF Estado:# Arch. restaurados pero la operacion fallo!"); f_mount(NULL, "ram:", 1); // Unmount ramdisk. free(buf); goto error; @@ -1554,7 +1554,7 @@ static lv_res_t _create_mbox_start_partitioning(lv_obj_t *btn) // Remount sd card as it was unmounted from formatting it. f_mount(&sd_fs, "sd:", 1); // Mount SD card. - lv_label_set_text(lbl_status, "#00DDFF Status:# Restoring files..."); + lv_label_set_text(lbl_status, "#00DDFF Estado:# Restaurando archivos..."); manual_system_maintenance(true); // Restore backed up files back to SD. @@ -1563,7 +1563,7 @@ static lv_res_t _create_mbox_start_partitioning(lv_obj_t *btn) // Failed to restore files. Try again once more. if (_backup_and_restore_files(false, lbl_paths)) { - lv_label_set_text(lbl_status, "#FFDD00 Error:# Failed to restore files!"); + lv_label_set_text(lbl_status, "#FFDD00 Error:# Fallo al restaurar arch.!"); goto error; } } @@ -1574,8 +1574,8 @@ static lv_res_t _create_mbox_start_partitioning(lv_obj_t *btn) // Set Volume label. f_setlabel("0:SWITCH SD"); - lv_label_set_text(lbl_status, "#00DDFF Status:# Flashing partition table..."); - lv_label_set_text(lbl_paths[0], "Please wait..."); + lv_label_set_text(lbl_status, "#00DDFF Estado:# Creando tabla de part..."); + lv_label_set_text(lbl_paths[0], "Espere..."); lv_label_set_text(lbl_paths[1], " "); manual_system_maintenance(true); @@ -1607,7 +1607,7 @@ static lv_res_t _create_mbox_start_partitioning(lv_obj_t *btn) } sd_unmount(); - lv_label_set_text(lbl_status, "#00DDFF Status:# Done!"); + lv_label_set_text(lbl_status, "#00DDFF Estado:# Hecho!"); manual_system_maintenance(true); // Set buttons depending on what user chose to create. @@ -1685,30 +1685,30 @@ static lv_res_t _create_mbox_partitioning_next(lv_obj_t *btn) lv_obj_set_style(dark_bg, &mbox_darken); lv_obj_set_size(dark_bg, LV_HOR_RES, LV_VER_RES); - static const char *mbox_btn_map[] = { "\222SD UMS", "\222Start", "\222Cancel", "" }; - static const char *mbox_btn_map2[] = { "\222Start", "\222Cancel", "" }; + static const char *mbox_btn_map[] = { "\222SD UMS", "\222Empezar", "\222Cancelar", "" }; + static const char *mbox_btn_map2[] = { "\222Empezar", "\222Cancelar", "" }; lv_obj_t * mbox = lv_mbox_create(dark_bg, NULL); lv_mbox_set_recolor_text(mbox, true); char *txt_buf = malloc(SZ_4K); lv_obj_set_width(mbox, LV_HOR_RES / 9 * 6); - lv_mbox_set_text(mbox, "#FF8000 Partition Manager#"); + lv_mbox_set_text(mbox, "#FF8000 Gestor de Particiones#"); lv_obj_t *lbl_status = lv_label_create(mbox, NULL); lv_label_set_recolor(lbl_status, true); - s_printf(txt_buf, "#FFDD00 Warning: This will partition the SD Card!#\n\n"); + s_printf(txt_buf, "#FFDD00 Adv: Esto particionara la SD!#\n\n"); if (part_info.backup_possible) { - strcat(txt_buf, "#C7EA46 Your files will be backed up and restored!#\n" - "#FFDD00 Any other partition will be wiped!#"); + strcat(txt_buf, "#C7EA46 Sus arch. seran respaldados y restaurados!#\n" + "#FFDD00 Cualquier otra particion se eliminara!#"); } else { - strcat(txt_buf, "#FFDD00 Your files will be wiped!#\n" - "#FFDD00 Any other partition will be also wiped!#\n" - "#FFDD00 Use USB UMS to copy them over!#"); + strcat(txt_buf, "#FFDD00 Sus archivos se eliminaran!#\n" + "#FFDD00 Cualquier otra particion se eliminara!#\n" + "#FFDD00 Usa USB UMS para copiarlos al acabar!#"); } lv_label_set_text(lbl_status, txt_buf); @@ -1809,7 +1809,7 @@ static lv_res_t _action_slider_emu(lv_obj_t *slider) if (slide_val != 10) s_printf(lbl_text, "#FF3C28 %d GiB#", size >> 10); else - s_printf(lbl_text, "#FF3C28 %d FULL#", size >> 10); + s_printf(lbl_text, "#FF3C28 %d COMPLETO#", size >> 10); } else s_printf(lbl_text, "#FFDD00 2x##FF3C28 %d#", size >> 11); @@ -1993,12 +1993,12 @@ static void _create_mbox_check_files_total_size() lv_obj_set_size(dark_bg, LV_HOR_RES, LV_VER_RES); static const char *mbox_btn_map[] = { "\251", "\222OK", "\251", "" }; - static const char *mbox_btn_map2[] = { "\222Don't Backup", "\222OK", "" }; + static const char *mbox_btn_map2[] = { "\222No respaldar", "\222OK", "" }; lv_obj_t *mbox = lv_mbox_create(dark_bg, NULL); lv_mbox_set_recolor_text(mbox, true); lv_obj_set_width(mbox, LV_HOR_RES / 9 * 6); - lv_mbox_set_text(mbox, "Analyzing SD card usage. This might take a while..."); + lv_mbox_set_text(mbox, "Analizando uso de la SD. Esto puede tardar..."); lv_obj_align(mbox, NULL, LV_ALIGN_CENTER, 0, 0); lv_obj_set_top(mbox, true); @@ -2018,17 +2018,17 @@ static void _create_mbox_check_files_total_size() if (part_info.backup_possible) { s_printf(txt_buf, - "#96FF00 The SD Card files will be backed up automatically!#\n" - "#FFDD00 Any other partition will be wiped!#\n" - "#00DDFF Total files:# %d, #00DDFF Total size:# %d MiB", total_files, total_size >> 20); + "#96FF00 Los arch. de la SD se respaldaran automaticamente!#\n" + "#FFDD00 Cualquier otra particion se eliminara!#\n" + "#00DDFF Total arch.:# %d, #00DDFF Tam. Total:# %d MiB", total_files, total_size >> 20); lv_mbox_set_text(mbox, txt_buf); } else { lv_mbox_set_text(mbox, - "#FFDD00 The SD Card cannot be backed up automatically!#\n" - "#FFDD00 Any other partition will be also wiped!#\n\n" - "You will be asked to back up your files later via UMS."); + "#FFDD00 La SD no se respaldara automaticamente!#\n" + "#FFDD00 Cualquier otra particion se eliminara!#\n\n" + "Se preguntara despues si quieres hacer backup por UMS."); } // Create container to keep content inside. @@ -2039,7 +2039,7 @@ static void _create_mbox_check_files_total_size() lv_obj_t *lbl_part = lv_label_create(h1, NULL); lv_label_set_recolor(lbl_part, true); - lv_label_set_text(lbl_part, "#00DDFF Current MBR partition layout:#"); + lv_label_set_text(lbl_part, "#00DDFF Forma de particion MBR actual:#"); // Read current MBR. mbr_t mbr = { 0 }; @@ -2108,10 +2108,10 @@ static void _create_mbox_check_files_total_size() // Print partition table info. s_printf(txt_buf, - "Partition 0 - Type: %02x, Start: %08x, Size: %08x\n" - "Partition 1 - Type: %02x, Start: %08x, Size: %08x\n" - "Partition 2 - Type: %02x, Start: %08x, Size: %08x\n" - "Partition 3 - Type: %02x, Start: %08x, Size: %08x", + "Particion 0 - Tipo: %02x, Inicio: %08x, Tam: %08x\n" + "Particion 1 - Tipo: %02x, Inicio: %08x, Tam: %08x\n" + "Particion 2 - Tipo: %02x, Inicio: %08x, Tam: %08x\n" + "Particion 3 - Tipo: %02x, Inicio: %08x, Tam: %08x", mbr.partitions[0].type, mbr.partitions[0].start_sct, mbr.partitions[0].size_sct, mbr.partitions[1].type, mbr.partitions[1].start_sct, mbr.partitions[1].size_sct, mbr.partitions[2].type, mbr.partitions[2].start_sct, mbr.partitions[2].size_sct, @@ -2144,7 +2144,7 @@ static lv_res_t _action_fix_mbr(lv_obj_t *btn) lv_mbox_set_recolor_text(mbox, true); lv_obj_set_width(mbox, LV_HOR_RES / 9 * 6); - lv_mbox_set_text(mbox, "#FF8000 Fix Hybrid MBR#"); + lv_mbox_set_text(mbox, "#FF8000 Arreglar MBR Hibrido#"); lv_obj_t *lbl_status = lv_label_create(mbox, NULL); lv_label_set_recolor(lbl_status, true); @@ -2160,7 +2160,7 @@ static lv_res_t _action_fix_mbr(lv_obj_t *btn) // Try to init sd card. No need for valid MBR. if (!sd_mount() && !sd_get_card_initialized()) { - lv_label_set_text(lbl_status, "#FFDD00 Failed to init SD!#"); + lv_label_set_text(lbl_status, "#FFDD00 Error al iniciar la SD!#"); goto out; } @@ -2185,7 +2185,7 @@ static lv_res_t _action_fix_mbr(lv_obj_t *btn) // Check if GPT is valid. if (!gpt_partition_exists || memcmp(&gpt->header.signature, "EFI PART", 8) || gpt->header.num_part_ents > 128) { - lv_label_set_text(lbl_status, "#FFDD00 Warning:# No valid GPT was found!"); + lv_label_set_text(lbl_status, "#FFDD00 Adv:# GPT valido no encontrado!"); gpt_partition_exists = false; @@ -2276,31 +2276,31 @@ static lv_res_t _action_fix_mbr(lv_obj_t *btn) check_changes: if (!hybrid_mbr_changed && !has_mbr_attributes) { - lv_label_set_text(lbl_status, "#96FF00 Warning:# The Hybrid MBR needs no change!#"); + lv_label_set_text(lbl_status, "#96FF00 Adv:# MBR Hibrido no necesita cambios!#"); goto out; } char *txt_buf = malloc(SZ_16K); // Current MBR info. - s_printf(txt_buf, "#00DDFF Current MBR Layout:#\n"); + s_printf(txt_buf, "#00DDFF Forma actual de MBR:#\n"); s_printf(txt_buf + strlen(txt_buf), - "Partition 0 - Type: %02x, Start: %08x, Size: %08x\n" - "Partition 1 - Type: %02x, Start: %08x, Size: %08x\n" - "Partition 2 - Type: %02x, Start: %08x, Size: %08x\n" - "Partition 3 - Type: %02x, Start: %08x, Size: %08x\n\n", + "Particion 0 - Tipo: %02x, Inicio: %08x, Tam: %08x\n" + "Particion 1 - Tipo: %02x, Inicio: %08x, Tam: %08x\n" + "Particion 2 - Tipo: %02x, Inicio: %08x, Tam: %08x\n" + "Particion 3 - Tipo: %02x, Inicio: %08x, Tam: %08x\n\n", mbr[0].partitions[0].type, mbr[0].partitions[0].start_sct, mbr[0].partitions[0].size_sct, mbr[0].partitions[1].type, mbr[0].partitions[1].start_sct, mbr[0].partitions[1].size_sct, mbr[0].partitions[2].type, mbr[0].partitions[2].start_sct, mbr[0].partitions[2].size_sct, mbr[0].partitions[3].type, mbr[0].partitions[3].start_sct, mbr[0].partitions[3].size_sct); // New MBR info. - s_printf(txt_buf + strlen(txt_buf), "#00DDFF New MBR Layout:#\n"); + s_printf(txt_buf + strlen(txt_buf), "#00DDFF Nueva forma de MBR:#\n"); s_printf(txt_buf + strlen(txt_buf), - "Partition 0 - Type: %02x, Start: %08x, Size: %08x\n" - "Partition 1 - Type: %02x, Start: %08x, Size: %08x\n" - "Partition 2 - Type: %02x, Start: %08x, Size: %08x\n" - "Partition 3 - Type: %02x, Start: %08x, Size: %08x", + "Particion 0 - Tipo: %02x, Inicio: %08x, Tam: %08x\n" + "Particion 1 - Tipo: %02x, Inicio: %08x, Tam: %08x\n" + "Particion 2 - Tipo: %02x, Inicio: %08x, Tam: %08x\n" + "Particion 3 - Tipo: %02x, Inicio: %08x, Tam: %08x", mbr[1].partitions[0].type, mbr[1].partitions[0].start_sct, mbr[1].partitions[0].size_sct, mbr[1].partitions[1].type, mbr[1].partitions[1].start_sct, mbr[1].partitions[1].size_sct, mbr[1].partitions[2].type, mbr[1].partitions[2].start_sct, mbr[1].partitions[2].size_sct, @@ -2316,8 +2316,8 @@ static lv_res_t _action_fix_mbr(lv_obj_t *btn) lv_label_set_align(lbl_status, LV_LABEL_ALIGN_CENTER); lv_label_set_text(lbl_status, - "#FF8000 Warning: Do you really want to continue?!#\n\n" - "Press #FF8000 POWER# to Continue.\nPress #FF8000 VOL# to abort."); + "#FF8000 Adv: De verdad quieres continuar?!#\n\n" + "Pulsa #FF8000 POWER# para continuar.\nPulsa #FF8000 VOL# para abortar."); lv_obj_align(mbox, NULL, LV_ALIGN_CENTER, 0, 0); lv_obj_set_top(mbox, true); @@ -2369,10 +2369,10 @@ static lv_res_t _action_fix_mbr(lv_obj_t *btn) sd_unmount(); - lv_label_set_text(lbl_status, "#96FF00 The new Hybrid MBR was written successfully!#"); + lv_label_set_text(lbl_status, "#96FF00 Nuevo MBR Hibrido escrito con exito!#"); } else - lv_label_set_text(lbl_status, "#FFDD00 Warning: The Hybrid MBR Fix was canceled!#"); + lv_label_set_text(lbl_status, "#FFDD00 Adv: El arreglo de MBR fue cancelado!#"); out: free(gpt); @@ -2387,9 +2387,9 @@ static lv_res_t _action_fix_mbr(lv_obj_t *btn) lv_res_t create_window_partition_manager(lv_obj_t *btn) { - lv_obj_t *win = nyx_create_standard_window(SYMBOL_SD" Partition Manager"); + lv_obj_t *win = nyx_create_standard_window(SYMBOL_SD" Gestor de Particiones"); - lv_win_add_btn(win, NULL, SYMBOL_MODULES_ALT" Fix Hybrid MBR", _action_fix_mbr); + lv_win_add_btn(win, NULL, SYMBOL_MODULES_ALT" Arreglar MBR Hibrido", _action_fix_mbr); static lv_style_t bar_hos_bg, bar_emu_bg, bar_l4t_bg, bar_and_bg; static lv_style_t bar_hos_ind, bar_emu_ind, bar_l4t_ind, bar_and_ind; @@ -2462,7 +2462,7 @@ lv_res_t create_window_partition_manager(lv_obj_t *btn) { lv_obj_t *lbl = lv_label_create(h1, NULL); lv_label_set_recolor(lbl, true); - lv_label_set_text(lbl, "#FFDD00 Failed to init SD!#"); + lv_label_set_text(lbl, "#FFDD00 Error al iniciar la SD!#"); return LV_RES_OK; } @@ -2496,7 +2496,7 @@ lv_res_t create_window_partition_manager(lv_obj_t *btn) lv_obj_t *lbl = lv_label_create(h1, NULL); lv_label_set_recolor(lbl, true); - lv_label_set_text(lbl, "Choose #FFDD00 new# partition layout:"); + lv_label_set_text(lbl, "Elije #FFDD00 nueva# forma de particiones:"); // Create disk layout blocks. // HOS partition block. @@ -2555,7 +2555,7 @@ lv_res_t create_window_partition_manager(lv_obj_t *btn) lv_obj_align(lbl_hos, bar_hos, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 2); lv_obj_t *lbl_emu = lv_label_create(h1, lbl_hos); - lv_label_set_static_text(lbl_emu, "#FF3C28 "SYMBOL_DOT" emuMMC (RAW):#"); + lv_label_set_static_text(lbl_emu, "#FF3C28 "SYMBOL_DOT" EmuNAND (RAW):#"); lv_obj_align(lbl_emu, lbl_hos, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 3); lv_obj_t *lbl_l4t = lv_label_create(h1, lbl_hos); @@ -2642,9 +2642,9 @@ lv_res_t create_window_partition_manager(lv_obj_t *btn) lv_obj_t *lbl_notes = lv_label_create(h1, NULL); lv_label_set_recolor(lbl_notes, true); lv_label_set_static_text(lbl_notes, - "Note 1: Only up to #C7EA46 1GB# can be backed up. If more, you will be asked to back them manually at the next step.\n" - "Note 2: Resized emuMMC formats the USER partition. A save data manager can be used to move them over.\n" - "Note 3: The #C7EA46 Flash Linux# and #C7EA46 Flash Android# will flash files if suitable partitions and installer files are found.\n"); + "Nota 1: Solo #C7EA46 1GB# se puede respaldar. Si hay mas, se preguntara si quieres respaldarlo manualmente despues.\n" + "Nota 2: La EmuNAND redimensionada formatea la particion USER. Usa un gestor de partidas para moverlas.\n" + "Nota 3: Los flasheadores de #C7EA46 Linux# y #C7EA46 Android# flashearan arch. si hay particiones y arch. de instalacion adecuados\n"); lv_label_set_style(lbl_notes, &hint_small_style); lv_obj_align(lbl_notes, lbl_and, LV_ALIGN_OUT_BOTTOM_LEFT, 0, LV_DPI / 5); @@ -2660,7 +2660,7 @@ lv_res_t create_window_partition_manager(lv_obj_t *btn) btn_flash_l4t = lv_btn_create(h1, NULL); lv_obj_t *label_btn2 = lv_label_create(btn_flash_l4t, NULL); lv_btn_set_fit(btn_flash_l4t, true, true); - lv_label_set_static_text(label_btn2, SYMBOL_DOWNLOAD" Flash Linux"); + lv_label_set_static_text(label_btn2, SYMBOL_DOWNLOAD" Flashear Linux"); lv_obj_align(btn_flash_l4t, btn1, LV_ALIGN_OUT_RIGHT_MID, LV_DPI / 3, 0); lv_btn_set_action(btn_flash_l4t, LV_BTN_ACTION_CLICK, _action_check_flash_linux); @@ -2676,7 +2676,7 @@ lv_res_t create_window_partition_manager(lv_obj_t *btn) btn_flash_android = lv_btn_create(h1, NULL); label_btn = lv_label_create(btn_flash_android, NULL); lv_btn_set_fit(btn_flash_android, true, true); - lv_label_set_static_text(label_btn, SYMBOL_DOWNLOAD" Flash Android"); + lv_label_set_static_text(label_btn, SYMBOL_DOWNLOAD" Flashear Android"); lv_obj_align(btn_flash_android, btn_flash_l4t, LV_ALIGN_OUT_RIGHT_MID, LV_DPI / 3, 0); lv_btn_set_action(btn_flash_android, LV_BTN_ACTION_CLICK, _action_flash_android); @@ -2691,7 +2691,7 @@ lv_res_t create_window_partition_manager(lv_obj_t *btn) btn1 = lv_btn_create(h1, NULL); label_btn = lv_label_create(btn1, NULL); lv_btn_set_fit(btn1, true, true); - lv_label_set_static_text(label_btn, SYMBOL_SD" Next Step"); + lv_label_set_static_text(label_btn, SYMBOL_SD" Sig. paso"); lv_obj_align(btn1, h1, LV_ALIGN_IN_TOP_RIGHT, 0, LV_DPI * 5); lv_btn_set_action(btn1, LV_BTN_ACTION_CLICK, _create_mbox_partitioning_next); diff --git a/nyx/nyx_gui/hos/hos.c b/nyx/nyx_gui/hos/hos.c index 051b30e2..bfca3741 100644 --- a/nyx/nyx_gui/hos/hos.c +++ b/nyx/nyx_gui/hos/hos.c @@ -383,7 +383,7 @@ int hos_keygen(void *keyblob, u32 kb, tsec_ctxt_t *tsec_ctxt) tsec_ctxt->fw = sd_file_read("bootloader/sys/thk.bin", NULL); if (!tsec_ctxt->fw) { - EPRINTF("\nFailed to load thk.bin"); + EPRINTF("\nError al cargar thk.bin"); return 0; } @@ -407,7 +407,7 @@ int hos_keygen(void *keyblob, u32 kb, tsec_ctxt_t *tsec_ctxt) // We rely on racing conditions, make sure we cover even the unluckiest cases. if (retries > 15) { - EPRINTF("\nFailed to get TSEC keys. Please try again."); + EPRINTF("\nError al obtener keys TSEC. Reintentalo."); return 0; } } @@ -551,12 +551,12 @@ static void _hos_validate_mkey() static void _hos_bis_print_key(u32 idx, u8 *key) { - gfx_printf("BIS %d Crypt: ", idx); + gfx_printf("BIS %d Encrip: ", idx); for (int i = 0; i < SE_KEY_128_SIZE; i++) gfx_printf("%02X", key[((idx * 2 + 0) * SE_KEY_128_SIZE) + i]); gfx_puts("\n"); - gfx_printf("BIS %d Tweak: ", idx); + gfx_printf("BIS %d Ajuste: ", idx); for (int i = 0; i < SE_KEY_128_SIZE; i++) gfx_printf("%02X", key[((idx * 2 + 1) * SE_KEY_128_SIZE) + i]); gfx_puts("\n"); @@ -578,7 +578,7 @@ int hos_bis_keygen() // We check unconditionally in order to support downgrades. keygen_rev = fuse_read_odm_keygen_rev(); - gfx_printf("Keygen rev: %d\n", keygen_rev); + gfx_printf("Rev. de Keygen: %d\n", keygen_rev); if (keygen_rev) { diff --git a/nyx/nyx_gui/hos/hos.h b/nyx/nyx_gui/hos/hos.h index dbc02776..217f267d 100644 --- a/nyx/nyx_gui/hos/hos.h +++ b/nyx/nyx_gui/hos/hos.h @@ -60,7 +60,7 @@ typedef struct _hos_eks_mbr_t u8 troot_dev[SE_KEY_128_SIZE]; } hos_eks_mbr_t; -static_assert(sizeof(hos_eks_mbr_t) == 64, "HOS EKS size is wrong!"); +static_assert(sizeof(hos_eks_mbr_t) == 64, "Tam. HOS EKS equivocado!"); typedef struct _launch_ctxt_t { diff --git a/nyx/nyx_gui/hos/pkg2.c b/nyx/nyx_gui/hos/pkg2.c index ec097308..1e40fdbc 100644 --- a/nyx/nyx_gui/hos/pkg2.c +++ b/nyx/nyx_gui/hos/pkg2.c @@ -214,7 +214,7 @@ pkg2_hdr_t *pkg2_decrypt(void *data, u8 kb) for (u32 i = 0; i < 4; i++) { -DPRINTF("sec %d has size %08X\n", i, hdr->sec_size[i]); +DPRINTF("sec %d. tam: %08X\n", i, hdr->sec_size[i]); if (!hdr->sec_size[i]) continue; diff --git a/nyx/nyx_gui/nyx.c b/nyx/nyx_gui/nyx.c index f7ffea42..59926ad1 100644 --- a/nyx/nyx_gui/nyx.c +++ b/nyx/nyx_gui/nyx.c @@ -140,7 +140,7 @@ lv_res_t launch_payload(lv_obj_t *list) FIL fp; if (f_open(&fp, path, FA_READ)) { - EPRINTFARGS("Payload file is missing!\n(%s)", path); + EPRINTFARGS("Archivo de Payload no esta!!\n(%s)", path); goto out; } @@ -159,7 +159,7 @@ lv_res_t launch_payload(lv_obj_t *list) { f_close(&fp); - EPRINTF("Coreboot not allowed on Mariko!"); + EPRINTF("Coreboot no permitido en Mariko!"); goto out; } @@ -357,10 +357,10 @@ static void _show_errors(int sd_error) switch (sd_error) { case SD_MOUNT_ERROR: - WPRINTF("Failed to init or mount SD!\n"); + WPRINTF("Error al iniciar/montar SD!\n"); goto error_occured; case SD_FILE_ERROR: - WPRINTF("Failed to load GUI resources!\nres.pak not found or corrupted.\n"); + WPRINTF("Error al cargar GUI!\nres.pak no esta o corrupto.\n"); goto error_occured; case SD_NO_ERROR: default: @@ -369,7 +369,7 @@ static void _show_errors(int sd_error) if (*excp_enabled == EXCP_MAGIC) { - WPRINTFARGS("Nyx exception occurred (LR %08X):\n", *excp_lr); + WPRINTFARGS("Excepcion en Nyx (LR %08X):\n", *excp_lr); switch (*excp_type) { case EXCP_TYPE_RESET: @@ -393,7 +393,7 @@ static void _show_errors(int sd_error) *excp_enabled = 0; error_occured: - WPRINTF("Press any key to reload Nyx..."); + WPRINTF("Pulsa un boton para recargar Nyx"); msleep(1000); btn_wait(); @@ -514,7 +514,7 @@ void ipl_main() uart_init(DEBUG_UART_PORT, DEBUG_UART_BAUDRATE, UART_AO_TX_AO_RX); uart_invert(DEBUG_UART_PORT, DEBUG_UART_INVERT, UART_INVERT_TXD); - uart_send(DEBUG_UART_PORT, (u8 *)"hekate-NYX: Hello!\r\n", 20); + uart_send(DEBUG_UART_PORT, (u8 *)"hekate-NYX: Hola!\r\n", 20); uart_wait_xfer(DEBUG_UART_PORT, UART_TX_IDLE); #endif diff --git a/res/bootlogo/bootlogo2.bmp b/res/bootlogo/bootlogo2.bmp new file mode 100644 index 0000000000000000000000000000000000000000..52f92b9f2f95c960a2e0bbc87a5e4fc738721045 GIT binary patch literal 52280 zcmeI*Ma(6|+6VBy-}dhA7I$}dcemi~?hxE13_$|{g1bxb;I<%0&<$=2AR&PS0z2;f z`sSI`^mO;>bGqL?XNGT*nyRj@Q(g71$E&*E4YyhS-7NpN>h%8?pPn|Jo?e}v{*}!? z{r@cczv=h?^Y8zqykh!)bImo^#HG3Co;#aoo_X@5Jc(oMYfR=p|NQf33oW!zw(!CW z=VjRR_54YD&b;%^n=QKNqS>;`E}N~e!V1|EODvINGHK)NYdmNJ7Hh4wR`&VlpJyws zxMEHxeLdfE(CB>g&6lsk0t+mVEx6!vYU9$7BZ{cwn~m)?4T6 zZJvY1;{LetK%eMh&pr3d{{H*#DM=e_ut8&*Z;QwA#~+`aciwrmNt>#*@q9FS$RUSJ z2^KI$`%P)SEgoNf`Q^ZQXj6p;`dDqX)v~?!-g{s_qtZ{G^bvTx_10V2!w)~4&*`V1 ze#*;nU55wxvCJ~dWSeffY4+7uUuEBZ`)&5!ci+vDzW@IFO#17uzh>a}^Upu$b!F}K z^UXKkWM6#oMJ^xdtg1Ch>${>4JY$`$Va&gHojy0pbRk=i&c`?8>L#0PGE>@Oi!E|l zd;008=kpIbx&8Lrv)y;!J#)YK8~SqHb=S>hDf#n;l*UxOow0)G>+vZ2tHuXc= z;t?3cn&FiwM}F(Aw>DavD!gFDmLPNSO!Vv7E3LFrKH_H5rznR_efJ4x5F?X*xzhSRuCp_>749HMra#T`Q z=Ux+@A@3xzwV3Eiy63RN4x34STz&P`*($57lEJI^o49T&M`MlJ$`3NaoXtP_j67uR zApJuA8wb6>j-)TrwA^yb<@%IQlFHNTufIO```9mO`zY&+&Z29Z;?fl!<{mgi-UJWp zNH2=L@N3x;L1U5cu)_|yZ+7OHXU>Gjop;`u?Yr;3+4kFSKg(~n+G?w8qm4GoyYJ5Kx#ymYO&T)l<(FU1)EC>jW~<$F z(@oj5Y149l5uL<3)#YvJL*H%WDc%=zvCc8iu5&i;Vv8--8y+yBTj|)aJDTcS>%rDK z_~3)53=h6hU;b?!?KQcFKE$JT+ikZg!$Yi$AJAkxUGPiL$0+s~`LX1ZOJ>IW?6c2i zFTVI9?@uf2BbBt9^Ab0EVTz^-zCQ1bIQej2io? z!h;{1#?4(zgW~JaF0hc#33%}BcieHu+|O?sU&j~rD9<|UteI$S9C(D^QkIi1RkT_~ zAG_|lYi^&3i8PI`i-W-Kq?1k>J02;07RxXi7LRmI>7XX@^(t)BzN*F%^=-AQ<~yivPQ$}|(Zis5SKS{54>1z@BlwX`obE?8>8olSQQwwd+Mai4 zGKa8X_uqg2nee#ciYxNCYs5yI^cC~2%G=@*@*~!)EFUCK#XgQb_ShNgt`B}Pf7ZCo zSG;+rop#D?l6b}?mt2yc4G3Qz9%X%PyY03!`l`Yq>f7SMe-SS(OJat`UWbS0mz{^% zeDlp`*x2R^8+Pn#uf3L^i_j+w#YM&F%|~D29)}-(_)OT+!F}56fo(Bovkt-|)}HMZ z>n=C1i18I;0`RjB1tYu^dn?LivBz=53yWB|Zi0ukw|3@u@x>QsmtJ~lcK-S2=P^EU zEqF=hYR`auh9+QzKh#GX^dTN5o-X$I+;h)m;)Qt4y|OVD>$IDy^MzypJ}Qe9#W-R= z%DG5!LcY26v%N-#UvXoTrmAUEt9s{$btF2AlfTS6|KEeDlqGABQY%ll1fY>#yf) z1Z%t(bFRzV;!%u`4I5APeB(XffCFZdr>SghTgEqi?azh%Q6?jr>}Lla{Pec-uKGPZ z`qH<7N1J#ud0EuARdXAqKGofIyy9Nh{1Uz`e46az`{6|oZfFGy4N`hd}7VRhMj8qi2mtY`T+k(%Ie~N zT@DlDMJuo|e)BLtXI=P=&ph+YEb;|iu-&vVe>NJus*gze4g0lj3~{e5zeGP> zj!Zf6#1pgk-g|ErEJBXJ-MLgUlinU?ueNN=Q-ue;O9mLPGt6brPV0hi&;|MD9QFkl zT#%nXkGWUnVj>q^bW!G975h{la2^Gt?jH3d6=G! zioQPixaYmlprJHJL+FkFZk~PM;Th;R#ULFMf8YJ8u^6W{ zL>uYvl)cZxPi2$9AY?(vUVgma?y}1+x!+dCW553TYi^t1o2oIS^=;`R?Ms=wD9Ti{ zQfwF3o^OA@7~^~Y{rB^CrqF>lfkpgIjt9^T+e1w7oO8}8m9>)+FAQ0WM$&ntWpm}< zigyHk+;`u7`I^!<^iG}Lgp)qBC13Qz&yT+3ed2)^$hx{z$1mhZ$bvur{4*0XXMYT1 zLj?c$4Q%lb8vX6J-*Q~W;oqj~Q7qT-OVB(_oQaX+^``m&7TTf_@`ODmwsgc1N96p2 z@8~XArF2qU4Mh|}_#voVc-k`b1eY8L(kR$k=U12YV ze6*K+!U-p2;$--t%=Sv3jaJ0iPd@qNT)yZxo>P~%m8WUn=pg807@7zi&;q}d&cqLF z39^x|i{7gEA#i{Z8~wryFUjHxWI)3?TJ4ZZ6IhZ}FaaUegSgO5J?D5pj5ki|2d z&kS317z|QOy21lJ&#=JlNxWSAN?de)#OO&oZ_=ABitO$9jJ*o(T^&NK@Y} z#UaXF;Xz)|0WmgZb*}61@O=8S=+8wzVq{{;XPMEopxGI56=3KGm@AIeG}~`4G%Pj7J?p{&hTbIr#I0|*sEf!`WwVg@Uidk_~Vb~at5~MS@x`AT~~PE zmFPQYrc90roFu?DUvO39i_%q_lVuEzc8E2f4z5Vvv1NjLy=&Y$t(iV@fxzK?5 zvz5ZPlRHaQCqIHu$Pe$};uW^Gals{UQ%?EGUU&GrcieGD&QHNN#XM}*=&LSoi%00x z;uzo*d{ZYstUvySC0%LkXaFu%JnuL7sTdC-OW7*LeNMhWU-267WFd#rI9ws^n{vIds`(Qt{xshTUzgM@i^HO7+wr>?Rct{;pUC88Aw+A7ej) zp29bD(jY9{pHw`2OUhXW=M_dt{9o|^mzq} zK1IuA@-)>oZOgOM_k#PtgI(V=M$}e*gzv@%<$Dh6-}ZqAdEA$M8hGG~;LoUQ;@?)` z;T?Q?DeRC@5_>N66W^sT`xIT^Z$5|l+n)@6Z-WOc=u9@*D2Z(ghrZ)used0h$Wxy# z=%y^MqL10xK1G}6AM&G4pA<2f)9~m*-*)NG74aVSx-0#X@=CExzE+LP^T~hqWcoX@ zuxSjZs_#+iyTT*%ZOjSpgsiQ@gWMMn!gKLkIgHqpe6cpEsh=O%b%h6gOP|D?l-0Se z!-JoN4$R;F06EH@q+6T?p(jR7uj^D|N2Wf4b5H>0F+eJ?o0 z1I@V(dT2r)_=W!|j$HS>;IeN5*VT>dd%>Y!%51OTnL7O&^3?gT;I*#vKK+-#11(gg zIy~4P_7|L+>>7vY&)-aH8jI~pp2oAw^5CD4;b~rFkCpW^YTYolZdZ7OzU|7tbym{1 zV0<^&zKp#T&q(+Cot5z}gZt4gzK4)vHx4}TO00Xx*fN#V~=U}hFyv3DMJj52n&?C0dq_3dM zs=TfI&@W8PAD;}nf7@gZvl|{&SU0Jk6Y(H7$PbBa4F|cHnN){MQ#{!7#qaew*KSXL zlK3T+pX3G^st!gWKj2h_NfSKG*M7Y-VX6GM{PN3lnL9~%#QVr0KVYKH{Na#Zmtg{r zLGd8-<>QdC{?490CEqZx9~pa*(U*O_Xd_3fecPvGD!PbqD6`XD*V(7xztqKp(wG20 z&9~N`dg`hC%zMO0V689jC(}bQ4tbmbDO-L|Zx*y|6oiSM;Y`_AMgk%I1q#@J!G_U2Y!e)Ot(9?wLg2uz{04 zVBp*oT=m`b3`kpkiLqD*x)p6m=tW)J?<R=PHw(q%(^1QZqgzPl`;`3uKSDWI!Nxkk0kFxh{|A}}M`Gu~L zU=jAmKZ#$^{r}6;xn_|EbZhu9Q>kz1PI|P=9_vCTwUr-j_Zx*if`Z+5_=Pk9OtXD`J^9(?e@ zoL^k4uflNH`nLSir@jq&>ib~6Uupkx66NWzYcOhidX?=#X4q>Gb9FsQ`nGCre15u^ zEQxq~RokZZVULNUvpeK?Wte!+pl7w^m$d(gdqhk*^h{THc$T@N2fQQi5)1ve#iI&? zutmDmw<-2hRc?z%=oj|CiS{&JkoiFtVJVf{Un#$;?bvl+6Rtp@d&w@%8X)p z5Wj?-Wnb2K*jZg9eX-Yuv0vNbK~|)`ZCVaLw+;_jz=0oPZ{D{$_-k#G^F;B!I-9;} z%&09Mbu=s{gjVYCuy*$MVIltKy#(i8+9tBgJ4JATbyFXB+;~_wv0*X5KmPb*O42Yf zfvLp98sQ&2RYgbm#TfXkY+2u9bKbaZas~^}IX{E``r?-^^oy~=1f8JmQQo&L{>FJR zeUTl*_`q%HqYM2~MLXlDZ;MBrehFPu$1moLXTpcKmR+V{V*+jQXuF1Cd!TFdO^(=a zl2@fT3*|hNa#ef%i5vCFFF_wW3*cRT+_5EPKt7=bv zus!;eA3-1C!@(qCro-St7QllI#da`x>g*0;r@3WLzKAzQ1) z1rItS}`{=#kQkfx5Xosr=#pg(IIR|{yqAjOI@ok&PiR^ zZs(qRZhqzgmgZ1wJL+{?JW`tjO~3@t1WsjgHXSQFn!aRT`@0q1i9;j&cVi2ktBh{+ zN7riWZ`Hx447>Ch!<5_N;aP3=qwoNF7whzmPd2K*nFb$gAHJG0oM7Qyc7MYYuaF)3 z7-r6OZM(oD?SGX0DC>(x%-7#Zhly`>vf=TMM1Fdo-x(Nk!{1RFCJva6v98=T9_h0} z*0SBx`eHea8Ny`Rv}rjezVG1gnebQmdai%?;fEXxzP_<{NgKx17LP9Cg~nlC#zIEW zr|fXPoA)XCxpLo3!6PACy2hdlJVI`U|5BD~Q>2Nq>tbvO4UijBd}}KFv#G$MOFZb6 zhz~~IWIxIn;6TriBkU1$B3@?hd>QtcvO4#)X_7)W4TD`TDLb`o5-XB^`Q?{9UeeU2Z;OX{@ngeZN#&_J z_hRm4IexKr^a}bG>tTboNoc}1|NJc}xYFTuF_m;&UEmS@p@X20I+}>~k)siqq%zd_ zM@?h~ea(IgJnDSr7>B$oJj~y|0{JSD8N*?=n%3( znT;NHddQSA-P4u^>V7{?Ji`8fMRAN|Dfy~R@!nKkPXZogdgPyoN0DDbPr_nc?`Myb zKG6Ln%2T!s8#iLked-sO(5-arBjD;-bTRLL{ z5B^kB+0&%|akha$QygNPvHyWa;2~Dfl-Ht^KW&Z`c-4&t$ literal 0 HcmV?d00001 diff --git a/res/patches_template.ini b/res/patches_template.ini index 0ebe8bd3..001ea957 100644 --- a/res/patches_template.ini +++ b/res/patches_template.ini @@ -11,142 +11,142 @@ # to install homebrew for a qlaunch icon or 3.5GB RAM access. # This is useless nowadays, because title override or custom qlaunch are a more proper solution. -#FS Patches for 1.0.0 +#Parches FS para 1.0.0 [FS:de9fdda4085dd5fe] .nosigchk=0:0x194A0:0x4:BA090094,E0031F2A .nosigchk=0:0x3A79C:0x4:E0060036,1F2003D5 -#FS Patches for 1.0.0 exfat +#Parches FS para 1.0.0 exfat [FS:fc3e80991dca1796] .nosigchk=0:0x194A0:0x4:BA090094,E0031F2A .nosigchk=0:0x3A79C:0x4:E0060036,1F2003D5 -#FS Patches for 2.0.0 +#Parches FS para 2.0.0 [FS:cd7bbe18d6130b28] .nosigchk=0:0x15DF4:0x4:BC0A0094,E0031F2A .nosigchk=0:0x3F720:0x4:00060036,1F2003D5 -#FS Patches for 2.0.0 exfat +#Parches FS para 2.0.0 exfat [FS:e76692dfaa0420e9] .nosigchk=0:0x15DF4:0x4:BC0A0094,E0031F2A .nosigchk=0:0x3F720:0x4:00060036,1F2003D5 -#FS Patches for 2.1.0 +#Parches FS para 2.1.0 [FS:0d7005627b07767c] .nosigchk=0:0x15F64:0x4:DF0A0094,E0031F2A .nosigchk=0:0x3FAF8:0x4:00060036,1F2003D5 -#FS Patches for 2.1.0 exfat +#Parches FS para 2.1.0 exfat [FS:dbd85fcacc193da8] .nosigchk=0:0x15F64:0x4:DF0A0094,E0031F2A .nosigchk=0:0x3FAF8:0x4:00060036,1F2003D5 -#FS Patches for 3.0.0 +#Parches FS para 3.0.0 [FS:a86da5e87ef1097b] .nosigchk=0:0x18E24:0x4:520C0094,E0031F2A .nosigchk=0:0x49EC8:0x4:40040036,1F2003D5 -#FS Patches for 3.0.0 exfat +#Parches FS para 3.0.0 exfat [FS:981c57e7f02f70f7] .nosigchk=0:0x18E24:0x4:520C0094,E0031F2A .nosigchk=0:0x49EC8:0x4:40040036,1F2003D5 -#FS Patches for 3.0.1 +#Parches FS para 3.0.1 [FS:57397c063f10b631] .nosigchk=0:0x18E90:0x4:520C0094,E0031F2A .nosigchk=0:0x49F34:0x4:E0030036,1F2003D5 -#FS Patches for 3.0.1 exfat +#Parches FS para 3.0.1 exfat [FS:073099d7c6ad7d89] .nosigchk=0:0x18E90:0x4:520C0094,E0031F2A .nosigchk=0:0x49F34:0x4:E0030036,1F2003D5 -#FS Patches for 4.0.0 +#Parches FS para 4.0.0 [FS:06e90719595a010c] .nosigchk=0:0x1C4FC:0x4:3C2F0094,E0031F2A .nosigchk=0:0x57934:0x4:E0020036,1F2003D5 -#FS Patches for 4.0.0 exfat +#Parches FS para 4.0.0 exfat [FS:549b0f8d6f72c4e9] .nosigchk=0:0x1C4FC:0x4:3C2F0094,E0031F2A .nosigchk=0:0x57934:0x4:E0020036,1F2003D5 -#FS Patches for 4.1.0 +#Parches FS para 4.1.0 [FS:8096af7c6a35aa82] .nosigchk=0:0x1C4FC:0x4:3C2F0094,E0031F2A .nosigchk=0:0x57934:0x4:E0020036,1F2003D5 -#FS Patches for 4.1.0 exfat +#Parches FS para 4.1.0 exfat [FS:02d5abaafd20c8b0] .nosigchk=0:0x1C4FC:0x4:3C2F0094,E0031F2A .nosigchk=0:0x57934:0x4:E0020036,1F2003D5 -#FS Patches for 5.0.0 +#Parches FS para 5.0.0 [FS:a6f27ad9ac7c73ad] .nosigchk=0:0x22DDC:0x4:7D3E0094,E0031F2A .nosigchk=0:0x7D490:0x4:40030036,1F2003D5 -#FS Patches for 5.0.0 exfat +#Parches FS para 5.0.0 exfat [FS:ce3ecba2f2f062f5] .nosigchk=0:0x22DDC:0x4:7D3E0094,E0031F2A .nosigchk=0:0x7D490:0x4:40030036,1F2003D5 -#FS Patches for 5.1.0 +#Parches FS para 5.1.0 [FS:76f87402c9387c0f] .nosigchk=0:0x22E0C:0x4:853E0094,E0031F2A .nosigchk=0:0x7D860:0x4:40030036,1F2003D5 -#FS Patches for 5.1.0 exfat +#Parches FS para 5.1.0 exfat [FS:10b2d81605488599] .nosigchk=0:0x22E0C:0x4:853E0094,E0031F2A .nosigchk=0:0x7D860:0x4:40030036,1F2003D5 -#FS Patches for 6.0.0 - 4 +#Parches FS para 6.0.0 - 4 [FS:1b82cb221867cb52] .nosigchk=0:0x712A8:0x4:8E3E0094,E0031F2A .nosigchk=0:0xEB08C:0x4:C0030036,1F2003D5 -#FS Patches for 6.0.0 - 4 exfat +#Parches FS para 6.0.0 - 4 exfat [FS:966add3d20b62713] .nosigchk=0:0x7C9A8:0x4:8E3E0094,E0031F2A .nosigchk=0:0xF678C:0x4:C0030036,1F2003D5 -#FS Patches for 6.0.0 - 5 +#Parches FS para 6.0.0 - 5 [FS:3a574d436186191d] .nosigchk=0:0x712A8:0x4:8E3E0094,E0031F2A .nosigchk=0:0xEB08C:0x4:C0030036,1F2003D5 -#FS Patches for 6.0.0 - 5 exfat +#Parches FS para 6.0.0 - 5 exfat [FS:330553f6b5fb55c4] .nosigchk=0:0x7C9A8:0x4:8E3E0094,E0031F2A .nosigchk=0:0xF678C:0x4:C0030036,1F2003D5 -#FS Patches for 7.0.0 +#Parches FS para 7.0.0 [FS:2ADBE97E9B5F4177] .nosigchk=0:0x74A2C:0x4:31430094,E0031F2A .nosigchk=0:0xF25E4:0x4:C0030036,1F2003D5 -#FS Patches for 7.0.0 exfat +#Parches FS para 7.0.0 exfat [FS:2CCE659CEC536A8E] .nosigchk=0:0x7FFDC:0x4:31430094,E0031F2A .nosigchk=0:0xFDB94:0x4:C0030036,1F2003D5 -#FS Patches for 8.0.0 +#Parches FS para 8.0.0 [FS:B2F5176B3548364D] .nosigchk=0:0x7630C:0x4:51440094,E0031F2A .nosigchk=0:0xF49A4:0x4:C0030036,1F2003D5 -#FS Patches for 8.0.0 exfat +#Parches FS para 8.0.0 exfat [FS:DBD941C0C53C52CC] .nosigchk=0:0x818BC:0x4:51440094,E0031F2A .nosigchk=0:0xFFF54:0x4:C0030036,1F2003D5 -#FS Patches for 8.1.0 +#Parches FS para 8.1.0 [FS:6B09B67B29C02024] .nosigchk=0:0x7630C:0x4:51440094,E0031F2A .nosigchk=0:0xF49A4:0x4:C0030036,1F2003D5 -#FS Patches for 8.1.0 exfat +#Parches FS para 8.1.0 exfat [FS:B4CAE1F24965D92E] .nosigchk=0:0x818BC:0x4:51440094,E0031F2A .nosigchk=0:0xFFF54:0x4:C0030036,1F2003D5 diff --git a/tools/bin2c/bin2c.c b/tools/bin2c/bin2c.c index 0d820fcd..6abb6f2b 100644 --- a/tools/bin2c/bin2c.c +++ b/tools/bin2c/bin2c.c @@ -39,14 +39,14 @@ main ( int argc, char* argv[] ) if ( argc != 2 ) { - fprintf ( stderr, "Usage: %s binary_file > output_file\n", argv[0] ); + fprintf ( stderr, "Uso: %s arch_binario > arch_salida\n", argv[0] ); return -1; } fd = fopen ( argv[1], "rb" ); if ( fd == NULL ) { - fprintf ( stderr, "%s: can't open %s for reading\n", argv[0], argv[1] ); + fprintf ( stderr, "%s: Imposible abrir %s para leer\n", argv[0], argv[1] ); return -1; } @@ -62,7 +62,7 @@ main ( int argc, char* argv[] ) if ( size - total < blksize ) blksize = size - total; if ( fread ( buf, 1, blksize, fd ) != blksize ) { - fprintf ( stderr, "%s: file read error\n", argv[0] ); + fprintf ( stderr, "%s: Error al leer archivo\n", argv[0] ); return -1; } for ( i = 0; i < blksize; i++ ) diff --git a/tools/lz/lz77.c b/tools/lz/lz77.c index 75b90a63..c9c09814 100644 --- a/tools/lz/lz77.c +++ b/tools/lz/lz77.c @@ -88,6 +88,6 @@ int main(int argc, char *argv[]) return 0; error: - fprintf(stderr, "Failed to compress: %s\n", argv[1]); + fprintf(stderr, "Error al comprimir: %s\n", argv[1]); exit(1); } diff --git a/tools/smmu_payload.py b/tools/smmu_payload.py index 8961b251..78fb85e6 100644 --- a/tools/smmu_payload.py +++ b/tools/smmu_payload.py @@ -33,6 +33,6 @@ try: ks = Ks(KS_ARCH_ARM64, KS_MODE_LITTLE_ENDIAN) encoding, count = ks.asm(CODE, 0x0) - print("%s = %s (number of statements: %u)" %(CODE, ', '.join([('0x%02x' % (x)) for x in encoding]), count)) + print("%s = %s (numero de estamentos: %u)" %(CODE, ', '.join([('0x%02x' % (x)) for x in encoding]), count)) except KsError as e: print("ERROR: %s" %e) \ No newline at end of file