From 9a93ab4f165d1604a94a3f179991e35d8c3b54d1 Mon Sep 17 00:00:00 2001 From: Oscar Lesta Date: Fri, 23 Jan 2026 10:40:58 -0300 Subject: [PATCH] vmware_tray: Add initial localization support. Also: switched the "About..." from a BAlert to a BAboutWindow. --- Makefile | 2 ++ vmware_tray/Makefile | 14 ++++++-- vmware_tray/VMWAddOns.h | 2 +- vmware_tray/VMWAddOnsCleanup.cpp | 38 ++++++++++++-------- vmware_tray/VMWAddOnsSelectWindow.cpp | 15 +++++--- vmware_tray/VMWAddOnsStatusWindow.cpp | 16 ++++++--- vmware_tray/VMWAddOnsTray.cpp | 52 ++++++++++++++++----------- vmware_tray/locales/en.catkeys | 29 +++++++++++++++ vmware_tray/locales/es.catkeys | 29 +++++++++++++++ vmware_tray/locales/es_419.catkeys | 29 +++++++++++++++ 10 files changed, 179 insertions(+), 47 deletions(-) create mode 100644 vmware_tray/locales/en.catkeys create mode 100644 vmware_tray/locales/es.catkeys create mode 100644 vmware_tray/locales/es_419.catkeys diff --git a/Makefile b/Makefile index 327fdc9..a12faea 100644 --- a/Makefile +++ b/Makefile @@ -19,6 +19,7 @@ build: make -C vmware_fs make -C vmware_mouse make -C vmware_tray + make -C vmware_tray bindcatalogs make -C vmware_video/accelerant make -C vmware_video/kernel @@ -26,6 +27,7 @@ release: make RELEASE=1 -C vmware_fs make RELEASE=1 -C vmware_mouse make RELEASE=1 -C vmware_tray + make RELEASE=1 -C vmware_tray bindcatalogs make RELEASE=1 -C vmware_video/accelerant make RELEASE=1 -C vmware_video/kernel diff --git a/vmware_tray/Makefile b/vmware_tray/Makefile index d417626..a064558 100644 --- a/vmware_tray/Makefile +++ b/vmware_tray/Makefile @@ -16,6 +16,8 @@ NAME= vmware_tray # DRIVER: Kernel Driver TYPE= APP +APP_MIME_SIG = application/x-vnd.VinDuv.VMwareAddOns + # add support for new Pe and Eddie features # to fill in generic makefile @@ -58,7 +60,7 @@ RSRCS= # naming scheme you need to specify the path to the library # and it's name # library: my_lib.a entry: my_lib.a or path/my_lib.a -LIBS= be $(STDCPPLIBS) +LIBS= be localestub $(STDCPPLIBS) # specify additional paths to directories following the standard # libXXX.so or libXXX.a naming scheme. You can specify full paths @@ -71,7 +73,8 @@ LIBPATHS= # additional paths to look for system headers # thes use the form: #include
# source file directories are NOT auto-included here -SYSTEM_INCLUDE_PATHS = +SYSTEM_INCLUDE_PATHS = \ + $(shell findpaths -e B_FIND_PATH_HEADERS_DIRECTORY private/interface) # additional paths to look for local headers # thes use the form: #include "header" @@ -82,6 +85,13 @@ LOCAL_INCLUDE_PATHS = ../shared_sources/ # NONE, SOME, FULL OPTIMIZE= SOME +# Specify the codes for languages you are going to support in this +# application. The default "en" one must be provided too. "make catkeys" +# will recreate only the "locales/en.catkeys" file. Use it as a template +# for creating catkeys for other languages. All localization files must be +# placed in the "locales" subdirectory. +LOCALES = en es_419 es + # specify any preprocessor symbols to be defined. The symbols will not # have their values set automatically; you must supply the value (if any) # to use. For example, setting DEFINES to "DEBUG=1" will cause the diff --git a/vmware_tray/VMWAddOns.h b/vmware_tray/VMWAddOns.h index 1e50006..cfa91b8 100644 --- a/vmware_tray/VMWAddOns.h +++ b/vmware_tray/VMWAddOns.h @@ -8,7 +8,7 @@ // Application constants #define APP_SIG "application/x-vnd.VinDuv.VMwareAddOns" -#define APP_NAME "VMWare Add-ons" +#define APP_NAME "VMware Add-ons" #define APP_VERSION "1.2.2" #define TRAY_NAME "vmware add-ons" diff --git a/vmware_tray/VMWAddOnsCleanup.cpp b/vmware_tray/VMWAddOnsCleanup.cpp index 999658d..eef3c87 100644 --- a/vmware_tray/VMWAddOnsCleanup.cpp +++ b/vmware_tray/VMWAddOnsCleanup.cpp @@ -6,12 +6,16 @@ #include "VMWAddOnsCleanup.h" #include +#include #include "VMWAddOnsSelectWindow.h" #include "VMWAddOnsStatusWindow.h" #include "VMWAddOnsTray.h" +#undef B_TRANSLATION_CONTEXT +#define B_TRANSLATION_CONTEXT "Virtual Disk Shrinking" + #define MB (1024 * 1024) #define BUF_SIZE (MB / 2) #define MAX_FILES 200 @@ -58,11 +62,13 @@ VMWAddOnsCleanup::ThreadLoop() break; if (ret != B_DEVICE_FULL && ret != B_OK) { - (new BAlert("Error", - (BString("An error occurred while cleaning ”") - << name << "” (" << strerror(ret) << "). This volume may be damaged.") - .String(), - "Cancel", NULL, NULL, B_WIDTH_AS_USUAL, B_STOP_ALERT)) + BString alertText; + alertText.SetToFormat(B_TRANSLATE_COMMENT("An error occurred while cleaning %s (%s). " + "This volume may be damaged.", + "First %s is the name of the volume being cleaned. Second %s is the error message."), + name, strerror(ret)); + (new BAlert(B_TRANSLATE("Error"), alertText.String(), + B_TRANSLATE("OK"), NULL, NULL, B_WIDTH_AS_USUAL, B_STOP_ALERT)) ->Go(); } } @@ -80,12 +86,14 @@ VMWAddOnsCleanup::Start(void* data) { VMWAddOnsTray* parentTray = (VMWAddOnsTray*)data; - int32 result = (new BAlert("Shrink disks", - "Disk shrinking will operate on all auto-expanding disks " + int32 result = (new BAlert(B_TRANSLATE("Shrink disks"), + B_TRANSLATE("Disk shrinking will operate on all auto-expanding disks " "attached to this virtual machine.\nFor best results it is " - "recommanded to clean up free space on these disks before starting " - "the process.\n", - "Cancel", "Shrink now" B_UTF8_ELLIPSIS, "Clean up disks" B_UTF8_ELLIPSIS, + "recommended to clean up free space on these disks before starting " + "the process.\n"), + B_TRANSLATE("Cancel"), + B_TRANSLATE("Shrink now" B_UTF8_ELLIPSIS), + B_TRANSLATE("Clean up disks" B_UTF8_ELLIPSIS), B_WIDTH_AS_USUAL, B_OFFSET_SPACING, B_INFO_ALERT)) ->Go(); @@ -104,11 +112,11 @@ VMWAddOnsCleanup::Start(void* data) } } - result = (new BAlert("Shrink disks", - "The shrink operation will now be launched in VMWare." - "This may take a long time ; the virtual machine will be " - "suspended during the process.", - "Cancel", "OK")) + result = (new BAlert(B_TRANSLATE("Shrink disks"), + B_TRANSLATE("The shrink operation will now be launched in VMware. " + "This may take a long time; the virtual machine will be " + "suspended during the process."), + B_TRANSLATE("Cancel"), B_TRANSLATE("OK"))) ->Go(); // OK... diff --git a/vmware_tray/VMWAddOnsSelectWindow.cpp b/vmware_tray/VMWAddOnsSelectWindow.cpp index 38c82ab..41018aa 100644 --- a/vmware_tray/VMWAddOnsSelectWindow.cpp +++ b/vmware_tray/VMWAddOnsSelectWindow.cpp @@ -7,12 +7,17 @@ #include +#include #include #include #include #include "VMWAddOnsCleanup.h" + +#undef B_TRANSLATION_CONTEXT +#define B_TRANSLATION_CONTEXT "Virtual Disk Shrinking" + #define _H(x) static_cast((x)->Frame().Height()) #define _W(x) static_cast((x)->Frame().Width()) @@ -25,7 +30,7 @@ VMWAddOnsSelectWindow::VMWAddOnsSelectWindow() : - BWindow(BRect(0, 0, 300, 1), "Clean up free space", B_TITLED_WINDOW, + BWindow(BRect(0, 0, 300, 1), B_TRANSLATE("Clean up free space"), B_TITLED_WINDOW, B_NOT_CLOSABLE | B_NOT_ZOOMABLE | B_ASYNCHRONOUS_CONTROLS) { fVolumeRoster = new BVolumeRoster(); @@ -35,7 +40,7 @@ VMWAddOnsSelectWindow::VMWAddOnsSelectWindow() fDisksView = new BView(Bounds(), "disks view", B_FOLLOW_ALL, B_WILL_DRAW); fDisksView->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); - fInfoText = new BStringView(BRect(SPACING, y, 1, 1), NULL, "Volumes to cleanup :"); + fInfoText = new BStringView(BRect(SPACING, y, 1, 1), NULL, B_TRANSLATE("Volumes to clean up:")); fInfoText->ResizeToPreferred(); y += _H(fInfoText) + SPACING; if (w < _W(fInfoText)) @@ -66,7 +71,7 @@ VMWAddOnsSelectWindow::VMWAddOnsSelectWindow() fDisksView->AddChild(new BScrollView(NULL, fVolumesList, B_FOLLOW_ALL_SIDES, 0, false, true)); - fCleanupButton = new BButton(BRect(0, 0, 0, 0), NULL, "Cleanup selection", + fCleanupButton = new BButton(BRect(0, 0, 0, 0), NULL, B_TRANSLATE("Clean up selection"), new BMessage(CLEANUP_SELECTION), B_FOLLOW_RIGHT | B_FOLLOW_BOTTOM); fCleanupButton->MakeDefault(true); fCleanupButton->SetEnabled(fVolumesList->CurrentSelection() >= 0); @@ -77,8 +82,8 @@ VMWAddOnsSelectWindow::VMWAddOnsSelectWindow() fCleanupButton->SetEnabled(fVolumesList->CurrentSelection() >= 0); - fCancelButton = new BButton(BRect(0, 0, 0, 0), NULL, "Cancel", new BMessage(CANCEL_OPERATION), - B_FOLLOW_RIGHT | B_FOLLOW_BOTTOM); + fCancelButton = new BButton(BRect(0, 0, 0, 0), NULL, B_TRANSLATE("Cancel"), + new BMessage(CANCEL_OPERATION), B_FOLLOW_RIGHT | B_FOLLOW_BOTTOM); fCancelButton->ResizeToPreferred(); fCancelButton->MoveTo(w - _W(fCleanupButton) - _W(fCancelButton), y + 3); diff --git a/vmware_tray/VMWAddOnsStatusWindow.cpp b/vmware_tray/VMWAddOnsStatusWindow.cpp index 36e0c8f..41ef77d 100644 --- a/vmware_tray/VMWAddOnsStatusWindow.cpp +++ b/vmware_tray/VMWAddOnsStatusWindow.cpp @@ -5,10 +5,14 @@ #include "VMWAddOnsStatusWindow.h" +#include #include #include +#undef B_TRANSLATION_CONTEXT +#define B_TRANSLATION_CONTEXT "Virtual Disk Shrinking" + #define _H(x) static_cast((x)->Frame().Height()) #define _W(x) static_cast((x)->Frame().Width()) @@ -19,19 +23,20 @@ VMWAddOnsStatusWindow::VMWAddOnsStatusWindow() : - BWindow(BRect(0, 0, 300, 400), "Progress", B_TITLED_WINDOW, + BWindow(BRect(0, 0, 300, 400), B_TRANSLATE("Progress"), B_TITLED_WINDOW, B_NOT_RESIZABLE | B_NOT_CLOSABLE | B_NOT_ZOOMABLE | B_ASYNCHRONOUS_CONTROLS) { fStatusView = new BView(Bounds(), "cleanup view", B_FOLLOW_ALL_SIDES, B_WILL_DRAW); fStatusView->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); fProgressBar = new BStatusBar(BRect(SPACING, SPACING, 200, 45), NULL, - "Starting cleanup process, please wait..."); + B_TRANSLATE("Starting cleanup process, please wait" B_UTF8_ELLIPSIS)); fProgressBar->ResizeToPreferred(); fStatusView->AddChild(fProgressBar); - fStopButton = new BButton(BRect(0, 0, 0, 0), NULL, "Stop", new BMessage(STOP_OPERATION)); + fStopButton = new BButton(BRect(0, 0, 0, 0), NULL, B_TRANSLATE("Stop"), + new BMessage(STOP_OPERATION)); fStopButton->ResizeToPreferred(); fStopButton->MoveTo(2 * SPACING + _W(fProgressBar), @@ -73,7 +78,10 @@ VMWAddOnsStatusWindow::MessageReceived(BMessage* message) off_t size = sizeRead; - fProgressBar->Reset((BString("Cleaning up “") << name << "”" B_UTF8_ELLIPSIS).String()); + BString text; + text.SetToFormat(B_TRANSLATE_COMMENT("Cleaning up %s" B_UTF8_ELLIPSIS, + "%s is the name of the volume being cleaned."), name); + fProgressBar->Reset(text.String()); fProgressBar->SetMaxValue(size); } diff --git a/vmware_tray/VMWAddOnsTray.cpp b/vmware_tray/VMWAddOnsTray.cpp index 1ce37e0..66d80c7 100644 --- a/vmware_tray/VMWAddOnsTray.cpp +++ b/vmware_tray/VMWAddOnsTray.cpp @@ -5,7 +5,9 @@ #include "VMWAddOnsTray.h" +#include #include +#include #include #include #include @@ -17,6 +19,9 @@ #include "icons.h" +#undef B_TRANSLATION_CONTEXT +#define B_TRANSLATION_CONTEXT "Deskbar tray icon" + #define CLIP_POLL_DELAY 1000000 #define CLOCK_POLL_DELAY 60000000 @@ -193,13 +198,10 @@ VMWAddOnsTray::MessageReceived(BMessage* message) case B_ABOUT_REQUESTED: { - BAlert* alert = new BAlert("about", - APP_NAME ", version " APP_VERSION "\n" - "© 2009, Vincent Duvert\n" - "Distributed under the terms of the MIT License.", - "OK", NULL, NULL, B_WIDTH_AS_USUAL, B_OFFSET_SPACING, B_INFO_ALERT); - alert->SetShortcut(0, B_ENTER); - alert->Go(NULL); + BAboutWindow* window = new BAboutWindow("VMware Add-ons", + "application/x-vnd.VinDuv.VMwareAddOns"); + window->AddCopyright(2009, "Vincent Duvert"); + window->Show(); } break; case B_CLIPBOARD_CHANGED: @@ -338,9 +340,9 @@ VMWAddOnsTray::StartShrink() fBackdoor.CloseRPCChannel(); } else { (new BAlert(TRAY_NAME, - "Unable to communicate with VMWare. Your VMWare version may be too old. Please start " - "the process manually if your VMware version allows it.", - "Cancel", NULL, NULL, B_WIDTH_AS_USUAL, B_STOP_ALERT)) + B_TRANSLATE("Unable to communicate with VMware. Your VMware version may be too old. " + "Please start the process manually if your VMware version allows it."), + B_TRANSLATE("OK"), NULL, NULL, B_WIDTH_AS_USUAL, B_STOP_ALERT)) ->Go(); } } @@ -355,9 +357,12 @@ VMWAddOnsTray::RemoveMyself(bool askUser) int32 result = 1; if (askUser) { result = (new BAlert(TRAY_NAME, - "Are you sure you want to quit?\n" - "This will stop clipboard sharing (but not mouse sharing if it is running).", - "Cancel", "Quit", NULL, B_WIDTH_AS_USUAL, B_INFO_ALERT)) + B_TRANSLATE("Are you sure you want to quit?\n" + "This will stop clipboard sharing, and time synchronization " + "(but not the mouse sharing, if it is currently enabled)."), + B_TRANSLATE("Cancel"), + B_TRANSLATE("Quit"), + NULL, B_WIDTH_AS_USUAL, B_INFO_ALERT)) ->Go(); } @@ -382,21 +387,24 @@ VMWAddOnsMenu::VMWAddOnsMenu(VMWAddOnsTray* tray, VMWBackdoor& fBackdoor) SetFont(be_plain_font); if (fBackdoor.InVMware()) { - menuItem = new BMenuItem("Enable mouse sharing", new BMessage(MOUSE_SHARING)); + menuItem = new BMenuItem(B_TRANSLATE("Enable mouse sharing"), new BMessage(MOUSE_SHARING)); if (fBackdoor.GetGUISetting(VMWBackdoor::POINTER_GRAB_UNGRAB)) menuItem->SetMarked(gSettings.GetBool("mouse_enabled", true)); else menuItem->SetMarked(false); AddItem(menuItem); - menuItem = new BMenuItem("Enable clipboard sharing", new BMessage(CLIPBOARD_SHARING)); + menuItem = new BMenuItem(B_TRANSLATE("Enable clipboard sharing"), + new BMessage(CLIPBOARD_SHARING)); if (fBackdoor.GetGUISetting(VMWBackdoor::CLIP_BOARD_SHARING)) menuItem->SetMarked(gSettings.GetBool("clip_enabled", true)); else menuItem->SetMarked(false); AddItem(menuItem); - menuItem = new BMenuItem("Enable time synchronization", new BMessage(TIMESYNC_HOST)); + menuItem = new BMenuItem(B_TRANSLATE_COMMENT("Enable time synchronization", + "Alternatively: \"Synchronize clock\"."), + new BMessage(TIMESYNC_HOST)); if (fBackdoor.GetGUISetting(VMWBackdoor::TIME_SYNC)) menuItem->SetMarked(gSettings.GetBool("timesync_enabled", true)); else @@ -405,18 +413,22 @@ VMWAddOnsMenu::VMWAddOnsMenu(VMWAddOnsTray* tray, VMWBackdoor& fBackdoor) if (!tray->fCleanupInProgress) { AddItem( - new BMenuItem("Shrink virtual disks " B_UTF8_ELLIPSIS, new BMessage(SHRINK_DISKS))); + new BMenuItem(B_TRANSLATE("Shrink virtual disks" B_UTF8_ELLIPSIS), + new BMessage(SHRINK_DISKS)) + ); } } else { - menuItem = new BMenuItem("Not running in VMware", NULL); + menuItem = new BMenuItem(B_TRANSLATE_COMMENT("Not running in VMware", + "Alternatively: \"VMware not detected\"."), NULL); menuItem->SetEnabled(false); AddItem(menuItem); } AddSeparatorItem(); - AddItem(new BMenuItem("About " APP_NAME B_UTF8_ELLIPSIS, new BMessage(B_ABOUT_REQUESTED))); - AddItem(new BMenuItem("Quit" B_UTF8_ELLIPSIS, new BMessage(REMOVE_FROM_DESKBAR))); + AddItem(new BMenuItem(B_TRANSLATE("About " APP_NAME B_UTF8_ELLIPSIS), + new BMessage(B_ABOUT_REQUESTED))); + AddItem(new BMenuItem(B_TRANSLATE("Quit" B_UTF8_ELLIPSIS), new BMessage(REMOVE_FROM_DESKBAR))); SetTargetForItems(tray); SetAsyncAutoDestruct(true); diff --git a/vmware_tray/locales/en.catkeys b/vmware_tray/locales/en.catkeys new file mode 100644 index 0000000..4545125 --- /dev/null +++ b/vmware_tray/locales/en.catkeys @@ -0,0 +1,29 @@ +1 English application/x-vnd.VinDuv.VMwareAddOns 3446789908 +Enable time synchronization Deskbar tray icon Alternatively: \"Synchronize clock\". Enable time synchronization +Shrink now… Virtual Disk Shrinking Shrink now… +Clean up selection Virtual Disk Shrinking Clean up selection +OK Virtual Disk Shrinking OK +Cancel Deskbar tray icon Cancel +Disk shrinking will operate on all auto-expanding disks attached to this virtual machine.\nFor best results it is recommended to clean up free space on these disks before starting the process.\n Virtual Disk Shrinking Disk shrinking will operate on all auto-expanding disks attached to this virtual machine.\nFor best results it is recommended to clean up free space on these disks before starting the process.\n +Quit… Deskbar tray icon Quit… +Starting cleanup process, please wait… Virtual Disk Shrinking Starting cleanup process, please wait… +Are you sure you want to quit?\nThis will stop clipboard sharing, and time synchronization (but not the mouse sharing, if it is currently enabled). Deskbar tray icon Are you sure you want to quit?\nThis will stop clipboard sharing, and time synchronization (but not the mouse sharing, if it is currently enabled). +Shrink virtual disks… Deskbar tray icon Shrink virtual disks… +Volumes to clean up: Virtual Disk Shrinking Volumes to clean up: +Shrink disks Virtual Disk Shrinking Shrink disks +An error occurred while cleaning %s (%s). This volume may be damaged. Virtual Disk Shrinking First %s is the name of the volume being cleaned. Second %s is the error message. An error occurred while cleaning %s (%s). This volume may be damaged. +Clean up disks… Virtual Disk Shrinking Clean up disks… +Stop Virtual Disk Shrinking Stop +Cancel Virtual Disk Shrinking Cancel +OK Deskbar tray icon OK +About VMware Add-ons… Deskbar tray icon About VMware Add-ons… +Progress Virtual Disk Shrinking Progress +Clean up free space Virtual Disk Shrinking Clean up free space +Cleaning up %s… Virtual Disk Shrinking %s is the name of the volume being cleaned. Cleaning up %s… +Enable mouse sharing Deskbar tray icon Enable mouse sharing +Error Virtual Disk Shrinking Error +Not running in VMware Deskbar tray icon Alternatively: \"VMware not detected\". Not running in VMware +Unable to communicate with VMware. Your VMware version may be too old. Please start the process manually if your VMware version allows it. Deskbar tray icon Unable to communicate with VMware. Your VMware version may be too old. Please start the process manually if your VMware version allows it. +The shrink operation will now be launched in VMware. This may take a long time; the virtual machine will be suspended during the process. Virtual Disk Shrinking The shrink operation will now be launched in VMware. This may take a long time; the virtual machine will be suspended during the process. +Enable clipboard sharing Deskbar tray icon Enable clipboard sharing +Quit Deskbar tray icon Quit diff --git a/vmware_tray/locales/es.catkeys b/vmware_tray/locales/es.catkeys new file mode 100644 index 0000000..31f3841 --- /dev/null +++ b/vmware_tray/locales/es.catkeys @@ -0,0 +1,29 @@ +1 Español application/x-vnd.VinDuv.VMwareAddOns 3446789908 +Enable time synchronization Deskbar tray icon Alternatively: \"Synchronize clock\". Sincronizar el reloj +Shrink now… Virtual Disk Shrinking Reducir ahora… +Clean up selection Virtual Disk Shrinking Limpiar elementos seleccionados +OK Virtual Disk Shrinking OK +Cancel Deskbar tray icon Cancelar +Disk shrinking will operate on all auto-expanding disks attached to this virtual machine.\nFor best results it is recommended to clean up free space on these disks before starting the process.\n Virtual Disk Shrinking La reducción de discos operará en todos los discos auto-expandibles asignados a esta máquina virtual.\nPara mejores resultados es recomendable, antes de comenzar el proceso, limpiar primero el espacio libre en estos discos.\n +Quit… Deskbar tray icon Salir… +Starting cleanup process, please wait… Virtual Disk Shrinking Comenzando limpieza, por favor espera… +Are you sure you want to quit?\nThis will stop clipboard sharing, and time synchronization (but not the mouse sharing, if it is currently enabled). Deskbar tray icon ¿Está seguro de querer salir?\nSe dejará de sincronizar el reloj, y de compartir el portapapeles (pero no el puntero, si está siendo compartido). +Shrink virtual disks… Deskbar tray icon Reducir discos virtuales… +Volumes to clean up: Virtual Disk Shrinking Volúmenes a limpiar: +Shrink disks Virtual Disk Shrinking Reducir discos +An error occurred while cleaning %s (%s). This volume may be damaged. Virtual Disk Shrinking First %s is the name of the volume being cleaned. Second %s is the error message. Ocurrió un error al limpiar %s (%s). El volúmen puede estar dañado. +Clean up disks… Virtual Disk Shrinking Limpiar discos… +Stop Virtual Disk Shrinking Detener +Cancel Virtual Disk Shrinking Cancelar +OK Deskbar tray icon OK +About VMware Add-ons… Deskbar tray icon Acerca de VMware Add-ons… +Progress Virtual Disk Shrinking Progreso +Clean up free space Virtual Disk Shrinking Limpiar el espacio libre +Cleaning up %s… Virtual Disk Shrinking %s is the name of the volume being cleaned. Limpiando %s… +Enable mouse sharing Deskbar tray icon Compartir el puntero +Error Virtual Disk Shrinking Error +Not running in VMware Deskbar tray icon Alternatively: \"VMware not detected\". VMware no detectado +Unable to communicate with VMware. Your VMware version may be too old. Please start the process manually if your VMware version allows it. Deskbar tray icon No se pudo comunicar con VMware. La versión de VMware puede ser demasiado antigua. Por favor, inicie el proceso manualmente, si su versión de VMware lo admite. +The shrink operation will now be launched in VMware. This may take a long time; the virtual machine will be suspended during the process. Virtual Disk Shrinking La operación de limpieza comenzará en VMware. Esto puede demorar bastante; la máquina virtual será suspendida durante el proceso. +Enable clipboard sharing Deskbar tray icon Compartir el portapapeles +Quit Deskbar tray icon Salir diff --git a/vmware_tray/locales/es_419.catkeys b/vmware_tray/locales/es_419.catkeys new file mode 100644 index 0000000..025e418 --- /dev/null +++ b/vmware_tray/locales/es_419.catkeys @@ -0,0 +1,29 @@ +1 Español (Latin American) application/x-vnd.VinDuv.VMwareAddOns 3446789908 +Enable time synchronization Deskbar tray icon Alternatively: \"Synchronize clock\". Sincronizar el reloj +Shrink now… Virtual Disk Shrinking Reducir ahora… +Clean up selection Virtual Disk Shrinking Limpiar elementos seleccionados +OK Virtual Disk Shrinking OK +Cancel Deskbar tray icon Cancelar +Disk shrinking will operate on all auto-expanding disks attached to this virtual machine.\nFor best results it is recommended to clean up free space on these disks before starting the process.\n Virtual Disk Shrinking La reducción de discos operará en todos los discos auto-expandibles asignados a esta máquina virtual.\nPara mejores resultados es recomendable, antes de comenzar el proceso, limpiar primero el espacio libre en estos discos.\n +Quit… Deskbar tray icon Salir… +Starting cleanup process, please wait… Virtual Disk Shrinking Comenzando limpieza, por favor espera… +Are you sure you want to quit?\nThis will stop clipboard sharing, and time synchronization (but not the mouse sharing, if it is currently enabled). Deskbar tray icon ¿Estás seguro de querer salir?\nSe dejará de sincronizar el reloj, y de compartir el portapapeles (pero no el puntero, si está siendo compartido). +Shrink virtual disks… Deskbar tray icon Reducir discos virtuales… +Volumes to clean up: Virtual Disk Shrinking Volúmenes a limpiar: +Shrink disks Virtual Disk Shrinking Reducir discos +An error occurred while cleaning %s (%s). This volume may be damaged. Virtual Disk Shrinking First %s is the name of the volume being cleaned. Second %s is the error message. Ocurrió un error al limpiar %s (%s). El volúmen puede estar dañado. +Clean up disks… Virtual Disk Shrinking Limpiar discos… +Stop Virtual Disk Shrinking Detener +Cancel Virtual Disk Shrinking Cancelar +OK Deskbar tray icon OK +About VMware Add-ons… Deskbar tray icon Acerca de VMware Add-ons… +Progress Virtual Disk Shrinking Progreso +Clean up free space Virtual Disk Shrinking Limpiar el espacio libre +Cleaning up %s… Virtual Disk Shrinking %s is the name of the volume being cleaned. Limpiando %s… +Enable mouse sharing Deskbar tray icon Compartir el puntero +Error Virtual Disk Shrinking Error +Not running in VMware Deskbar tray icon Alternatively: \"VMware not detected\". VMware no detectado +Unable to communicate with VMware. Your VMware version may be too old. Please start the process manually if your VMware version allows it. Deskbar tray icon No se pudo comunicar con VMware. La versión de VMware puede ser demasiado antigua. Por favor, inicia el proceso manualmente, si tu versión de VMware lo admite. +The shrink operation will now be launched in VMware. This may take a long time; the virtual machine will be suspended during the process. Virtual Disk Shrinking La operación de limpieza comenzará en VMware. Esto puede demorar bastante; la máquina virtual será suspendida durante el proceso. +Enable clipboard sharing Deskbar tray icon Compartir el portapapeles +Quit Deskbar tray icon Salir