diff options
author | Felix Geyer <debfx-pkg@fobos.de> | 2010-02-13 10:59:32 +0100 |
---|---|---|
committer | Felix Geyer <debfx-pkg@fobos.de> | 2010-02-13 10:59:32 +0100 |
commit | 48be1cf480743cdc0e60dd1edc9677b4349a570d (patch) | |
tree | 6feffd008987cdedbd85ad19164fb63c2db4b088 | |
parent | e931f478402bd35f0754a76ea5560643b9b0d1f5 (diff) | |
download | virtualbox-48be1cf480743cdc0e60dd1edc9677b4349a570d.tar.gz |
Imported Upstream version 3.1.4-dfsgupstream/3.1.4-dfsg
231 files changed, 25253 insertions, 2739 deletions
diff --git a/Config.kmk b/Config.kmk index c55a64687..8297af151 100644 --- a/Config.kmk +++ b/Config.kmk @@ -154,7 +154,7 @@ VBOX_VERSION_MINOR = 1 # This is the current build number. It should be increased every time we publish a # new build. The define is available in every source file. Only even build numbers # will be published, odd numbers are set during development. -VBOX_VERSION_BUILD = 2 +VBOX_VERSION_BUILD = 4 # Full version string (may include more than just x.y.z, but no spaces or other problematic chars). VBOX_VERSION_STRING = $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) # Force the additions.sh script to get an exact additions build when we're doing the release. @@ -164,6 +164,11 @@ ifeq ($(int-mod $(VBOX_VERSION_BUILD),2),0) export VBOX_DOCUMENTATION_SH_MODE = release endif +# Some info on the vendor +VBOX_VENDOR = Sun Microsystems, Inc. +VBOX_PRODUCT = Sun VirtualBox +# maybe we want set this manually +VBOX_C_YEAR = $(date-utc %Y) # # The VirtualBox package type. @@ -806,6 +811,7 @@ ifdef VBOX_HEADLESS VBOX_WITH_VBOXBFE= VBOX_WITH_OGL= VBOX_WITH_KCHMVIEWER= + VBOX_WITH_VRDP_RDESKTOP= endif # @@ -1608,6 +1614,18 @@ ifdef VBOX_WITH_CROGL VBOX_LIB_OGL_HOSTCRUTIL = $(PATH_BIN)/VBoxOGLhostcrutil$(VBOX_SUFF_DLL) endif + if1of ($(KBUILD_TARGET),linux solaris) + # VBOX_PATH_MESA_SOURCE = $(PATH_ROOT)/src/libs/mesa-7.2 + VBOX_PATH_MESA_SOURCE = $(VBOX_PATH_X11_ROOT)/mesa-7.2 + VBOX_MESA_INCS = \ + $(VBOX_PATH_MESA_SOURCE) \ + $(VBOX_PATH_MESA_SOURCE)/include \ + $(VBOX_PATH_MESA_SOURCE)/src/mesa/ \ + $(VBOX_PATH_MESA_SOURCE)/src/mesa/glapi \ + $(VBOX_PATH_MESA_SOURCE)/src/mesa/main \ + $(VBOX_PATH_MESA_SOURCE)/src/mesa/drivers/dri/common + endif + VBOX_DARWIN_OPENGL_INST = obj/VBoxOGL/GL/ VBOX_DARWIN_OPENGL_HEADERS = gl.h glu.h SDK_DARWIN-OPENGL = Workaround SDK for the darwin OpenGL include directorly layout layout. @@ -1981,14 +1999,14 @@ endif if1of ($(KBUILD_TARGET), linux) ifeq ($(origin VBOX_LINUX_SRC),undefined) ifneq ($(wildcard /lib/modules/$(shell uname -r)/build/include/linux/autoconf.h),) - export VBOX_LINUX_SRC := /lib/modules/$(shell uname -r)/build + export VBOX_LINUX_SRC := /lib/modules/$(shell uname -r)/build else - export VBOX_LINUX_SRC := /usr/src/linux + export VBOX_LINUX_SRC := /usr/src/linux endif endif ifneq ($(VBOX_LINUX_SRC),) ifeq ($(origin VBOX_LINUX_INCS),undefined) - export VBOX_LINUX_INCS := $(VBOX_LINUX_SRC)/include + export VBOX_LINUX_INCS := $(VBOX_LINUX_SRC)/include # XXX hack alert! support splitted Linux kernels (make O=<build directory>) # XXX put this crap elsewhere kernelpath := $(shell $(SED_EXT) -ne 's+^KERNELSRC.*= *\(.*\)+\1+p' $(VBOX_LINUX_SRC)/Makefile) @@ -2004,17 +2022,26 @@ if1of ($(KBUILD_TARGET), linux) endif endif ifneq ($(kernelpath),) - VBOX_LINUX_INCS += $(VBOX_LINUX_SRC)/include2 $(kernelpath)/include + VBOX_LINUX_INCS += $(VBOX_LINUX_SRC)/include2 $(kernelpath)/include else kernelpath := $(VBOX_LINUX_SRC) endif - VBOX_LINUX_INCS += $(kernelpath)/include/asm-i386/mach-default \ - $(kernelpath)/include/asm-x86/mach-default \ - $(kernelpath)/arch/x86/include \ - $(kernelpath)/arch/x86/include/asm/mach-default \ - $(kernelpath)/include + VBOX_LINUX_INCS += $(kernelpath)/include/asm-i386/mach-default \ + $(kernelpath)/include/asm-x86/mach-default \ + $(kernelpath)/arch/x86/include \ + $(kernelpath)/arch/x86/include/asm/mach-default \ + $(kernelpath)/include endif endif + # Since Linux 2.6.15, <linux/autoconf.h> is included like this. It cannot hurt to do the + # same for older Linux kernels + ifneq ($(wildcard $(VBOX_LINUX_SRC)/include/linux/autoconf.h),) + # Linux < 2.6.33 + export VBOX_LINUX_INCLUDE := -include $(VBOX_LINUX_SRC)/include/linux/autoconf.h + else ifneq ($(wildcard $(VBOX_LINUX_SRC)/include/generated/autoconf.h),) + # Linux >= 2.6.33 + export VBOX_LINUX_INCLUDE := -include $(VBOX_LINUX_SRC)/include/generated/autoconf.h + endif endif # @@ -2273,7 +2300,7 @@ ifeq ($(KBUILD_TARGET),linux) TEMPLATE_VBOXR0DRV_TOOL = $(VBOX_GCC_TOOL) TEMPLATE_VBOXR0DRV_DEFS = __KERNEL__ MODULE IN_RING0 IN_RT_R0 TEMPLATE_VBOXR0DRV_INCS = $(VBOX_LINUX_INCS) -TEMPLATE_VBOXR0DRV_CFLAGS = -nostdinc -iwithprefix include \ +TEMPLATE_VBOXR0DRV_CFLAGS = -nostdinc -iwithprefix include $(VBOX_LINUX_INCLUDE) \ $(VBOX_GCC_WARN) -Wstrict-prototypes $(VBOX_GCC_Wno-pointer-sign) -Wno-sign-compare \ $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-common TEMPLATE_VBOXR0DRV_CFLAGS.x86 = -mpreferred-stack-boundary=2 -msoft-float @@ -3781,7 +3808,8 @@ VBOX_LIB_VBGL_R0 = $(VBOX_PATH_ADDITIONS_LIB)/VBoxGuestR0Lib$(VB # only way to get a really consistent build is to run 'kmk' in the top-level # directory. If you don't run it there, you get a consistent sub-tree only. # -VBOX_VERSION_STAMP = $(PATH_OUT)/version-stamp-$(VBOX_VERSION_STRING) +VBOX_BAD_CHAR_SET = ,;:/\$(SP)$(TAB)$(HASH)=![]@%&''()*""<>?^{}|~ +VBOX_VERSION_STAMP = $(PATH_OUT)/version-stamp-$(translate $(VBOX_VERSION_STRING)-$(VBOX_C_YEAR)-$(VBOX_VENDOR)-$(VBOX_PRODUCT),$(VBOX_BAD_CHAR_SET),,_) VBOX_VERSION_HEADER = $(PATH_OUT)/version-generated.h VBOX_VERSION_MK = $(PATH_OUT)/version-generated.mk @@ -3821,6 +3849,22 @@ $(VBOX_PACKAGE_HEADER): $(QUIET)$(APPEND) $@.tmp '#endif' $(QUIET)$(MV) -f $@.tmp $@ +VBOX_PRODUCT_HEADER = $(PATH_OUT)/product-generated.h + +$(VBOX_PRODUCT_HEADER): $(VBOX_VERSION_STAMP) + $(call MSG_GENERATE,,$@) + $(QUIET)$(MKDIR) -p $(@D) + $(QUIET)$(RM) -f $@ $@.tmp + $(QUIET)$(APPEND) $@.tmp '#ifndef ___product_generated_h___' + $(QUIET)$(APPEND) $@.tmp '#define ___product_generated_h___' + $(QUIET)$(APPEND) $@.tmp '' + $(QUIET)$(APPEND) $@.tmp '#define VBOX_VENDOR "$(VBOX_VENDOR)"' + $(QUIET)$(APPEND) $@.tmp '#define VBOX_PRODUCT "$(VBOX_PRODUCT)"' + $(QUIET)$(APPEND) $@.tmp '#define VBOX_C_YEAR "$(VBOX_C_YEAR)"' + $(QUIET)$(APPEND) $@.tmp '' + $(QUIET)$(APPEND) $@.tmp '#endif' + $(QUIET)$(MV) -f $@.tmp $@ + # # Used for external makefiles which cannot include Config.kmk # @@ -3832,6 +3876,9 @@ $(VBOX_VERSION_MK): $(VBOX_VERSION_STAMP) $(QUIET)$(APPEND) $@.tmp 'VBOX_VERSION_MINOR = $(VBOX_VERSION_MINOR)' $(QUIET)$(APPEND) $@.tmp 'VBOX_VERSION_BUILD = $(VBOX_VERSION_BUILD)' $(QUIET)$(APPEND) $@.tmp 'VBOX_VERSION_STRING = $(VBOX_VERSION_STRING)' + $(QUIET)$(APPEND) $@.tmp 'VBOX_VENDOR = $(VBOX_VENDOR)' + $(QUIET)$(APPEND) $@.tmp 'VBOX_PRODUCT = $(VBOX_PRODUCT)' + $(QUIET)$(APPEND) $@.tmp 'VBOX_C_YEAR = $(VBOX_C_YEAR)' $(QUIET)$(MV) -f $@.tmp $@ if !defined(VBOX_OSE) && !defined(VBOX_NOINC_LICENSE_VER_KMK) @@ -3860,7 +3907,7 @@ ifndef VBOX_NOINC_MISC # Force building of the version header file as the first thing anywhere in # the tree. This eliminates the need for manual dependencies on it. ## @todo there gotta be a better way of doing this. -Makefile.kmk: | $(VBOX_VERSION_HEADER) $(VBOX_VERSION_MK) $(VBOX_PACKAGE_HEADER) +Makefile.kmk: | $(VBOX_VERSION_HEADER) $(VBOX_VERSION_MK) $(VBOX_PRODUCT_HEADER) $(VBOX_PACKAGE_HEADER) endif @@ -3874,7 +3921,7 @@ endif SVN ?= svn$(HOSTSUFF_EXE) VBOX_SVN_REV_KMK = $(PATH_OUT)/revision.kmk ifndef VBOX_SVN_REV - VBOX_SVN_REV_FALLBACK := $(patsubst %:,, $Rev: 56127 $ ) + VBOX_SVN_REV_FALLBACK := $(patsubst %:,, $Rev: 57640 $ ) VBOX_SVN_DEP := $(wildcard $(PATH_ROOT)/.svn/entries) ifeq ($(which $(SVN)),) VBOX_SVN_DEP := diff --git a/Makefile.kmk b/Makefile.kmk index 8a87b5e3a..18be3d9c6 100644 --- a/Makefile.kmk +++ b/Makefile.kmk @@ -754,10 +754,10 @@ additions-build-solaris.x86: additions-build-solaris.amd64 + $(VBOX_KMK_TIME) $(KMK) $(VBOX_ADDITIONS_BUILD.x86) VBOX_WITH_COMBINED_SOLARIS_GUEST_PACKAGE=1 packing else -additions-build-solaris.rsync-into-vm: +additions-build-solaris.rsync-into-vm: $(VBOX_ADDITIONS_BUILD_WIN_HOST_FIRST) $(VBOX_KMK_TIME) rsync -a --delete --delete-excluded --exclude .svn --exclude FetchDir --exclude tinderclient.log --exclude win.amd64 --exclude win.x86 . 192.168.27.4:/mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) -additions-build-solaris.build-it: $(VBOX_ADDITIONS_BUILD_WIN_HOST_FIRST) +additions-build-solaris.build-it: additions-build-solaris.rsync-into-vm $(call MSG_L1,Building Solaris/amd64 additions) $(VBOX_KMK_TIME) ssh vbox@192.168.27.4 " echo $@/amd64 && cd /mnt/tinderbox/$(VBOX_ADDITIONS_BUILD_SUBDIRNAME) && tools/env.sh --no-wine kmk $(VBOX_ADDITIONS_BUILD.amd64) all packing" $(call MSG_L1,Building Solaris/x86 additions) @@ -612,7 +612,7 @@ check_mkisofs() # -# Check for libxml2, needed by VBoxSettings +# Check for libxml2, needed by VBoxSettings and Runtime. # 2.6.24 is known to NOT work, 2.6.26 is known to work (there is no 2.6.25 release) # check_libxml2() @@ -2114,6 +2114,9 @@ for option in $*; do --disable-pulse) [ $WITH_PULSE -eq 1 ] && WITH_PULSE=0 ;; + --enable-pulse) + WITH_PULSE=2 + ;; --disable-dbus) [ $WITH_DBUS -eq 1 ] && WITH_DBUS=0 ;; @@ -2297,7 +2300,7 @@ check_gcc # the libraries [ "$OS" != "darwin" ] && check_pthread -[ $WITH_XPCOM -eq 1 ] && check_libxml2 +check_libxml2 [ $WITH_XPCOM -eq 1 ] && check_libxslt [ $WITH_LIBIDL -eq 1 ] && check_libidl check_ssl @@ -2334,7 +2337,7 @@ if [ "$OS" = "linux" ]; then fi if [ $WITH_PULSE -eq 1 ]; then check_pulse - else + elif [ $WITH_PULSE -eq 0 ]; then cnf_append "VBOX_WITH_PULSE" "" fi if [ $WITH_DBUS -eq 0 ]; then diff --git a/configure.vbs b/configure.vbs index 2da4f21c1..dbba81be2 100644 --- a/configure.vbs +++ b/configure.vbs @@ -9,20 +9,20 @@ '
'
-' Copyright (C) 2006-2007 Sun Microsystems, Inc.
-'
-' This file is part of VirtualBox Open Source Edition (OSE), as
-' available from http://www.virtualbox.org. This file is free software;
-' you can redistribute it and/or modify it under the terms of the GNU
-' General Public License (GPL) as published by the Free Software
-' Foundation, in version 2 as it comes in the "COPYING" file of the
-' VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-' hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-'
-' Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
-' Clara, CA 95054 USA or visit http://www.sun.com if you need
-' additional information or have any questions.
-'
+' Copyright (C) 2006-2007 Sun Microsystems, Inc. +' +' This file is part of VirtualBox Open Source Edition (OSE), as +' available from http://www.virtualbox.org. This file is free software; +' you can redistribute it and/or modify it under the terms of the GNU +' General Public License (GPL) as published by the Free Software +' Foundation, in version 2 as it comes in the "COPYING" file of the +' VirtualBox OSE distribution. VirtualBox OSE is distributed in the +' hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +' +' Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa +' Clara, CA 95054 USA or visit http://www.sun.com if you need +' additional information or have any questions. +' '*****************************************************************************
diff --git a/include/VBox/cpum.h b/include/VBox/cpum.h index 050448101..0dce5b896 100644 --- a/include/VBox/cpum.h +++ b/include/VBox/cpum.h @@ -978,11 +978,11 @@ VMMR3DECL(int) CPUMR3Term(PVM pVM); VMMR3DECL(int) CPUMR3TermCPU(PVM pVM); VMMR3DECL(void) CPUMR3Reset(PVM pVM); VMMR3DECL(void) CPUMR3ResetCpu(PVMCPU pVCpu); +VMMDECL(bool) CPUMR3IsStateRestorePending(PVM pVM); # ifdef DEBUG VMMR3DECL(void) CPUMR3SaveEntryCtx(PVM pVM); # endif VMMR3DECL(int) CPUMR3SetCR4Feature(PVM pVM, RTHCUINTREG fOr, RTHCUINTREG fAnd); - VMMR3DECL(RCPTRTYPE(PCCPUMCPUID)) CPUMR3GetGuestCpuIdStdRCPtr(PVM pVM); VMMR3DECL(RCPTRTYPE(PCCPUMCPUID)) CPUMR3GetGuestCpuIdExtRCPtr(PVM pVM); VMMR3DECL(RCPTRTYPE(PCCPUMCPUID)) CPUMR3GetGuestCpuIdCentaurRCPtr(PVM pVM); diff --git a/include/VBox/err.h b/include/VBox/err.h index 011b0b944..7314dbe0d 100644 --- a/include/VBox/err.h +++ b/include/VBox/err.h @@ -3,7 +3,7 @@ */ /* - * Copyright (C) 2006-2007 Sun Microsystems, Inc. + * Copyright (C) 2006-2009 Sun Microsystems, Inc. * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -464,6 +464,8 @@ #define VERR_PGM_HANDLER_ALREADY_ALIASED (-1643) /** Already aliased to the same page. */ #define VINF_PGM_HANDLER_ALREADY_ALIASED (1643) +/** PGM pool flush pending - return to ring 3. */ +#define VINF_PGM_POOL_FLUSH_PENDING (1644) /** @} */ @@ -560,7 +562,7 @@ #define VERR_SSM_IDE_ASYNC_TIMEOUT (-1846) /** One of the structure magics was wrong. */ #define VERR_SSM_STRUCTURE_MAGIC (-1847) -/** The data in the saved state doesn't confirm to expectations. */ +/** The data in the saved state doesn't conform to expectations. */ #define VERR_SSM_UNEXPECTED_DATA (-1848) /** Trying to read a 64-bit guest physical address into a 32-bit variable. */ #define VERR_SSM_GCPHYS_OVERFLOW (-1849) @@ -1491,6 +1493,13 @@ #define VERR_COM_OBJECT_IN_USE (-4612) /** @} */ +/** @name VBox CPU hotplug Status codes + * @{ + */ +/** CPU hotplug events from VMMDev are not monitored by the guest */ +#define VERR_CPU_HOTPLUG_NOT_MONITORED_BY_GUEST (-4700) +/** @} */ + /* SED-END */ diff --git a/include/VBox/pgm.h b/include/VBox/pgm.h index 455cb65b4..67bbebc74 100644 --- a/include/VBox/pgm.h +++ b/include/VBox/pgm.h @@ -305,7 +305,6 @@ VMMDECL(int) PGMMapSetPage(PVM pVM, RTGCPTR GCPtr, uint64_t cb, uint64_t VMMDECL(int) PGMMapModifyPage(PVM pVM, RTGCPTR GCPtr, size_t cb, uint64_t fFlags, uint64_t fMask); #ifndef IN_RING0 VMMDECL(bool) PGMMapHasConflicts(PVM pVM); -VMMDECL(int) PGMMapResolveConflicts(PVM pVM); #endif #ifdef VBOX_STRICT VMMDECL(void) PGMMapCheck(PVM pVM); @@ -486,10 +485,11 @@ VMMDECL(void) PGMR3PhysSetA20(PVMCPU pVCpu, bool fEnable); VMMR3DECL(int) PGMR3MapPT(PVM pVM, RTGCPTR GCPtr, uint32_t cb, uint32_t fFlags, PFNPGMRELOCATE pfnRelocate, void *pvUser, const char *pszDesc); VMMR3DECL(int) PGMR3UnmapPT(PVM pVM, RTGCPTR GCPtr); VMMR3DECL(int) PGMR3FinalizeMappings(PVM pVM); +VMMR3DECL(int) PGMR3MappingsDisable(PVM pVM); VMMR3DECL(int) PGMR3MappingsSize(PVM pVM, uint32_t *pcb); VMMR3DECL(int) PGMR3MappingsFix(PVM pVM, RTGCPTR GCPtrBase, uint32_t cb); VMMR3DECL(int) PGMR3MappingsUnfix(PVM pVM); -VMMR3DECL(int) PGMR3MappingsDisable(PVM pVM); +VMMR3DECL(bool) PGMR3MappingsNeedReFixing(PVM pVM); VMMR3DECL(int) PGMR3MapIntermediate(PVM pVM, RTUINTPTR Addr, RTHCPHYS HCPhys, unsigned cbPages); VMMR3DECL(int) PGMR3MapRead(PVM pVM, void *pvDst, RTGCPTR GCPtrSrc, size_t cb); diff --git a/include/VBox/version.h b/include/VBox/version.h index 57ba57197..70ed8e2d1 100644 --- a/include/VBox/version.h +++ b/include/VBox/version.h @@ -30,6 +30,9 @@ #ifndef ___VBox_version_h #define ___VBox_version_h +/** Product info */ +#include <product-generated.h> + #ifndef RC_INVOKED # include <version-generated.h> @@ -69,9 +72,6 @@ #endif /* !RC_INVOKED */ -/** Vendor name */ -#define VBOX_VENDOR "Sun Microsystems, Inc." - /** @name Prefined strings for Windows resource files * * @remarks The VBOX_VERSION_*_NR define are integer numbers while diff --git a/include/VBox/vm.h b/include/VBox/vm.h index 9b67f1a7f..fbee2c008 100644 --- a/include/VBox/vm.h +++ b/include/VBox/vm.h @@ -289,6 +289,10 @@ typedef struct VMCPU * Abandon all loops and code paths which can be resumed and get up to the EM * loops. */ #define VM_FF_PGM_NO_MEMORY RT_BIT_32(19) + /** PGM is about to perform a lightweight pool flush + * Guest SMP: all EMT threads should return to ring 3 + */ +#define VM_FF_PGM_POOL_FLUSH_PENDING RT_BIT_32(20) /** REM needs to be informed about handler changes. */ #define VM_FF_REM_HANDLER_NOTIFY RT_BIT_32(VM_FF_REM_HANDLER_NOTIFY_BIT) /** The bit number for VM_FF_REM_HANDLER_NOTIFY. */ diff --git a/include/iprt/cdefs.h b/include/iprt/cdefs.h index ad44141b1..87d521c71 100644 --- a/include/iprt/cdefs.h +++ b/include/iprt/cdefs.h @@ -1132,6 +1132,15 @@ */ #define RT_MIN(Value1, Value2) ( (Value1) <= (Value2) ? (Value1) : (Value2) ) +/** @def RT_CLAMP + * Clamps the value to minimum and maximum values. + * @returns The clamped value. + * @param Value The value to check. + * @param Min Minimum value. + * @param Max Maximum value. + */ +#define RT_CLAMP(Value, Min, Max) ( ((Value) > (Max)) ? (Max) : (((Value) < (Min)) ? (Min) : (Value)) ) + /** @def RT_ABS * Get the absolute (non-negative) value. * @returns The absolute value of Value. diff --git a/include/iprt/time.h b/include/iprt/time.h index 8f79cd883..1fef7fe85 100644 --- a/include/iprt/time.h +++ b/include/iprt/time.h @@ -354,7 +354,7 @@ DECLINLINE(struct timeval *) RTTimeSpecGetTimeval(PCRTTIMESPEC pTime, struct tim if (i32Micro < 0) { i32Micro += 1000000; - i64++; + i64--; } pTimeval->tv_sec = (time_t)i64; pTimeval->tv_usec = i32Micro; diff --git a/include/iprt/types.h b/include/iprt/types.h index cac3a983f..bdf561eba 100644 --- a/include/iprt/types.h +++ b/include/iprt/types.h @@ -97,7 +97,9 @@ # define true linux_true # define false linux_false # define uintptr_t linux_uintptr_t -# include <linux/autoconf.h> +# ifndef AUTOCONF_INCLUDED +# include <linux/autoconf.h> +# endif # include <linux/types.h> # include <linux/stddef.h> # undef uintptr_t diff --git a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-solaris.c b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-solaris.c index 758251783..667441238 100644 --- a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-solaris.c +++ b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-solaris.c @@ -185,7 +185,25 @@ static kmutex_t g_IrqMtx; int _init(void) { LogFlow((DEVICE_NAME ":_init\n")); - int rc = ddi_soft_state_init(&g_pVBoxGuestSolarisState, sizeof(vboxguest_state_t), 1); + + /* + * Prevent module autounloading. + */ + modctl_t *pModCtl = mod_getctl(&g_VBoxGuestSolarisModLinkage); + if (pModCtl) + pModCtl->mod_loadflags |= MOD_NOAUTOUNLOAD; + else + LogRel((DEVICE_NAME ":failed to disable autounloading!\n")); + + PRTLOGGER pRelLogger; + static const char * const s_apszGroups[] = VBOX_LOGGROUP_NAMES; + int rc = RTLogCreate(&pRelLogger, 0 /* fFlags */, "all", + "VBOX_RELEASE_LOG", RT_ELEMENTS(s_apszGroups), s_apszGroups, + RTLOGDEST_STDOUT | RTLOGDEST_DEBUGGER, NULL); + if (RT_SUCCESS(rc)) + RTLogRelSetDefaultInstance(pRelLogger); + + rc = ddi_soft_state_init(&g_pVBoxGuestSolarisState, sizeof(vboxguest_state_t), 1); if (!rc) { rc = mod_install(&g_VBoxGuestSolarisModLinkage); @@ -202,6 +220,10 @@ int _fini(void) int rc = mod_remove(&g_VBoxGuestSolarisModLinkage); if (!rc) ddi_soft_state_fini(&g_pVBoxGuestSolarisState); + + RTLogDestroy(RTLogRelSetDefaultInstance(NULL)); + RTLogDestroy(RTLogSetDefaultInstance(NULL)); + return rc; } @@ -419,7 +441,7 @@ static int VBoxGuestSolarisGetInfo(dev_info_t *pDip, ddi_info_cmd_t enmCmd, void static int VBoxGuestSolarisOpen(dev_t *pDev, int fFlag, int fType, cred_t *pCred) { int rc; - PVBOXGUESTSESSION pSession; + PVBOXGUESTSESSION pSession = NULL; LogFlow((DEVICE_NAME "::Open\n")); @@ -471,7 +493,7 @@ static int VBoxGuestSolarisClose(dev_t Dev, int flag, int fType, cred_t *pCred) { LogFlow((DEVICE_NAME "::Close pid=%d\n", (int)RTProcSelf())); - PVBOXGUESTSESSION pSession; + PVBOXGUESTSESSION pSession = NULL; vboxguest_state_t *pState = ddi_get_soft_state(g_pVBoxGuestSolarisState, getminor(Dev)); if (!pState) { @@ -502,7 +524,6 @@ static int VBoxGuestSolarisRead(dev_t Dev, struct uio *pUio, cred_t *pCred) { LogFlow((DEVICE_NAME "::Read\n")); - PVBOXGUESTSESSION pSession; vboxguest_state_t *pState = ddi_get_soft_state(g_pVBoxGuestSolarisState, getminor(Dev)); if (!pState) { @@ -510,6 +531,7 @@ static int VBoxGuestSolarisRead(dev_t Dev, struct uio *pUio, cred_t *pCred) return EFAULT; } + PVBOXGUESTSESSION pSession = pState->pSession; uint32_t u32CurSeq = ASMAtomicUoReadU32(&g_DevExt.u32MousePosChangedSeq); if (pSession->u32MousePosChangedSeq != u32CurSeq) pSession->u32MousePosChangedSeq = u32CurSeq; @@ -556,14 +578,14 @@ static int VBoxGuestSolarisIOCtl(dev_t Dev, int Cmd, intptr_t pArg, int Mode, cr vboxguest_state_t *pState = ddi_get_soft_state(g_pVBoxGuestSolarisState, getminor(Dev)); if (!pState) { - Log((DEVICE_NAME "::IOCtl: no state data for %d\n", getminor(Dev))); + LogRel((DEVICE_NAME "::IOCtl: no state data for %d\n", getminor(Dev))); return EINVAL; } PVBOXGUESTSESSION pSession = pState->pSession; if (!pSession) { - Log((DEVICE_NAME "::IOCtl: no session data for %d\n", getminor(Dev))); + LogRel((DEVICE_NAME "::IOCtl: no session data for %d\n", getminor(Dev))); return EINVAL; } @@ -580,19 +602,19 @@ static int VBoxGuestSolarisIOCtl(dev_t Dev, int Cmd, intptr_t pArg, int Mode, cr int rc = ddi_copyin((void *)pArg, &ReqWrap, sizeof(ReqWrap), Mode); if (RT_UNLIKELY(rc)) { - LogRel((DEVICE_NAME "::IOCtl: ddi_copyin failed to read header pArg=%p Cmd=%d. rc=%d.\n", pArg, Cmd, rc)); + LogRel((DEVICE_NAME "::IOCtl: ddi_copyin failed to read header pArg=%p Cmd=%d. rc=%#x.\n", pArg, Cmd, rc)); return EINVAL; } if (ReqWrap.u32Magic != VBGLBIGREQ_MAGIC) { - LogRel((DEVICE_NAME "::IOCtl: bad magic %#x; pArg=%p Cmd=%d.\n", ReqWrap.u32Magic, pArg, Cmd)); + LogRel((DEVICE_NAME "::IOCtl: bad magic %#x; pArg=%p Cmd=%#x.\n", ReqWrap.u32Magic, pArg, Cmd)); return EINVAL; } if (RT_UNLIKELY( ReqWrap.cbData == 0 || ReqWrap.cbData > _1M*16)) { - Log((DEVICE_NAME "::IOCtl: bad size %#x; pArg=%p Cmd=%d.\n", ReqWrap.cbData, pArg, Cmd)); + LogRel((DEVICE_NAME "::IOCtl: bad size %#x; pArg=%p Cmd=%#x.\n", ReqWrap.cbData, pArg, Cmd)); return EINVAL; } @@ -648,7 +670,10 @@ static int VBoxGuestSolarisIOCtl(dev_t Dev, int Cmd, intptr_t pArg, int Mode, cr } else { - LogRel((DEVICE_NAME "::IOCtl: VBoxGuestCommonIOCtl failed. rc=%d\n", rc)); + if (rc != VERR_INTERRUPTED) + LogRel((DEVICE_NAME "::IOCtl: VBoxGuestCommonIOCtl failed. rc=%d\n", rc)); + else + Log((DEVICE_NAME "::IOCtl: VBoxGuestCommonIOCtl failed. rc=%d\n", rc)); rc = RTErrConvertToErrno(rc); } *pVal = rc; diff --git a/src/VBox/Additions/common/VBoxGuest/VBoxGuest.cpp b/src/VBox/Additions/common/VBoxGuest/VBoxGuest.cpp index b0cc551c9..22947287f 100644 --- a/src/VBox/Additions/common/VBoxGuest/VBoxGuest.cpp +++ b/src/VBox/Additions/common/VBoxGuest/VBoxGuest.cpp @@ -155,7 +155,7 @@ static int vboxGuestInitFixateGuestMappings(PVBOXGUESTDEVEXT pDevExt) if (RT_SUCCESS(rc)) { pDevExt->hGuestMappings = hFictive != NIL_RTR0MEMOBJ ? hFictive : hObj; - LogRel(("VBoxGuest: %p LB %#x; uAlignment=%#x iTry=%u hGuestMappings=%p (%s)\n", + Log(("VBoxGuest: %p LB %#x; uAlignment=%#x iTry=%u hGuestMappings=%p (%s)\n", RTR0MemObjAddress(pDevExt->hGuestMappings), RTR0MemObjSize(pDevExt->hGuestMappings), uAlignment, iTry, pDevExt->hGuestMappings, hFictive != NIL_RTR0PTR ? "fictive" : "reservation")); @@ -1307,7 +1307,7 @@ static int VBoxGuestCommonIOCtl_HGCMCall(PVBOXGUESTDEVEXT pDevExt, */ if (pInfo->cParms > 4096) /* (Just make sure it doesn't overflow the next check.) */ { - Log(("VBoxGuestCommonIOCtl: HGCM_CALL: cParm=%RX32 is not sane\n", pInfo->cParms)); + LogRel(("VBoxGuestCommonIOCtl: HGCM_CALL: cParm=%RX32 is not sane\n", pInfo->cParms)); return VERR_INVALID_PARAMETER; } size_t cbActual = cbExtra + sizeof(*pInfo); @@ -1319,7 +1319,7 @@ static int VBoxGuestCommonIOCtl_HGCMCall(PVBOXGUESTDEVEXT pDevExt, cbActual += pInfo->cParms * sizeof(HGCMFunctionParameter); if (cbData < cbActual) { - Log(("VBoxGuestCommonIOCtl: HGCM_CALL: cbData=%#zx (%zu) required size is %#zx (%zu)\n", + LogRel(("VBoxGuestCommonIOCtl: HGCM_CALL: cbData=%#zx (%zu) required size is %#zx (%zu)\n", cbData, cbActual)); return VERR_INVALID_PARAMETER; } @@ -1375,7 +1375,12 @@ static int VBoxGuestCommonIOCtl_HGCMCall(PVBOXGUESTDEVEXT pDevExt, *pcbDataReturned = cbActual; } else - Log(("VBoxGuestCommonIOCtl: HGCM_CALL: Failed. rc=%Rrc.\n", rc)); + { + if (rc != VERR_INTERRUPTED) + LogRel(("VBoxGuestCommonIOCtl: HGCM_CALL: %s Failed. rc=%Rrc.\n", f32bit ? "32" : "64", rc)); + else + Log(("VBoxGuestCommonIOCtl: HGCM_CALL: %s Failed. rc=%Rrc.\n", f32bit ? "32" : "64", rc)); + } return rc; } @@ -1497,7 +1502,7 @@ int VBoxGuestCommonIOCtl(unsigned iFunction, PVBOXGUESTDEVEXT pDevExt, PVBOXGUES do { \ if (pSession->R0Process != NIL_RTR0PROCESS) \ { \ - Log(("VBoxGuestCommonIOCtl: " mnemonic ": Ring-0 only, caller is %RTproc/%p\n", \ + LogRel(("VBoxGuestCommonIOCtl: " mnemonic ": Ring-0 only, caller is %RTproc/%p\n", \ pSession->Process, (uintptr_t)pSession->R0Process)); \ return VERR_PERMISSION_DENIED; \ } \ @@ -1506,13 +1511,13 @@ int VBoxGuestCommonIOCtl(unsigned iFunction, PVBOXGUESTDEVEXT pDevExt, PVBOXGUES do { \ if (cbData < (cbMin)) \ { \ - Log(("VBoxGuestCommonIOCtl: " mnemonic ": cbData=%#zx (%zu) min is %#zx (%zu)\n", \ + LogRel(("VBoxGuestCommonIOCtl: " mnemonic ": cbData=%#zx (%zu) min is %#zx (%zu)\n", \ cbData, cbData, (size_t)(cbMin), (size_t)(cbMin))); \ return VERR_BUFFER_OVERFLOW; \ } \ if ((cbMin) != 0 && !VALID_PTR(pvData)) \ { \ - Log(("VBoxGuestCommonIOCtl: " mnemonic ": Invalid pointer %p\n", pvData)); \ + LogRel(("VBoxGuestCommonIOCtl: " mnemonic ": Invalid pointer %p\n", pvData)); \ return VERR_INVALID_POINTER; \ } \ } while (0) @@ -1625,7 +1630,7 @@ int VBoxGuestCommonIOCtl(unsigned iFunction, PVBOXGUESTDEVEXT pDevExt, PVBOXGUES default: { - Log(("VBoxGuestCommonIOCtl: Unknown request iFunction=%#x Stripped size=%#x\n", iFunction, + LogRel(("VBoxGuestCommonIOCtl: Unknown request iFunction=%#x Stripped size=%#x\n", iFunction, VBOXGUEST_IOCTL_STRIP_SIZE(iFunction))); rc = VERR_NOT_SUPPORTED; break; diff --git a/src/VBox/Additions/common/VBoxGuest/linux/Makefile b/src/VBox/Additions/common/VBoxGuest/linux/Makefile index 4ad857fa9..660eaaf34 100644 --- a/src/VBox/Additions/common/VBoxGuest/linux/Makefile +++ b/src/VBox/Additions/common/VBoxGuest/linux/Makefile @@ -1,4 +1,4 @@ -# $Revision: 55459 $ +# $Revision: 57025 $ ## @file # VirtualBox Guest Additions Module Makefile. # @@ -233,6 +233,10 @@ ifeq ($(KERN_VERSION), 24) # 2.4 # +ifeq ($(BUILD_TARGET_ARCH),amd64) + KFLAGS += -mcmodel=kernel +endif + CFLAGS := -O2 -DVBOX_LINUX_2_4 -DEXPORT_SYMTAB $(INCL) $(KFLAGS) $(KDEBUG) MODULE_EXT := o diff --git a/src/VBox/Additions/common/VBoxGuestLib/GenericRequest.cpp b/src/VBox/Additions/common/VBoxGuestLib/GenericRequest.cpp index 4d565b80f..74de45480 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/GenericRequest.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/GenericRequest.cpp @@ -1,4 +1,4 @@ -/* $Revision: 53721 $ */ +/* $Revision: 57546 $ */ /** @file * VBoxGuestLibR0 - Generic VMMDev request management. */ @@ -14,6 +14,15 @@ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 USA or visit http://www.sun.com if you need * additional information or have any questions. diff --git a/src/VBox/Additions/common/VBoxGuestLib/HGCM.cpp b/src/VBox/Additions/common/VBoxGuestLib/HGCM.cpp index 9ae7cc931..f78da8a14 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/HGCM.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/HGCM.cpp @@ -1,4 +1,4 @@ -/* $Revision: 49879 $ */ +/* $Revision: 57546 $ */ /** @file * VBoxGuestLib - Host-Guest Communication Manager. * @@ -17,6 +17,15 @@ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 USA or visit http://www.sun.com if you need * additional information or have any questions. diff --git a/src/VBox/Additions/common/VBoxGuestLib/HGCMInternal.cpp b/src/VBox/Additions/common/VBoxGuestLib/HGCMInternal.cpp index ae56c16c8..f0799f67c 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/HGCMInternal.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/HGCMInternal.cpp @@ -1,4 +1,4 @@ -/* $Revision: 53284 $ */ +/* $Revision: 57546 $ */ /** @file * VBoxGuestLib - Host-Guest Communication Manager internal functions, implemented by VBoxGuest */ @@ -14,6 +14,15 @@ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 USA or visit http://www.sun.com if you need * additional information or have any questions. @@ -894,11 +903,18 @@ DECLR0VBGL(int) VbglR0HGCMInternalCall(VBoxGuestHGCMCallInfo *pCallInfo, uint32_ */ rc = vbglR0HGCMInternalCopyBackResult(pCallInfo, pHGCMCall, &ParmInfo, fIsUser, rc); } + else + { + if (rc != VERR_INTERRUPTED) + LogRel(("VbglR0HGCMInternalCall: vbglR0HGCMInternalDoCall failed. rc=%Rrc\n", rc)); + } if (!fLeakIt) VbglGRFree(&pHGCMCall->header.header); } } + else + LogRel(("VbglR0HGCMInternalCall: vbglR0HGCMInternalPreprocessCall failed. rc=%Rrc\n", rc)); /* * Release locks and free bounce buffers. @@ -920,12 +936,12 @@ DECLR0VBGL(int) VbglR0HGCMInternalCall(VBoxGuestHGCMCallInfo *pCallInfo, uint32_ DECLR0VBGL(int) VbglR0HGCMInternalCall32(VBoxGuestHGCMCallInfo *pCallInfo, uint32_t cbCallInfo, uint32_t fFlags, PFNVBGLHGCMCALLBACK pfnAsyncCallback, void *pvAsyncData, uint32_t u32AsyncData) { - VBoxGuestHGCMCallInfo *pCallInfo64; - HGCMFunctionParameter *pParm64; - HGCMFunctionParameter32 *pParm32; - uint32_t cParms; - uint32_t iParm; - int rc; + VBoxGuestHGCMCallInfo *pCallInfo64 = NULL; + HGCMFunctionParameter *pParm64 = NULL; + HGCMFunctionParameter32 *pParm32 = NULL; + uint32_t cParms = 0; + uint32_t iParm = 0; + int rc = VINF_SUCCESS; /* * Input validation. @@ -939,7 +955,11 @@ DECLR0VBGL(int) VbglR0HGCMInternalCall32(VBoxGuestHGCMCallInfo *pCallInfo, uint3 AssertReturn( cbCallInfo >= sizeof(VBoxGuestHGCMCallInfo) || cbCallInfo >= pCallInfo->cParms * sizeof(HGCMFunctionParameter32), VERR_INVALID_PARAMETER); - AssertReturn((fFlags & VBGLR0_HGCMCALL_F_MODE_MASK) == VBGLR0_HGCMCALL_F_KERNEL, VERR_INVALID_PARAMETER); + + /* This Assert does not work on Solaris 64/32 mixed mode, not sure why, skipping for now */ +#ifndef RT_OS_SOLARIS + AssertReturn((fFlags & VBGLR0_HGCMCALL_F_MODE_MASK) == VBGLR0_HGCMCALL_F_KERNEL, VERR_WRONG_ORDER); +#endif cParms = pCallInfo->cParms; Log(("VbglR0HGCMInternalCall32: cParms=%d, u32Function=%d, fFlags=%#x\n", cParms, pCallInfo->u32Function, fFlags)); @@ -978,6 +998,7 @@ DECLR0VBGL(int) VbglR0HGCMInternalCall32(VBoxGuestHGCMCallInfo *pCallInfo, uint3 default: rc = VERR_INVALID_PARAMETER; + LogRel(("VbglR0HGCMInternalCall32: pParm32 type %#x invalid.\n", pParm32->type)); break; } if (RT_FAILURE(rc)) @@ -988,34 +1009,46 @@ DECLR0VBGL(int) VbglR0HGCMInternalCall32(VBoxGuestHGCMCallInfo *pCallInfo, uint3 rc = VbglR0HGCMInternalCall(pCallInfo64, sizeof(*pCallInfo64) + cParms * sizeof(HGCMFunctionParameter), fFlags, pfnAsyncCallback, pvAsyncData, u32AsyncData); - /* - * Copy back. - */ - for (iParm = 0; iParm < cParms; iParm++, pParm32++, pParm64++) + if (RT_SUCCESS(rc)) { - switch (pParm32->type) + *pCallInfo = *pCallInfo64; + + /* + * Copy back. + */ + pParm32 = VBOXGUEST_HGCM_CALL_PARMS32(pCallInfo); + pParm64 = VBOXGUEST_HGCM_CALL_PARMS(pCallInfo64); + for (iParm = 0; iParm < cParms; iParm++, pParm32++, pParm64++) { - case VMMDevHGCMParmType_32bit: - pParm32->u.value32 = pParm32->u.value32; - break; + switch (pParm64->type) + { + case VMMDevHGCMParmType_32bit: + LogRel(("pParm32->u.value32=%d\n", pParm32->u.value32)); + pParm32->u.value32 = pParm64->u.value32; + break; - case VMMDevHGCMParmType_64bit: - pParm32->u.value64 = pParm64->u.value64; - break; + case VMMDevHGCMParmType_64bit: + pParm32->u.value64 = pParm64->u.value64; + break; - case VMMDevHGCMParmType_LinAddr_Out: - case VMMDevHGCMParmType_LinAddr: - case VMMDevHGCMParmType_LinAddr_In: - pParm32->u.Pointer.size = pParm64->u.Pointer.size; - break; + case VMMDevHGCMParmType_LinAddr_Out: + case VMMDevHGCMParmType_LinAddr: + case VMMDevHGCMParmType_LinAddr_In: + pParm32->u.Pointer.size = pParm64->u.Pointer.size; + break; - default: - rc = VERR_INTERNAL_ERROR_3; - break; + default: + LogRel(("VbglR0HGCMInternalCall32: failed invalid pParm32 type %d\n", pParm32->type)); + rc = VERR_INTERNAL_ERROR_3; + break; + } } } - *pCallInfo = *pCallInfo64; + else + LogRel(("VbglR0HGCMInternalCall32: VbglR0HGCMInternalCall failed. rc=%Rrc\n", rc)); } + else + LogRel(("VbglR0HGCMInternalCall32: failed. rc=%Rrc\n", rc)); RTMemTmpFree(pCallInfo64); return rc; diff --git a/src/VBox/Additions/common/VBoxGuestLib/Init.cpp b/src/VBox/Additions/common/VBoxGuestLib/Init.cpp index c7876b912..8211e0548 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/Init.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/Init.cpp @@ -1,4 +1,4 @@ -/* $Revision: 54331 $ */ +/* $Revision: 57546 $ */ /** @file * VBoxGuestLibR0 - Library initialization. */ @@ -14,6 +14,15 @@ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 USA or visit http://www.sun.com if you need * additional information or have any questions. diff --git a/src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk b/src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk index 1f9216182..e703ffda1 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk +++ b/src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk @@ -14,6 +14,15 @@ # VirtualBox OSE distribution. VirtualBox OSE is distributed in the # hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. # +# The contents of this file may alternatively be used under the terms +# of the Common Development and Distribution License Version 1.0 +# (CDDL) only, as it comes in the "COPYING.CDDL" file of the +# VirtualBox OSE distribution, in which case the provisions of the +# CDDL are applicable instead of those of the GPL. +# +# You may elect to license modified versions of this file under the +# terms and conditions of either the GPL or the CDDL or both. +# # Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa # Clara, CA 95054 USA or visit http://www.sun.com if you need # additional information or have any questions. diff --git a/src/VBox/Additions/common/VBoxGuestLib/PhysHeap.cpp b/src/VBox/Additions/common/VBoxGuestLib/PhysHeap.cpp index be3644e53..0033f8d5b 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/PhysHeap.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/PhysHeap.cpp @@ -1,4 +1,4 @@ -/* $Revision: 49522 $ */ +/* $Revision: 57546 $ */ /** @file * VBoxGuestLibR0 - Physical memory heap. */ @@ -14,6 +14,15 @@ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 USA or visit http://www.sun.com if you need * additional information or have any questions. diff --git a/src/VBox/Additions/common/VBoxGuestLib/SysHlp.cpp b/src/VBox/Additions/common/VBoxGuestLib/SysHlp.cpp index d122e96d8..254470f81 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/SysHlp.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/SysHlp.cpp @@ -1,4 +1,4 @@ -/* $Revision: 54273 $ */ +/* $Revision: 57546 $ */ /** @file * VBoxGuestLibR0 - IDC with VBoxGuest and HGCM helpers. */ @@ -14,6 +14,15 @@ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 USA or visit http://www.sun.com if you need * additional information or have any questions. diff --git a/src/VBox/Additions/common/VBoxGuestLib/SysHlp.h b/src/VBox/Additions/common/VBoxGuestLib/SysHlp.h index 40501a56c..83caf58ec 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/SysHlp.h +++ b/src/VBox/Additions/common/VBoxGuestLib/SysHlp.h @@ -1,4 +1,4 @@ -/* $Revision: 49791 $ */ +/* $Revision: 57546 $ */ /** @file * VBoxGuestLibR0 - System dependent helpers internal header. */ @@ -14,6 +14,15 @@ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 USA or visit http://www.sun.com if you need * additional information or have any questions. diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBGLInternal.h b/src/VBox/Additions/common/VBoxGuestLib/VBGLInternal.h index ddd7828b5..9854ca948 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBGLInternal.h +++ b/src/VBox/Additions/common/VBoxGuestLib/VBGLInternal.h @@ -1,4 +1,4 @@ -/* $Revision: 49879 $ */ +/* $Revision: 57546 $ */ /** @file * VBoxGuestLibR0 - Internal header. */ @@ -14,6 +14,15 @@ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 USA or visit http://www.sun.com if you need * additional information or have any questions. diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBGLR3Internal.h b/src/VBox/Additions/common/VBoxGuestLib/VBGLR3Internal.h index 055c85481..6f84e0c0f 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBGLR3Internal.h +++ b/src/VBox/Additions/common/VBoxGuestLib/VBGLR3Internal.h @@ -14,6 +14,15 @@ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 USA or visit http://www.sun.com if you need * additional information or have any questions. diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxCalls.c b/src/VBox/Additions/common/VBoxGuestLib/VBoxCalls.c index a854b8d90..0db764da4 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBoxCalls.c +++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxCalls.c @@ -1,4 +1,4 @@ -/* $Revision: 49961 $ */ +/* $Revision: 57546 $ */ /** @file * VBoxGuestLibR0 - Central calls. */ @@ -14,6 +14,15 @@ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 USA or visit http://www.sun.com if you need * additional information or have any questions. diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxCalls.h b/src/VBox/Additions/common/VBoxGuestLib/VBoxCalls.h index 492039a7e..77dc12236 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBoxCalls.h +++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxCalls.h @@ -13,6 +13,15 @@ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 USA or visit http://www.sun.com if you need * additional information or have any questions. diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestLog.h b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestLog.h index a0b4b29fd..bcafb0ac8 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestLog.h +++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestLog.h @@ -13,6 +13,15 @@ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 USA or visit http://www.sun.com if you need * additional information or have any questions. diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3Lib.cpp b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3Lib.cpp index a0e9a5624..4c1988a89 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3Lib.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3Lib.cpp @@ -14,6 +14,15 @@ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 USA or visit http://www.sun.com if you need * additional information or have any questions. diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibClipboard.cpp b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibClipboard.cpp index b6198fc9f..b7ce42acb 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibClipboard.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibClipboard.cpp @@ -14,6 +14,15 @@ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 USA or visit http://www.sun.com if you need * additional information or have any questions. diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibCredentials.cpp b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibCredentials.cpp index cb8d0a8c6..7129bf363 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibCredentials.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibCredentials.cpp @@ -14,6 +14,15 @@ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 USA or visit http://www.sun.com if you need * additional information or have any questions. diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibDaemonize.cpp b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibDaemonize.cpp index 5b3117d6e..1d57780e5 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibDaemonize.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibDaemonize.cpp @@ -14,6 +14,15 @@ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 USA or visit http://www.sun.com if you need * additional information or have any questions. diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibGR.cpp b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibGR.cpp index 1ab3aadeb..4073cec5d 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibGR.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibGR.cpp @@ -14,6 +14,15 @@ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 USA or visit http://www.sun.com if you need * additional information or have any questions. diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibGuestProp.cpp b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibGuestProp.cpp index bd17881df..e35a60df4 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibGuestProp.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibGuestProp.cpp @@ -14,6 +14,15 @@ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 USA or visit http://www.sun.com if you need * additional information or have any questions. diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibHostVersion.cpp b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibHostVersion.cpp index 67aa97c5b..2384e611a 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibHostVersion.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibHostVersion.cpp @@ -14,6 +14,15 @@ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 USA or visit http://www.sun.com if you need * additional information or have any questions. diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibMisc.cpp b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibMisc.cpp index 2d5237433..db9c1cbc6 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibMisc.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibMisc.cpp @@ -14,6 +14,15 @@ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 USA or visit http://www.sun.com if you need * additional information or have any questions. diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibMouse.cpp b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibMouse.cpp index 01b05e8dd..a7f3cee81 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibMouse.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibMouse.cpp @@ -14,6 +14,15 @@ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 USA or visit http://www.sun.com if you need * additional information or have any questions. diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibSeamless.cpp b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibSeamless.cpp index 90643a1e5..565d0e237 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibSeamless.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibSeamless.cpp @@ -14,6 +14,15 @@ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 USA or visit http://www.sun.com if you need * additional information or have any questions. diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibTime.cpp b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibTime.cpp index 7baf91ee7..aa6135ed2 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibTime.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibTime.cpp @@ -14,6 +14,15 @@ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 USA or visit http://www.sun.com if you need * additional information or have any questions. diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibVideo.cpp b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibVideo.cpp index fb5b720af..45694acc9 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibVideo.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibVideo.cpp @@ -14,6 +14,15 @@ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 USA or visit http://www.sun.com if you need * additional information or have any questions. diff --git a/src/VBox/Additions/common/VBoxGuestLib/VMMDev.cpp b/src/VBox/Additions/common/VBoxGuestLib/VMMDev.cpp index 40407187f..10bf6891f 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VMMDev.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/VMMDev.cpp @@ -13,6 +13,15 @@ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 USA or visit http://www.sun.com if you need * additional information or have any questions. diff --git a/src/VBox/Additions/common/VBoxGuestLib/VbglR0CanUsePhysPageList.cpp b/src/VBox/Additions/common/VBoxGuestLib/VbglR0CanUsePhysPageList.cpp index b3795fab7..95836ef0c 100644 --- a/src/VBox/Additions/common/VBoxGuestLib/VbglR0CanUsePhysPageList.cpp +++ b/src/VBox/Additions/common/VBoxGuestLib/VbglR0CanUsePhysPageList.cpp @@ -1,4 +1,4 @@ -/* $Revision: 49879 $ */ +/* $Revision: 57546 $ */ /** @file * VBoxGuestLibR0 - Physical memory heap. */ @@ -14,6 +14,15 @@ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. * + * The contents of this file may alternatively be used under the terms + * of the Common Development and Distribution License Version 1.0 + * (CDDL) only, as it comes in the "COPYING.CDDL" file of the + * VirtualBox OSE distribution, in which case the provisions of the + * CDDL are applicable instead of those of the GPL. + * + * You may elect to license modified versions of this file under the + * terms and conditions of either the GPL or the CDDL or both. + * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 USA or visit http://www.sun.com if you need * additional information or have any questions. diff --git a/src/VBox/Additions/common/VBoxService/VBoxService.cpp b/src/VBox/Additions/common/VBoxService/VBoxService.cpp index 6fefcad54..b852af303 100644 --- a/src/VBox/Additions/common/VBoxService/VBoxService.cpp +++ b/src/VBox/Additions/common/VBoxService/VBoxService.cpp @@ -30,14 +30,17 @@ #endif #include <errno.h> -#include <iprt/thread.h> -#include <iprt/string.h> -#include <iprt/stream.h> -#include <iprt/initterm.h> #include <iprt/asm.h> +#include <iprt/buildconfig.h> +#include <iprt/initterm.h> #include <iprt/path.h> -#include <VBox/log.h> +#include <iprt/string.h> +#include <iprt/stream.h> +#include <iprt/thread.h> + #include <VBox/VBoxGuestLib.h> +#include <VBox/log.h> + #include "VBoxServiceInternal.h" @@ -549,7 +552,8 @@ int main(int argc, char **argv) if (iMain == ~0U) return VBoxServiceSyntax("At least one service must be enabled.\n"); - VBoxServiceVerbose(0, "Started. Verbose level = %d\n", g_cVerbosity); + VBoxServiceVerbose(0, "%s r%s started. Verbose level = %d\n", + RTBldCfgVersion(), RTBldCfgRevisionStr(), g_cVerbosity); /* * Daemonize if requested. diff --git a/src/VBox/Additions/common/VBoxService/VBoxServiceExec.cpp b/src/VBox/Additions/common/VBoxService/VBoxServiceExec.cpp index 7dae914bb..a902d47c7 100644 --- a/src/VBox/Additions/common/VBoxService/VBoxServiceExec.cpp +++ b/src/VBox/Additions/common/VBoxService/VBoxServiceExec.cpp @@ -133,9 +133,9 @@ static int VBoxServiceExecValidateFlags(const char *pszFlags) */ static int VBoxServiceExecReadHostProp(const char *pszPropName, char **ppszValue, uint64_t *puTimestamp) { - char *pszFlags, *pszValue; + char *pszFlags; uint64_t uTimestamp; - int rc = VBoxServiceReadProp(g_uExecGuestPropSvcClientID, pszPropName, ppszValue, &pszFlags, puTimestamp); + int rc = VBoxServiceReadProp(g_uExecGuestPropSvcClientID, pszPropName, ppszValue, &pszFlags, &uTimestamp); if (RT_SUCCESS(rc)) { /* @@ -152,13 +152,7 @@ static int VBoxServiceExecReadHostProp(const char *pszPropName, char **ppszValue else { VBoxServiceVerbose(2, "Exec: Read \"%s\" = \"%s\", timestamp %RU64n\n", - pszPropName, pszValue, uTimestamp); - *ppszValue = RTStrDup(pszValue); - if (!*ppszValue) - { - VBoxServiceError("Exec: RTStrDup failed for \"%s\"\n", pszValue); - rc = VERR_NO_MEMORY; - } + pszPropName, *ppszValue, uTimestamp); if (puTimestamp) *puTimestamp = uTimestamp; } diff --git a/src/VBox/Additions/common/VBoxService/VBoxServiceInternal.h b/src/VBox/Additions/common/VBoxService/VBoxServiceInternal.h index f7a53fa27..03ea2f0bf 100644 --- a/src/VBox/Additions/common/VBoxService/VBoxServiceInternal.h +++ b/src/VBox/Additions/common/VBoxService/VBoxServiceInternal.h @@ -26,6 +26,7 @@ #ifdef RT_OS_WINDOWS # include <Windows.h> # include <process.h> /* Needed for file version information. */ +# include <Ntsecapi.h> /* Needed for process security information. */ #endif /** @@ -112,6 +113,12 @@ typedef struct char* pszFilePath; char* pszFileName; } VBOXSERVICEVMINFOFILE, *PVBOXSERVICEVMINFOFILE; +/** Structure for process information lookup. */ +typedef struct +{ + DWORD id; + LUID luid; +} VBOXSERVICEVMINFOPROC, *PVBOXSERVICEVMINFOPROC; /** Function prototypes for dynamic loading. */ typedef DWORD (WINAPI* fnWTSGetActiveConsoleSessionId)(); #endif @@ -148,13 +155,16 @@ extern int VBoxServiceWinUninstall(void); /** Reports our current status to the SCM. */ extern BOOL VBoxServiceWinSetStatus(DWORD dwStatus, DWORD dwCheckPoint); #ifdef VBOX_WITH_GUEST_PROPS +/** Determines the total count of processes attach to a logon session. */ +extern DWORD VBoxServiceVMInfoWinSessionGetProcessCount(PLUID pSession, + PVBOXSERVICEVMINFOPROC pProc, DWORD dwProcCount); /** Detects wheter a user is logged on based on the enumerated processes. */ -extern BOOL VBoxServiceVMInfoWinIsLoggedIn(VBOXSERVICEVMINFOUSER* a_pUserInfo, - PLUID a_pSession, - PLUID a_pLuid, - DWORD a_dwNumOfProcLUIDs); -/** Gets logon user IDs from enumerated processes. */ -extern DWORD VBoxServiceVMInfoWinGetLUIDsFromProcesses(PLUID *ppLuid); +extern BOOL VBoxServiceVMInfoWinIsLoggedIn(PVBOXSERVICEVMINFOUSER a_pUserInfo, + PLUID a_pSession); +/** Gets logon user IDs from enumerated processes. ppProc needs to be freed with VBoxServiceVMInfoWinProcessesFree() afterwards. */ +extern int VBoxServiceVMInfoWinProcessesEnumerate(PVBOXSERVICEVMINFOPROC *ppProc, DWORD *pdwCount); +/** Frees the process structure allocated by VBoxServiceVMInfoWinProcessesEnumerate() before. */ +extern void VBoxServiceVMInfoWinProcessesFree(PVBOXSERVICEVMINFOPROC pProc); #endif /* VBOX_WITH_GUEST_PROPS */ #endif /* RT_OS_WINDOWS */ diff --git a/src/VBox/Additions/common/VBoxService/VBoxServiceTimeSync.cpp b/src/VBox/Additions/common/VBoxService/VBoxServiceTimeSync.cpp index 8e9721185..e90e3f2c4 100644 --- a/src/VBox/Additions/common/VBoxService/VBoxServiceTimeSync.cpp +++ b/src/VBox/Additions/common/VBoxService/VBoxServiceTimeSync.cpp @@ -587,6 +587,7 @@ DECLCALLBACK(int) VBoxServiceTimeSyncWorker(bool volatile *pfShutdown) } } + VBoxServiceTimeSyncCancelAdjust(); RTSemEventMultiDestroy(g_TimeSyncEvent); g_TimeSyncEvent = NIL_RTSEMEVENTMULTI; return rc; diff --git a/src/VBox/Additions/common/VBoxService/VBoxServiceUtils.cpp b/src/VBox/Additions/common/VBoxService/VBoxServiceUtils.cpp index a3ab1ec5f..2e96e007b 100644 --- a/src/VBox/Additions/common/VBoxService/VBoxServiceUtils.cpp +++ b/src/VBox/Additions/common/VBoxService/VBoxServiceUtils.cpp @@ -137,8 +137,8 @@ int VBoxServiceReadPropUInt32(uint32_t u32ClientId, const char *pszPropName, uin if ( RT_SUCCESS(rc) && (*pu32 < u32Min || *pu32 > u32Max)) { - VBoxServiceError("The guest property value %s = %RU32 is out of range [%RU32..%RU32].\n", - pszPropName, *pu32, u32Min, u32Max); + rc = VBoxServiceError("The guest property value %s = %RU32 is out of range [%RU32..%RU32].\n", + pszPropName, *pu32, u32Min, u32Max); } RTStrFree(pszValue); } @@ -155,19 +155,23 @@ int VBoxServiceReadPropUInt32(uint32_t u32ClientId, const char *pszPropName, uin * @param u32ClientId The HGCM client ID for the guest property session. * @param pszName The property name. * @param pszValueFormat The property format string. If this is NULL then - * the property will be removed. + * the property will be deleted (if possible). * @param ... Format arguments. */ int VBoxServiceWritePropF(uint32_t u32ClientId, const char *pszName, const char *pszValueFormat, ...) { + AssertPtr(pszName); int rc; if (pszValueFormat != NULL) { - /** @todo Log the value as well? just copy the guts of - * VbglR3GuestPropWriteValueV. */ - VBoxServiceVerbose(3, "Writing guest property \"%s\"\n", pszName); va_list va; va_start(va, pszValueFormat); + + char *pszValue = RTStrAPrintf2V(pszValueFormat, va); + AssertPtr(pszValue); + VBoxServiceVerbose(3, "Writing guest property \"%s\" = \"%s\"\n", pszName, pszValue); + RTStrFree(pszValue); + rc = VbglR3GuestPropWriteValueV(u32ClientId, pszName, pszValueFormat, va); va_end(va); if (RT_FAILURE(rc)) @@ -175,9 +179,10 @@ int VBoxServiceWritePropF(uint32_t u32ClientId, const char *pszName, const char } else { + VBoxServiceVerbose(3, "Deleting guest property \"%s\"\n", pszName); rc = VbglR3GuestPropWriteValue(u32ClientId, pszName, NULL); if (RT_FAILURE(rc)) - VBoxServiceError("Error removing guest property \"%s\" (rc=%Rrc)\n", pszName, rc); + VBoxServiceError("Error deleting guest property \"%s\" (rc=%Rrc)\n", pszName, rc); } return rc; } diff --git a/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo-win.cpp b/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo-win.cpp index 2b4afdf82..39fbad2ee 100644 --- a/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo-win.cpp +++ b/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo-win.cpp @@ -24,7 +24,6 @@ * Header Files * *******************************************************************************/ #include <windows.h> -#include <Ntsecapi.h> #include <wtsapi32.h> /* For WTS* calls. */ #include <psapi.h> /* EnumProcesses. */ @@ -52,125 +51,202 @@ #ifndef TARGET_NT4 -/* Function GetLUIDsFromProcesses() written by Stefan Kuhr. */ -DWORD VBoxServiceVMInfoWinGetLUIDsFromProcesses(PLUID *ppLuid) +int VBoxServiceVMInfoWinProcessesGetTokenInfo(PVBOXSERVICEVMINFOPROC pProc, + TOKEN_INFORMATION_CLASS tkClass) { - DWORD dwSize, dwSize2, dwIndex ; - LPDWORD lpdwPIDs ; - DWORD dwLastError = ERROR_SUCCESS; + AssertPtr(pProc); + HANDLE h = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, pProc->id); + if (h == NULL) + return RTErrConvertFromWin32(GetLastError()); + + HANDLE hToken; + int rc; + if (FALSE == OpenProcessToken(h, TOKEN_QUERY, &hToken)) + { + rc = RTErrConvertFromWin32(GetLastError()); + } + else + { + void *pvTokenInfo = NULL; + DWORD dwTokenInfoSize; + switch (tkClass) + { + case TokenStatistics: + dwTokenInfoSize = sizeof(TOKEN_STATISTICS); + pvTokenInfo = (TOKEN_STATISTICS*)RTMemAlloc(dwTokenInfoSize); + AssertPtr(pvTokenInfo); + break; + + /** @todo Implement more token classes here. */ + + default: + VBoxServiceError("Token class not implemented: %ld", tkClass); + rc = VERR_NOT_IMPLEMENTED; + break; + } + + if (pvTokenInfo) + { + DWORD dwRetLength; + if (FALSE == GetTokenInformation(hToken, tkClass, pvTokenInfo, dwTokenInfoSize, &dwRetLength)) + { + rc = RTErrConvertFromWin32(GetLastError()); + } + else + { + switch (tkClass) + { + case TokenStatistics: + { + TOKEN_STATISTICS *pStats = (TOKEN_STATISTICS*)pvTokenInfo; + AssertPtr(pStats); + pProc->luid = pStats->AuthenticationId; + /* @todo Add more information of TOKEN_STATISTICS as needed. */ + break; + } + + default: + /* Should never get here! */ + break; + } + rc = VINF_SUCCESS; + } + RTMemFree(pvTokenInfo); + } + CloseHandle(hToken); + } + CloseHandle(h); + return rc; +} - if (!ppLuid) - { - SetLastError(ERROR_INVALID_PARAMETER); - return 0L; - } +int VBoxServiceVMInfoWinProcessesEnumerate(PVBOXSERVICEVMINFOPROC *ppProc, DWORD *pdwCount) +{ + AssertPtr(ppProc); + AssertPtr(pdwCount); + + DWORD dwNumProcs = 128; /* Number of processes our array can hold */ + DWORD *pdwProcIDs = (DWORD*)RTMemAlloc(dwNumProcs * sizeof(DWORD)); + if (pdwProcIDs == NULL) + return VERR_NO_MEMORY; - /* Call the PSAPI function EnumProcesses to get all of the - ProcID's currently in the system. - NOTE: In the documentation, the third parameter of - EnumProcesses is named cbNeeded, which implies that you - can call the function once to find out how much space to - allocate for a buffer and again to fill the buffer. - This is not the case. The cbNeeded parameter returns - the number of PIDs returned, so if your buffer size is - zero cbNeeded returns zero. - NOTE: The "HeapAlloc" loop here ensures that we - actually allocate a buffer large enough for all the - PIDs in the system. */ - dwSize2 = 256 * sizeof(DWORD); - - lpdwPIDs = NULL; + int rc; + DWORD cbRet; /* Returned size in bytes */ do { - if (lpdwPIDs) + if (FALSE == EnumProcesses(pdwProcIDs, dwNumProcs * sizeof(DWORD), &cbRet)) { - HeapFree(GetProcessHeap(), 0, lpdwPIDs) ; - dwSize2 *= 2; + rc = RTErrConvertFromWin32(GetLastError()); + break; } - lpdwPIDs = (unsigned long *)HeapAlloc(GetProcessHeap(), 0, dwSize2); - if (lpdwPIDs == NULL) - return 0L; // Last error will be that of HeapAlloc - if (!EnumProcesses( lpdwPIDs, dwSize2, &dwSize)) + /* Was our array big enough? Or do we need more space? */ + if (cbRet >= dwNumProcs * sizeof(DWORD)) { - DWORD dw = GetLastError(); - HeapFree(GetProcessHeap(), 0, lpdwPIDs); - SetLastError(dw); - return 0L; + /* Apparently not, so try next bigger size */ + dwNumProcs += 128; + pdwProcIDs = (DWORD*)RTMemRealloc(pdwProcIDs, dwNumProcs * sizeof(DWORD)); + if (pdwProcIDs == NULL) + { + rc = VERR_NO_MEMORY; + break; + } } - } - while (dwSize == dwSize2); - - /* At this point we have an array of the PIDs at the - time of the last EnumProcesses invocation. We will - allocate an array of LUIDs passed back via the out - param ppLuid of exactly the number of PIDs. We will - only fill the first n values of this array, with n - being the number of unique LUIDs found in these PIDs. */ - - /* How many ProcIDs did we get? */ - dwSize /= sizeof(DWORD); - dwSize2 = 0L; /* Our return value of found luids. */ + else + { + rc = VINF_SUCCESS; + dwNumProcs = cbRet / sizeof(DWORD); /* Set the current, real size of the number of processes we retrieved */ + break; + } + } while(dwNumProcs < 32768); /* Should be enough; see: http://blogs.technet.com/markrussinovich/archive/2009/07/08/3261309.aspx */ - *ppLuid = (LUID *)LocalAlloc(LPTR, dwSize*sizeof(LUID)); - if (!(*ppLuid)) + if (RT_SUCCESS(rc)) { - dwLastError = GetLastError(); - goto CLEANUP; - } - for (dwIndex = 0; dwIndex < dwSize; dwIndex++) - { - (*ppLuid)[dwIndex].LowPart =0L; - (*ppLuid)[dwIndex].HighPart=0; + /* Allocate our process structure */ + *ppProc = (PVBOXSERVICEVMINFOPROC)RTMemAlloc(dwNumProcs * sizeof(VBOXSERVICEVMINFOPROC)); + if (ppProc == NULL) + rc = VERR_NO_MEMORY; - /* Open the process (if we can... security does not - permit every process in the system). */ - HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION,FALSE, lpdwPIDs[dwIndex]); - if ( hProcess != NULL ) + if (RT_SUCCESS(rc)) { - HANDLE hAccessToken; - if (OpenProcessToken(hProcess, TOKEN_QUERY, &hAccessToken)) + /* We now have the PIDs, fill them into the struct and lookup their LUID's */ + PVBOXSERVICEVMINFOPROC pCur = *ppProc; + DWORD *pCurProcID = pdwProcIDs; + for (DWORD i=0; i<dwNumProcs; i++) { - TOKEN_STATISTICS ts; - DWORD dwSize; - if (GetTokenInformation(hAccessToken, TokenStatistics, &ts, sizeof ts, &dwSize)) + RT_BZERO(pCur, sizeof(VBOXSERVICEVMINFOPROC)); + pCur->id = *pCurProcID; + rc = VBoxServiceVMInfoWinProcessesGetTokenInfo(pCur, TokenStatistics); + if (RT_FAILURE(rc)) { - DWORD dwTmp = 0L; - BOOL bFound = FALSE; - for (;dwTmp<dwSize2 && !bFound;dwTmp++) - bFound = (*ppLuid)[dwTmp].HighPart == ts.AuthenticationId.HighPart && - (*ppLuid)[dwTmp].LowPart == ts.AuthenticationId.LowPart; - - if (!bFound) - (*ppLuid)[dwSize2++] = ts.AuthenticationId; + /* Because some processes cannot be opened/parsed on Windows, we should not consider to + be this an error here. */ + rc = VINF_SUCCESS; } - CloseHandle(hAccessToken); + pCur++; + pCurProcID++; } - - CloseHandle(hProcess); + /* Save number of processes */ + *pdwCount = dwNumProcs; } + } - /* We don't really care if OpenProcess or OpenProcessToken fail or succeed, because - there are quite a number of system processes we cannot open anyway, not even as SYSTEM. */ + RTMemFree(pdwProcIDs); + if (RT_FAILURE(rc)) + VBoxServiceVMInfoWinProcessesFree(*ppProc); + return rc; +} + +void VBoxServiceVMInfoWinProcessesFree(PVBOXSERVICEVMINFOPROC pProc) +{ + if (pProc != NULL) + { + RTMemFree(pProc); + pProc = NULL; } +} - CLEANUP: +DWORD VBoxServiceVMInfoWinSessionGetProcessCount(PLUID pSession, + PVBOXSERVICEVMINFOPROC pProc, DWORD dwProcCount) +{ + AssertPtr(pSession); - if (lpdwPIDs) - HeapFree(GetProcessHeap(), 0, lpdwPIDs); + if (dwProcCount <= 0) /* To be on the safe side. */ + return 0; + AssertPtr(pProc); - if (ERROR_SUCCESS !=dwLastError) - SetLastError(dwLastError); + PSECURITY_LOGON_SESSION_DATA pSessionData = NULL; + if (STATUS_SUCCESS != LsaGetLogonSessionData (pSession, &pSessionData)) + { + VBoxServiceError("Could not get logon session data! rc=%Rrc", RTErrConvertFromWin32(GetLastError())); + return 0; + } + AssertPtr(pSessionData); - return dwSize2; + /* Even if a user seems to be logged in, it could be a stale/orphaned logon session. + * So check if we have some processes bound to it by comparing the session <-> process LUIDs. */ + PVBOXSERVICEVMINFOPROC pCur = pProc; + for (DWORD i=0; i<dwProcCount; i++) + { + /*VBoxServiceVerbose(3, "%ld:%ld <-> %ld:%ld\n", + pCur->luid.HighPart, pCur->luid.LowPart, + pSessionData->LogonId.HighPart, pSessionData->LogonId.LowPart);*/ + if ( pCur->luid.HighPart == pSessionData->LogonId.HighPart + && pCur->luid.LowPart == pSessionData->LogonId.LowPart) + { + VBoxServiceVerbose(3, "Users: Session %ld:%ld has active processes\n", + pSessionData->LogonId.HighPart, pSessionData->LogonId.LowPart); + LsaFreeReturnBuffer(pSessionData); + return 1; + } + pCur++; + } + LsaFreeReturnBuffer(pSessionData); + return 0; } -BOOL VBoxServiceVMInfoWinIsLoggedIn(VBOXSERVICEVMINFOUSER* a_pUserInfo, - PLUID a_pSession, - PLUID a_pLuid, - DWORD a_dwNumOfProcLUIDs) +BOOL VBoxServiceVMInfoWinIsLoggedIn(PVBOXSERVICEVMINFOUSER a_pUserInfo, + PLUID a_pSession) { - BOOL bLoggedIn = FALSE; BOOL bFoundUser = FALSE; PSECURITY_LOGON_SESSION_DATA sessionData = NULL; NTSTATUS r = 0; @@ -180,7 +256,7 @@ BOOL VBoxServiceVMInfoWinIsLoggedIn(VBOXSERVICEVMINFOUSER* a_pUserInfo, if (!a_pSession) return FALSE; - r = LsaGetLogonSessionData (a_pSession, &sessionData); + r = LsaGetLogonSessionData(a_pSession, &sessionData); if (r != STATUS_SUCCESS) { VBoxServiceError("LsaGetLogonSessionData failed, LSA error %lu\n", LsaNtStatusToWinError(r)); @@ -198,7 +274,9 @@ BOOL VBoxServiceVMInfoWinIsLoggedIn(VBOXSERVICEVMINFOUSER* a_pUserInfo, } VBoxServiceVerbose(3, "Users: Session data: Name = %ls, Len = %d, SID = %s, LogonID = %d,%d\n", - (sessionData->UserName).Buffer, (sessionData->UserName).Length, (sessionData->Sid != NULL) ? "1" : "0", sessionData->LogonId.HighPart, sessionData->LogonId.LowPart); + (sessionData->UserName).Buffer, + (sessionData->UserName).Length, + (sessionData->Sid != NULL) ? "1" : "0", sessionData->LogonId.HighPart, sessionData->LogonId.LowPart); if ((sessionData->UserName.Buffer != NULL) && (sessionData->Sid != NULL) && @@ -207,35 +285,34 @@ BOOL VBoxServiceVMInfoWinIsLoggedIn(VBOXSERVICEVMINFOUSER* a_pUserInfo, /* Get the user name. */ usBuffer = (sessionData->UserName).Buffer; iLength = (sessionData->UserName).Length; - if (iLength > sizeof(a_pUserInfo->szUser) - sizeof(TCHAR)) /* -sizeof(TCHAR) because we have to add the terminating null char at the end later. */ + if (iLength > sizeof(a_pUserInfo->szUser) - sizeof(WCHAR)) /* -sizeof(WCHAR) because we have to add the terminating null char at the end later. */ { VBoxServiceVerbose(0, "User name too long (%d bytes) for buffer! Name will be truncated.\n", iLength); - iLength = sizeof(a_pUserInfo->szUser) - sizeof(TCHAR); + iLength = sizeof(a_pUserInfo->szUser) - sizeof(WCHAR); } wcsncpy (a_pUserInfo->szUser, usBuffer, iLength); - wcscat (a_pUserInfo->szUser, L""); /* Add terminating null char. */ /* Get authentication package. */ usBuffer = (sessionData->AuthenticationPackage).Buffer; iLength = (sessionData->AuthenticationPackage).Length; - if (iLength > sizeof(a_pUserInfo->szAuthenticationPackage) - sizeof(TCHAR)) /* -sizeof(TCHAR) because we have to add the terminating null char at the end later. */ + if (iLength > sizeof(a_pUserInfo->szAuthenticationPackage) - sizeof(WCHAR)) /* -sizeof(WCHAR) because we have to add the terminating null char at the end later. */ { VBoxServiceVerbose(0, "Authentication pkg name too long (%d bytes) for buffer! Name will be truncated.\n", iLength); - iLength = sizeof(a_pUserInfo->szAuthenticationPackage) - sizeof(TCHAR); + iLength = sizeof(a_pUserInfo->szAuthenticationPackage) - sizeof(WCHAR); } - wcsncpy (a_pUserInfo->szAuthenticationPackage, usBuffer, iLength); - wcscat (a_pUserInfo->szAuthenticationPackage, L""); /* Add terminating null char. */ + if (iLength) + wcsncpy (a_pUserInfo->szAuthenticationPackage, usBuffer, iLength); /* Get logon domain. */ usBuffer = (sessionData->LogonDomain).Buffer; iLength = (sessionData->LogonDomain).Length; - if (iLength > sizeof(a_pUserInfo->szLogonDomain) - sizeof(TCHAR)) /* -sizeof(TCHAR) because we have to add the terminating null char at the end later. */ + if (iLength > sizeof(a_pUserInfo->szLogonDomain) - sizeof(WCHAR)) /* -sizeof(WCHAR) because we have to add the terminating null char at the end later. */ { VBoxServiceVerbose(0, "Logon domain name too long (%d bytes) for buffer! Name will be truncated.\n", iLength); - iLength = sizeof(a_pUserInfo->szLogonDomain) - sizeof(TCHAR); + iLength = sizeof(a_pUserInfo->szLogonDomain) - sizeof(WCHAR); } - wcsncpy (a_pUserInfo->szLogonDomain, usBuffer, iLength); - wcscat (a_pUserInfo->szLogonDomain, L""); /* Add terminating null char. */ + if (iLength) + wcsncpy (a_pUserInfo->szLogonDomain, usBuffer, iLength); /* Only handle users which can login interactively or logged in remotely over native RDP. */ if ( (((SECURITY_LOGON_TYPE)sessionData->LogonType == Interactive) @@ -305,28 +382,14 @@ BOOL VBoxServiceVMInfoWinIsLoggedIn(VBOXSERVICEVMINFOUSER* a_pUserInfo, if (pBuffer) WTSFreeMemory(pBuffer); - - /* A user logged in, but it could be a stale/orphaned logon session. */ - BOOL bFoundInLUIDs = FALSE; - for (DWORD dwIndex = 0; dwIndex < a_dwNumOfProcLUIDs; dwIndex++) - { - if ( (a_pLuid[dwIndex].HighPart == sessionData->LogonId.HighPart) - && (a_pLuid[dwIndex].LowPart == sessionData->LogonId.LowPart)) - { - bLoggedIn = TRUE; - VBoxServiceVerbose(3, "User \"%ls\" is logged in!\n", a_pUserInfo->szUser); - break; - } - } } } } } LsaFreeReturnBuffer(sessionData); - return bLoggedIn; + return bFoundUser; } - #endif /* TARGET_NT4 */ int VBoxServiceWinGetComponentVersions(uint32_t uiClientID) diff --git a/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo.cpp b/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo.cpp index a14069c17..538628516 100644 --- a/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo.cpp +++ b/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo.cpp @@ -38,7 +38,9 @@ # include <sys/socket.h> # include <net/if.h> # include <unistd.h> -# include <utmp.h> +# ifndef RT_OS_FREEBSD /* The header does not exist anymore since FreeBSD 9-current */ +# include <utmp.h> +# endif # ifdef RT_OS_SOLARIS # include <sys/sockio.h> # endif @@ -174,8 +176,8 @@ DECLCALLBACK(int) VBoxServiceVMInfoWorker(bool volatile *pfShutdown) if (RT_SUCCESS(rc)) { /* Write information to host. */ - rc = VBoxServiceWritePropF(g_VMInfoGuestPropSvcClientID, "/VirtualBox/GuestAdd/Revision", "%s", pszAddVer); - rc = VBoxServiceWritePropF(g_VMInfoGuestPropSvcClientID, "/VirtualBox/GuestAdd/Version", "%s", pszAddRev); + rc = VBoxServiceWritePropF(g_VMInfoGuestPropSvcClientID, "/VirtualBox/GuestAdd/Version", "%s", pszAddVer); + rc = VBoxServiceWritePropF(g_VMInfoGuestPropSvcClientID, "/VirtualBox/GuestAdd/Revision", "%s", pszAddRev); RTStrFree(pszAddVer); RTStrFree(pszAddRev); } @@ -218,15 +220,20 @@ DECLCALLBACK(int) VBoxServiceVMInfoWorker(bool volatile *pfShutdown) return 1; } - PLUID pLuid = NULL; - DWORD dwNumOfProcLUIDs = VBoxServiceVMInfoWinGetLUIDsFromProcesses(&pLuid); - - VBOXSERVICEVMINFOUSER userInfo; - ZeroMemory (&userInfo, sizeof(VBOXSERVICEVMINFOUSER)); + PVBOXSERVICEVMINFOPROC pProcs; + DWORD dwNumProcs; + rc = VBoxServiceVMInfoWinProcessesEnumerate(&pProcs, &dwNumProcs); - for (int i = 0; i<(int)ulCount; i++) + for (ULONG i=0; i<ulCount; i++) { - if (VBoxServiceVMInfoWinIsLoggedIn(&userInfo, &pSessions[i], pLuid, dwNumOfProcLUIDs)) + VBOXSERVICEVMINFOUSER userInfo; + /* Leave the memory clearing *inside* the loop as VBoxServiceVMInfoWinIsLoggedIn + * assumes the memory reserved for strings is zeroed. + */ + ZeroMemory (&userInfo, sizeof(VBOXSERVICEVMINFOUSER)); + + if ( VBoxServiceVMInfoWinIsLoggedIn(&userInfo, &pSessions[i]) + && VBoxServiceVMInfoWinSessionGetProcessCount(&pSessions[i], pProcs, dwNumProcs) > 0) { if (uiUserCount > 0) strcat (szUserList, ","); @@ -239,9 +246,7 @@ DECLCALLBACK(int) VBoxServiceVMInfoWorker(bool volatile *pfShutdown) } } - if (NULL != pLuid) - ::LocalFree (pLuid); - + VBoxServiceVMInfoWinProcessesFree(pProcs); ::LsaFreeReturnBuffer(pSessions); # endif /* TARGET_NT4 */ #elif defined(RT_OS_FREEBSD) diff --git a/src/VBox/Additions/common/crOpenGL/Makefile.kmk b/src/VBox/Additions/common/crOpenGL/Makefile.kmk index 53c49fd98..bd64a824f 100644 --- a/src/VBox/Additions/common/crOpenGL/Makefile.kmk +++ b/src/VBox/Additions/common/crOpenGL/Makefile.kmk @@ -49,13 +49,11 @@ if1of ($(KBUILD_TARGET),linux solaris) ifneq ($(KBUILD_TARGET),solaris) # No DRI on Solaris yet VBoxOGL_FAKEDRI = 1 endif -# VBOX_PATH_MESA_SOURCE = $(PATH_ROOT)/src/libs/mesa-7.2 - VBOX_PATH_MESA_SOURCE = $(VBOX_PATH_X11_ROOT)/mesa-7.2 # Only Solaris right now needs C stubs because I can't figure out how to # generate the GOT based relocation ASM yet. - ifeq ($(KBUILD_TARGET),solaris) - ifdef VBoxOGL_FAKEDRI + ifdef VBoxOGL_FAKEDRI + if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),solaris.x86 solaris.amd64 linux.x86 linux.amd64) VBOX_OGL_GLX_USE_CSTUBS = 1 endif endif @@ -77,21 +75,20 @@ if1of ($(KBUILD_TARGET),linux solaris) $(VBOX_PATH_X11_ROOT)/fixesproto-4.0 \ $(VBOX_PATH_X11_ROOT)/libx11-1.1.5-other \ $(VBOX_PATH_X11_ROOT)/1.3/xorg \ - $(VBOX_PATH_MESA_SOURCE) \ - $(VBOX_PATH_MESA_SOURCE)/include \ - $(VBOX_PATH_MESA_SOURCE)/src/mesa/ \ - $(VBOX_PATH_MESA_SOURCE)/src/mesa/glapi \ - $(VBOX_PATH_MESA_SOURCE)/src/mesa/main \ - $(VBOX_PATH_MESA_SOURCE)/src/mesa/drivers/dri/common \ + $(VBOX_MESA_INCS) \ $(PATH_ROOT)/src/VBox/Additions/x11/x11include/libdrm-2.4.13 VBoxOGL_DEFS += VBOX_NO_NATIVEGL endif + ifdef VBoxOGL_DRI VBoxOGL_DEFS += VBOXOGL_DRI IN_DRI_DRIVER else ifdef VBoxOGL_FAKEDRI VBoxOGL_DEFS += VBOXOGL_FAKEDRI - VBoxOGL_DEFS.solaris += VBOX_OGL_GLX_USE_CSTUBS + ifdef VBOX_OGL_GLX_USE_CSTUBS + VBoxOGL_DEFS += VBOX_OGL_GLX_USE_CSTUBS + endif endif + ifeq ($(KBUILD_TARGET),win) #fixme?, INTERMEDIATES.win ain't working VBoxOGL_INTERMEDIATES += $(VBOX_PATH_CROGL_GENFILES)/cr_gl.h @@ -131,16 +128,18 @@ if1of ($(KBUILD_TARGET),linux solaris) else ifdef VBoxOGL_FAKEDRI VBoxOGL_SOURCES += \ fakedri_drv.c - VBoxOGL_SOURCES.linux += \ - $(VBOX_PATH_CROGL_GENFILES)/linux_glxapi_exports.asm \ - $(VBOX_PATH_CROGL_GENFILES)/linux_exports_dri.asm ifndef VBOX_OGL_GLX_USE_CSTUBS VBoxOGL_SOURCES.solaris += \ $(VBOX_PATH_CROGL_GENFILES)/solaris_glxapi_exports.asm \ $(VBOX_PATH_CROGL_GENFILES)/solaris_exports_dri.asm + VBoxOGL_SOURCES.linux += \ + $(VBOX_PATH_CROGL_GENFILES)/linux_glxapi_exports.asm \ + $(VBOX_PATH_CROGL_GENFILES)/linux_exports_dri.asm else VBoxOGL_SOURCES.solaris += \ $(VBOX_PATH_CROGL_GENFILES)/solaris_exports.c + VBoxOGL_SOURCES.linux += \ + $(VBOX_PATH_CROGL_GENFILES)/linux_exports.c endif else VBoxOGL_SOURCES.linux += \ @@ -294,7 +293,6 @@ $(VBOX_PATH_CROGL_GENFILES)/linux_glxapi_exports.asm: $(PATH_SUB_CURRENT)/Linux_ $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< endif else - # @todo linux if required ifeq ($(KBUILD_TARGET),solaris) $(VBOX_PATH_CROGL_GENFILES)/solaris_exports.c: \ $(PATH_SUB_CURRENT)/SunOS_exports.py \ @@ -302,6 +300,13 @@ $(VBOX_PATH_CROGL_GENFILES)/solaris_exports.c: \ | $$(dir $$@) $(call MSG_GENERATE,python,$@,$<) $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI) + else +$(VBOX_PATH_CROGL_GENFILES)/linux_exports.c: \ + $(PATH_SUB_CURRENT)/Linux_exports.py \ + $(VBOX_CROGL_API_FILES) $(PATH_SUB_CURRENT)/entrypoints.py \ + | $$(dir $$@) + $(call MSG_GENERATE,python,$@,$<) + $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI) endif endif # VBOX_OGL_GLX_USE_CSTUBS endif @@ -313,6 +318,10 @@ endif VBoxOGLarrayspu_TEMPLATE = VBOXCROGLR3GUESTDLL VBoxOGLarrayspu_INCS = \ array +if1of ($(KBUILD_TARGET),linux solaris) + VBoxOGLarrayspu_INCS += \ + $(VBOX_MESA_INCS) +endif VBoxOGLarrayspu_INCS.darwin += $(PATH_OUT)/obj/VBoxOGL VBoxOGLarrayspu_INTERMEDIATES = \ $(VBOX_PATH_CROGL_GENFILES)/state/cr_currentpointers.h \ @@ -335,6 +344,10 @@ VBoxOGLarrayspu_LIBS = \ VBoxOGLpassthroughspu_TEMPLATE = VBOXCROGLR3GUESTDLL VBoxOGLpassthroughspu_INCS = \ passthrough +if1of ($(KBUILD_TARGET),linux solaris) + VBoxOGLpassthroughspu_INCS += \ + $(VBOX_MESA_INCS) +endif VBoxOGLpassthroughspu_SOURCES = \ passthrough/passthroughspu_init.c \ $(VBOX_PATH_CROGL_GENFILES)/passthroughspu.c @@ -360,6 +373,10 @@ VBoxOGLpackspu_TEMPLATE = VBOXCROGLR3GUESTDLL VBoxOGLpackspu_DEFS = TRACKS_STATE=1 PACKS=1 VBoxOGLpackspu_INCS = \ pack +if1of ($(KBUILD_TARGET),linux solaris) + VBoxOGLpackspu_INCS += \ + $(VBOX_MESA_INCS) +endif VBoxOGLpackspu_INTERMEDIATES = \ $(VBOX_PATH_CROGL_GENFILES)/packspu_proto.h \ $(VBOX_PATH_CROGL_GENFILES)/cr_packfunctions.h @@ -426,6 +443,10 @@ $(VBOX_PATH_CROGL_GENFILES)/packspu_proto.h: $(addprefix $(PATH_SUB_CURRENT)/pac VBoxOGLfeedbackspu_TEMPLATE = VBOXCROGLR3GUESTDLL VBoxOGLfeedbackspu_INCS = \ feedback +if1of ($(KBUILD_TARGET),linux solaris) + VBoxOGLfeedbackspu_INCS += \ + $(VBOX_MESA_INCS) +endif VBoxOGLarrayspu_INTERMEDIATES = \ $(VBOX_PATH_CROGL_GENFILES)/feedbackspu_proto.h VBoxOGLfeedbackspu_SOURCES = \ diff --git a/src/VBox/Additions/common/crOpenGL/fakedri_drv.c b/src/VBox/Additions/common/crOpenGL/fakedri_drv.c index 51f3d9e74..4a1a8dc99 100644 --- a/src/VBox/Additions/common/crOpenGL/fakedri_drv.c +++ b/src/VBox/Additions/common/crOpenGL/fakedri_drv.c @@ -139,14 +139,11 @@ vboxPatchMesaExport(const char* psFuncName, const void *pStart, const void *pEnd int rv; void *alPatch; void *pMesaEntry; -#ifdef RT_ARCH_AMD64 char patch[5]; void *shift; -#endif #ifndef VBOX_NO_MESA_PATCH_REPORTS - crDebug(""); - crDebug("vboxPatchMesaExport: %s", psFuncName); + crDebug("\nvboxPatchMesaExport: %s", psFuncName); #endif pMesaEntry = dlsym(RTLD_DEFAULT, psFuncName); @@ -171,7 +168,7 @@ vboxPatchMesaExport(const char* psFuncName, const void *pStart, const void *pEnd int rv; rv = dladdr1(pStart, &dlip1, (void**)&sym1, RTLD_DL_SYMENT); - if (!rv || !sym) + if (!rv || !sym1) { crError("Failed to get size for %p", pStart); return; @@ -187,10 +184,11 @@ vboxPatchMesaExport(const char* psFuncName, const void *pStart, const void *pEnd crDebug("Vbox code: start: %p, end %p, size: %i", pStart, pEnd, pEnd-pStart); #endif +#ifndef VBOX_OGL_GLX_USE_CSTUBS if (sym->st_size<(pEnd-pStart)) +#endif { -#ifdef RT_ARCH_AMD64 - /* Try to insert 5 bytes jmpq to our stub code */ + /* Try to insert 5 bytes jmp/jmpq to our stub code */ if (5>(pEnd-pStart)) { @@ -198,17 +196,22 @@ vboxPatchMesaExport(const char* psFuncName, const void *pStart, const void *pEnd return; } - shift = pStart-(dlip.dli_saddr+5); + shift = (void*)((intptr_t)pStart-((intptr_t)dlip.dli_saddr+5)); # ifndef VBOX_NO_MESA_PATCH_REPORTS - crDebug("Size is small, inserting jmpq with shift %p instead", shift); + crDebug("Inserting jmp[q] with shift %p instead", shift); # endif - if ( ((((long)shift)&0x00000000) != 0) - && ((((long)shift)&0x00000000) != 0xFFFFFFFF00000000)) +#ifdef RT_ARCH_AMD64 { - crDebug("Can't patch offset is too big.(%s)", psFuncName); - return; + int64_t offset = (intptr_t)shift; + + if (offset>INT32_MAX || offset<INT32_MIN) + { + crDebug("Can't patch offset is too big.(%s)", psFuncName); + return; + } } +#endif patch[0] = 0xE9; patch[1] = ((char*)&shift)[0]; @@ -221,10 +224,6 @@ vboxPatchMesaExport(const char* psFuncName, const void *pStart, const void *pEnd # endif pStart = &patch[0]; pEnd = &patch[5]; -#else - crDebug("Can't patch size too small.(%s)", psFuncName); - return; -#endif //ifdef RT_ARCH_AMD64 } /* Get aligned start adress we're going to patch*/ diff --git a/src/VBox/Additions/common/crOpenGL/glx_c_exports.c b/src/VBox/Additions/common/crOpenGL/glx_c_exports.c index 478243b24..6207cf8a7 100644 --- a/src/VBox/Additions/common/crOpenGL/glx_c_exports.c +++ b/src/VBox/Additions/common/crOpenGL/glx_c_exports.c @@ -26,27 +26,27 @@ #ifdef VBOXOGL_FAKEDRI -/*void VBOXGLXENTRYTAG(glXGetDriverConfig)(const char *driverName) +/*DECLEXPORT(void) VBOXGLXENTRYTAG(glXGetDriverConfig)(const char *driverName) { return glxim.GetDriverConfig(driverName); }*/ -void VBOXGLXENTRYTAG(glXFreeMemoryMESA)(Display *dpy, int scrn, void *pointer) +DECLEXPORT(void) VBOXGLXENTRYTAG(glXFreeMemoryMESA)(Display *dpy, int scrn, void *pointer) { return glxim.FreeMemoryMESA(dpy, scrn, pointer); } -GLXContext VBOXGLXENTRYTAG(glXImportContextEXT)(Display *dpy, GLXContextID contextID) +DECLEXPORT(GLXContext) VBOXGLXENTRYTAG(glXImportContextEXT)(Display *dpy, GLXContextID contextID) { return glxim.ImportContextEXT(dpy, contextID); } -GLXContextID VBOXGLXENTRYTAG(glXGetContextIDEXT)(const GLXContext ctx) +DECLEXPORT(GLXContextID) VBOXGLXENTRYTAG(glXGetContextIDEXT)(const GLXContext ctx) { return glxim.GetContextIDEXT(ctx); } -Bool VBOXGLXENTRYTAG(glXMakeCurrentReadSGI)(Display *display, GLXDrawable draw, GLXDrawable read, GLXContext ctx) +DECLEXPORT(Bool) VBOXGLXENTRYTAG(glXMakeCurrentReadSGI)(Display *display, GLXDrawable draw, GLXDrawable read, GLXContext ctx) { return glxim.MakeCurrentReadSGI(display, draw, read, ctx); } @@ -58,215 +58,215 @@ Bool VBOXGLXENTRYTAG(glXMakeCurrentReadSGI)(Display *display, GLXDrawable draw, }*/ -Display * VBOXGLXENTRYTAG(glXGetCurrentDisplayEXT)(void) +DECLEXPORT(Display*) VBOXGLXENTRYTAG(glXGetCurrentDisplayEXT)(void) { return glxim.GetCurrentDisplayEXT(); } -void VBOXGLXENTRYTAG(glXFreeContextEXT)(Display *dpy, GLXContext ctx) +DECLEXPORT(void) VBOXGLXENTRYTAG(glXFreeContextEXT)(Display *dpy, GLXContext ctx) { return glxim.FreeContextEXT(dpy, ctx); } /*Mesa insternal*/ -int VBOXGLXENTRYTAG(glXQueryContextInfoEXT)(Display *dpy, GLXContext ctx) +DECLEXPORT(int) VBOXGLXENTRYTAG(glXQueryContextInfoEXT)(Display *dpy, GLXContext ctx) { return glxim.QueryContextInfoEXT(dpy, ctx); } -void * VBOXGLXENTRYTAG(glXAllocateMemoryMESA)(Display *dpy, int scrn, +DECLEXPORT(void *) VBOXGLXENTRYTAG(glXAllocateMemoryMESA)(Display *dpy, int scrn, size_t size, float readFreq, float writeFreq, float priority) { return glxim.AllocateMemoryMESA(dpy, scrn, size, readFreq, writeFreq, priority); } -GLuint VBOXGLXENTRYTAG(glXGetMemoryOffsetMESA)(Display *dpy, int scrn, const void *pointer ) +DECLEXPORT(GLuint) VBOXGLXENTRYTAG(glXGetMemoryOffsetMESA)(Display *dpy, int scrn, const void *pointer ) { return glxim.GetMemoryOffsetMESA(dpy, scrn, pointer); } -GLXPixmap VBOXGLXENTRYTAG(glXCreateGLXPixmapMESA)(Display *dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap) +DECLEXPORT(GLXPixmap) VBOXGLXENTRYTAG(glXCreateGLXPixmapMESA)(Display *dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap) { return glxim.CreateGLXPixmapMESA(dpy, visual, pixmap, cmap); } #endif /*Common glX functions*/ -void VBOXGLXENTRYTAG(glXCopyContext)( Display *dpy, GLXContext src, GLXContext dst, unsigned long mask) +DECLEXPORT(void) VBOXGLXENTRYTAG(glXCopyContext)( Display *dpy, GLXContext src, GLXContext dst, unsigned long mask) { return glxim.CopyContext(dpy, src, dst, mask); } -void VBOXGLXENTRYTAG(glXUseXFont)(Font font, int first, int count, int listBase) +DECLEXPORT(void) VBOXGLXENTRYTAG(glXUseXFont)(Font font, int first, int count, int listBase) { return glxim.UseXFont(font, first, count, listBase); } -CR_GLXFuncPtr VBOXGLXENTRYTAG(glXGetProcAddress)(const GLubyte *name) +DECLEXPORT(CR_GLXFuncPtr) VBOXGLXENTRYTAG(glXGetProcAddress)(const GLubyte *name) { return glxim.GetProcAddress(name); } -Bool VBOXGLXENTRYTAG(glXQueryExtension)(Display *dpy, int *errorBase, int *eventBase) +DECLEXPORT(Bool) VBOXGLXENTRYTAG(glXQueryExtension)(Display *dpy, int *errorBase, int *eventBase) { return glxim.QueryExtension(dpy, errorBase, eventBase); } -Bool VBOXGLXENTRYTAG(glXIsDirect)(Display *dpy, GLXContext ctx) +DECLEXPORT(Bool) VBOXGLXENTRYTAG(glXIsDirect)(Display *dpy, GLXContext ctx) { return glxim.IsDirect(dpy, ctx); } -GLXPixmap VBOXGLXENTRYTAG(glXCreateGLXPixmap)(Display *dpy, XVisualInfo *vis, Pixmap pixmap) +DECLEXPORT(GLXPixmap) VBOXGLXENTRYTAG(glXCreateGLXPixmap)(Display *dpy, XVisualInfo *vis, Pixmap pixmap) { return glxim.CreateGLXPixmap(dpy, vis, pixmap); } -void VBOXGLXENTRYTAG(glXSwapBuffers)(Display *dpy, GLXDrawable drawable) +DECLEXPORT(void) VBOXGLXENTRYTAG(glXSwapBuffers)(Display *dpy, GLXDrawable drawable) { return glxim.SwapBuffers(dpy, drawable); } -GLXDrawable VBOXGLXENTRYTAG(glXGetCurrentDrawable)(void) +DECLEXPORT(GLXDrawable) VBOXGLXENTRYTAG(glXGetCurrentDrawable)(void) { return glxim.GetCurrentDrawable(); } -void VBOXGLXENTRYTAG(glXWaitGL)(void) +DECLEXPORT(void) VBOXGLXENTRYTAG(glXWaitGL)(void) { return glxim.WaitGL(); } -Display * VBOXGLXENTRYTAG(glXGetCurrentDisplay)(void) +DECLEXPORT(Display *) VBOXGLXENTRYTAG(glXGetCurrentDisplay)(void) { return glxim.GetCurrentDisplay(); } -const char * VBOXGLXENTRYTAG(glXQueryServerString)(Display *dpy, int screen, int name) +DECLEXPORT(const char *) VBOXGLXENTRYTAG(glXQueryServerString)(Display *dpy, int screen, int name) { return glxim.QueryServerString(dpy, screen, name); } -GLXContext VBOXGLXENTRYTAG(glXCreateContext)(Display *dpy, XVisualInfo *vis, GLXContext share, Bool direct) +DECLEXPORT(GLXContext) VBOXGLXENTRYTAG(glXCreateContext)(Display *dpy, XVisualInfo *vis, GLXContext share, Bool direct) { return glxim.CreateContext(dpy, vis, share, direct); } -int VBOXGLXENTRYTAG(glXGetConfig)(Display *dpy, XVisualInfo *vis, int attrib, int *value) +DECLEXPORT(int) VBOXGLXENTRYTAG(glXGetConfig)(Display *dpy, XVisualInfo *vis, int attrib, int *value) { return glxim.GetConfig(dpy, vis, attrib, value); } -void VBOXGLXENTRYTAG(glXWaitX)(void) +DECLEXPORT(void) VBOXGLXENTRYTAG(glXWaitX)(void) { return glxim.WaitX(); } -GLXContext VBOXGLXENTRYTAG(glXGetCurrentContext)(void) +DECLEXPORT(GLXContext) VBOXGLXENTRYTAG(glXGetCurrentContext)(void) { return glxim.GetCurrentContext(); } -const char * VBOXGLXENTRYTAG(glXGetClientString)(Display *dpy, int name) +DECLEXPORT(const char *) VBOXGLXENTRYTAG(glXGetClientString)(Display *dpy, int name) { return glxim.GetClientString(dpy, name); } -Bool VBOXGLXENTRYTAG(glXMakeCurrent)(Display *dpy, GLXDrawable drawable, GLXContext ctx) +DECLEXPORT(Bool) VBOXGLXENTRYTAG(glXMakeCurrent)(Display *dpy, GLXDrawable drawable, GLXContext ctx) { return glxim.MakeCurrent(dpy, drawable, ctx); } -void VBOXGLXENTRYTAG(glXDestroyContext)(Display *dpy, GLXContext ctx) +DECLEXPORT(void) VBOXGLXENTRYTAG(glXDestroyContext)(Display *dpy, GLXContext ctx) { return glxim.DestroyContext(dpy, ctx); } -CR_GLXFuncPtr VBOXGLXENTRYTAG(glXGetProcAddressARB)(const GLubyte *name) +DECLEXPORT(CR_GLXFuncPtr) VBOXGLXENTRYTAG(glXGetProcAddressARB)(const GLubyte *name) { return glxim.GetProcAddressARB(name); } -void VBOXGLXENTRYTAG(glXDestroyGLXPixmap)(Display *dpy, GLXPixmap pix) +DECLEXPORT(void) VBOXGLXENTRYTAG(glXDestroyGLXPixmap)(Display *dpy, GLXPixmap pix) { return glxim.DestroyGLXPixmap(dpy, pix); } -Bool VBOXGLXENTRYTAG(glXQueryVersion)(Display *dpy, int *major, int *minor) +DECLEXPORT(Bool) VBOXGLXENTRYTAG(glXQueryVersion)(Display *dpy, int *major, int *minor) { return glxim.QueryVersion(dpy, major, minor); } -XVisualInfo * VBOXGLXENTRYTAG(glXChooseVisual)(Display *dpy, int screen, int *attribList) +DECLEXPORT(XVisualInfo *) VBOXGLXENTRYTAG(glXChooseVisual)(Display *dpy, int screen, int *attribList) { return glxim.ChooseVisual(dpy, screen, attribList); } -const char * VBOXGLXENTRYTAG(glXQueryExtensionsString)(Display *dpy, int screen) +DECLEXPORT(const char *) VBOXGLXENTRYTAG(glXQueryExtensionsString)(Display *dpy, int screen) { return glxim.QueryExtensionsString(dpy, screen); } #if GLX_EXTRAS -GLXPbufferSGIX VBOXGLXENTRYTAG(glXCreateGLXPbufferSGIX) +DECLEXPORT(GLXPbufferSGIX) VBOXGLXENTRYTAG(glXCreateGLXPbufferSGIX) (Display *dpy, GLXFBConfigSGIX config, unsigned int width, unsigned int height, int *attrib_list) { return glxim.CreateGLXPbufferSGIX(dpy, config, width, height, attrib_list); } -int VBOXGLXENTRYTAG(glXQueryGLXPbufferSGIX) +DECLEXPORT(int) VBOXGLXENTRYTAG(glXQueryGLXPbufferSGIX) (Display *dpy, GLXPbuffer pbuf, int attribute, unsigned int *value) { return glxim.QueryGLXPbufferSGIX(dpy, pbuf, attribute, value); } -GLXFBConfigSGIX * VBOXGLXENTRYTAG(glXChooseFBConfigSGIX) +DECLEXPORT(GLXFBConfigSGIX *) VBOXGLXENTRYTAG(glXChooseFBConfigSGIX) (Display *dpy, int screen, int *attrib_list, int *nelements) { return glxim.ChooseFBConfigSGIX(dpy, screen, attrib_list, nelements); } -void VBOXGLXENTRYTAG(glXDestroyGLXPbufferSGIX)(Display *dpy, GLXPbuffer pbuf) +DECLEXPORT(void) VBOXGLXENTRYTAG(glXDestroyGLXPbufferSGIX)(Display *dpy, GLXPbuffer pbuf) { return glxim.DestroyGLXPbufferSGIX(dpy, pbuf); } -void VBOXGLXENTRYTAG(glXSelectEventSGIX)(Display *dpy, GLXDrawable drawable, unsigned long mask) +DECLEXPORT(void) VBOXGLXENTRYTAG(glXSelectEventSGIX)(Display *dpy, GLXDrawable drawable, unsigned long mask) { return glxim.SelectEventSGIX(dpy, drawable, mask); } -void VBOXGLXENTRYTAG(glXGetSelectedEventSGIX)(Display *dpy, GLXDrawable drawable, unsigned long *mask) +DECLEXPORT(void) VBOXGLXENTRYTAG(glXGetSelectedEventSGIX)(Display *dpy, GLXDrawable drawable, unsigned long *mask) { return glxim.GetSelectedEventSGIX(dpy, drawable, mask); } -GLXFBConfigSGIX VBOXGLXENTRYTAG(glXGetFBConfigFromVisualSGIX)(Display *dpy, XVisualInfo *vis) +DECLEXPORT(GLXFBConfigSGIX) VBOXGLXENTRYTAG(glXGetFBConfigFromVisualSGIX)(Display *dpy, XVisualInfo *vis) { return glxim.GetFBConfigFromVisualSGIX(dpy, vis); } -XVisualInfo * VBOXGLXENTRYTAG(glXGetVisualFromFBConfigSGIX)(Display *dpy, GLXFBConfig config) +DECLEXPORT(XVisualInfo *) VBOXGLXENTRYTAG(glXGetVisualFromFBConfigSGIX)(Display *dpy, GLXFBConfig config) { return glxim.GetVisualFromFBConfigSGIX(dpy, config); } -GLXContext VBOXGLXENTRYTAG(glXCreateContextWithConfigSGIX) +DECLEXPORT(GLXContext) VBOXGLXENTRYTAG(glXCreateContextWithConfigSGIX) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct) { return glxim.CreateContextWithConfigSGIX(dpy, config, render_type, share_list, direct); } -GLXPixmap VBOXGLXENTRYTAG(glXCreateGLXPixmapWithConfigSGIX)(Display *dpy, GLXFBConfig config, Pixmap pixmap) +DECLEXPORT(GLXPixmap) VBOXGLXENTRYTAG(glXCreateGLXPixmapWithConfigSGIX)(Display *dpy, GLXFBConfig config, Pixmap pixmap) { return glxim.CreateGLXPixmapWithConfigSGIX(dpy, config, pixmap); } -int VBOXGLXENTRYTAG(glXGetFBConfigAttribSGIX)(Display *dpy, GLXFBConfig config, int attribute, int *value) +DECLEXPORT(int) VBOXGLXENTRYTAG(glXGetFBConfigAttribSGIX)(Display *dpy, GLXFBConfig config, int attribute, int *value) { return glxim.GetFBConfigAttribSGIX(dpy, config, attribute, value); } @@ -275,101 +275,101 @@ int VBOXGLXENTRYTAG(glXGetFBConfigAttribSGIX)(Display *dpy, GLXFBConfig config, /* * GLX 1.3 functions */ -GLXFBConfig * VBOXGLXENTRYTAG(glXChooseFBConfig)(Display *dpy, int screen, ATTRIB_TYPE *attrib_list, int *nelements) +DECLEXPORT(GLXFBConfig *) VBOXGLXENTRYTAG(glXChooseFBConfig)(Display *dpy, int screen, ATTRIB_TYPE *attrib_list, int *nelements) { return glxim.ChooseFBConfig(dpy, screen, attrib_list, nelements); } -GLXPbuffer VBOXGLXENTRYTAG(glXCreatePbuffer)(Display *dpy, GLXFBConfig config, ATTRIB_TYPE *attrib_list) +DECLEXPORT(GLXPbuffer) VBOXGLXENTRYTAG(glXCreatePbuffer)(Display *dpy, GLXFBConfig config, ATTRIB_TYPE *attrib_list) { return glxim.CreatePbuffer(dpy, config, attrib_list); } -GLXPixmap VBOXGLXENTRYTAG(glXCreatePixmap)(Display *dpy, GLXFBConfig config, Pixmap pixmap, const ATTRIB_TYPE *attrib_list) +DECLEXPORT(GLXPixmap) VBOXGLXENTRYTAG(glXCreatePixmap)(Display *dpy, GLXFBConfig config, Pixmap pixmap, const ATTRIB_TYPE *attrib_list) { return glxim.CreatePixmap(dpy, config, pixmap, attrib_list); } -GLXWindow VBOXGLXENTRYTAG(glXCreateWindow)(Display *dpy, GLXFBConfig config, Window win, ATTRIB_TYPE *attrib_list) +DECLEXPORT(GLXWindow) VBOXGLXENTRYTAG(glXCreateWindow)(Display *dpy, GLXFBConfig config, Window win, ATTRIB_TYPE *attrib_list) { return glxim.CreateWindow(dpy, config, win, attrib_list); } -GLXContext VBOXGLXENTRYTAG(glXCreateNewContext) +DECLEXPORT(GLXContext) VBOXGLXENTRYTAG(glXCreateNewContext) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct) { return glxim.CreateNewContext(dpy, config, render_type, share_list, direct); } -void VBOXGLXENTRYTAG(glXDestroyPbuffer)(Display *dpy, GLXPbuffer pbuf) +DECLEXPORT(void) VBOXGLXENTRYTAG(glXDestroyPbuffer)(Display *dpy, GLXPbuffer pbuf) { return glxim.DestroyPbuffer(dpy, pbuf); } -void VBOXGLXENTRYTAG(glXDestroyPixmap)(Display *dpy, GLXPixmap pixmap) +DECLEXPORT(void) VBOXGLXENTRYTAG(glXDestroyPixmap)(Display *dpy, GLXPixmap pixmap) { return glxim.DestroyPixmap(dpy, pixmap); } -void VBOXGLXENTRYTAG(glXDestroyWindow)(Display *dpy, GLXWindow win) +DECLEXPORT(void) VBOXGLXENTRYTAG(glXDestroyWindow)(Display *dpy, GLXWindow win) { return glxim.DestroyWindow(dpy, win); } -GLXDrawable VBOXGLXENTRYTAG(glXGetCurrentReadDrawable)(void) +DECLEXPORT(GLXDrawable) VBOXGLXENTRYTAG(glXGetCurrentReadDrawable)(void) { return glxim.GetCurrentReadDrawable(); } -int VBOXGLXENTRYTAG(glXGetFBConfigAttrib)(Display *dpy, GLXFBConfig config, int attribute, int *value) +DECLEXPORT(int) VBOXGLXENTRYTAG(glXGetFBConfigAttrib)(Display *dpy, GLXFBConfig config, int attribute, int *value) { return glxim.GetFBConfigAttrib(dpy, config, attribute, value); } -GLXFBConfig * VBOXGLXENTRYTAG(glXGetFBConfigs)(Display *dpy, int screen, int *nelements) +DECLEXPORT(GLXFBConfig *) VBOXGLXENTRYTAG(glXGetFBConfigs)(Display *dpy, int screen, int *nelements) { return glxim.GetFBConfigs(dpy, screen, nelements); } -void VBOXGLXENTRYTAG(glXGetSelectedEvent)(Display *dpy, GLXDrawable draw, unsigned long *event_mask) +DECLEXPORT(void) VBOXGLXENTRYTAG(glXGetSelectedEvent)(Display *dpy, GLXDrawable draw, unsigned long *event_mask) { return glxim.GetSelectedEvent(dpy, draw, event_mask); } -XVisualInfo * VBOXGLXENTRYTAG(glXGetVisualFromFBConfig)(Display *dpy, GLXFBConfig config) +DECLEXPORT(XVisualInfo *) VBOXGLXENTRYTAG(glXGetVisualFromFBConfig)(Display *dpy, GLXFBConfig config) { return glxim.GetVisualFromFBConfig(dpy, config); } -Bool VBOXGLXENTRYTAG(glXMakeContextCurrent)(Display *display, GLXDrawable draw, GLXDrawable read, GLXContext ctx) +DECLEXPORT(Bool) VBOXGLXENTRYTAG(glXMakeContextCurrent)(Display *display, GLXDrawable draw, GLXDrawable read, GLXContext ctx) { return glxim.MakeContextCurrent(display, draw, read, ctx); } -int VBOXGLXENTRYTAG(glXQueryContext)(Display *dpy, GLXContext ctx, int attribute, int *value) +DECLEXPORT(int) VBOXGLXENTRYTAG(glXQueryContext)(Display *dpy, GLXContext ctx, int attribute, int *value) { return glxim.QueryContext(dpy, ctx, attribute, value); } -void VBOXGLXENTRYTAG(glXQueryDrawable)(Display *dpy, GLXDrawable draw, int attribute, unsigned int *value) +DECLEXPORT(void) VBOXGLXENTRYTAG(glXQueryDrawable)(Display *dpy, GLXDrawable draw, int attribute, unsigned int *value) { return glxim.QueryDrawable(dpy, draw, attribute, value); } -void VBOXGLXENTRYTAG(glXSelectEvent)(Display *dpy, GLXDrawable draw, unsigned long event_mask) +DECLEXPORT(void) VBOXGLXENTRYTAG(glXSelectEvent)(Display *dpy, GLXDrawable draw, unsigned long event_mask) { return glxim.SelectEvent(dpy, draw, event_mask); } /* #ifdef CR_EXT_texture_from_pixmap -void VBOXGLXENTRYTAG(glXBindTexImageEXT)(Display *dpy, GLXDrawable draw, int buffer, const int *attrib_list) +DECLEXPORT(void) VBOXGLXENTRYTAG(glXBindTexImageEXT)(Display *dpy, GLXDrawable draw, int buffer, const int *attrib_list) { return glxim.BindTexImageEXT(dpy, draw, buffer, attrib_list); } -void VBOXGLXENTRYTAG(glXReleaseTexImageEXT)(Display *dpy, GLXDrawable draw, int buffer) +DECLEXPORT(void) VBOXGLXENTRYTAG(glXReleaseTexImageEXT)(Display *dpy, GLXDrawable draw, int buffer) { return glxim.ReleaseTexImageEXT(dpy, draw, buffer); } diff --git a/src/VBox/Additions/common/crOpenGL/load.c b/src/VBox/Additions/common/crOpenGL/load.c index ed7efaa94..59ea8b180 100644 --- a/src/VBox/Additions/common/crOpenGL/load.c +++ b/src/VBox/Additions/common/crOpenGL/load.c @@ -324,7 +324,7 @@ static void stubInitVars(void) stub.matchChromiumWindowCount = 0; stub.matchChromiumWindowID = NULL; stub.matchWindowTitle = NULL; - stub.ignoreFreeglutMenus = 1; + stub.ignoreFreeglutMenus = 0; stub.threadSafe = GL_FALSE; stub.trackWindowSize = 0; stub.trackWindowPos = 0; @@ -504,7 +504,7 @@ void stubSetDefaultConfigurationOptions(void) stub.matchChromiumWindowID = NULL; stub.numIgnoreWindowID = 0; stub.matchWindowTitle = NULL; - stub.ignoreFreeglutMenus = 1; + stub.ignoreFreeglutMenus = 0; stub.trackWindowSize = 1; stub.trackWindowPos = 1; stub.trackWindowVisibility = 1; diff --git a/src/VBox/Additions/common/crOpenGL/pack/packspu_client.c b/src/VBox/Additions/common/crOpenGL/pack/packspu_client.c index 072aa0050..1eb8fad5b 100644 --- a/src/VBox/Additions/common/crOpenGL/pack/packspu_client.c +++ b/src/VBox/Additions/common/crOpenGL/pack/packspu_client.c @@ -406,23 +406,51 @@ void PACKSPU_APIENTRY packspu_DisableVertexAttribArrayARB(GLuint index) void PACKSPU_APIENTRY packspu_Enable( GLenum cap ) { - crStateEnable(cap); + if (cap!=GL_LIGHT_MODEL_TWO_SIDE) + { + crStateEnable(cap); - if (pack_spu.swap) - crPackEnableSWAP(cap); + if (pack_spu.swap) + crPackEnableSWAP(cap); + else + crPackEnable(cap); + } else - crPackEnable(cap); + { + static int g_glmts1_warn=0; + if (!g_glmts1_warn) + { + crWarning("glEnable(GL_LIGHT_MODEL_TWO_SIDE) converted to valid glLightModeli(GL_LIGHT_MODEL_TWO_SIDE,1)"); + g_glmts1_warn=1; + } + crStateLightModeli(GL_LIGHT_MODEL_TWO_SIDE, 1); + crPackLightModeli(GL_LIGHT_MODEL_TWO_SIDE, 1); + } } void PACKSPU_APIENTRY packspu_Disable( GLenum cap ) { - crStateDisable(cap); + if (cap!=GL_LIGHT_MODEL_TWO_SIDE) + { + crStateDisable(cap); - if (pack_spu.swap) - crPackDisableSWAP(cap); + if (pack_spu.swap) + crPackDisableSWAP(cap); + else + crPackDisable(cap); + } else - crPackDisable(cap); + { + static int g_glmts0_warn=0; + if (!g_glmts0_warn) + { + crWarning("glDisable(GL_LIGHT_MODEL_TWO_SIDE) converted to valid glLightModeli(GL_LIGHT_MODEL_TWO_SIDE,0)"); + g_glmts0_warn=1; + } + crStateLightModeli(GL_LIGHT_MODEL_TWO_SIDE, 0); + crPackLightModeli(GL_LIGHT_MODEL_TWO_SIDE, 0); + } } GLboolean PACKSPU_APIENTRY packspu_IsEnabled(GLenum cap) diff --git a/src/VBox/Additions/linux/drm/vboxvideo_drm.c b/src/VBox/Additions/linux/drm/vboxvideo_drm.c index 5ad64897a..a3e6b9893 100644 --- a/src/VBox/Additions/linux/drm/vboxvideo_drm.c +++ b/src/VBox/Additions/linux/drm/vboxvideo_drm.c @@ -53,7 +53,9 @@ * Gareth Hughes <gareth@valinux.com> */ -#include <linux/autoconf.h> +#ifndef AUTOCONF_INCLUDED +# include <linux/autoconf.h> +#endif #include <linux/version.h> #include <linux/module.h> diff --git a/src/VBox/Additions/linux/installer/vboxadd.sh b/src/VBox/Additions/linux/installer/vboxadd.sh index 2c922dabf..de925a910 100755 --- a/src/VBox/Additions/linux/installer/vboxadd.sh +++ b/src/VBox/Additions/linux/installer/vboxadd.sh @@ -1,6 +1,6 @@ #! /bin/sh # Sun VirtualBox -# Linux Additions kernel module init script ($Revision: 55616 $) +# Linux Additions kernel module init script ($Revision: 56414 $) # # @@ -38,6 +38,11 @@ BUILDVBOXGUEST=`/bin/ls /usr/src/vboxguest*/build_in_tmp 2>/dev/null|cut -d' ' - BUILDVBOXVFS=`/bin/ls /usr/src/vboxvfs*/build_in_tmp 2>/dev/null|cut -d' ' -f1` BUILDVBOXVIDEO=`/bin/ls /usr/src/vboxvideo*/build_in_tmp 2>/dev/null|cut -d' ' -f1` LOG="/var/log/vboxadd-install.log" +MODPROBE=/sbin/modprobe + +if $MODPROBE -c | grep -q '^allow_unsupported_modules *0'; then + MODPROBE="$MODPROBE --allow-unsupported-modules" +fi # Check architecture cpu=`uname -m`; @@ -204,7 +209,7 @@ start() fail "Cannot remove $userdev" } - modprobe vboxguest >/dev/null 2>&1 || { + $MODPROBE vboxguest >/dev/null 2>&1 || { fail "modprobe vboxguest failed" } sleep .5 @@ -256,7 +261,7 @@ start() if [ -n "$BUILDVBOXVFS" ]; then running_vboxvfs || { - modprobe vboxvfs > /dev/null 2>&1 || { + $MODPROBE vboxvfs > /dev/null 2>&1 || { if dmesg | grep "vboxConnect failed" > /dev/null 2>&1; then fail_msg echo "Unable to start shared folders support. Make sure that your VirtualBox build" diff --git a/src/VBox/Additions/linux/sharedfolders/Makefile.module b/src/VBox/Additions/linux/sharedfolders/Makefile.module index d79709443..010cd0ade 100644 --- a/src/VBox/Additions/linux/sharedfolders/Makefile.module +++ b/src/VBox/Additions/linux/sharedfolders/Makefile.module @@ -196,6 +196,10 @@ ifeq ($(KERN_VERSION), 24) # 2.4 # +ifeq ($(BUILD_TARGET_ARCH),amd64) + KFLAGS += -mcmodel=kernel +endif + CFLAGS := -O2 -DVBOX_LINUX_2_4 $(INCL) $(KFLAGS) $(KDEBUG) MODULE_EXT := o diff --git a/src/VBox/Additions/linux/sharedfolders/utils.c b/src/VBox/Additions/linux/sharedfolders/utils.c index 10c42ce4a..5e57f774e 100644 --- a/src/VBox/Additions/linux/sharedfolders/utils.c +++ b/src/VBox/Additions/linux/sharedfolders/utils.c @@ -27,7 +27,6 @@ /* #define USE_VMALLOC */ -#if LINUX_VERSION_CODE >= KERNEL_VERSION (2, 6, 0) /* * sf_reg_aops and sf_backing_dev_info are just quick implementations to make * sendfile work. For more information have a look at @@ -39,18 +38,6 @@ * http://pserver.samba.org/samba/ftp/cifs-cvs/samplefs.tar.gz */ -static struct backing_dev_info sf_backing_dev_info = { - .ra_pages = 0, /* No readahead */ -# if LINUX_VERSION_CODE >= KERNEL_VERSION (2, 6, 12) - .capabilities = BDI_CAP_MAP_DIRECT /* MAP_SHARED */ - | BDI_CAP_MAP_COPY /* MAP_PRIVATE */ - | BDI_CAP_READ_MAP /* can be mapped for reading */ - | BDI_CAP_WRITE_MAP /* can be mapped for writing */ - | BDI_CAP_EXEC_MAP, /* can be mapped for execution */ -# endif -}; -#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION (2, 6, 0) */ - #if LINUX_VERSION_CODE < KERNEL_VERSION (2, 6, 0) static void sf_ftime_from_timespec (time_t *time, RTTIMESPEC *ts) @@ -120,7 +107,7 @@ sf_init_inode (struct sf_glob_info *sf_g, struct inode *inode, #if LINUX_VERSION_CODE >= KERNEL_VERSION (2, 6, 0) inode->i_mapping->a_ops = &sf_reg_aops; - inode->i_mapping->backing_dev_info = &sf_backing_dev_info; + inode->i_mapping->backing_dev_info = &sf_g->bdi; #endif if (is_dir) { @@ -811,3 +798,34 @@ int sf_get_volume_info(struct super_block *sb, STRUCT_STATFS *stat) struct dentry_operations sf_dentry_ops = { .d_revalidate = sf_dentry_revalidate }; + +int sf_init_backing_dev(struct sf_glob_info *sf_g, const char *name) +{ + int rc = 0; + +#if LINUX_VERSION_CODE >= KERNEL_VERSION (2, 6, 0) + sf_g->bdi.ra_pages = 0; /* No readahead */ +# if LINUX_VERSION_CODE >= KERNEL_VERSION (2, 6, 12) + sf_g->bdi.capabilities = BDI_CAP_MAP_DIRECT /* MAP_SHARED */ + | BDI_CAP_MAP_COPY /* MAP_PRIVATE */ + | BDI_CAP_READ_MAP /* can be mapped for reading */ + | BDI_CAP_WRITE_MAP /* can be mapped for writing */ + | BDI_CAP_EXEC_MAP; /* can be mapped for execution */ +# endif /* >= 2.6.12 */ +# if LINUX_VERSION_CODE >= KERNEL_VERSION (2, 6, 24) + rc = bdi_init(&sf_g->bdi); +# if LINUX_VERSION_CODE >= KERNEL_VERSION (2, 6, 26) + if (!rc) + rc = bdi_register(&sf_g->bdi, NULL, "vboxvfs-%s", name); +# endif /* >= 2.6.26 */ +# endif /* >= 2.6.24 */ +#endif /* >= 2.6.0 */ + return rc; +} + +void sf_done_backing_dev(struct sf_glob_info *sf_g) +{ +#if LINUX_VERSION_CODE >= KERNEL_VERSION (2, 6, 24) + bdi_destroy(&sf_g->bdi); /* includes bdi_unregister() */ +#endif +} diff --git a/src/VBox/Additions/linux/sharedfolders/vfsmod.c b/src/VBox/Additions/linux/sharedfolders/vfsmod.c index 964e821a8..8e9ca2e0b 100644 --- a/src/VBox/Additions/linux/sharedfolders/vfsmod.c +++ b/src/VBox/Additions/linux/sharedfolders/vfsmod.c @@ -286,6 +286,12 @@ sf_read_super_aux (struct super_block *sb, void *data, int flags) goto fail3; } + if (sf_init_backing_dev(sf_g, info->name)) { + err = -EINVAL; + LogFunc(("could not init bdi\n")); + goto fail4; + } + sf_init_inode (sf_g, iroot, &fsinfo); SET_INODE_INFO (iroot, sf_i); @@ -297,13 +303,15 @@ sf_read_super_aux (struct super_block *sb, void *data, int flags) if (!droot) { err = -ENOMEM; /* XXX */ LogFunc(("d_alloc_root failed\n")); - goto fail4; + goto fail5; } sb->s_root = droot; SET_GLOB_INFO (sb, sf_g); return 0; + fail5: + sf_done_backing_dev(sf_g); fail4: iput (iroot); fail3: @@ -371,6 +379,7 @@ sf_put_super (struct super_block *sb) sf_g = GET_GLOB_INFO (sb); BUG_ON (!sf_g); + sf_done_backing_dev(sf_g); sf_glob_free (sf_g); } diff --git a/src/VBox/Additions/linux/sharedfolders/vfsmod.h b/src/VBox/Additions/linux/sharedfolders/vfsmod.h index 13b85a7dc..0433fa534 100644 --- a/src/VBox/Additions/linux/sharedfolders/vfsmod.h +++ b/src/VBox/Additions/linux/sharedfolders/vfsmod.h @@ -25,6 +25,10 @@ #include "the-linux-kernel.h" #include "version-generated.h" +#if LINUX_VERSION_CODE >= KERNEL_VERSION (2, 6, 0) +# include <linux/backing-dev.h> +#endif + #include "VBoxCalls.h" #include "vbsfmount.h" @@ -39,6 +43,9 @@ struct sf_glob_info { int fmode; int dmask; int fmask; +#if LINUX_VERSION_CODE >= KERNEL_VERSION (2, 6, 0) + struct backing_dev_info bdi; +#endif }; /* per-inode information */ @@ -107,6 +114,10 @@ sf_dir_info_alloc (void); extern int sf_dir_read_all (struct sf_glob_info *sf_g, struct sf_inode_info *sf_i, struct sf_dir_info *sf_d, SHFLHANDLE handle); +extern int +sf_init_backing_dev (struct sf_glob_info *sf_g, const char *name); +extern void +sf_done_backing_dev (struct sf_glob_info *sf_g); #if LINUX_VERSION_CODE < KERNEL_VERSION (2, 6, 0) #define STRUCT_STATFS struct statfs diff --git a/src/VBox/Additions/solaris/Installer/makepackage.sh b/src/VBox/Additions/solaris/Installer/makepackage.sh index 19759eab8..72a05bb1e 100755 --- a/src/VBox/Additions/solaris/Installer/makepackage.sh +++ b/src/VBox/Additions/solaris/Installer/makepackage.sh @@ -26,7 +26,8 @@ if test -z "$3"; then exit 1 fi -VBOX_INSTALLED_DIR=$1 +VBOX_BASEPKG_DIR=$1 +VBOX_INSTALLED_DIR="$VBOX_BASEPKG_DIR"/opt/VirtualBoxAdditions VBOX_PKGFILENAME=$2 VBOX_SVN_REV=$3 @@ -52,8 +53,15 @@ filelist_fixup() mv -f "tmp-$1" "$1" } -# prepare file list + +# Create relative hardlinks cd "$VBOX_INSTALLED_DIR" +ln -f ./VBoxISAExec $VBOX_INSTALLED_DIR/VBoxService +ln -f ./VBoxISAExec $VBOX_INSTALLED_DIR/VBoxClient +ln -f ./VBoxISAExec $VBOX_INSTALLED_DIR/VBoxControl + +# prepare file list +cd "$VBOX_BASEPKG_DIR" echo 'i pkginfo=./vboxguest.pkginfo' > prototype echo 'i postinstall=./postinstall.sh' >> prototype echo 'i preremove=./preremove.sh' >> prototype @@ -62,51 +70,28 @@ echo 'i depend=./vboxguest.depend' >> prototype if test -f "./vboxguest.copyright"; then echo 'i copyright=./vboxguest.copyright' >> prototype fi -find . -print | $VBOX_GGREP -v -E 'prototype|makepackage.sh|vboxguest.pkginfo|postinstall.sh|preremove.sh|vboxguest.space|vboxguest.depend|vboxguest.copyright' | pkgproto >> prototype -# don't grok for the class files -filelist_fixup prototype '$2 == "none"' '$5 = "root"; $6 = "bin"' -filelist_fixup prototype '$2 == "none"' '$3 = "opt/VirtualBoxAdditions/"$3"="$3' +# Exclude directory entries to not cause conflicts (owner,group) with existing directories in the system +find . ! -type d | $VBOX_GGREP -v -E 'prototype|makepackage.sh|vboxguest.pkginfo|postinstall.sh|preremove.sh|vboxguest.space|vboxguest.depend|vboxguest.copyright' | pkgproto >> prototype -# VBoxService requires suid -filelist_fixup prototype '$3 == "opt/VirtualBoxAdditions/VBoxService=VBoxService"' '$4 = "4755"' -filelist_fixup prototype '$3 == "opt/VirtualBoxAdditions/amd64/VBoxService=amd64/VBoxService"' '$4 = "4755"' +# Include opt/VirtualBoxAdditions and subdirectories as we want uninstall to clean up directory structure as well +find . -type d | $VBOX_GGREP -E 'opt/VirtualBoxAdditions' | pkgproto >> prototype -# 32-bit vboxguest -filelist_fixup prototype '$3 == "opt/VirtualBoxAdditions/vboxguest=vboxguest"' '$3 = "usr/kernel/drv/vboxguest=vboxguest"; $6="sys"' +# Include /etc/fs/vboxfs (as we need to create the subdirectory) +find . -type d | $VBOX_GGREP -E 'etc/fs/vboxfs' | pkgproto >> prototype -# 64-bit vboxguest -filelist_fixup prototype '$3 == "opt/VirtualBoxAdditions/amd64/vboxguest=amd64/vboxguest"' '$3 = "usr/kernel/drv/amd64/vboxguest=amd64/vboxguest"; $6="sys"' -# vboxguest module config file -filelist_fixup prototype '$3 == "opt/VirtualBoxAdditions/vboxguest.conf=vboxguest.conf"' '$3 = "usr/kernel/drv/vboxguest.conf=vboxguest.conf"' - -# vboxfsmount binary (always 32-bit on combined package) -filelist_fixup prototype '$3 == "opt/VirtualBoxAdditions/vboxfsmount=vboxfsmount"' '$3 = "etc/fs/vboxfs/mount=vboxfsmount"; $6="sys"' - -# this is required for amd64-specific package where we do not build 32-bit binaries -filelist_fixup prototype '$3 == "opt/VirtualBoxAdditions/amd64/vboxfsmount=amd64/vboxfsmount"' '$3 = "etc/fs/vboxfs/mount=amd64/vboxfsmount"; $6="sys"' - -# crogl 32-bit opengl fixup -filelist_fixup prototype '$3 == "opt/VirtualBoxAdditions/VBoxOGL.so=VBoxOGL.so"' '$3 = "usr/lib/VBoxOGL.so=VBoxOGL.so"; $6="sys"' -filelist_fixup prototype '$3 == "opt/VirtualBoxAdditions/VBoxOGLcrutil.so=VBoxOGLcrutil.so"' '$3 = "usr/lib/VBoxOGLcrutil.so=VBoxOGLcrutil.so"; $6="sys"' -filelist_fixup prototype '$3 == "opt/VirtualBoxAdditions/VBoxOGLfeedbackspu.so=VBoxOGLfeedbackspu.so"' '$3 = "usr/lib/VBoxOGLfeedbackspu.so=VBoxOGLfeedbackspu.so"; $6="sys"' -filelist_fixup prototype '$3 == "opt/VirtualBoxAdditions/VBoxOGLpassthroughspu.so=VBoxOGLpassthroughspu.so"' '$3 = "usr/lib/VBoxOGLpassthroughspu.so=VBoxOGLpassthroughspu.so"; $6="sys"' -filelist_fixup prototype '$3 == "opt/VirtualBoxAdditions/VBoxOGLarrayspu.so=VBoxOGLarrayspu.so"' '$3 = "usr/lib/VBoxOGLarrayspu.so=VBoxOGLarrayspu.so"; $6="sys"' -filelist_fixup prototype '$3 == "opt/VirtualBoxAdditions/VBoxOGLerrorspu.so=VBoxOGLerrorspu.so"' '$3 = "usr/lib/VBoxOGLerrorspu.so=VBoxOGLerrorspu.so"; $6="sys"' -filelist_fixup prototype '$3 == "opt/VirtualBoxAdditions/VBoxOGLpackspu.so=VBoxOGLpackspu.so"' '$3 = "usr/lib/VBoxOGLpackspu.so=VBoxOGLpackspu.so"; $6="sys"' +# don't grok for the class files +filelist_fixup prototype '$2 == "none"' '$5 = "root"; $6 = "bin"' -# crogl 64-bit opengl fixup -filelist_fixup prototype '$3 == "opt/VirtualBoxAdditions/amd64/VBoxOGL.so=amd64/VBoxOGL.so"' '$3 = "usr/lib/amd64/VBoxOGL.so=amd64/VBoxOGL.so"; $6="sys"' -filelist_fixup prototype '$3 == "opt/VirtualBoxAdditions/amd64/VBoxOGLcrutil.so=amd64/VBoxOGLcrutil.so"' '$3 = "usr/lib/amd64/VBoxOGLcrutil.so=amd64/VBoxOGLcrutil.so"; $6="sys"' -filelist_fixup prototype '$3 == "opt/VirtualBoxAdditions/amd64/VBoxOGLfeedbackspu.so=amd64/VBoxOGLfeedbackspu.so"' '$3 = "usr/lib/amd64/VBoxOGLfeedbackspu.so=amd64/VBoxOGLfeedbackspu.so"; $6="sys"' -filelist_fixup prototype '$3 == "opt/VirtualBoxAdditions/amd64/VBoxOGLpassthroughspu.so=amd64/VBoxOGLpassthroughspu.so"' '$3 = "usr/lib/amd64/VBoxOGLpassthroughspu.so=amd64/VBoxOGLpassthroughspu.so"; $6="sys"' -filelist_fixup prototype '$3 == "opt/VirtualBoxAdditions/amd64/VBoxOGLarrayspu.so=amd64/VBoxOGLarrayspu.so"' '$3 = "usr/lib/amd64/VBoxOGLarrayspu.so=amd64/VBoxOGLarrayspu.so"; $6="sys"' -filelist_fixup prototype '$3 == "opt/VirtualBoxAdditions/amd64/VBoxOGLerrorspu.so=amd64/VBoxOGLerrorspu.so"' '$3 = "usr/lib/amd64/VBoxOGLerrorspu.so=amd64/VBoxOGLerrorspu.so"; $6="sys"' -filelist_fixup prototype '$3 == "opt/VirtualBoxAdditions/amd64/VBoxOGLpackspu.so=amd64/VBoxOGLpackspu.so"' '$3 = "usr/lib/amd64/VBoxOGLpackspu.so=amd64/VBoxOGLpackspu.so"; $6="sys"' +# VBoxService requires suid +filelist_fixup prototype '$3 == "opt/VirtualBoxAdditions/VBoxService"' '$4 = "4755"' +filelist_fixup prototype '$3 == "opt/VirtualBoxAdditions/amd64/VBoxService"' '$4 = "4755"' +# vboxguest +filelist_fixup prototype '$3 == "usr/kernel/drv/vboxguest"' '$6="sys"' +filelist_fixup prototype '$3 == "usr/kernel/drv/amd64/vboxguest"' '$6="sys"' -filelist_fixup prototype '$3 == "opt/VirtualBoxAdditions/vboxservice.xml=vboxservice.xml"' '$3 = "var/svc/manifest/system/virtualbox/vboxservice.xml=vboxservice.xml"' echo " --- start of prototype ---" cat prototype echo " --- end of prototype --- " diff --git a/src/VBox/Additions/solaris/Installer/postinstall.sh b/src/VBox/Additions/solaris/Installer/postinstall.sh index c9ddc4c7b..95136723a 100755 --- a/src/VBox/Additions/solaris/Installer/postinstall.sh +++ b/src/VBox/Additions/solaris/Installer/postinstall.sh @@ -72,7 +72,9 @@ uncompress_files() } solaris64dir="amd64" +solaris32dir="i386" vboxadditions_path="$BASEDIR/opt/VirtualBoxAdditions" +vboxadditions32_path=$vboxadditions_path/$solaris32dir vboxadditions64_path=$vboxadditions_path/$solaris64dir # get the current zone @@ -89,10 +91,10 @@ vboxadditionsisa_path=$vboxadditions_path/$isadir # uncompress if necessary -if test -f "$vboxadditions_path/VBoxClient.Z" || test -f "$vboxadditions64_path/VBoxClient.Z"; then +if test -f "$vboxadditions32_path/VBoxClient.Z" || test -f "$vboxadditions64_path/VBoxClient.Z"; then echo "Uncompressing files..." - if test -f "$vboxadditions_path/VBoxClient.Z"; then - uncompress_files "$vboxadditions_path" + if test -f "$vboxadditions32_path/VBoxClient.Z"; then + uncompress_files "$vboxadditions32_path" fi if test -f "$vboxadditions64_path/VBoxClient.Z"; then uncompress_files "$vboxadditions64_path" @@ -111,12 +113,13 @@ if test "$currentzone" = "global"; then # create the device link /usr/sbin/devfsadm -i vboxguest - sync fi -# check if X.Org exists -if test -f "/usr/X11/bin/Xorg"; then +# check if X.Org exists (snv_130 and higher have /usr/X11/* as /usr/*) +if test -f "/usr/bin/Xorg"; then + xorgbin="/usr/bin/Xorg" +elif test -f "/usr/X11/bin/Xorg"; then xorgbin="/usr/X11/bin/Xorg" else xorgbin="" @@ -128,21 +131,13 @@ echo "Creating links..." if test "$currentzone" = "global"; then /usr/sbin/installf -c none $PKGINST /dev/vboxguest=../devices/pci@0,0/pci80ee,cafe@4:vboxguest s fi -if test ! -z "$xorgbin"; then - /usr/sbin/installf -c none $PKGINST /usr/bin/VBoxClient=$vboxadditions_path/VBox.sh s - /usr/sbin/installf -c none $PKGINST /usr/bin/VBoxRandR=$vboxadditions_path/VBoxRandR.sh s - /usr/sbin/installf -c none $PKGINST /usr/bin/VBoxClient-all=$vboxadditions_path/1099.vboxclient s -fi -/usr/sbin/installf -c none $PKGINST /usr/bin/VBoxControl=$vboxadditions_path/VBox.sh s -/usr/sbin/installf -c none $PKGINST /usr/bin/VBoxService=$vboxadditions_path/VBox.sh s - # Install Xorg components to the required places if test ! -z "$xorgbin"; then - xorgversion_long=`/usr/X11/bin/Xorg -version 2>&1 | grep "X Window System Version"` + xorgversion_long=`$xorgbin -version 2>&1 | grep "X Window System Version"` xorgversion=`/usr/bin/expr "${xorgversion_long}" : 'X Window System Version \([^ ]*\)'` if test -z "$xorgversion_long"; then - xorgversion_long=`/usr/X11/bin/Xorg -version 2>&1 | grep "X.Org X Server"` + xorgversion_long=`$xorgbin -version 2>&1 | grep "X.Org X Server"` xorgversion=`/usr/bin/expr "${xorgversion_long}" : 'X.Org X Server \([^ ]*\)'` fi @@ -188,85 +183,110 @@ if test ! -z "$xorgbin"; then # Exit as partially failed installation retval=2 else - echo "Configuring X.Org..." - - # 32-bit x11 drivers - if test -f "$vboxadditions_path/$vboxmouse_src"; then - vboxmouse_dest="/usr/X11/lib/modules/input/vboxmouse_drv.so" - vboxvideo_dest="/usr/X11/lib/modules/drivers/vboxvideo_drv.so" - /usr/sbin/installf -c none $PKGINST "$vboxmouse_dest" f - /usr/sbin/installf -c none $PKGINST "$vboxvideo_dest" f - cp "$vboxadditions_path/$vboxmouse_src" "$vboxmouse_dest" - cp "$vboxadditions_path/$vboxvideo_src" "$vboxvideo_dest" - - # Removing redundent names from pkg and files from disk - /usr/sbin/removef $PKGINST $vboxadditions_path/vboxmouse_drv_* 1>/dev/null - /usr/sbin/removef $PKGINST $vboxadditions_path/vboxvideo_drv_* 1>/dev/null - rm -f $vboxadditions_path/vboxmouse_drv_* - rm -f $vboxadditions_path/vboxvideo_drv_* - fi + echo "Installing mouse and video drivers for X.Org $xorgversion..." - # 64-bit x11 drivers - if test -f "$vboxadditions64_path/$vboxmouse_src"; then - vboxmouse_dest="/usr/X11/lib/modules/input/$solaris64dir/vboxmouse_drv.so" - vboxvideo_dest="/usr/X11/lib/modules/drivers/$solaris64dir/vboxvideo_drv.so" - /usr/sbin/installf -c none $PKGINST "$vboxmouse_dest" f - /usr/sbin/installf -c none $PKGINST "$vboxvideo_dest" f - cp "$vboxadditions64_path/$vboxmouse_src" "$vboxmouse_dest" - cp "$vboxadditions64_path/$vboxvideo_src" "$vboxvideo_dest" - - # Removing redundent names from pkg and files from disk - /usr/sbin/removef $PKGINST $vboxadditions64_path/vboxmouse_drv_* 1>/dev/null - /usr/sbin/removef $PKGINST $vboxadditions64_path/vboxvideo_drv_* 1>/dev/null - rm -f $vboxadditions64_path/vboxmouse_drv_* - rm -f $vboxadditions64_path/vboxvideo_drv_* + # Determine destination paths (snv_130 and above use "/usr/lib/xorg", older use "/usr/X11/lib" + vboxmouse32_dest_base="/usr/lib/xorg/modules/input" + if test ! -d $vboxmouse32_dest_base; then + vboxmouse32_dest_base="/usr/X11/lib/modules/input" fi + vboxvideo32_dest_base="/usr/lib/xorg/modules/drivers" + if test ! -d $vboxvideo32_dest_base; then + vboxvideo32_dest_base="/usr/X11/lib/modules/drivers" + fi + + vboxmouse64_dest_base=$vboxmouse32_dest_base/$solaris64dir + vboxvideo64_dest_base=$vboxvideo32_dest_base/$solaris64dir - # Some distros like Indiana have no xorg.conf, deal with this - if test ! -f '/etc/X11/xorg.conf' && test ! -f '/etc/X11/.xorg.conf'; then + # Make sure destination path exists + if test ! -d $vboxmouse32_dest_base || test ! -d $vboxvideo32_dest_base || test ! -d $vboxmouse64_dest_base || test ! -d $vboxvideo64_dest_base; then + echo "*** Missing destination paths for mouse or video modules. Aborting." + echo "*** Failed to install the VirtualBox X Window System drivers." - # Xorg 1.3.x+ should use the modeline less Xorg confs while older should - # use ones with all the video modelines in place. Argh. - xorgconf_file="solaris_xorg_modeless.conf" - xorgconf_unfit="solaris_xorg.conf" + # Exit as partially failed installation + retval=2 + else + # 32-bit x11 drivers + if test -f "$vboxadditions32_path/$vboxmouse_src"; then + vboxmouse_dest="$vboxmouse32_dest_base/vboxmouse_drv.so" + vboxvideo_dest="$vboxvideo32_dest_base/vboxvideo_drv.so" + /usr/sbin/installf -c none $PKGINST "$vboxmouse_dest" f + /usr/sbin/installf -c none $PKGINST "$vboxvideo_dest" f + cp "$vboxadditions32_path/$vboxmouse_src" "$vboxmouse_dest" + cp "$vboxadditions32_path/$vboxvideo_src" "$vboxvideo_dest" + + # Removing redundent names from pkg and files from disk + /usr/sbin/removef $PKGINST $vboxadditions32_path/vboxmouse_drv_* 1>/dev/null + /usr/sbin/removef $PKGINST $vboxadditions32_path/vboxvideo_drv_* 1>/dev/null + rm -f $vboxadditions32_path/vboxmouse_drv_* + rm -f $vboxadditions32_path/vboxvideo_drv_* + fi + + # 64-bit x11 drivers + if test -f "$vboxadditions64_path/$vboxmouse_src"; then + vboxmouse_dest="$vboxmouse64_dest_base/vboxmouse_drv.so" + vboxvideo_dest="$vboxvideo64_dest_base/vboxvideo_drv.so" + /usr/sbin/installf -c none $PKGINST "$vboxmouse_dest" f + /usr/sbin/installf -c none $PKGINST "$vboxvideo_dest" f + cp "$vboxadditions64_path/$vboxmouse_src" "$vboxmouse_dest" + cp "$vboxadditions64_path/$vboxvideo_src" "$vboxvideo_dest" + + # Removing redundent names from pkg and files from disk + /usr/sbin/removef $PKGINST $vboxadditions64_path/vboxmouse_drv_* 1>/dev/null + /usr/sbin/removef $PKGINST $vboxadditions64_path/vboxvideo_drv_* 1>/dev/null + rm -f $vboxadditions64_path/vboxmouse_drv_* + rm -f $vboxadditions64_path/vboxvideo_drv_* + fi + + # Some distros like Indiana have no xorg.conf, deal with this + if test ! -f '/etc/X11/xorg.conf' && test ! -f '/etc/X11/.xorg.conf'; then + + # Xorg 1.3.x+ should use the modeline less Xorg confs while older should + # use ones with all the video modelines in place. Argh. + xorgconf_file="solaris_xorg_modeless.conf" + xorgconf_unfit="solaris_xorg.conf" + case "$xorgversion" in + 7.1.* | 7.2.* | 6.9.* | 7.0.* ) + xorgconf_file="solaris_xorg.conf" + xorgconf_unfit="solaris_xorg_modeless.conf" + ;; + esac + + /usr/sbin/removef $PKGINST $vboxadditions_path/$xorgconf_file 1>/dev/null + mv -f $vboxadditions_path/$xorgconf_file /etc/X11/.xorg.conf + + /usr/sbin/removef $PKGINST $vboxadditions_path/$xorgconf_unfit 1>/dev/null + rm -f $vboxadditions_path/$xorgconf_unfit + fi case "$xorgversion" in - 7.1.* | 7.2.* | 6.9.* | 7.0.* ) - xorgconf_file="solaris_xorg.conf" - xorgconf_unfit="solaris_xorg_modeless.conf" + 7.1.* | 7.2.* | 6.9.* | 7.0.* | 1.3.* ) + $vboxadditions_path/x11config.pl + ;; + 1.5.* | 1.6.* | 1.7.* ) + $vboxadditions_path/x11config15sol.pl ;; esac - - /usr/sbin/removef $PKGINST $vboxadditions_path/$xorgconf_file 1>/dev/null - mv -f $vboxadditions_path/$xorgconf_file /etc/X11/.xorg.conf - - /usr/sbin/removef $PKGINST $vboxadditions_path/$xorgconf_unfit 1>/dev/null - rm -f $vboxadditions_path/$xorgconf_unfit fi - case "$xorgversion" in - 7.1.* | 7.2.* | 6.9.* | 7.0.* | 1.3.* ) - $vboxadditions_path/x11config.pl - ;; - 1.5.* | 1.6.* | 1.7.* ) - $vboxadditions_path/x11config15sol.pl - ;; - esac fi # Setup our VBoxClient echo "Configuring client..." vboxclient_src=$vboxadditions_path + vboxclient_dest="/usr/share/gnome/autostart" + clientinstalled=0 + if test -d "$vboxclient_dest"; then + /usr/sbin/installf -c none $PKGINST $vboxclient_dest/vboxclient.desktop=$vboxadditions_path/vboxclient.desktop s + clientinstalled=1 + fi vboxclient_dest="/usr/dt/config/Xsession.d" if test -d "$vboxclient_dest"; then - /usr/sbin/installf -c none $PKGINST "$vboxclient_dest/1099.vboxclient" f - cp "$vboxclient_src/1099.vboxclient" "$vboxclient_dest/1099.vboxclient" - chmod a+rx "$vboxclient_dest/1099.vboxclient" - elif test -d "/usr/share/gnome/autostart"; then - vboxclient_dest="/usr/share/gnome/autostart" - /usr/sbin/installf -c none $PKGINST "$vboxclient_dest/vboxclient.desktop" f - cp "$vboxclient_src/vboxclient.desktop" "$vboxclient_dest/vboxclient.desktop" - else - echo "*** Failed to configure client!! Couldn't find autostart directory." + /usr/sbin/installf -c none $PKGINST $vboxclient_dest/1099.vboxclient=$vboxadditions_path/1099.vboxclient s + clientinstalled=1 + fi + if test $clientinstalled -eq 0; then + echo "*** Failed to configure client, couldn't find any autostart directory!" + # Exit as partially failed installation retval=2 fi else @@ -286,6 +306,7 @@ fi # Move the appropriate module to kernel/fs & remove the unused module name from pkg and file from disk # 64-bit shared folder module if test -f "$vboxadditions64_path/$vboxfsmod"; then + echo "Installing 64-bit shared folders module..." /usr/sbin/installf -c none $PKGINST "/usr/kernel/fs/$solaris64dir/vboxfs" f mv -f $vboxadditions64_path/$vboxfsmod /usr/kernel/fs/$solaris64dir/vboxfs /usr/sbin/removef $PKGINST $vboxadditions64_path/$vboxfsmod 1>/dev/null @@ -294,12 +315,13 @@ if test -f "$vboxadditions64_path/$vboxfsmod"; then fi # 32-bit shared folder module -if test -f "$vboxadditions_path/$vboxfsmod"; then +if test -f "$vboxadditions32_path/$vboxfsmod"; then + echo "Installing 32-bit shared folders module..." /usr/sbin/installf -c none $PKGINST "/usr/kernel/fs/vboxfs" f - mv -f $vboxadditions_path/$vboxfsmod /usr/kernel/fs/vboxfs - /usr/sbin/removef $PKGINST $vboxadditions_path/$vboxfsmod 1>/dev/null - /usr/sbin/removef $PKGINST $vboxadditions_path/$vboxfsunused 1>/dev/null - rm -f $vboxadditions_path/$vboxfsunused + mv -f $vboxadditions32_path/$vboxfsmod /usr/kernel/fs/vboxfs + /usr/sbin/removef $PKGINST $vboxadditions32_path/$vboxfsmod 1>/dev/null + /usr/sbin/removef $PKGINST $vboxadditions32_path/$vboxfsunused 1>/dev/null + rm -f $vboxadditions32_path/$vboxfsunused fi # install openGL extensions for X.Org diff --git a/src/VBox/Additions/solaris/Installer/vboxguest.sh b/src/VBox/Additions/solaris/Installer/vboxguest.sh index 733890d08..bc30142d7 100755 --- a/src/VBox/Additions/solaris/Installer/vboxguest.sh +++ b/src/VBox/Additions/solaris/Installer/vboxguest.sh @@ -52,9 +52,9 @@ check_if_installed() module_loaded() { if test -f "/etc/name_to_major"; then - loadentry=`cat /etc/name_to_major | grep $1` + loadentry=`cat /etc/name_to_major | grep "$1 "` else - loadentry=`/usr/sbin/modinfo | grep $1` + loadentry=`/usr/sbin/modinfo | grep "$1 "` fi if test -z "$loadentry"; then return 1 @@ -92,12 +92,12 @@ start_module() info "VirtualBox guest kernel module already loaded." else /usr/sbin/add_drv -i'pci80ee,cafe' -m'* 0666 root sys' $MODNAME + sync if test ! vboxguest_loaded; then abort "Failed to load VirtualBox guest kernel module." elif test -c "/devices/pci@0,0/pci80ee,cafe@4:$MODNAME"; then info "VirtualBox guest kernel module loaded." else - stop abort "Aborting due to attach failure." fi fi diff --git a/src/VBox/Additions/solaris/Makefile.kmk b/src/VBox/Additions/solaris/Makefile.kmk index 1d4e9a214..8cd4eb276 100644 --- a/src/VBox/Additions/solaris/Makefile.kmk +++ b/src/VBox/Additions/solaris/Makefile.kmk @@ -31,12 +31,51 @@ ifeq ($(KBUILD_HOST),solaris) include $(PATH_SUB_CURRENT)/DRM/Makefile.kmk endif -PKGFILENAME := VBoxSolarisAdditions.pkg -PKGINFO_ARCH = $(shell uname -p) -PKGINFO_REVSTAMP = $(date %Y.%m.%d.%H.%M) -VBOX_PATH_SOLARIS_ADDITION_INSTALLER := $(PATH_SUB_CURRENT)/Installer -VBOX_PATH_X11_ADDITION_INSTALLER := $(PATH_ROOT)/src/VBox/Additions/x11/Installer -SOLARIS_ADD_INST_DIR := $(PATH_TARGET)/AdditionsInstaller +ifdef VBOX_WITH_COMBINED_SOLARIS_PACKAGE ## @todo remove this when tinderclient.pl is updated. + VBOX_WITH_COMBINED_GUEST_PACKAGE := 1 +endif + +PKGFILENAME := VBoxSolarisAdditions.pkg +PKGINFO_ARCH = $(shell uname -p) +PKGINFO_REVSTAMP = $(date %Y.%m.%d.%H.%M) +VBOX_PATH_SOLARIS_ADDITION_INSTALLER := $(PATH_SUB_CURRENT)/Installer +VBOX_PATH_X11_ADDITION_INSTALLER := $(PATH_ROOT)/src/VBox/Additions/x11/Installer + +SOLARIS_ADDDIR_NAME_64 := amd64 +SOLARIS_ADDDIR_NAME_32 := i386 + +SOLARIS_ADDINST_OUT_DIR := $(PATH_TARGET)/AdditionsInstaller +SOLARIS_VBOXADDINST_SUBDIR := /opt/VirtualBoxAdditions +SOLARIS_VBOXADDINST_DIR := $(SOLARIS_ADDINST_OUT_DIR)$(SOLARIS_VBOXADDINST_SUBDIR) +SOLARIS_VBOXADDINST_DIR_32 := $(SOLARIS_VBOXADDINST_DIR)/$(SOLARIS_ADDDIR_NAME_32) +SOLARIS_VBOXADDINST_DIR_64 := $(SOLARIS_VBOXADDINST_DIR)/$(SOLARIS_ADDDIR_NAME_64) + +SOLARIS_ADD_OUT_BIN_64 := $(PATH_OUT_BASE)/solaris.amd64/$(KBUILD_TYPE)/bin/additions +SOLARIS_ADD_OUT_BIN_32 := $(PATH_OUT_BASE)/solaris.x86/$(KBUILD_TYPE)/bin/additions +SOLARIS_ADD_OUT_BIN_ISA := $(PATH_OUT_BASE)/solaris.$(KBUILD_TARGET_ARCH)/$(KBUILD_TYPE)/bin/additions + +SOLARIS_ADD_DRIVERINST_DIR := $(SOLARIS_ADDINST_OUT_DIR)/usr/kernel/drv +SOLARIS_ADD_DRIVERINST_DIR_32 := $(SOLARIS_ADD_DRIVERINST_DIR) +SOLARIS_ADD_DRIVERINST_DIR_64 := $(SOLARIS_ADD_DRIVERINST_DIR)/amd64 + +SOLARIS_ADD_SYSLIBINST_DIR_32 := $(SOLARIS_ADDINST_OUT_DIR)/usr/lib +SOLARIS_ADD_SYSLIBINST_DIR_64 := $(SOLARIS_ADDINST_OUT_DIR)/usr/lib/amd64 + +SOLARIS_ADD_USRBIN_DIR := $(SOLARIS_ADDINST_OUT_DIR)/usr/bin +SOLARIS_ADD_ETCFS_DIR := $(SOLARIS_ADDINST_OUT_DIR)/etc/fs/vboxfs +SOLARIS_ADD_SERVICESINST_DIR := $(SOLARIS_ADDINST_OUT_DIR)/var/svc/manifest/system/virtualbox + +ifeq ($(KBUILD_TARGET_ARCH),x86) + SOLARIS_ADDDIR_NAME_ISA := $(SOLARIS_ADDDIR_NAME_32) + SOLARIS_VBOXADDINST_DIR_ISA := $(SOLARIS_VBOXADDINST_DIR_32) + SOLARIS_ADD_DRIVERINST_DIR_ISA := $(SOLARIS_ADD_DRIVERINST_DIR_32) + SOLARIS_ADD_SYSLIBINST_DIR_ISA := $(SOLARIS_ADD_SYSLIBINST_DIR_32) +else + SOLARIS_ADDDIR_NAME_ISA := $(SOLARIS_ADDDIR_NAME_64) + SOLARIS_VBOXADDINST_DIR_ISA := $(SOLARIS_VBOXADDINST_DIR_64) + SOLARIS_ADD_DRIVERINST_DIR_ISA := $(SOLARIS_ADD_DRIVERINST_DIR_64) + SOLARIS_ADD_SYSLIBINST_DIR_ISA := $(SOLARIS_ADD_SYSLIBINST_DIR_64) +endif ifeq ($(KBUILD_TYPE),debug) BIN_COPY := $(CP) -f @@ -47,10 +86,311 @@ else VBOX_COMPRESS := compress -f endif -PACKING += $(PATH_BIN)/additions/$(PKGFILENAME) -OTHER_CLEAN += $(PACKING) +INSTALLS += solaris-addcommon solaris-addcommonbins +PROGRAMS += VBoxAddISAExec +PACKING += $(PATH_BIN)/additions/$(PKGFILENAME) +OTHER_CLEAN += $(PACKING) + +# +# VBoxAddISAExec +# +VBoxAddISAExec_TEMPLATE = VBOXR3EXE +VBoxAddISAExec_NAME = VBoxISAExec +VBoxAddISAExec_INST = $(INST_ADDITIONS) +VBoxAddISAExec_DEPS = $(VBOX_SVN_REV_KMK) +VBoxAddISAExec_SOURCES = $(PATH_ROOT)/src/VBox/Installer/solaris/VBoxISAExec.c + +# +# Install to $(PATH_BIN)/additions/ files from various source paths (to pack them using rules) +# +solaris-addcommonbins_INST = bin/additions/ +solaris-addcommonbins_MODE = a+rx,u+w +solaris-addcommonbins_SOURCES = \ + $(VBOX_PATH_SOLARIS_ADDITION_INSTALLER)/vboxguest.sh \ + $(VBOX_PATH_X11_ADDITION_INSTALLER)/x11config.pl \ + $(VBOX_PATH_X11_ADDITION_INSTALLER)/x11config15sol.pl \ + $(VBOX_PATH_X11_ADDITION_INSTALLER)/x11restore.pl \ + $(VBOX_PATH_X11_ADDITION_INSTALLER)/VBoxRandR.sh \ + $(VBOX_PATH_X11_ADDITION_INSTALLER)/98vboxadd-xclient=>1099.vboxclient \ + $(VBOX_PATH_X11_ADDITION_INSTALLER)/solaris_xorg.conf \ + $(VBOX_PATH_X11_ADDITION_INSTALLER)/solaris_xorg_modeless.conf \ + $(VBOX_PATH_SOLARIS_ADDITION_INSTALLER)/VBox.sh + +solaris-addcommon_INST = bin/additions/ +solaris-addcommon_MODE = a+r,u+w +solaris-addcommon_SOURCES = \ + $(PATH_ROOT)/src/VBox/Additions/common/VBoxGuest/VBoxGuest-solaris.conf=>vboxguest.conf \ + $(VBOX_PATH_X11_ADDITION_INSTALLER)/vboxclient.desktop \ + $(VBOX_PATH_SOLARIS_ADDITION_INSTALLER)/vboxservice.xml + +# +# Create full directory tree +# +BLDDIRS += \ + $(SOLARIS_ADDINST_OUT_DIR) \ + $(addprefix $(SOLARIS_ADDINST_OUT_DIR)/,\ + opt \ + opt/VirtualBoxAdditions \ + opt/VirtualBoxAdditions/$(SOLARIS_ADDDIR_NAME_32) \ + opt/VirtualBoxAdditions/$(SOLARIS_ADDDIR_NAME_64) \ + usr \ + usr/bin \ + usr/lib \ + usr/lib/amd64 \ + usr/kernel \ + usr/kernel/drv \ + usr/kernel/drv/amd64 \ + var \ + var/svc \ + var/svc/manifest \ + var/svc/manifest/system \ + var/svc/manifest/system/virtualbox \ + ) + +SOLARIS_ADD_STRIP_BINS = \ + VBoxClient \ + VBoxService \ + VBoxControl \ + vboxfsmount \ + vboxfs \ + $(if $(VBOX_OSE),,vboxfs_s10) + +SOLARIS_ADD_SYSLIBS = \ + VBoxOGL.so \ + VBoxOGLcrutil.so \ + VBoxOGLfeedbackspu.so \ + VBoxOGLpassthroughspu.so \ + VBoxOGLarrayspu.so \ + VBoxOGLerrorspu.so \ + VBoxOGLpackspu.so + +SOLARIS_ADD_DRIVERS = \ + vboxguest + +SOLARIS_ADD_DRIVERS_CONF = \ + vboxguest.conf + +SOLARIS_ADD_XORG_DRIVERS = \ + vboxmouse_drv_14.so \ + vboxmouse_drv_15.so \ + vboxmouse_drv_16.so \ + vboxmouse_drv_17.so \ + vboxmouse_drv_70.so \ + vboxmouse_drv_71.so \ + vboxvideo_drv_13.so \ + vboxvideo_drv_14.so \ + vboxvideo_drv_15.so \ + vboxvideo_drv_16.so \ + vboxvideo_drv_17.so \ + vboxvideo_drv_70.so \ + vboxvideo_drv_71.so + +SOLARIS_ADD_COMMON_BINS = \ + vboxguest.sh \ + x11config.pl \ + x11config15sol.pl \ + x11restore.pl \ + VBoxRandR.sh \ + VBox.sh \ + 1099.vboxclient \ + VBoxISAExec + +SOLARIS_ADD_USRBIN_LINKS = \ + VBoxService \ + VBoxClient \ + VBoxControl + +SOLARIS_ADD_COMMON = \ + vboxclient.desktop \ + solaris_xorg.conf \ + solaris_xorg_modeless.conf + +SOLARIS_ADD_SERVICES = \ + vboxservice.xml + +ifdef VBOX_COMPRESS + SOLARIS_ADD_COMPRESS_FILES = \ + $(SOLARIS_ADD_XORG_DRIVERS) \ + VBoxService \ + VBoxClient \ + VBoxControl +endif + +ifdef VBOX_WITH_COMBINED_SOLARIS_GUEST_PACKAGE + SOLARIS_ARCH_ADD_DEPFILES = \ + $(addprefix $(SOLARIS_VBOXADDINST_DIR_64)/,$(SOLARIS_ADD_STRIP_BINS)) \ + $(addprefix $(SOLARIS_ADD_SYSLIBINST_DIR_32)/,$(SOLARIS_ADD_SYSLIBS)) \ + $(addprefix $(SOLARIS_ADD_DRIVERINST_DIR_64)/,$(SOLARIS_ADD_DRIVERS)) \ + $(addprefix $(SOLARIS_VBOXADDINST_DIR_64)/,$(SOLARIS_ADD_XORG_DRIVERS)) \ + $(addprefix $(SOLARIS_VBOXADDINST_DIR_32)/,$(SOLARIS_ADD_STRIP_BINS)) \ + $(addprefix $(SOLARIS_ADD_DRIVERINST_DIR_32)/,$(SOLARIS_ADD_DRIVERS)) \ + $(addprefix $(SOLARIS_ADD_DRIVERINST_DIR)/,$(SOLARIS_ADD_DRIVERS_CONF)) \ + $(addprefix $(SOLARIS_VBOXADDINST_DIR_32)/,$(SOLARIS_ADD_XORG_DRIVERS)) +else + SOLARIS_ARCH_ADD_DEPFILES = \ + $(addprefix $(SOLARIS_VBOXADDINST_DIR_ISA)/,$(SOLARIS_ADD_STRIP_BINS)) \ + $(addprefix $(SOLARIS_ADD_SYSLIBINST_DIR_ISA)/,$(SOLARIS_ADD_SYSLIBS)) \ + $(addprefix $(SOLARIS_ADD_DRIVERINST_DIR_ISA)/,$(SOLARIS_ADD_DRIVERS)) \ + $(addprefix $(SOLARIS_ADD_DRIVERINST_DIR)/,$(SOLARIS_ADD_DRIVERS_CONF)) \ + $(addprefix $(SOLARIS_VBOXADDINST_DIR_ISA)/,$(SOLARIS_ADD_XORG_DRIVERS)) +endif + +SOLARIS_ARCH_ADD_DEPFILES += \ + $(addprefix $(SOLARIS_VBOXADDINST_DIR)/,$(SOLARIS_ADD_COMMON_BINS)) \ + $(addprefix $(SOLARIS_VBOXADDINST_DIR)/,$(SOLARIS_ADD_COMMON)) \ + $(addprefix $(SOLARIS_ADD_SERVICESINST_DIR)/,$(SOLARIS_ADD_SERVICES)) \ + $(addprefix $(SOLARIS_ADD_USRBIN_DIR)/,$(SOLARIS_ADD_USRBIN_LINKS)) + + + +include $(KBUILD_PATH)/subfooter.kmk + +# +# -=-=-=-=-=-=-=- Additions package -=-=-=-=-=-=-=- +# + +$(PATH_BIN)/additions/$(PKGFILENAME): \ + $(VBOX_VERSION_STAMP) \ + $(VBOX_PATH_SOLARIS_ADDITION_INSTALLER)/makepackage.sh \ + $(VBOX_PATH_SOLARIS_ADDITION_INSTALLER)/postinstall.sh \ + $(VBOX_PATH_SOLARIS_ADDITION_INSTALLER)/preremove.sh \ + $(VBOX_PATH_SOLARIS_ADDITION_INSTALLER)/vboxguest.pkginfo \ + $(VBOX_PATH_SOLARIS_ADDITION_INSTALLER)/vboxguest.depend \ + $(VBOX_PATH_SOLARIS_ADDITION_INSTALLER)/vboxguest.sh \ + $(VBOX_PATH_SOLARIS_ADDITION_INSTALLER)/vboxservice.xml \ + $(VBOX_PATH_SOLARIS_ADDITION_INSTALLER)/VBox.sh \ + $(VBOX_PATH_X11_ADDITION_INSTALLER)/98vboxadd-xclient \ + $(VBOX_PATH_X11_ADDITION_INSTALLER)/x11config.pl \ + $(VBOX_PATH_X11_ADDITION_INSTALLER)/x11config15sol.pl \ + $(VBOX_PATH_X11_ADDITION_INSTALLER)/x11restore.pl \ + $(VBOX_PATH_X11_ADDITION_INSTALLER)/solaris_xorg.conf \ + $(VBOX_PATH_X11_ADDITION_INSTALLER)/solaris_xorg_modeless.conf \ + $(VBOX_PATH_X11_ADDITION_INSTALLER)/VBoxRandR.sh \ + $(if $(VBOX_OSE),,$(VBOX_BRAND_LICENSE_TXT)) \ + $(PATH_ROOT)/src/VBox/Additions/common/VBoxGuest/VBoxGuest-solaris.conf \ + $(PATH_SUB_CURRENT)/solaris/Makefile.kmk \ + $(SOLARIS_ARCH_ADD_DEPFILES) + $(call MSG_L1,Installing guest additions) + $(QUIET)$(SED) \ + -e "s/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g" \ + -e "s/@VBOX_SVN_REV@/$(VBOX_SVN_REV)/g" \ + -e "s/@VBOX_VERSION_REVSTAMP@/$(PKGINFO_REVSTAMP)/g" \ + -e "s/@UNAME_P@/$(PKGINFO_ARCH)/g" \ + --output $(SOLARIS_ADDINST_OUT_DIR)/vboxguest.pkginfo \ + $(VBOX_PATH_SOLARIS_ADDITION_INSTALLER)/vboxguest.pkginfo + $(QUIET)$(INSTALL) -m 0755 $(VBOX_PATH_SOLARIS_ADDITION_INSTALLER)/makepackage.sh $(SOLARIS_ADDINST_OUT_DIR)/makepackage.sh + $(QUIET)$(INSTALL) -m 0755 $(VBOX_PATH_SOLARIS_ADDITION_INSTALLER)/postinstall.sh $(SOLARIS_ADDINST_OUT_DIR)/postinstall.sh + $(QUIET)$(INSTALL) -m 0755 $(VBOX_PATH_SOLARIS_ADDITION_INSTALLER)/preremove.sh $(SOLARIS_ADDINST_OUT_DIR)/preremove.sh + $(QUIET)$(INSTALL) -m 0644 $(VBOX_PATH_SOLARIS_ADDITION_INSTALLER)/vboxguest.space $(SOLARIS_ADDINST_OUT_DIR)/vboxguest.space + $(QUIET)$(INSTALL) -m 0644 $(VBOX_PATH_SOLARIS_ADDITION_INSTALLER)/vboxguest.depend $(SOLARIS_ADDINST_OUT_DIR)/vboxguest.depend + $(QUIET)$(if $(VBOX_OSE),,$(INSTALL) -m 0644 $(VBOX_BRAND_LICENSE_TXT) $(SOLARIS_ADDINST_OUT_DIR)/vboxguest.copyright) + $(call MSG_L1,Creating install package: $@) + $(QUIET)$(MKDIR) -p $(SOLARIS_ADD_ETCFS_DIR) + $(QUIET)$(LN_SYMLINK) -f ../..$(SOLARIS_VBOXADDINST_SUBDIR)/VBoxRandR.sh $(SOLARIS_ADD_USRBIN_DIR)/VBoxRandR + $(QUIET)$(LN_SYMLINK) -f ../..$(SOLARIS_VBOXADDINST_SUBDIR)/1099.vboxclient $(SOLARIS_ADD_USRBIN_DIR)/VBoxClient-all +ifdef VBOX_WITH_COMBINED_SOLARIS_GUEST_PACKAGE + ifdef VBOX_COMPRESS + $(QUIET)$(VBOX_COMPRESS) $(addprefix $(SOLARIS_VBOXADDINST_DIR_32)/,$(SOLARIS_ADD_COMPRESS_FILES)) + $(QUIET)$(VBOX_COMPRESS) $(addprefix $(SOLARIS_VBOXADDINST_DIR_64)/,$(SOLARIS_ADD_COMPRESS_FILES)) + endif + $(QUIET)$(LN_SYMLINK) -f ../../..$(SOLARIS_VBOXADDINST_SUBDIR)/$(SOLARIS_ADDDIR_NAME_32)/vboxfsmount $(SOLARIS_ADD_ETCFS_DIR)/mount +else # !VBOX_WITH_COMBINED_SOLARIS_GUEST_PACKAGE + ifdef VBOX_COMPRESS + $(QUIET)$(VBOX_COMPRESS) $(addprefix $(SOLARIS_VBOXADDINST_DIR_ISA)/,$(SOLARIS_ADD_COMPRESS_FILES)) + endif + $(LN_SYMLINK) -f ../../..$(SOLARIS_VBOXADDINST_SUBDIR)/$(SOLARIS_ADDDIR_NAME_ISA)/vboxfsmount $(SOLARIS_ADD_ETCFS_DIR)/mount +endif + $(QUIET)$(SOLARIS_ADDINST_OUT_DIR)/makepackage.sh $(SOLARIS_ADDINST_OUT_DIR) $(PKGFILENAME) $(VBOX_SVN_REV) + $(QUIET)$(INSTALL) -m 0644 $(SOLARIS_ADDINST_OUT_DIR)/$(PKGFILENAME) $(PATH_BIN)/additions/$(PKGFILENAME) + + + +# +# -=-=-=-=-=-=-=- Package rules -=-=-=-=-=-=-=- +# + +# +# 32-bit files +# +$(addprefix $(SOLARIS_VBOXADDINST_DIR_32)/,$(SOLARIS_ADD_STRIP_BINS)): \ + $(SOLARIS_VBOXADDINST_DIR_32)/% : $(SOLARIS_ADD_OUT_BIN_32)/% | $$(dir $$@) + $(INSTALL) -m 0755 $(if $(VBOX_DO_STRIP),-s,) $< $@ + +$(addprefix $(SOLARIS_ADD_SYSLIBINST_DIR_32)/,$(SOLARIS_ADD_SYSLIBS)): \ + $(SOLARIS_ADD_SYSLIBINST_DIR_32)/% : $(SOLARIS_ADD_OUT_BIN_32)/% | $$(dir $$@) + $(INSTALL) -m 0644 $(if $(VBOX_DO_STRIP),-s,) $< $@ + +$(addprefix $(SOLARIS_ADD_DRIVERINST_DIR_32)/,$(SOLARIS_ADD_DRIVERS)): \ + $(SOLARIS_ADD_DRIVERINST_DIR_32)/% : $(SOLARIS_ADD_OUT_BIN_32)/% | $$(dir $$@) + $(INSTALL) -m 0644 $< $@ + +$(addprefix $(SOLARIS_VBOXADDINST_DIR_32)/,$(SOLARIS_ADD_XORG_DRIVERS)): \ + $(SOLARIS_VBOXADDINST_DIR_32)/% : $(SOLARIS_ADD_OUT_BIN_32)/% | $$(dir $$@) + $(BIN_COPY) $< $@ + + +# +# 64-bit files +# +$(addprefix $(SOLARIS_VBOXADDINST_DIR_64)/,$(SOLARIS_ADD_STRIP_BINS)): \ + $(SOLARIS_VBOXADDINST_DIR_64)/% : $(SOLARIS_ADD_OUT_BIN_64)/% | $$(dir $$@) + $(INSTALL) -m 0755 $(if $(VBOX_DO_STRIP),-s,) $< $@ + +$(addprefix $(SOLARIS_ADD_SYSLIBINST_DIR_64)/,$(SOLARIS_ADD_SYSLIBS)): \ + $(SOLARIS_ADD_SYSLIBINST_DIR_64)/% : $(SOLARIS_ADD_OUT_BIN_64)/% | $$(dir $$@) + $(INSTALL) -m 0644 $(if $(VBOX_DO_STRIP),-s,) $< $@ + +$(addprefix $(SOLARIS_ADD_DRIVERINST_DIR_64)/,$(SOLARIS_ADD_DRIVERS)): \ + $(SOLARIS_ADD_DRIVERINST_DIR_64)/% : $(SOLARIS_ADD_OUT_BIN_64)/% | $$(dir $$@) + $(INSTALL) -m 0644 $< $@ + +$(addprefix $(SOLARIS_VBOXADDINST_DIR_64)/,$(SOLARIS_ADD_XORG_DRIVERS)): \ + $(SOLARIS_VBOXADDINST_DIR_64)/% : $(SOLARIS_ADD_OUT_BIN_64)/% | $$(dir $$@) + $(BIN_COPY) $< $@ + + +# +# Common files +# +$(addprefix $(SOLARIS_VBOXADDINST_DIR)/,$(SOLARIS_ADD_COMMON)): \ + $(SOLARIS_VBOXADDINST_DIR)/% : $(SOLARIS_ADD_OUT_BIN_ISA)/% | $$(dir $$@) + $(INSTALL) -m 0644 $< $@ + +# +# Common binaries/shell scripts +# +$(addprefix $(SOLARIS_VBOXADDINST_DIR)/,$(SOLARIS_ADD_COMMON_BINS)): \ + $(SOLARIS_VBOXADDINST_DIR)/% : $(SOLARIS_ADD_OUT_BIN_ISA)/% | $$(dir $$@) + $(INSTALL) -m 0755 $< $@ # +# Driver .conf files +# +$(addprefix $(SOLARIS_ADD_DRIVERINST_DIR)/,$(SOLARIS_ADD_DRIVERS_CONF)): \ + $(SOLARIS_ADD_DRIVERINST_DIR)/% : $(SOLARIS_ADD_OUT_BIN_ISA)/% | $$(dir $$@) + $(INSTALL) -m 0644 $< $@ + +# +# SMF Service files +# +$(addprefix $(SOLARIS_ADD_SERVICESINST_DIR)/,$(SOLARIS_ADD_SERVICES)): \ + $(SOLARIS_ADD_SERVICESINST_DIR)/% : $(SOLARIS_ADD_OUT_BIN_ISA)/% | $$(dir $$@) + $(INSTALL) -m 0644 $< $@ + +# +# Symlinks from /usr/bin/ to /opt/VirtualBoxAdditions (some like VBoxRandR created manually) +# +$(addprefix $(SOLARIS_ADD_USRBIN_DIR)/,$(SOLARIS_ADD_USRBIN_LINKS)): \ + $(SOLARIS_ADD_USRBIN_DIR)/% : % | $$(dir $$@) + $(LN_SYMLINK) -f ../..$(SOLARIS_VBOXADDINST_SUBDIR)/$< $@ + + + +# +# @todo Delete once the new packaging works +# +ifdef OBSOLETE_PACKAGING +# # If we are doing a combined package (x86+amd64) include the binaries from both # architectures otherwise use the one from $(PATH_BIN)/additions # @@ -345,3 +685,5 @@ endif # !VBOX_WITH_COMBINED_SOLARIS_GUEST_PACKAGE $(QUIET)$(SOLARIS_ADD_INST_DIR)/makepackage.sh $(SOLARIS_ADD_INST_DIR) $(PKGFILENAME) $(VBOX_SVN_REV) $(QUIET)$(INSTALL) -m 0644 $(SOLARIS_ADD_INST_DIR)/$(PKGFILENAME) $(PATH_BIN)/additions/$(PKGFILENAME) +endif + diff --git a/src/VBox/Additions/x11/VBoxClient/Makefile.kmk b/src/VBox/Additions/x11/VBoxClient/Makefile.kmk index cd7c1e30e..d2bb59edb 100644 --- a/src/VBox/Additions/x11/VBoxClient/Makefile.kmk +++ b/src/VBox/Additions/x11/VBoxClient/Makefile.kmk @@ -43,11 +43,14 @@ VBoxClient_LIBPATH = \ $(VBOX_LIBPATH32_X11) VBoxClient_LIBS.freebsd = \ iconv +VBoxClient_LIBS.linux = \ + dl +VBoxClient_LIBS.solaris = \ + dl VBoxClient_LIBS = \ $(VBOX_LIB_IPRT_GUEST_R3) \ $(VBOX_LIB_VBGL_R3) \ $(VBOX_LIB_IPRT_GUEST_R3) \ - dl \ X11 \ Xt # These are static replacements for gcc-specific parts of libstdc++ diff --git a/src/VBox/Additions/x11/vboxmouse/Imakefile b/src/VBox/Additions/x11/vboxmouse/Imakefile deleted file mode 100644 index c159569f2..000000000 --- a/src/VBox/Additions/x11/vboxmouse/Imakefile +++ /dev/null @@ -1,48 +0,0 @@ -XCOMM -XCOMM Imakefile for the VBox Linux Additions X.org mouse driver. -XCOMM (Only needed if this module is compiled as part of monolithic Xorg) -XCOMM -XCOMM -XCOMM Copyright (C) 2006-2007 Sun Microsystems, Inc. -XCOMM -XCOMM This file is part of VirtualBox Open Source Edition (OSE), as -XCOMM available from http://www.virtualbox.org. This file is free software; -XCOMM you can redistribute it and/or modify it under the terms of the GNU -XCOMM General Public License (GPL) as published by the Free Software -XCOMM Foundation, in version 2 as it comes in the "COPYING" file of the -XCOMM VirtualBox OSE distribution. VirtualBox OSE is distributed in the -XCOMM hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. -XCOMM -XCOMM Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa -XCOMM Clara, CA 95054 USA or visit http://www.sun.com if you need -XCOMM additional information or have any questions. -XCOMM - -#define IHaveModules -#include <Server.tmpl> - -SRCS = mouse.c pnp.c VBoxUtils.c -OBJS = mouse.o pnp.o VBoxUtils.o - -DRIVER = vboxmouse - -INCLUDES = -I. -I$(XF86COMSRC) -I$(XF86SRC)/loader -I$(XF86OSSRC) \ - -I$(SERVERSRC)/mi -I$(SERVERSRC)/include -I$(XINCLUDESRC) \ - -I$(EXTINCSRC) - -DEFINES = -DPNP_MOUSE -DIN_RING3 -DVBOX -CCOPTIONS += -fno-merge-constants - -#if MakeHasPosixVariableSubstitutions -SubdirLibraryRule($(OBJS)) -#endif - -ModuleObjectRule() - -ObjectModuleTarget($(DRIVER),$(OBJS)) - -InstallInputObjectModule($(DRIVER),$(MODULEDIR)) - -DependTarget() - -InstallDriverSDKObjectModule($(DRIVER),$(DRIVERSDKMODULEDIR),input) diff --git a/src/VBox/Additions/x11/vboxmouse/Makefile.kmk b/src/VBox/Additions/x11/vboxmouse/Makefile.kmk index 31ab104cf..2d6d42a27 100644 --- a/src/VBox/Additions/x11/vboxmouse/Makefile.kmk +++ b/src/VBox/Additions/x11/vboxmouse/Makefile.kmk @@ -31,6 +31,9 @@ if1of ($(KBUILD_TARGET), linux) vboxmouse_drv_TEMPLATE = VBOXGUESTR3XF86MOD vboxmouse_drv_DEFS.linux = linux vboxmouse_drv_DEFS.x86 += __i386__ + # This one has to be defined when building server code on systems where + # unslgned long is 64bits + vboxmouse_drv_DEFS.amd64 += _XSERVER64 vboxmouse_drv_DEFS += \ _POSIX_C_SOURCE=199309L _POSIX_SOURCE _XOPEN_SOURCE \ _BSD_SOURCE _SVID_SOURCE _GNU_SOURCE SHAPE XINPUT XKB LBX XAPPGROUP \ @@ -40,16 +43,15 @@ if1of ($(KBUILD_TARGET), linux) BUILDDEBUG X_BYTE_ORDER=X_LITTLE_ENDIAN DNDEBUG FUNCPROTO=15 NARROWPROTO \ IN_MODULE XFree86Module PNP_MOUSE vboxmouse_drv_INCS := \ - $(VBOX_PATH_X11_XFREE_4_2)/exports/include \ - $(VBOX_PATH_X11_XFREE_4_2)/exports/include/X11 \ - $(VBOX_PATH_X11_XFREE_4_2)/include \ - $(VBOX_PATH_X11_XFREE_4_2)/include/extensions \ - $(VBOX_PATH_X11_XFREE_4_2)/programs/Xserver/include \ - $(VBOX_PATH_X11_XFREE_4_2)/programs/Xserver/hw/xfree86 \ - $(VBOX_PATH_X11_XFREE_4_2)/programs/Xserver/hw/xfree86/common \ - $(VBOX_PATH_X11_XFREE_4_2)/programs/Xserver/hw/xfree86/os-support \ - $(VBOX_PATH_X11_XFREE_4_2)/programs/Xserver/hw/xfree86/os-support/bus \ - $(VBOX_PATH_X11_XFREE_4_2)/programs/Xserver/mi \ + $(VBOX_PATH_X11_XFREE_4_3)/include \ + $(VBOX_PATH_X11_XFREE_4_3)/include/extensions \ + $(VBOX_PATH_X11_XFREE_4_3)/include/X11 \ + $(VBOX_PATH_X11_XFREE_4_3)/programs/Xserver/hw/xfree86 \ + $(VBOX_PATH_X11_XFREE_4_3)/programs/Xserver/hw/xfree86/common \ + $(VBOX_PATH_X11_XFREE_4_3)/programs/Xserver/hw/xfree86/os-support \ + $(VBOX_PATH_X11_XFREE_4_3)/programs/Xserver/hw/xfree86/os-support/bus \ + $(VBOX_PATH_X11_XFREE_4_3)/programs/Xserver/mi \ + $(VBOX_PATH_X11_XFREE_4_3)/programs/Xserver/include \ $(PATH_SUB_CURRENT) vboxmouse_drv_SOURCES = \ mouse.c \ diff --git a/src/VBox/Additions/x11/vboxmouse/mouse.c b/src/VBox/Additions/x11/vboxmouse/mouse.c index 295d430ff..beb85b374 100644 --- a/src/VBox/Additions/x11/vboxmouse/mouse.c +++ b/src/VBox/Additions/x11/vboxmouse/mouse.c @@ -604,6 +604,7 @@ MousePreInit(InputDriverPtr drv, IDevPtr dev, int flags) { InputInfoPtr pInfo; MouseDevPtr pMse; + Bool clearDTR, clearRTS; MessageType from = X_DEFAULT; const char *protocol; MouseProtocolID protocolID; @@ -747,16 +748,20 @@ MousePreInit(InputDriverPtr drv, IDevPtr dev, int flags) pMse->resolution); } - pMse->clearDTR = xf86SetBoolOption(pInfo->options, "ClearDTR", FALSE); - pMse->clearRTS = xf86SetBoolOption(pInfo->options, "ClearRTS", FALSE); - if (pMse->clearDTR || pMse->clearRTS) { + if ((clearDTR = xf86SetBoolOption(pInfo->options, "ClearDTR", FALSE))) + pMse->mouseFlags |= MF_CLEAR_DTR; + + if ((clearRTS = xf86SetBoolOption(pInfo->options, "ClearRTS", FALSE))) + pMse->mouseFlags |= MF_CLEAR_RTS; + + if (clearDTR || clearRTS) { xf86Msg(X_CONFIG, "%s: ", pInfo->name); - if (pMse->clearDTR) { + if (clearDTR) { xf86ErrorF("ClearDTR"); - if (pMse->clearRTS) + if (clearRTS) xf86ErrorF(", "); } - if (pMse->clearRTS) { + if (clearRTS) { xf86ErrorF("ClearRTS"); } xf86ErrorF("\n"); diff --git a/src/VBox/Additions/x11/vboxmouse/undefined_15 b/src/VBox/Additions/x11/vboxmouse/undefined_15 index 51071d837..0bb170010 100644 --- a/src/VBox/Additions/x11/vboxmouse/undefined_15 +++ b/src/VBox/Additions/x11/vboxmouse/undefined_15 @@ -91,3 +91,4 @@ miPointerGetMotionEvents miPointerGetMotionBufferSize miPointerCurrentScreen screenInfo +InitPointerDeviceStruct diff --git a/src/VBox/Additions/x11/vboxmouse/vboxmouse_15.c b/src/VBox/Additions/x11/vboxmouse/vboxmouse_15.c index 3c9b0e9b7..023a91664 100644 --- a/src/VBox/Additions/x11/vboxmouse/vboxmouse_15.c +++ b/src/VBox/Additions/x11/vboxmouse/vboxmouse_15.c @@ -76,8 +76,8 @@ VBoxReadInput(InputInfoPtr pInfo) #if ABI_XINPUT_VERSION == SET_ABI_VERSION(2, 0) /* Bug in the 1.4 X server series - conversion_proc was no longer * called, but the server didn't yet do the conversion itself. */ - cx = xf86ScaleAxis(cx, 0, screenInfo.screens[0]->width, 0, 65536); - cy = xf86ScaleAxis(cy, 0, screenInfo.screens[0]->height, 0, 65536); + cx = (cx * screenInfo.screens[0]->width) / 65535; + cy = (cy * screenInfo.screens[0]->height) / 65535; #endif /* send absolute movement */ xf86PostMotionEvent(pInfo->dev, 1, 0, 2, cx, cy); @@ -95,35 +95,27 @@ VBoxInit(DeviceIntPtr device) CARD8 map[2] = { 0, 1 }; Atom axis_labels[2] = { 0, 0 }; Atom button_labels[2] = { 0, 0 }; - InputInfoPtr pInfo; - - pInfo = device->public.devicePrivate; - if (!InitValuatorClassDeviceStruct(device, 2, + if (!InitPointerDeviceStruct((DevicePtr)device, map, 2, +#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 + button_labels, +#endif #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 2 - miPointerGetMotionEvents, - miPointerGetMotionBufferSize(), + miPointerGetMotionEvents, VBoxPtrCtrlProc, + miPointerGetMotionBufferSize() #elif GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 3 - GetMotionHistory, - GetMotionHistorySize(), -#elif GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 7 - GetMotionHistorySize(), -#elif GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 - axis_labels, - GetMotionHistorySize(), + GetMotionHistory, VBoxPtrCtrlProc, + GetMotionHistorySize(), 2 /* Number of axes */ + +#elif GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 3 + VBoxPtrCtrlProc, GetMotionHistorySize(), + 2 /* Number of axes */ #else # error Unsupported version of X.Org #endif - Absolute)) - return !Success; - - /* Pretend we have buttons so the server accepts us as a pointing device. */ - if (!InitButtonClassDeviceStruct(device, 2, /* number of buttons */ #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 - button_labels, + , axis_labels #endif - map)) - return !Success; - if (!InitPtrFeedbackClassDeviceStruct(device, VBoxPtrCtrlProc)) + )) return !Success; /* Tell the server about the range of axis values we report */ @@ -147,7 +139,7 @@ VBoxInit(DeviceIntPtr device) #endif xf86InitValuatorDefaults(device, 0); xf86InitValuatorDefaults(device, 1); - xf86MotionHistoryAllocate(pInfo); + xf86MotionHistoryAllocate(device->public.devicePrivate); return Success; } diff --git a/src/VBox/Additions/x11/vboxvideo/Imakefile b/src/VBox/Additions/x11/vboxvideo/Imakefile deleted file mode 100644 index 0cf18bcd4..000000000 --- a/src/VBox/Additions/x11/vboxvideo/Imakefile +++ /dev/null @@ -1,65 +0,0 @@ -XCOMM -XCOMM Imakefile for the VBox Linux Additions X.org graphics driver. -XCOMM (Only needed if this module is compiled as part of monolithic Xorg) -XCOMM -XCOMM -XCOMM -XCOMM Copyright (C) 2006-2007 Sun Microsystems, Inc. -XCOMM -XCOMM This file is part of VirtualBox Open Source Edition (OSE), as -XCOMM available from http://www.virtualbox.org. This file is free software; -XCOMM you can redistribute it and/or modify it under the terms of the GNU -XCOMM General Public License (GPL) as published by the Free Software -XCOMM Foundation, in version 2 as it comes in the "COPYING" file of the -XCOMM VirtualBox OSE distribution. VirtualBox OSE is distributed in the -XCOMM hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. -XCOMM -XCOMM Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa -XCOMM Clara, CA 95054 USA or visit http://www.sun.com if you need -XCOMM additional information or have any questions. -XCOMM - - -#define IHaveModules -#include <Server.tmpl> - -SRCS = vboxvideo.c vboxutils.c -OBJS = vboxvideo.o vboxutils.o - -DRIVER = vboxvideo - -#if defined(XF86DriverSDK) -INCLUDES = -I. -I../../include -#else -INCLUDES = -I. -I$(SERVERSRC)/fb -I$(XF86SRC)/xf4bpp -I$(XF86SRC)/xf1bpp \ - -I$(SERVERSRC)/mfb -I$(SERVERSRC)/afb -I$(SERVERSRC)/mi \ - -I$(SERVERSRC)/miext/shadow -I$(SERVERSRC)/render \ - -I$(XF86SRC)/vgahw \ - -I$(XF86COMSRC) -I$(XF86OSSRC) -I$(SERVERSRC)/Xext \ - -I$(SERVERSRC)/include -I$(FONTINCSRC) -I$(XINCLUDESRC)\ - -I$(XF86SRC)/rac -I$(XF86SRC)/ramdac -I$(XF86SRC)/ddc -I$(XF86SRC)/i2c \ - -I$(XF86SRC)/vbe -I$(XF86SRC)/int10 \ - -I$(EXTINCSRC) -#endif - -DEFINES = -DVBOX -DIN_RING3 -DXORG_7X -CCOPTIONS += -fno-merge-constants - -#if MakeHasPosixVariableSubstitutions -SubdirLibraryRule($(OBJS)) -#endif - -ModuleObjectRule() - -ObjectModuleTarget($(DRIVER),$(OBJS)) - -InstallVideoObjectModule($(DRIVER),$(MODULEDIR)) - -DependTarget() - -InstallDriverSDKNonExecFile(Imakefile,$(DRIVERSDKDIR)/drivers/vboxvideo) -InstallDriverSDKNonExecFile(vboxvideo.c,$(DRIVERSDKDIR)/drivers/vboxvideo) -InstallDriverSDKNonExecFile(vboxvideo.h,$(DRIVERSDKDIR)/drivers/vboxvideo) -InstallDriverSDKNonExecFile(vboxutils.c,$(DRIVERSDKDIR)/drivers/vboxvideo) - -InstallDriverSDKObjectModule($(DRIVER),$(DRIVERSDKMODULEDIR),drivers) diff --git a/src/VBox/Additions/x11/vboxvideo/Makefile.kmk b/src/VBox/Additions/x11/vboxvideo/Makefile.kmk index 2fbb3d1f6..43b57c75b 100644 --- a/src/VBox/Additions/x11/vboxvideo/Makefile.kmk +++ b/src/VBox/Additions/x11/vboxvideo/Makefile.kmk @@ -30,7 +30,10 @@ if1of ($(KBUILD_TARGET), linux) vboxvideo_drv_TEMPLATE = VBOXGUESTR3XF86MOD vboxvideo_drv_DEFS.linux = linux vboxvideo_drv_DEFS.x86 = __i386__ - vboxvideo_drv_DEFS = \ + # This one has to be defined when building server code on systems where + # unslgned long is 64bits + vboxvideo_drv_DEFS.amd64 += _XSERVER64 +vboxvideo_drv_DEFS = \ _POSIX_C_SOURCE=199309L _POSIX_SOURCE _XOPEN_SOURCE \ _BSD_SOURCE _SVID_SOURCE _GNU_SOURCE SHAPE XINPUT XKB LBX XAPPGROUP \ XCSECURITY TOGCUP XF86BIGFONT DPMSExtension PIXPRIV PANORAMIX RENDER \ diff --git a/src/VBox/Additions/x11/vboxvideo/undefined_68 b/src/VBox/Additions/x11/vboxvideo/undefined_68 index 6b36dcb1b..4fc93af03 100644 --- a/src/VBox/Additions/x11/vboxvideo/undefined_68 +++ b/src/VBox/Additions/x11/vboxvideo/undefined_68 @@ -74,3 +74,5 @@ xf86errno xf86CreateCursorInfoRec resVgaShared xf86SetBackingStore +xf86snprintf +XNFstrdup diff --git a/src/VBox/Additions/x11/vboxvideo/vboxutils_68.c b/src/VBox/Additions/x11/vboxvideo/vboxutils_68.c index b1a2699e5..020f5ecb4 100644 --- a/src/VBox/Additions/x11/vboxvideo/vboxutils_68.c +++ b/src/VBox/Additions/x11/vboxvideo/vboxutils_68.c @@ -944,40 +944,51 @@ vboxDisableVbva(ScrnInfoPtr pScrn) return TRUE; } - /** * Query the last display change request. * - * @returns iprt status value - * @param xres where to store the horizontal pixel resolution requested - * (0 = do not change) - * @param yres where to store the vertical pixel resolution requested - * (0 = do not change) - * @param bpp where to store the bits per pixel requeste - * (0 = do not change) - * @param display Where to store the display number the request was for - - * 0 for the primary display, 1 for the first secondary, etc. + * @returns boolean success indicator. + * @param pScrn Pointer to the X screen info structure. + * @param pcx Where to store the horizontal pixel resolution (0 = do not change). + * @param pcy Where to store the vertical pixel resolution (0 = do not change). + * @param pcBits Where to store the bits per pixel (0 = do not change). + * @param fEventAck Flag that the request is an acknowlegement for the + * VMMDEV_EVENT_DISPLAY_CHANGE_REQUEST. + * Values: + * 0 - just querying, + * VMMDEV_EVENT_DISPLAY_CHANGE_REQUEST - event acknowledged. + * @param iDisplay 0 for primary display, 1 for the first secondary, etc. */ Bool -vboxGetDisplayChangeRequest(ScrnInfoPtr pScrn, uint32_t *px, uint32_t *py, - uint32_t *pbpp, uint32_t *display) +vboxGetDisplayChangeRequest(ScrnInfoPtr pScrn, uint32_t *pcx, uint32_t *pcy, + uint32_t *pcBits, uint32_t fEventAck, uint32_t iDisplay) { - int rc, scrnIndex = pScrn->scrnIndex; - VBOXPtr pVBox = pScrn->driverPrivate; + VMMDevDisplayChangeRequest2 req; + int rc; + int fd; - VMMDevDisplayChangeRequest2 Req = { { 0 } }; - vmmdevInitRequest(&Req.header, VMMDevReq_GetDisplayChangeRequest2); - rc = vbox_vmmcall(pScrn, pVBox, &Req.header); - if (RT_SUCCESS(rc)) - { - *px = Req.xres; - *py = Req.yres; - *pbpp = Req.bpp; - *display = Req.display; - return TRUE; - } - xf86DrvMsg(scrnIndex, X_ERROR, - "Failed to request the last resolution requested from the guest, rc=%d.\n", - rc); - return FALSE; + req.eventAck = fEventAck; + req.display = iDisplay; + + rc = vmmdevInitRequest ((VMMDevRequestHeader*)&req, VMMDevReq_GetDisplayChangeRequest2); + if (VBOX_FAILURE (rc)) + return FALSE; + + /* open VBOXGUEST_DEVICE_NAME temporarily as we didn't call vbox_open yet when we enter + * this function */ + fd = open (VBOXGUEST_DEVICE_NAME, O_RDWR, 0); + if (fd < 0) + return FALSE; + if (ioctl(fd, VBOXGUEST_IOCTL_VMMREQUEST(sizeof(req)), (void*)&req) < 0) + return FALSE; + close (fd); + + rc = req.header.rc; + if (RT_FAILURE(rc)) + return FALSE; + + *pcx = req.xres; + *pcy = req.yres; + *pcBits = req.bpp; + return TRUE; } diff --git a/src/VBox/Additions/x11/vboxvideo/vboxvideo.h b/src/VBox/Additions/x11/vboxvideo/vboxvideo.h index a4ca18dd7..a98625810 100644 --- a/src/VBox/Additions/x11/vboxvideo/vboxvideo.h +++ b/src/VBox/Additions/x11/vboxvideo/vboxvideo.h @@ -194,8 +194,7 @@ typedef struct _VBOXRec PCITAG pciTag; #endif CARD16 maxBytesPerScanline; - unsigned long mapPhys, mapOff; - int mapSize; /* video memory */ + unsigned long mapPhys, mapOff, mapSize; /* video memory */ void *base, *VGAbase; CARD8 *state, *pstate; /* SVGA state */ int statePage, stateSize, stateMode; diff --git a/src/VBox/Additions/x11/vboxvideo/vboxvideo_13.c b/src/VBox/Additions/x11/vboxvideo/vboxvideo_13.c index 1b6a37024..ade6b0fdf 100644 --- a/src/VBox/Additions/x11/vboxvideo/vboxvideo_13.c +++ b/src/VBox/Additions/x11/vboxvideo/vboxvideo_13.c @@ -345,8 +345,10 @@ vbox_output_mode_valid (xf86OutputPtr output, DisplayModePtr mode) int rc = MODE_OK; TRACE_LOG("HDisplay=%d, VDisplay=%d\n", mode->HDisplay, mode->VDisplay); /* We always like modes specified by the user in the configuration - * file, as doing otherwise is likely to annoy people. */ + * file and modes requested by the host, as doing otherwise is likely to + * annoy people. */ if ( !(mode->type & M_T_USERDEF) + && !(mode->type & M_T_PREFERRED) && vbox_device_available(VBOXGetRec(pScrn)) && !vboxHostLikesVideoMode(pScrn, mode->HDisplay, mode->VDisplay, pScrn->bitsPerPixel) diff --git a/src/VBox/Additions/x11/vboxvideo/vboxvideo_68.c b/src/VBox/Additions/x11/vboxvideo/vboxvideo_68.c index 46705811d..8816e802f 100644 --- a/src/VBox/Additions/x11/vboxvideo/vboxvideo_68.c +++ b/src/VBox/Additions/x11/vboxvideo/vboxvideo_68.c @@ -369,6 +369,8 @@ VBOXPreInit(ScrnInfoPtr pScrn, int flags) ClockRange *clockRanges; int i; DisplayModePtr m_prev; + int rc, modes; + uint32_t x, y, bpp; /* Are we really starting the server, or is this just a dummy run? */ if (flags & PROBE_DETECT) @@ -475,30 +477,40 @@ VBOXPreInit(ScrnInfoPtr pScrn, int flags) xf86SetGamma(pScrn, gzeros); + /* Video mode hint passed? */ + rc = vboxGetDisplayChangeRequest(pScrn, &x, &y, &bpp, 0, 0); + if (rc && (!x || !y)) + rc = FALSE; + /* To get around the problem of SUSE specifying a single, invalid mode in their * Xorg.conf by default, we add an additional mode to the end of the user specified * list. This means that if all user modes are invalid, X will try our mode before * falling back to its standard mode list. */ if (pScrn->display->modes == NULL) { - /* The user specified no modes at all - specify 1024x768 as a default. */ - pScrn->display->modes = xnfalloc(4 * sizeof(char*)); - pScrn->display->modes[0] = "1024x768"; - pScrn->display->modes[1] = "800x600"; - pScrn->display->modes[2] = "640x480"; - pScrn->display->modes[3] = NULL; + modes = rc ? 5 : 4; + /* The user specified no modes at all - specify default modes. */ + pScrn->display->modes = xnfalloc(modes * sizeof(char*)); } else { - /* Add 1024x768 to the end of the mode list in case the others are all invalid. */ - for (i = 0; pScrn->display->modes[i] != NULL; i++); - pScrn->display->modes = xnfrealloc(pScrn->display->modes, (i + 4) - * sizeof(char *)); - pScrn->display->modes[i ] = "1024x768"; - pScrn->display->modes[i+1] = "800x600"; - pScrn->display->modes[i+2] = "640x480"; - pScrn->display->modes[i+3] = NULL; + /* Add default modes to the end of the mode list in case the others are all invalid. */ + for (i = 0; pScrn->display->modes[i] != NULL; i++) + ; + modes = rc ? i + 5 : i + 4; + pScrn->display->modes = xnfrealloc(pScrn->display->modes, + modes * sizeof(char*)); + } + if (rc) + { + char mode[32]; + snprintf(mode, sizeof(mode), "%dx%d", x, y); + pScrn->display->modes[modes - 5] = XNFstrdup(mode); } + pScrn->display->modes[modes - 4] = "1024x768"; + pScrn->display->modes[modes - 3] = "800x600"; + pScrn->display->modes[modes - 2] = "640x480"; + pScrn->display->modes[modes - 1] = NULL; /* Create a builtin mode for every specified mode. This allows to specify arbitrary * screen resolutions */ diff --git a/src/VBox/Additions/x11/vboxvideo/vboxvideo_68.h b/src/VBox/Additions/x11/vboxvideo/vboxvideo_68.h index fbfa501a7..5aa5ac115 100644 --- a/src/VBox/Additions/x11/vboxvideo/vboxvideo_68.h +++ b/src/VBox/Additions/x11/vboxvideo/vboxvideo_68.h @@ -134,7 +134,7 @@ typedef struct _VBOXRec pciVideoPtr pciInfo; PCITAG pciTag; CARD16 maxBytesPerScanline; - int mapPhys, mapOff, mapSize; /* video memory */ + unsigned long mapPhys, mapOff, mapSize; /* video memory */ void *base, *VGAbase; CARD8 *state, *pstate; /* SVGA state */ int statePage, stateSize, stateMode; @@ -175,8 +175,23 @@ extern Bool vboxEnableVbva(ScrnInfoPtr pScrn); extern Bool vboxDisableVbva(ScrnInfoPtr pScrn); -extern Bool vboxGetDisplayChangeRequest(ScrnInfoPtr pScrn, uint32_t *pcx, - uint32_t *pcy, uint32_t *pcBits, - uint32_t *piDisplay); +/** + * Query the last display change request. + * + * @returns boolean success indicator. + * @param pScrn Pointer to the X screen info structure. + * @param pcx Where to store the horizontal pixel resolution (0 = do not change). + * @param pcy Where to store the vertical pixel resolution (0 = do not change). + * @param pcBits Where to store the bits per pixel (0 = do not change). + * @param fEventAck Flag that the request is an acknowlegement for the + * VMMDEV_EVENT_DISPLAY_CHANGE_REQUEST. + * Values: + * 0 - just querying, + * VMMDEV_EVENT_DISPLAY_CHANGE_REQUEST - event acknowledged. + * @param iDisplay 0 for primary display, 1 for the first secondary, etc. + */ +extern Bool +vboxGetDisplayChangeRequest(ScrnInfoPtr pScrn, uint32_t *pcx, uint32_t *pcy, + uint32_t *pcBits, uint32_t fEventAck, uint32_t iDisplay); #endif /* _VBOXVIDEO_H_ */ diff --git a/src/VBox/Devices/Audio/audio.c b/src/VBox/Devices/Audio/audio.c index c25f0aaec..5c17f2320 100644 --- a/src/VBox/Devices/Audio/audio.c +++ b/src/VBox/Devices/Audio/audio.c @@ -66,12 +66,12 @@ static struct audio_driver *drvtab[] = { &oss_audio_driver, #endif #ifdef RT_OS_LINUX -# ifdef VBOX_WITH_ALSA - &alsa_audio_driver, -# endif # ifdef VBOX_WITH_PULSE &pulse_audio_driver, # endif +# ifdef VBOX_WITH_ALSA + &alsa_audio_driver, +# endif #endif /* RT_OS_LINUX */ #ifdef RT_OS_DARWIN &coreaudio_audio_driver, diff --git a/src/VBox/Devices/Audio/pulse_stubs.c b/src/VBox/Devices/Audio/pulse_stubs.c index 66b71f546..859b0e82b 100644 --- a/src/VBox/Devices/Audio/pulse_stubs.c +++ b/src/VBox/Devices/Audio/pulse_stubs.c @@ -78,9 +78,12 @@ PROXY_STUB (pa_stream_get_state, pa_stream_state_t, PROXY_STUB_VOID(pa_stream_set_state_callback, (pa_stream *s, pa_stream_notify_cb_t cb, void *userdata), (s, cb, userdata)) -PROXY_STUB (pa_stream_flush, pa_operation*, +PROXY_STUB (pa_stream_drain, pa_operation*, (pa_stream *s, pa_stream_success_cb_t cb, void *userdata), (s, cb, userdata)) +PROXY_STUB (pa_stream_trigger, pa_operation*, + (pa_stream *s, pa_stream_success_cb_t cb, void *userdata), + (s, cb, userdata)) PROXY_STUB (pa_stream_new, pa_stream*, (pa_context *c, const char *name, const pa_sample_spec *ss, const pa_channel_map *map), @@ -97,9 +100,6 @@ PROXY_STUB (pa_stream_cork, pa_operation*, PROXY_STUB (pa_stream_drop, int, (pa_stream *p), (p)) -PROXY_STUB (pa_stream_trigger, pa_operation*, - (pa_stream *s, pa_stream_success_cb_t cb, void *userdata), - (s, cb, userdata)) PROXY_STUB (pa_stream_writable_size, size_t, (pa_stream *p), (p)) @@ -155,6 +155,9 @@ PROXY_STUB_VOID(pa_threaded_mainloop_lock, PROXY_STUB (pa_bytes_per_second, size_t, (const pa_sample_spec *spec), (spec)) +PROXY_STUB (pa_frame_size, size_t, + (const pa_sample_spec *spec), + (spec)) PROXY_STUB (pa_sample_format_to_string, const char*, (pa_sample_format_t f), (f)) @@ -167,9 +170,15 @@ PROXY_STUB (pa_channel_map_init_auto, pa_channel_map*, PROXY_STUB_VOID(pa_operation_unref, (pa_operation *o), (o)) +PROXY_STUB (pa_operation_get_state, pa_operation_state_t, + (pa_operation *o), + (o)) PROXY_STUB (pa_strerror, const char*, (int error), (error)) +PROXY_STUB (pa_stream_readable_size, size_t, + (pa_stream *p), + (p)) typedef struct @@ -190,13 +199,13 @@ static SHARED_FUNC SharedFuncs[] = ELEMENT(pa_stream_unref), ELEMENT(pa_stream_get_state), ELEMENT(pa_stream_set_state_callback), - ELEMENT(pa_stream_flush), + ELEMENT(pa_stream_drain), + ELEMENT(pa_stream_trigger), ELEMENT(pa_stream_new), ELEMENT(pa_stream_get_buffer_attr), ELEMENT(pa_stream_peek), ELEMENT(pa_stream_cork), ELEMENT(pa_stream_drop), - ELEMENT(pa_stream_trigger), ELEMENT(pa_stream_writable_size), ELEMENT(pa_context_connect), ELEMENT(pa_context_disconnect), @@ -215,11 +224,14 @@ static SHARED_FUNC SharedFuncs[] = ELEMENT(pa_threaded_mainloop_start), ELEMENT(pa_threaded_mainloop_lock), ELEMENT(pa_bytes_per_second), + ELEMENT(pa_frame_size), ELEMENT(pa_sample_format_to_string), ELEMENT(pa_sample_spec_valid), ELEMENT(pa_channel_map_init_auto), ELEMENT(pa_operation_unref), + ELEMENT(pa_operation_get_state), ELEMENT(pa_strerror), + ELEMENT(pa_stream_readable_size) }; #undef ELEMENT diff --git a/src/VBox/Devices/Audio/pulseaudio.c b/src/VBox/Devices/Audio/pulseaudio.c index 10f24d9eb..21596908f 100644 --- a/src/VBox/Devices/Audio/pulseaudio.c +++ b/src/VBox/Devices/Audio/pulseaudio.c @@ -48,13 +48,32 @@ static struct pa_context *g_pContext; typedef struct PulseVoice { - HWVoiceOut hw; - void *pPCMBuf; - pa_stream *pStream; - int fOpSuccess; - unsigned cErrors; + /** not accessed from within this context */ + union + { + HWVoiceOut Out; + HWVoiceIn In; + } hw; + /** DAC buffer */ + void *pPCMBuf; + /** Pulse stream */ + pa_stream *pStream; + /** Pulse sample format and attribute specification */ + pa_sample_spec SampleSpec; + /** Pulse playback and buffer metrics */ + pa_buffer_attr BufAttr; + int fOpSuccess; + /** number of logged errors */ + unsigned cErrors; + /** Pulse record peek buffer */ + const uint8_t *pu8PeekBuf; + size_t cbPeekBuf; + size_t offPeekBuf; } PulseVoice; +/* The desired buffer length in milliseconds. Will be the target total stream + * latency on newer version of pulse. Apparent latency can be less (or more.) + */ static struct { int buffer_msecs_out; @@ -66,31 +85,6 @@ static struct INIT_FIELD (.buffer_msecs_in = ) 100, }; -struct pulse_params_req -{ - int freq; - pa_sample_format_t pa_format; - int nchannels; -}; - -struct pulse_params_obt -{ - int freq; - pa_sample_format_t pa_format; - int nchannels; - unsigned long buffer_size; -}; - -static void pulse_check_fatal (PulseVoice *pulse, int rc) -{ - if (rc == PA_ERR_CONNECTIONTERMINATED) - { - /* XXX runtime warning */ - LogRel(("Pulse: Audio input/output stopped!\n")); - pulse->cErrors = MAX_LOG_REL_ERRORS; - } -} - static pa_sample_format_t aud_to_pulsefmt (audfmt_e fmt) { switch (fmt) @@ -154,13 +148,21 @@ static int pulse_to_audfmt (pa_sample_format_t pulsefmt, audfmt_e *fmt, int *end static void context_state_callback(pa_context *c, void *userdata) { + PulseVoice *pPulse = (PulseVoice *)userdata; switch (pa_context_get_state(c)) { case PA_CONTEXT_READY: case PA_CONTEXT_TERMINATED: + pa_threaded_mainloop_signal(g_pMainLoop, 0); + break; + case PA_CONTEXT_FAILED: + LogRel(("Pulse: Audio input/output stopped!\n")); + if (pPulse) + pPulse->cErrors = MAX_LOG_REL_ERRORS; pa_threaded_mainloop_signal(g_pMainLoop, 0); break; + default: break; } @@ -175,28 +177,19 @@ static void stream_state_callback(pa_stream *s, void *userdata) case PA_STREAM_TERMINATED: pa_threaded_mainloop_signal(g_pMainLoop, 0); break; + default: break; } } -static void stream_latency_update_callback(pa_stream *s, void *userdata) +static int pulse_open (int fIn, pa_stream **ppStream, pa_sample_spec *pSampleSpec, + pa_buffer_attr *pBufAttr) { - pa_threaded_mainloop_signal(g_pMainLoop, 0); -} - -static int pulse_open (int fIn, struct pulse_params_req *req, - struct pulse_params_obt *obt, pa_stream **ppStream) -{ - pa_sample_spec sspec; - pa_channel_map cmap; + const pa_buffer_attr *pBufAttrObtained; pa_stream *pStream = NULL; - pa_buffer_attr bufAttr; - const pa_buffer_attr *pBufAttr; - const pa_sample_spec *pSampSpec; - char achPCMName[64]; - pa_stream_flags_t flags; - int ms = fIn ? conf.buffer_msecs_in : conf.buffer_msecs_out; + char achPCMName[64]; + pa_stream_flags_t flags = 0; const char *stream_name = audio_get_stream_name(); RTStrPrintf(achPCMName, sizeof(achPCMName), "%.32s%s%s%s", @@ -204,63 +197,58 @@ static int pulse_open (int fIn, struct pulse_params_req *req, stream_name ? " (" : "", fIn ? "pcm_in" : "pcm_out", stream_name ? ")" : ""); - sspec.rate = req->freq; - sspec.channels = req->nchannels; - sspec.format = req->pa_format; LogRel(("Pulse: open %s rate=%dHz channels=%d format=%s\n", - fIn ? "PCM_IN" : "PCM_OUT", req->freq, req->nchannels, - pa_sample_format_to_string(req->pa_format))); + fIn ? "PCM_IN" : "PCM_OUT", pSampleSpec->rate, pSampleSpec->channels, + pa_sample_format_to_string(pSampleSpec->format))); - if (!pa_sample_spec_valid(&sspec)) + if (!pa_sample_spec_valid(pSampleSpec)) { LogRel(("Pulse: Unsupported sample specification\n")); goto fail; } - pa_channel_map_init_auto(&cmap, sspec.channels, PA_CHANNEL_MAP_ALSA); - -#if 0 - pa_cvolume_reset(&volume, sspec.channels); -#endif - pa_threaded_mainloop_lock(g_pMainLoop); - if (!(pStream = pa_stream_new(g_pContext, achPCMName, &sspec, &cmap))) + if (!(pStream = pa_stream_new(g_pContext, achPCMName, pSampleSpec, /*channel_map=*/NULL))) { LogRel(("Pulse: Cannot create stream %s\n", achPCMName)); goto unlock_and_fail; } - pSampSpec = pa_stream_get_sample_spec(pStream); - obt->pa_format = pSampSpec->format; - obt->nchannels = pSampSpec->channels; - obt->freq = pSampSpec->rate; - pa_stream_set_state_callback(pStream, stream_state_callback, NULL); - pa_stream_set_latency_update_callback(pStream, stream_latency_update_callback, NULL); - memset(&bufAttr, 0, sizeof(bufAttr)); - bufAttr.tlength = (pa_bytes_per_second(pSampSpec) * ms) / 1000; - bufAttr.maxlength = (bufAttr.tlength*3) / 2; - bufAttr.minreq = pa_bytes_per_second(pSampSpec) / 100; /* 10ms */ - bufAttr.prebuf = bufAttr.tlength - bufAttr.minreq; - bufAttr.fragsize = pa_bytes_per_second(pSampSpec) / 100; /* 10ms */ +#if PA_API_VERSION >= 12 + /* XXX */ + flags |= PA_STREAM_ADJUST_LATENCY; +#endif + +#if 0 + /* not applicable as we don't use pa_stream_get_latency() and pa_stream_get_time() */ + flags |= PA_STREAM_INTERPOLATE_TIMING | PA_STREAM_AUTO_TIMING_UPDATE; +#endif - flags = PA_STREAM_INTERPOLATE_TIMING | PA_STREAM_AUTO_TIMING_UPDATE; if (fIn) { - if (pa_stream_connect_record(pStream, /*dev=*/NULL, &bufAttr, flags) < 0) + LogRel(("Pulse: Requested record buffer attributes: maxlength=%d fragsize=%d\n", + pBufAttr->maxlength, pBufAttr->fragsize)); + + if (pa_stream_connect_record(pStream, /*dev=*/NULL, pBufAttr, flags) < 0) { - LogRel(("Pulse: Cannot connect record stream : %s\n", + LogRel(("Pulse: Cannot connect record stream: %s\n", pa_strerror(pa_context_errno(g_pContext)))); goto disconnect_unlock_and_fail; } } else { - if (pa_stream_connect_playback(pStream, /*dev=*/NULL, &bufAttr, flags, - NULL, NULL) < 0) + LogRel(("Pulse: Requested playback buffer attributes: maxlength=%d tlength=%d prebuf=%d minreq=%d\n", + pBufAttr->maxlength, pBufAttr->tlength, pBufAttr->prebuf, pBufAttr->minreq)); + + flags |= PA_STREAM_START_CORKED; + + if (pa_stream_connect_playback(pStream, /*dev=*/NULL, pBufAttr, flags, + /*cvolume=*/NULL, /*sync_stream=*/NULL) < 0) { LogRel(("Pulse: Cannot connect playback stream: %s\n", pa_strerror(pa_context_errno(g_pContext)))); @@ -273,6 +261,7 @@ static int pulse_open (int fIn, struct pulse_params_req *req, { pa_stream_state_t sstate; pa_threaded_mainloop_wait(g_pMainLoop); + sstate = pa_stream_get_state(pStream); if (sstate == PA_STREAM_READY) break; @@ -283,14 +272,21 @@ static int pulse_open (int fIn, struct pulse_params_req *req, } } - pBufAttr = pa_stream_get_buffer_attr(pStream); - obt->buffer_size = pBufAttr->maxlength; + pBufAttrObtained = pa_stream_get_buffer_attr(pStream); + memcpy(pBufAttr, pBufAttrObtained, sizeof(pa_buffer_attr)); - pa_threaded_mainloop_unlock(g_pMainLoop); - - LogRel(("Pulse: buffer settings: max=%d tlength=%d prebuf=%d minreq=%d\n", + if (fIn) + { + LogRel(("Pulse: Obtained record buffer attributes: maxlength=%d fragsize=%d\n", + pBufAttr->maxlength, pBufAttr->fragsize)); + } + else + { + LogRel(("Pulse: Obtained playback buffer attributes: maxlength=%d tlength=%d prebuf=%d minreq=%d\n", pBufAttr->maxlength, pBufAttr->tlength, pBufAttr->prebuf, pBufAttr->minreq)); + } + pa_threaded_mainloop_unlock(g_pMainLoop); *ppStream = pStream; return 0; @@ -310,117 +306,132 @@ fail: static int pulse_init_out (HWVoiceOut *hw, audsettings_t *as) { - PulseVoice *pulse = (PulseVoice *) hw; - struct pulse_params_req req; - struct pulse_params_obt obt; - audfmt_e effective_fmt; - int endianness; + PulseVoice *pPulse = (PulseVoice *) hw; audsettings_t obt_as; - - req.pa_format = aud_to_pulsefmt (as->fmt); - req.freq = as->freq; - req.nchannels = as->nchannels; - - if (pulse_open (/*fIn=*/0, &req, &obt, &pulse->pStream)) + int cbBuf; + + pPulse->SampleSpec.format = aud_to_pulsefmt (as->fmt); + pPulse->SampleSpec.rate = as->freq; + pPulse->SampleSpec.channels = as->nchannels; + + /* Note that setting maxlength to -1 does not work on PulseAudio servers + * older than 0.9.10. So use the suggested value of 3/2 of tlength */ + pPulse->BufAttr.tlength = (pa_bytes_per_second(&pPulse->SampleSpec) + * conf.buffer_msecs_out) / 1000; + pPulse->BufAttr.maxlength = (pPulse->BufAttr.tlength * 3) / 2; + pPulse->BufAttr.prebuf = -1; /* Same as tlength */ + pPulse->BufAttr.minreq = -1; /* Pulse should set something sensible for minreq on it's own */ + + /* Notice that the struct BufAttr is updated to the obtained values after this call */ + if (pulse_open (0, &pPulse->pStream, &pPulse->SampleSpec, &pPulse->BufAttr)) return -1; - if (pulse_to_audfmt (obt.pa_format, &effective_fmt, &endianness)) + if (pulse_to_audfmt (pPulse->SampleSpec.format, &obt_as.fmt, &obt_as.endianness)) { - LogRel(("Pulse: Cannot find audio format %d\n", obt.pa_format)); + LogRel(("Pulse: Cannot find audio format %d\n", pPulse->SampleSpec.format)); return -1; } - obt_as.freq = obt.freq; - obt_as.nchannels = obt.nchannels; - obt_as.fmt = effective_fmt; - obt_as.endianness = endianness; + obt_as.freq = pPulse->SampleSpec.rate; + obt_as.nchannels = pPulse->SampleSpec.channels; audio_pcm_init_info (&hw->info, &obt_as); - hw->samples = obt.buffer_size >> hw->info.shift; + cbBuf = audio_MIN(pPulse->BufAttr.tlength * 2, pPulse->BufAttr.maxlength); - pulse->pPCMBuf = RTMemAllocZ(obt.buffer_size); - if (!pulse->pPCMBuf) + pPulse->pPCMBuf = RTMemAllocZ(cbBuf); + if (!pPulse->pPCMBuf) { - LogRel(("Pulse: Could not allocate DAC buffer of %d bytes\n", obt.buffer_size)); + LogRel(("Pulse: Could not allocate DAC buffer of %d bytes\n", cbBuf)); return -1; } + /* Convert from bytes to frames (aka samples) */ + hw->samples = cbBuf >> hw->info.shift; + return 0; } static void pulse_fini_out (HWVoiceOut *hw) { - PulseVoice *pulse = (PulseVoice *)hw; - if (pulse->pStream) + PulseVoice *pPulse = (PulseVoice *)hw; + + if (pPulse->pStream) { - pa_stream_disconnect(pulse->pStream); - pa_stream_unref(pulse->pStream); - pulse->pStream = NULL; + pa_threaded_mainloop_lock(g_pMainLoop); + pa_stream_disconnect(pPulse->pStream); + pa_stream_unref(pPulse->pStream); + pa_threaded_mainloop_unlock(g_pMainLoop); + pPulse->pStream = NULL; } - if (pulse->pPCMBuf) + + if (pPulse->pPCMBuf) { - RTMemFree (pulse->pPCMBuf); - pulse->pPCMBuf = NULL; + RTMemFree (pPulse->pPCMBuf); + pPulse->pPCMBuf = NULL; } } static int pulse_run_out (HWVoiceOut *hw) { - PulseVoice *pulse = (PulseVoice *) hw; - int csLive, csDecr = 0, csSamples, csToWrite, csAvail; - size_t cbAvail, cbToWrite; + PulseVoice *pPulse = (PulseVoice *) hw; + int cFramesLive; + int cFramesWritten = 0; + int csSamples; + int cFramesToWrite; + int cFramesAvail; + size_t cbAvail; + size_t cbToWrite; uint8_t *pu8Dst; st_sample_t *psSrc; - csLive = audio_pcm_hw_get_live_out (hw); - if (!csLive) + cFramesLive = audio_pcm_hw_get_live_out (hw); + if (!cFramesLive) return 0; pa_threaded_mainloop_lock(g_pMainLoop); - cbAvail = pa_stream_writable_size (pulse->pStream); + cbAvail = pa_stream_writable_size (pPulse->pStream); if (cbAvail == (size_t)-1) { - if (pulse->cErrors < MAX_LOG_REL_ERRORS) + if (pPulse->cErrors < MAX_LOG_REL_ERRORS) { int rc = pa_context_errno(g_pContext); - pulse->cErrors++; + pPulse->cErrors++; LogRel(("Pulse: Failed to determine the writable size: %s\n", pa_strerror(rc))); - pulse_check_fatal(pulse, rc); } goto unlock_and_exit; } - csAvail = cbAvail >> hw->info.shift; /* bytes => samples */ - csDecr = audio_MIN (csLive, csAvail); - csSamples = csDecr; + cFramesAvail = cbAvail >> hw->info.shift; /* bytes => samples */ + cFramesWritten = audio_MIN (cFramesLive, cFramesAvail); + csSamples = cFramesWritten; while (csSamples) { /* split request at the end of our samples buffer */ - csToWrite = audio_MIN (csSamples, hw->samples - hw->rpos); - cbToWrite = csToWrite << hw->info.shift; - psSrc = hw->mix_buf + hw->rpos; - pu8Dst = advance (pulse->pPCMBuf, hw->rpos << hw->info.shift); + cFramesToWrite = audio_MIN (csSamples, hw->samples - hw->rpos); + cbToWrite = cFramesToWrite << hw->info.shift; + psSrc = hw->mix_buf + hw->rpos; + pu8Dst = advance (pPulse->pPCMBuf, hw->rpos << hw->info.shift); - hw->clip (pu8Dst, psSrc, csToWrite); + hw->clip (pu8Dst, psSrc, cFramesToWrite); - if (pa_stream_write (pulse->pStream, pu8Dst, cbToWrite, + if (pa_stream_write (pPulse->pStream, pu8Dst, cbToWrite, /*cleanup_callback=*/NULL, 0, PA_SEEK_RELATIVE) < 0) { LogRel(("Pulse: Failed to write %d samples: %s\n", - csToWrite, pa_strerror(pa_context_errno(g_pContext)))); + cFramesToWrite, pa_strerror(pa_context_errno(g_pContext)))); break; } - hw->rpos = (hw->rpos + csToWrite) % hw->samples; - csSamples -= csToWrite; + hw->rpos = (hw->rpos + cFramesToWrite) % hw->samples; + csSamples -= cFramesToWrite; } unlock_and_exit: pa_threaded_mainloop_unlock(g_pMainLoop); - return csDecr; + return cFramesWritten; } static int pulse_write (SWVoiceOut *sw, void *buf, int len) @@ -430,75 +441,52 @@ static int pulse_write (SWVoiceOut *sw, void *buf, int len) static void stream_success_callback(pa_stream *pStream, int success, void *userdata) { - PulseVoice *pulse = (PulseVoice *) userdata; - pulse->fOpSuccess = success; - pa_threaded_mainloop_signal(g_pMainLoop, 0); -} - -typedef enum -{ - Unpause = 0, - Pause = 1, - Flush = 2, - Trigger = 3 -} pulse_cmd_t; - -static int pulse_ctrl (HWVoiceOut *hw, pulse_cmd_t cmd) -{ - PulseVoice *pulse = (PulseVoice *) hw; - pa_operation *op = NULL; - - if (!pulse->pStream) - return 0; - - pa_threaded_mainloop_lock(g_pMainLoop); - switch (cmd) + PulseVoice *pPulse = (PulseVoice *) userdata; + pPulse->fOpSuccess = success; + if (!success) { - case Pause: - op = pa_stream_cork(pulse->pStream, 1, stream_success_callback, pulse); - break; - case Unpause: - op = pa_stream_cork(pulse->pStream, 0, stream_success_callback, pulse); - break; - case Flush: - op = pa_stream_flush(pulse->pStream, stream_success_callback, pulse); - break; - case Trigger: - op = pa_stream_trigger(pulse->pStream, stream_success_callback, pulse); - break; - default: - goto unlock_and_exit; - } - if (!op) - { - if (pulse->cErrors < MAX_LOG_REL_ERRORS) + if (pPulse->cErrors < MAX_LOG_REL_ERRORS) { int rc = pa_context_errno(g_pContext); - pulse->cErrors++; - LogRel(("Pulse: Failed ctrl cmd=%d to stream: %s\n", - cmd, pa_strerror(pa_context_errno(g_pContext)))); - pulse_check_fatal(pulse, rc); + pPulse->cErrors++; + LogRel(("Pulse: Failed stream operation: %s\n", pa_strerror(rc))); } } - else + pa_threaded_mainloop_signal(g_pMainLoop, 0); +} + +static int pulse_wait_for_operation (pa_operation *op) +{ + if (op) + { + while (pa_operation_get_state(op) == PA_OPERATION_RUNNING) + pa_threaded_mainloop_wait(g_pMainLoop); pa_operation_unref(op); + } -unlock_and_exit: - pa_threaded_mainloop_unlock(g_pMainLoop); - return 0; + return 1; } static int pulse_ctl_out (HWVoiceOut *hw, int cmd, ...) { + PulseVoice *pPulse = (PulseVoice *) hw; + switch (cmd) { case VOICE_ENABLE: - pulse_ctrl(hw, Unpause); - pulse_ctrl(hw, Trigger); + pa_threaded_mainloop_lock(g_pMainLoop); + pulse_wait_for_operation(pa_stream_cork(pPulse->pStream, 0, stream_success_callback, pPulse)); + pa_threaded_mainloop_unlock(g_pMainLoop); break; + case VOICE_DISABLE: - pulse_ctrl(hw, Flush); + pa_threaded_mainloop_lock(g_pMainLoop); + pulse_wait_for_operation(pa_stream_trigger(pPulse->pStream, stream_success_callback, pPulse)); + pulse_wait_for_operation(pa_stream_drain(pPulse->pStream, stream_success_callback, pPulse)); + pulse_wait_for_operation(pa_stream_cork(pPulse->pStream, 1, stream_success_callback, pPulse)); + pa_threaded_mainloop_unlock(g_pMainLoop); break; + default: return -1; } @@ -507,104 +495,139 @@ static int pulse_ctl_out (HWVoiceOut *hw, int cmd, ...) static int pulse_init_in (HWVoiceIn *hw, audsettings_t *as) { - PulseVoice *pulse = (PulseVoice *) hw; - struct pulse_params_req req; - struct pulse_params_obt obt; - audfmt_e effective_fmt; - int endianness; + PulseVoice *pPulse = (PulseVoice *) hw; audsettings_t obt_as; - req.pa_format = aud_to_pulsefmt (as->fmt); - req.freq = as->freq; - req.nchannels = as->nchannels; + pPulse->SampleSpec.format = aud_to_pulsefmt (as->fmt); + pPulse->SampleSpec.rate = as->freq; + pPulse->SampleSpec.channels = as->nchannels; + + /* XXX check these values */ + pPulse->BufAttr.fragsize = (pa_bytes_per_second(&pPulse->SampleSpec) + * conf.buffer_msecs_in) / 1000; + pPulse->BufAttr.maxlength = (pPulse->BufAttr.fragsize * 3) / 2; + /* Other memebers of pa_buffer_attr are ignored for record streams */ - if (pulse_open (/*fIn=*/1, &req, &obt, &pulse->pStream)) + if (pulse_open (1, &pPulse->pStream, &pPulse->SampleSpec, &pPulse->BufAttr)) return -1; - if (pulse_to_audfmt (obt.pa_format, &effective_fmt, &endianness)) + if (pulse_to_audfmt (pPulse->SampleSpec.format, &obt_as.fmt, &obt_as.endianness)) { - LogRel(("Pulse: Cannot find audio format %d\n", obt.pa_format)); + LogRel(("Pulse: Cannot find audio format %d\n", pPulse->SampleSpec.format)); return -1; } - obt_as.freq = obt.freq; - obt_as.nchannels = obt.nchannels; - obt_as.fmt = effective_fmt; - obt_as.endianness = endianness; - + obt_as.freq = pPulse->SampleSpec.rate; + obt_as.nchannels = pPulse->SampleSpec.channels; audio_pcm_init_info (&hw->info, &obt_as); - - /* pcm_in: reserve twice as the maximum buffer length because of peek()/drop(). */ - hw->samples = 2 * (obt.buffer_size >> hw->info.shift); - - /* no buffer for input */ - pulse->pPCMBuf = NULL; + hw->samples = audio_MIN(pPulse->BufAttr.fragsize * 10, pPulse->BufAttr.maxlength) + >> hw->info.shift; + pPulse->pu8PeekBuf = NULL; return 0; } static void pulse_fini_in (HWVoiceIn *hw) { - PulseVoice *pulse = (PulseVoice *)hw; - if (pulse->pStream) - { - pa_stream_disconnect(pulse->pStream); - pa_stream_unref(pulse->pStream); - pulse->pStream = NULL; - } - if (pulse->pPCMBuf) + PulseVoice *pPulse = (PulseVoice *)hw; + + if (pPulse->pStream) { - RTMemFree (pulse->pPCMBuf); - pulse->pPCMBuf = NULL; + pa_threaded_mainloop_lock(g_pMainLoop); + pa_stream_disconnect(pPulse->pStream); + pa_stream_unref(pPulse->pStream); + pa_threaded_mainloop_unlock(g_pMainLoop); + pPulse->pStream = NULL; } } static int pulse_run_in (HWVoiceIn *hw) { - PulseVoice *pulse = (PulseVoice *) hw; - int csDead, csDecr = 0, csSamples, csRead, csAvail; - size_t cbAvail; - const void *pu8Src; - st_sample_t *psDst; - - csDead = hw->samples - audio_pcm_hw_get_live_in (hw); - - if (!csDead) - return 0; /* no buffer available */ - + PulseVoice *pPulse = (PulseVoice *) hw; + const int hwshift = hw->info.shift; + int cFramesRead = 0; /* total frames which have been read this call */ + int cFramesAvail; /* total frames available from pulse at start of call */ + int cFramesToRead; /* the largest amount we want/can get this call */ + int cFramesToPeek; /* the largest amount we want/can get this peek */ + + /* We should only call pa_stream_readable_size() once and trust the first value */ pa_threaded_mainloop_lock(g_pMainLoop); + cFramesAvail = pa_stream_readable_size(pPulse->pStream) >> hwshift; + pa_threaded_mainloop_unlock(g_pMainLoop); - if (pa_stream_peek(pulse->pStream, &pu8Src, &cbAvail) < 0) + if (cFramesAvail == -1) { - LogRel(("Pulse: Peek failed: %s\n", - pa_strerror(pa_context_errno(g_pContext)))); - goto unlock_and_exit; + if (pPulse->cErrors < MAX_LOG_REL_ERRORS) + { + int rc = pa_context_errno(g_pContext); + pPulse->cErrors++; + LogRel(("Pulse: Failed to determine the readable size: %s\n", + pa_strerror(rc))); + } + return 0; } - if (!pu8Src) - goto unlock_and_exit; - - csAvail = cbAvail >> hw->info.shift; - csDecr = audio_MIN (csDead, csAvail); - csSamples = csDecr; + /* If the buffer was not dropped last call, add what remains */ + if (pPulse->pu8PeekBuf) + cFramesAvail += (pPulse->cbPeekBuf - pPulse->offPeekBuf) >> hwshift; - while (csSamples) + cFramesToRead = audio_MIN(cFramesAvail, hw->samples - audio_pcm_hw_get_live_in(hw)); + for (; cFramesToRead; cFramesToRead -= cFramesToPeek) { - /* split request at the end of our samples buffer */ - psDst = hw->conv_buf + hw->wpos; - csRead = audio_MIN (csSamples, hw->samples - hw->wpos); - hw->conv (psDst, pu8Src, csRead, &nominal_volume); - hw->wpos = (hw->wpos + csRead) % hw->samples; - csSamples -= csRead; - pu8Src = (const void*)((uint8_t*)pu8Src + (csRead << hw->info.shift)); - } + /* If there is no data, do another peek */ + if (!pPulse->pu8PeekBuf) + { + pa_threaded_mainloop_lock(g_pMainLoop); + pa_stream_peek(pPulse->pStream, (const void**)&pPulse->pu8PeekBuf, &pPulse->cbPeekBuf); + pa_threaded_mainloop_unlock(g_pMainLoop); + pPulse->offPeekBuf = 0; + if ( !pPulse->pu8PeekBuf + || !pPulse->cbPeekBuf) + break; + } - pa_stream_drop(pulse->pStream); + cFramesToPeek = audio_MIN((signed)( pPulse->cbPeekBuf + - pPulse->offPeekBuf) >> hwshift, + cFramesToRead); -unlock_and_exit: - pa_threaded_mainloop_unlock(g_pMainLoop); + /* Check for wrapping around the buffer end */ + if (hw->wpos + cFramesToPeek > hw->samples) + { + int cFramesDelta = hw->samples - hw->wpos; + + hw->conv(hw->conv_buf + hw->wpos, + pPulse->pu8PeekBuf + pPulse->offPeekBuf, + cFramesDelta, + &nominal_volume); + + hw->conv(hw->conv_buf, + pPulse->pu8PeekBuf + pPulse->offPeekBuf + (cFramesDelta << hwshift), + cFramesToPeek - cFramesDelta, + &nominal_volume); + } + else + { + hw->conv(hw->conv_buf + hw->wpos, + pPulse->pu8PeekBuf + pPulse->offPeekBuf, + cFramesToPeek, + &nominal_volume); + } - return csDecr; + cFramesRead += cFramesToPeek; + hw->wpos = (hw->wpos + cFramesToPeek) % hw->samples; + pPulse->offPeekBuf += cFramesToPeek << hwshift; + + /* If the buffer is done, drop it */ + if (pPulse->offPeekBuf == pPulse->cbPeekBuf) + { + pa_threaded_mainloop_lock(g_pMainLoop); + pa_stream_drop(pPulse->pStream); + pa_threaded_mainloop_unlock(g_pMainLoop); + pPulse->pu8PeekBuf = NULL; + } + } + + return cFramesRead; } static int pulse_read (SWVoiceIn *sw, void *buf, int size) @@ -614,6 +637,30 @@ static int pulse_read (SWVoiceIn *sw, void *buf, int size) static int pulse_ctl_in (HWVoiceIn *hw, int cmd, ...) { + PulseVoice *pPulse = (PulseVoice *)hw; + + switch (cmd) + { + case VOICE_ENABLE: + pa_threaded_mainloop_lock(g_pMainLoop); + pulse_wait_for_operation(pa_stream_cork(pPulse->pStream, 0, stream_success_callback, pPulse)); + pa_threaded_mainloop_unlock(g_pMainLoop); + break; + + case VOICE_DISABLE: + pa_threaded_mainloop_lock(g_pMainLoop); + if (pPulse->pu8PeekBuf) + { + pa_stream_drop(pPulse->pStream); + pPulse->pu8PeekBuf = NULL; + } + pulse_wait_for_operation(pa_stream_cork(pPulse->pStream, 1, stream_success_callback, pPulse)); + pa_threaded_mainloop_unlock(g_pMainLoop); + break; + + default: + return -1; + } return 0; } @@ -627,18 +674,21 @@ static void *pulse_audio_init (void) LogRel(("Pulse: Failed to load the PulseAudio shared library! Error %Rrc\n", rc)); return NULL; } + if (!(g_pMainLoop = pa_threaded_mainloop_new())) { LogRel(("Pulse: Failed to allocate main loop: %s\n", pa_strerror(pa_context_errno(g_pContext)))); goto fail; } + if (!(g_pContext = pa_context_new(pa_threaded_mainloop_get_api(g_pMainLoop), "VBox"))) { LogRel(("Pulse: Failed to allocate context: %s\n", pa_strerror(pa_context_errno(g_pContext)))); goto fail; } + if (pa_threaded_mainloop_start(g_pMainLoop) < 0) { LogRel(("Pulse: Failed to start threaded mainloop: %s\n", @@ -688,11 +738,13 @@ fail: pa_context_unref(g_pContext); g_pContext = NULL; } + if (g_pMainLoop) { pa_threaded_mainloop_free(g_pMainLoop); g_pMainLoop = NULL; } + return NULL; } @@ -700,17 +752,20 @@ static void pulse_audio_fini (void *opaque) { if (g_pMainLoop) pa_threaded_mainloop_stop(g_pMainLoop); + if (g_pContext) { pa_context_disconnect(g_pContext); pa_context_unref(g_pContext); g_pContext = NULL; } + if (g_pMainLoop) { pa_threaded_mainloop_free(g_pMainLoop); g_pMainLoop = NULL; } + (void) opaque; } diff --git a/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Include/IndustryStandard/PeImage.h b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Include/IndustryStandard/PeImage.h new file mode 100644 index 000000000..2539a007b --- /dev/null +++ b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Include/IndustryStandard/PeImage.h @@ -0,0 +1,773 @@ +/** @file + EFI image format for PE32, PE32+ and TE. Please note some data structures are + different for PE32 and PE32+. EFI_IMAGE_NT_HEADERS32 is for PE32 and + EFI_IMAGE_NT_HEADERS64 is for PE32+. + + This file is coded to the Visual Studio, Microsoft Portable Executable and + Common Object File Format Specification, Revision 8.0 - May 16, 2006. + This file also includes some definitions in PI Specification, Revision 1.0. + + Copyright (c) 2006 - 2009, Intel Corporation<BR> + Portions copyright (c) 2008-2009 Apple Inc. All rights reserved.<BR> + All rights reserved. This program and the accompanying materials + are licensed and made available under the terms and conditions of the BSD License + which accompanies this distribution. The full text of the license may be found at + http://opensource.org/licenses/bsd-license.php + + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +**/ + +#ifndef __PE_IMAGE_H__ +#define __PE_IMAGE_H__ + +// +// PE32+ Subsystem type for EFI images +// +#define EFI_IMAGE_SUBSYSTEM_EFI_APPLICATION 10 +#define EFI_IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11 +#define EFI_IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER 12 +#define EFI_IMAGE_SUBSYSTEM_SAL_RUNTIME_DRIVER 13 ///< defined PI Specification, 1.0 + + +// +// PE32+ Machine type for EFI images +// +#define IMAGE_FILE_MACHINE_I386 0x014c +#define IMAGE_FILE_MACHINE_IA64 0x0200 +#define IMAGE_FILE_MACHINE_EBC 0x0EBC +#define IMAGE_FILE_MACHINE_X64 0x8664 +#define IMAGE_FILE_MACHINE_ARMTHUMB_MIXED 0x01c2 + +// +// EXE file formats +// +#define EFI_IMAGE_DOS_SIGNATURE SIGNATURE_16('M', 'Z') +#define EFI_IMAGE_OS2_SIGNATURE SIGNATURE_16('N', 'E') +#define EFI_IMAGE_OS2_SIGNATURE_LE SIGNATURE_16('L', 'E') +#define EFI_IMAGE_NT_SIGNATURE SIGNATURE_32('P', 'E', '\0', '\0') + +/// +/// PE images can start with an optional DOS header, so if an image is run +/// under DOS it can print an error message. +/// +typedef struct { + UINT16 e_magic; ///< Magic number + UINT16 e_cblp; ///< Bytes on last page of file + UINT16 e_cp; ///< Pages in file + UINT16 e_crlc; ///< Relocations + UINT16 e_cparhdr; ///< Size of header in paragraphs + UINT16 e_minalloc; ///< Minimum extra paragraphs needed + UINT16 e_maxalloc; ///< Maximum extra paragraphs needed + UINT16 e_ss; ///< Initial (relative) SS value + UINT16 e_sp; ///< Initial SP value + UINT16 e_csum; ///< Checksum + UINT16 e_ip; ///< Initial IP value + UINT16 e_cs; ///< Initial (relative) CS value + UINT16 e_lfarlc; ///< File address of relocation table + UINT16 e_ovno; ///< Overlay number + UINT16 e_res[4]; ///< Reserved words + UINT16 e_oemid; ///< OEM identifier (for e_oeminfo) + UINT16 e_oeminfo; ///< OEM information; e_oemid specific + UINT16 e_res2[10]; ///< Reserved words + UINT32 e_lfanew; ///< File address of new exe header +} EFI_IMAGE_DOS_HEADER; + +/// +/// COFF File Header (Object and Image) +/// +typedef struct { + UINT16 Machine; + UINT16 NumberOfSections; + UINT32 TimeDateStamp; + UINT32 PointerToSymbolTable; + UINT32 NumberOfSymbols; + UINT16 SizeOfOptionalHeader; + UINT16 Characteristics; +} EFI_IMAGE_FILE_HEADER; + +/// +/// Size of EFI_IMAGE_FILE_HEADER +/// +#define EFI_IMAGE_SIZEOF_FILE_HEADER 20 + +// +// Characteristics +// +#define EFI_IMAGE_FILE_RELOCS_STRIPPED BIT0 ///< 0x0001 Relocation info stripped from file. +#define EFI_IMAGE_FILE_EXECUTABLE_IMAGE BIT1 ///< 0x0002 File is executable (i.e. no unresolved externel references). +#define EFI_IMAGE_FILE_LINE_NUMS_STRIPPED BIT2 ///< 0x0004 Line nunbers stripped from file. +#define EFI_IMAGE_FILE_LOCAL_SYMS_STRIPPED BIT3 ///< 0x0008 Local symbols stripped from file. +#define EFI_IMAGE_FILE_BYTES_REVERSED_LO BIT7 ///< 0x0080 Bytes of machine word are reversed. +#define EFI_IMAGE_FILE_32BIT_MACHINE BIT8 ///< 0x0100 32 bit word machine. +#define EFI_IMAGE_FILE_DEBUG_STRIPPED BIT9 ///< 0x0200 Debugging info stripped from file in .DBG file +#define EFI_IMAGE_FILE_SYSTEM BIT12 ///< 0x1000 System File. +#define EFI_IMAGE_FILE_DLL BIT13 ///< 0x2000 File is a DLL. +#define EFI_IMAGE_FILE_BYTES_REVERSED_HI BIT15 ///< 0x8000 Bytes of machine word are reversed. + +/// +/// Header Data Directories +/// +typedef struct { + UINT32 VirtualAddress; + UINT32 Size; +} EFI_IMAGE_DATA_DIRECTORY; + +// +// Directory Entries +// +#define EFI_IMAGE_DIRECTORY_ENTRY_EXPORT 0 +#define EFI_IMAGE_DIRECTORY_ENTRY_IMPORT 1 +#define EFI_IMAGE_DIRECTORY_ENTRY_RESOURCE 2 +#define EFI_IMAGE_DIRECTORY_ENTRY_EXCEPTION 3 +#define EFI_IMAGE_DIRECTORY_ENTRY_SECURITY 4 +#define EFI_IMAGE_DIRECTORY_ENTRY_BASERELOC 5 +#define EFI_IMAGE_DIRECTORY_ENTRY_DEBUG 6 +#define EFI_IMAGE_DIRECTORY_ENTRY_COPYRIGHT 7 +#define EFI_IMAGE_DIRECTORY_ENTRY_GLOBALPTR 8 +#define EFI_IMAGE_DIRECTORY_ENTRY_TLS 9 +#define EFI_IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 10 + +#define EFI_IMAGE_NUMBER_OF_DIRECTORY_ENTRIES 16 + +/// +/// @attention +/// EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC means PE32 and +/// EFI_IMAGE_OPTIONAL_HEADER32 must be used. The data structures only vary +/// after NT additional fields. +/// +#define EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC 0x10b + +/// +/// Optional Header Standard Fields for PE32 +/// +typedef struct { + /// + /// Standard fields. + /// + UINT16 Magic; + UINT8 MajorLinkerVersion; + UINT8 MinorLinkerVersion; + UINT32 SizeOfCode; + UINT32 SizeOfInitializedData; + UINT32 SizeOfUninitializedData; + UINT32 AddressOfEntryPoint; + UINT32 BaseOfCode; + UINT32 BaseOfData; ///< PE32 contains this additional field, which is absent in PE32+ + /// + /// Optional Header Windows-Specific Fields. + /// + UINT32 ImageBase; + UINT32 SectionAlignment; + UINT32 FileAlignment; + UINT16 MajorOperatingSystemVersion; + UINT16 MinorOperatingSystemVersion; + UINT16 MajorImageVersion; + UINT16 MinorImageVersion; + UINT16 MajorSubsystemVersion; + UINT16 MinorSubsystemVersion; + UINT32 Win32VersionValue; + UINT32 SizeOfImage; + UINT32 SizeOfHeaders; + UINT32 CheckSum; + UINT16 Subsystem; + UINT16 DllCharacteristics; + UINT32 SizeOfStackReserve; + UINT32 SizeOfStackCommit; + UINT32 SizeOfHeapReserve; + UINT32 SizeOfHeapCommit; + UINT32 LoaderFlags; + UINT32 NumberOfRvaAndSizes; + EFI_IMAGE_DATA_DIRECTORY DataDirectory[EFI_IMAGE_NUMBER_OF_DIRECTORY_ENTRIES]; +} EFI_IMAGE_OPTIONAL_HEADER32; + +/// +/// @attention +/// EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC means PE32+ and +/// EFI_IMAGE_OPTIONAL_HEADER64 must be used. The data structures only vary +/// after NT additional fields. +/// +#define EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC 0x20b + +/// +/// Optional Header Standard Fields for PE32+ +/// +typedef struct { + /// + /// Standard fields. + /// + UINT16 Magic; + UINT8 MajorLinkerVersion; + UINT8 MinorLinkerVersion; + UINT32 SizeOfCode; + UINT32 SizeOfInitializedData; + UINT32 SizeOfUninitializedData; + UINT32 AddressOfEntryPoint; + UINT32 BaseOfCode; + /// + /// Optional Header Windows-Specific Fields. + /// + UINT64 ImageBase; + UINT32 SectionAlignment; + UINT32 FileAlignment; + UINT16 MajorOperatingSystemVersion; + UINT16 MinorOperatingSystemVersion; + UINT16 MajorImageVersion; + UINT16 MinorImageVersion; + UINT16 MajorSubsystemVersion; + UINT16 MinorSubsystemVersion; + UINT32 Win32VersionValue; + UINT32 SizeOfImage; + UINT32 SizeOfHeaders; + UINT32 CheckSum; + UINT16 Subsystem; + UINT16 DllCharacteristics; + UINT64 SizeOfStackReserve; + UINT64 SizeOfStackCommit; + UINT64 SizeOfHeapReserve; + UINT64 SizeOfHeapCommit; + UINT32 LoaderFlags; + UINT32 NumberOfRvaAndSizes; + EFI_IMAGE_DATA_DIRECTORY DataDirectory[EFI_IMAGE_NUMBER_OF_DIRECTORY_ENTRIES]; +} EFI_IMAGE_OPTIONAL_HEADER64; + + +/// +/// @attention +/// EFI_IMAGE_NT_HEADERS32 is for use ONLY by tools. +/// +typedef struct { + UINT32 Signature; + EFI_IMAGE_FILE_HEADER FileHeader; + EFI_IMAGE_OPTIONAL_HEADER32 OptionalHeader; +} EFI_IMAGE_NT_HEADERS32; + +#define EFI_IMAGE_SIZEOF_NT_OPTIONAL32_HEADER sizeof (EFI_IMAGE_NT_HEADERS32) + +/// +/// @attention +/// EFI_IMAGE_HEADERS64 is for use ONLY by tools. +/// +typedef struct { + UINT32 Signature; + EFI_IMAGE_FILE_HEADER FileHeader; + EFI_IMAGE_OPTIONAL_HEADER64 OptionalHeader; +} EFI_IMAGE_NT_HEADERS64; + +#define EFI_IMAGE_SIZEOF_NT_OPTIONAL64_HEADER sizeof (EFI_IMAGE_NT_HEADERS64) + +// +// Other Windows Subsystem Values +// +#define EFI_IMAGE_SUBSYSTEM_UNKNOWN 0 +#define EFI_IMAGE_SUBSYSTEM_NATIVE 1 +#define EFI_IMAGE_SUBSYSTEM_WINDOWS_GUI 2 +#define EFI_IMAGE_SUBSYSTEM_WINDOWS_CUI 3 +#define EFI_IMAGE_SUBSYSTEM_OS2_CUI 5 +#define EFI_IMAGE_SUBSYSTEM_POSIX_CUI 7 + +/// +/// Length of ShortName. +/// +#define EFI_IMAGE_SIZEOF_SHORT_NAME 8 + +/// +/// Section Table, this table immediately follows the optional header +/// +typedef struct { + UINT8 Name[EFI_IMAGE_SIZEOF_SHORT_NAME]; + union { + UINT32 PhysicalAddress; + UINT32 VirtualSize; + } Misc; + UINT32 VirtualAddress; + UINT32 SizeOfRawData; + UINT32 PointerToRawData; + UINT32 PointerToRelocations; + UINT32 PointerToLinenumbers; + UINT16 NumberOfRelocations; + UINT16 NumberOfLinenumbers; + UINT32 Characteristics; +} EFI_IMAGE_SECTION_HEADER; + +/// +/// Size of EFI_IMAGE_SECTION_HEADER +/// +#define EFI_IMAGE_SIZEOF_SECTION_HEADER 40 + +// +// Section Flags Values +// +#define EFI_IMAGE_SCN_TYPE_NO_PAD BIT3 ///< 0x00000008 ///< Reserved. +#define EFI_IMAGE_SCN_CNT_CODE BIT5 ///< 0x00000020 +#define EFI_IMAGE_SCN_CNT_INITIALIZED_DATA BIT6 ///< 0x00000040 +#define EFI_IMAGE_SCN_CNT_UNINITIALIZED_DATA BIT7 ///< 0x00000080 + +#define EFI_IMAGE_SCN_LNK_OTHER BIT8 ///< 0x00000100 ///< Reserved. +#define EFI_IMAGE_SCN_LNK_INFO BIT9 ///< 0x00000200 ///< Section contains comments or some other type of information. +#define EFI_IMAGE_SCN_LNK_REMOVE BIT11 ///< 0x00000800 ///< Section contents will not become part of image. +#define EFI_IMAGE_SCN_LNK_COMDAT BIT12 ///< 0x00001000 + +#define EFI_IMAGE_SCN_ALIGN_1BYTES BIT20 ///< 0x00100000 +#define EFI_IMAGE_SCN_ALIGN_2BYTES BIT21 ///< 0x00200000 +#define EFI_IMAGE_SCN_ALIGN_4BYTES (BIT20|BIT21) ///< 0x00300000 +#define EFI_IMAGE_SCN_ALIGN_8BYTES BIT22 ///< 0x00400000 +#define EFI_IMAGE_SCN_ALIGN_16BYTES (BIT20|BIT22) ///< 0x00500000 +#define EFI_IMAGE_SCN_ALIGN_32BYTES (BIT21|BIT22) ///< 0x00600000 +#define EFI_IMAGE_SCN_ALIGN_64BYTES (BIT20|BIT21|BIT22) ///< 0x00700000 + +#define EFI_IMAGE_SCN_MEM_DISCARDABLE BIT25 ///< 0x02000000 +#define EFI_IMAGE_SCN_MEM_NOT_CACHED BIT26 ///< 0x04000000 +#define EFI_IMAGE_SCN_MEM_NOT_PAGED BIT27 ///< 0x08000000 +#define EFI_IMAGE_SCN_MEM_SHARED BIT28 ///< 0x10000000 +#define EFI_IMAGE_SCN_MEM_EXECUTE BIT29 ///< 0x20000000 +#define EFI_IMAGE_SCN_MEM_READ BIT30 ///< 0x40000000 +#define EFI_IMAGE_SCN_MEM_WRITE BIT31 ///< 0x80000000 + +/// +/// Size of a Symbol Table Record +/// +#define EFI_IMAGE_SIZEOF_SYMBOL 18 + +// +// Symbols have a section number of the section in which they are +// defined. Otherwise, section numbers have the following meanings: +// +#define EFI_IMAGE_SYM_UNDEFINED (UINT16) 0 ///< Symbol is undefined or is common. +#define EFI_IMAGE_SYM_ABSOLUTE (UINT16) -1 ///< Symbol is an absolute value. +#define EFI_IMAGE_SYM_DEBUG (UINT16) -2 ///< Symbol is a special debug item. + +// +// Symbol Type (fundamental) values. +// +#define EFI_IMAGE_SYM_TYPE_NULL 0 ///< no type. +#define EFI_IMAGE_SYM_TYPE_VOID 1 ///< no valid type. +#define EFI_IMAGE_SYM_TYPE_CHAR 2 ///< type character. +#define EFI_IMAGE_SYM_TYPE_SHORT 3 ///< type short integer. +#define EFI_IMAGE_SYM_TYPE_INT 4 +#define EFI_IMAGE_SYM_TYPE_LONG 5 +#define EFI_IMAGE_SYM_TYPE_FLOAT 6 +#define EFI_IMAGE_SYM_TYPE_DOUBLE 7 +#define EFI_IMAGE_SYM_TYPE_STRUCT 8 +#define EFI_IMAGE_SYM_TYPE_UNION 9 +#define EFI_IMAGE_SYM_TYPE_ENUM 10 ///< enumeration. +#define EFI_IMAGE_SYM_TYPE_MOE 11 ///< member of enumeration. +#define EFI_IMAGE_SYM_TYPE_BYTE 12 +#define EFI_IMAGE_SYM_TYPE_WORD 13 +#define EFI_IMAGE_SYM_TYPE_UINT 14 +#define EFI_IMAGE_SYM_TYPE_DWORD 15 + +// +// Symbol Type (derived) values. +// +#define EFI_IMAGE_SYM_DTYPE_NULL 0 ///< no derived type. +#define EFI_IMAGE_SYM_DTYPE_POINTER 1 +#define EFI_IMAGE_SYM_DTYPE_FUNCTION 2 +#define EFI_IMAGE_SYM_DTYPE_ARRAY 3 + +// +// Storage classes. +// +#define EFI_IMAGE_SYM_CLASS_END_OF_FUNCTION ((UINT8) -1) +#define EFI_IMAGE_SYM_CLASS_NULL 0 +#define EFI_IMAGE_SYM_CLASS_AUTOMATIC 1 +#define EFI_IMAGE_SYM_CLASS_EXTERNAL 2 +#define EFI_IMAGE_SYM_CLASS_STATIC 3 +#define EFI_IMAGE_SYM_CLASS_REGISTER 4 +#define EFI_IMAGE_SYM_CLASS_EXTERNAL_DEF 5 +#define EFI_IMAGE_SYM_CLASS_LABEL 6 +#define EFI_IMAGE_SYM_CLASS_UNDEFINED_LABEL 7 +#define EFI_IMAGE_SYM_CLASS_MEMBER_OF_STRUCT 8 +#define EFI_IMAGE_SYM_CLASS_ARGUMENT 9 +#define EFI_IMAGE_SYM_CLASS_STRUCT_TAG 10 +#define EFI_IMAGE_SYM_CLASS_MEMBER_OF_UNION 11 +#define EFI_IMAGE_SYM_CLASS_UNION_TAG 12 +#define EFI_IMAGE_SYM_CLASS_TYPE_DEFINITION 13 +#define EFI_IMAGE_SYM_CLASS_UNDEFINED_STATIC 14 +#define EFI_IMAGE_SYM_CLASS_ENUM_TAG 15 +#define EFI_IMAGE_SYM_CLASS_MEMBER_OF_ENUM 16 +#define EFI_IMAGE_SYM_CLASS_REGISTER_PARAM 17 +#define EFI_IMAGE_SYM_CLASS_BIT_FIELD 18 +#define EFI_IMAGE_SYM_CLASS_BLOCK 100 +#define EFI_IMAGE_SYM_CLASS_FUNCTION 101 +#define EFI_IMAGE_SYM_CLASS_END_OF_STRUCT 102 +#define EFI_IMAGE_SYM_CLASS_FILE 103 +#define EFI_IMAGE_SYM_CLASS_SECTION 104 +#define EFI_IMAGE_SYM_CLASS_WEAK_EXTERNAL 105 + +// +// type packing constants +// +#define EFI_IMAGE_N_BTMASK 017 +#define EFI_IMAGE_N_TMASK 060 +#define EFI_IMAGE_N_TMASK1 0300 +#define EFI_IMAGE_N_TMASK2 0360 +#define EFI_IMAGE_N_BTSHFT 4 +#define EFI_IMAGE_N_TSHIFT 2 + +// +// Communal selection types. +// +#define EFI_IMAGE_COMDAT_SELECT_NODUPLICATES 1 +#define EFI_IMAGE_COMDAT_SELECT_ANY 2 +#define EFI_IMAGE_COMDAT_SELECT_SAME_SIZE 3 +#define EFI_IMAGE_COMDAT_SELECT_EXACT_MATCH 4 +#define EFI_IMAGE_COMDAT_SELECT_ASSOCIATIVE 5 + +// +// the following values only be referred in PeCoff, not defined in PECOFF. +// +#define EFI_IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY 1 +#define EFI_IMAGE_WEAK_EXTERN_SEARCH_LIBRARY 2 +#define EFI_IMAGE_WEAK_EXTERN_SEARCH_ALIAS 3 + +/// +/// Relocation format. +/// +typedef struct { + UINT32 VirtualAddress; + UINT32 SymbolTableIndex; + UINT16 Type; +} EFI_IMAGE_RELOCATION; + +/// +/// Size of EFI_IMAGE_RELOCATION +/// +#define EFI_IMAGE_SIZEOF_RELOCATION 10 + +// +// I386 relocation types. +// +#define EFI_IMAGE_REL_I386_ABSOLUTE 0x0000 ///< Reference is absolute, no relocation is necessary +#define EFI_IMAGE_REL_I386_DIR16 0x0001 ///< Direct 16-bit reference to the symbols virtual address +#define EFI_IMAGE_REL_I386_REL16 0x0002 ///< PC-relative 16-bit reference to the symbols virtual address +#define EFI_IMAGE_REL_I386_DIR32 0x0006 ///< Direct 32-bit reference to the symbols virtual address +#define EFI_IMAGE_REL_I386_DIR32NB 0x0007 ///< Direct 32-bit reference to the symbols virtual address, base not included +#define EFI_IMAGE_REL_I386_SEG12 0x0009 ///< Direct 16-bit reference to the segment-selector bits of a 32-bit virtual address +#define EFI_IMAGE_REL_I386_SECTION 0x000A +#define EFI_IMAGE_REL_I386_SECREL 0x000B +#define EFI_IMAGE_REL_I386_REL32 0x0014 ///< PC-relative 32-bit reference to the symbols virtual address + +// +// x64 processor relocation types. +// +#define IMAGE_REL_AMD64_ABSOLUTE 0x0000 +#define IMAGE_REL_AMD64_ADDR64 0x0001 +#define IMAGE_REL_AMD64_ADDR32 0x0002 +#define IMAGE_REL_AMD64_ADDR32NB 0x0003 +#define IMAGE_REL_AMD64_REL32 0x0004 +#define IMAGE_REL_AMD64_REL32_1 0x0005 +#define IMAGE_REL_AMD64_REL32_2 0x0006 +#define IMAGE_REL_AMD64_REL32_3 0x0007 +#define IMAGE_REL_AMD64_REL32_4 0x0008 +#define IMAGE_REL_AMD64_REL32_5 0x0009 +#define IMAGE_REL_AMD64_SECTION 0x000A +#define IMAGE_REL_AMD64_SECREL 0x000B +#define IMAGE_REL_AMD64_SECREL7 0x000C +#define IMAGE_REL_AMD64_TOKEN 0x000D +#define IMAGE_REL_AMD64_SREL32 0x000E +#define IMAGE_REL_AMD64_PAIR 0x000F +#define IMAGE_REL_AMD64_SSPAN32 0x0010 + +/// +/// Based relocation format. +/// +typedef struct { + UINT32 VirtualAddress; + UINT32 SizeOfBlock; +} EFI_IMAGE_BASE_RELOCATION; + +/// +/// Size of EFI_IMAGE_BASE_RELOCATION +/// +#define EFI_IMAGE_SIZEOF_BASE_RELOCATION 8 + +// +// Based relocation types. +// +#define EFI_IMAGE_REL_BASED_ABSOLUTE 0 +#define EFI_IMAGE_REL_BASED_HIGH 1 +#define EFI_IMAGE_REL_BASED_LOW 2 +#define EFI_IMAGE_REL_BASED_HIGHLOW 3 +#define EFI_IMAGE_REL_BASED_HIGHADJ 4 +#define EFI_IMAGE_REL_BASED_MIPS_JMPADDR 5 +#define EFI_IMAGE_REL_BASED_IA64_IMM64 9 +#define EFI_IMAGE_REL_BASED_MIPS_JMPADDR16 9 +#define EFI_IMAGE_REL_BASED_DIR64 10 + +/// +/// Line number format. +/// +typedef struct { + union { + UINT32 SymbolTableIndex; ///< Symbol table index of function name if Linenumber is 0. + UINT32 VirtualAddress; ///< Virtual address of line number. + } Type; + UINT16 Linenumber; ///< Line number. +} EFI_IMAGE_LINENUMBER; + +/// +/// Size of EFI_IMAGE_LINENUMBER +/// +#define EFI_IMAGE_SIZEOF_LINENUMBER 6 + +// +// Archive format. +// +#define EFI_IMAGE_ARCHIVE_START_SIZE 8 +#define EFI_IMAGE_ARCHIVE_START "!<arch>\n" +#define EFI_IMAGE_ARCHIVE_END "`\n" +#define EFI_IMAGE_ARCHIVE_PAD "\n" +#define EFI_IMAGE_ARCHIVE_LINKER_MEMBER "/ " +#define EFI_IMAGE_ARCHIVE_LONGNAMES_MEMBER "// " + +/// +/// Archive Member Headers +/// +typedef struct { + UINT8 Name[16]; ///< File member name - `/' terminated. + UINT8 Date[12]; ///< File member date - decimal. + UINT8 UserID[6]; ///< File member user id - decimal. + UINT8 GroupID[6]; ///< File member group id - decimal. + UINT8 Mode[8]; ///< File member mode - octal. + UINT8 Size[10]; ///< File member size - decimal. + UINT8 EndHeader[2]; ///< String to end header. (0x60 0x0A) +} EFI_IMAGE_ARCHIVE_MEMBER_HEADER; + +/// +/// Size of EFI_IMAGE_ARCHIVE_MEMBER_HEADER +/// +#define EFI_IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR 60 + + +// +// DLL Support +// + +/// +/// Export Directory Table +/// +typedef struct { + UINT32 Characteristics; + UINT32 TimeDateStamp; + UINT16 MajorVersion; + UINT16 MinorVersion; + UINT32 Name; + UINT32 Base; + UINT32 NumberOfFunctions; + UINT32 NumberOfNames; + UINT32 AddressOfFunctions; + UINT32 AddressOfNames; + UINT32 AddressOfNameOrdinals; +} EFI_IMAGE_EXPORT_DIRECTORY; + +/// +/// Hint/Name Table +/// +typedef struct { + UINT16 Hint; + UINT8 Name[1]; +} EFI_IMAGE_IMPORT_BY_NAME; + +/// +/// Import Address Table RVA (Thunk Table) +/// +typedef struct { + union { + UINT32 Function; + UINT32 Ordinal; + EFI_IMAGE_IMPORT_BY_NAME *AddressOfData; + } u1; +} EFI_IMAGE_THUNK_DATA; + +#define EFI_IMAGE_ORDINAL_FLAG BIT31 ///< Flag for PE32 +#define EFI_IMAGE_SNAP_BY_ORDINAL(Ordinal) ((Ordinal & EFI_IMAGE_ORDINAL_FLAG) != 0) +#define EFI_IMAGE_ORDINAL(Ordinal) (Ordinal & 0xffff) + +/// +/// Import Directory Table +/// +typedef struct { + UINT32 Characteristics; + UINT32 TimeDateStamp; + UINT32 ForwarderChain; + UINT32 Name; + EFI_IMAGE_THUNK_DATA *FirstThunk; +} EFI_IMAGE_IMPORT_DESCRIPTOR; + + +/// +/// Debug Directory Format +/// +typedef struct { + UINT32 Characteristics; + UINT32 TimeDateStamp; + UINT16 MajorVersion; + UINT16 MinorVersion; + UINT32 Type; + UINT32 SizeOfData; + UINT32 RVA; ///< The address of the debug data when loaded, relative to the image base + UINT32 FileOffset; ///< The file pointer to the debug data +} EFI_IMAGE_DEBUG_DIRECTORY_ENTRY; + +#define EFI_IMAGE_DEBUG_TYPE_CODEVIEW 2 ///< The Visual C++ debug information + +/// +/// Debug Data Structure defined in Microsoft C++ +/// +#define CODEVIEW_SIGNATURE_NB10 SIGNATURE_32('N', 'B', '1', '0') +typedef struct { + UINT32 Signature; ///< "NB10" + UINT32 Unknown; + UINT32 Unknown2; + UINT32 Unknown3; + // + // Filename of .PDB goes here + // +} EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY; + +/// +/// Debug Data Structure defined in Microsoft C++ +/// +#define CODEVIEW_SIGNATURE_RSDS SIGNATURE_32('R', 'S', 'D', 'S') +typedef struct { + UINT32 Signature; ///< "RSDS" + UINT32 Unknown; + UINT32 Unknown2; + UINT32 Unknown3; + UINT32 Unknown4; + UINT32 Unknown5; + // + // Filename of .PDB goes here + // +} EFI_IMAGE_DEBUG_CODEVIEW_RSDS_ENTRY; + + +/// +/// Debug Data Structure defined by Apple Mach-O to Coff utility +/// +#define CODEVIEW_SIGNATURE_MTOC SIGNATURE_32('M', 'T', 'O', 'C') +typedef struct { + UINT32 Signature; ///< "MTOC" + GUID MachOUuid; + // + // Filename of .DLL (Mach-O with debug info) goes here + // +} EFI_IMAGE_DEBUG_CODEVIEW_MTOC_ENTRY; + +/// +/// Resource format. +/// +typedef struct { + UINT32 Characteristics; + UINT32 TimeDateStamp; + UINT16 MajorVersion; + UINT16 MinorVersion; + UINT16 NumberOfNamedEntries; + UINT16 NumberOfIdEntries; + // + // Array of EFI_IMAGE_RESOURCE_DIRECTORY_ENTRY entries goes here. + // +} EFI_IMAGE_RESOURCE_DIRECTORY; + +/// +/// Resource directory entry format. +/// +typedef struct { + union { + struct { + UINT32 NameOffset:31; + UINT32 NameIsString:1; + } s; + UINT32 Id; + } u1; + union { + UINT32 OffsetToData; + struct { + UINT32 OffsetToDirectory:31; + UINT32 DataIsDirectory:1; + } s; + } u2; +} EFI_IMAGE_RESOURCE_DIRECTORY_ENTRY; + +/// +/// Resource directory entry for string. +/// +typedef struct { + UINT16 Length; + CHAR16 String[1]; +} EFI_IMAGE_RESOURCE_DIRECTORY_STRING; + +/// +/// Resource directory entry for data array. +/// +typedef struct { + UINT32 OffsetToData; + UINT32 Size; + UINT32 CodePage; + UINT32 Reserved; +} EFI_IMAGE_RESOURCE_DATA_ENTRY; + +/// +/// Header format for TE images, defined in PI Specification, 1.0 +/// +typedef struct { + UINT16 Signature; ///< signature for TE format = "VZ" + UINT16 Machine; ///< from the original file header + UINT8 NumberOfSections; ///< from the original file header + UINT8 Subsystem; ///< from original optional header + UINT16 StrippedSize; ///< how many bytes we removed from the header + UINT32 AddressOfEntryPoint; ///< offset to entry point -- from original optional header + UINT32 BaseOfCode; ///< from original image -- required for ITP debug + UINT64 ImageBase; ///< from original file header + EFI_IMAGE_DATA_DIRECTORY DataDirectory[2]; ///< only base relocation and debug directory +} EFI_TE_IMAGE_HEADER; + + +#define EFI_TE_IMAGE_HEADER_SIGNATURE SIGNATURE_16('V', 'Z') +typedef struct _EFI_FAT_IMAGE_HEADER +{ + UINT32 Signature; + UINT32 NFatArch; +} EFI_FAT_IMAGE_HEADER; + +#define EFI_FAT_IMAGE_HEADER_SIGNATURE 0xef1fab9 /* Note: it's deiffer from 0xcafebabe */ +typedef struct _EFI_FAT_IMAGE_HEADER_NLIST +{ + UINT32 CpuType; + UINT32 CpuSubType; + UINT32 Offset; + UINT32 Size; + UINT32 Align; +} EFI_FAT_IMAGE_HEADER_NLIST; + +#define EFI_FAT_CPU_TYPE_I386 0x7 +#define EFI_FAT_CPU_TYPE_X64 0x1000007 + +#define EFI_FAT_CPU_SUB_TYPE_PC 0x3 + +// +// Data directory indexes in our TE image header +// +#define EFI_TE_IMAGE_DIRECTORY_ENTRY_BASERELOC 0 +#define EFI_TE_IMAGE_DIRECTORY_ENTRY_DEBUG 1 + + +/// +/// Union of PE32, PE32+, and TE headers +/// +typedef union { + EFI_IMAGE_NT_HEADERS32 Pe32; + EFI_IMAGE_NT_HEADERS64 Pe32Plus; + EFI_TE_IMAGE_HEADER Te; +} EFI_IMAGE_OPTIONAL_HEADER_UNION; + +typedef union { + EFI_IMAGE_NT_HEADERS32 *Pe32; + EFI_IMAGE_NT_HEADERS64 *Pe32Plus; + EFI_TE_IMAGE_HEADER *Te; + EFI_IMAGE_OPTIONAL_HEADER_UNION *Union; +} EFI_IMAGE_OPTIONAL_HEADER_PTR_UNION; + +#endif diff --git a/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Include/Library/PeCoffLib.h b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Include/Library/PeCoffLib.h new file mode 100644 index 000000000..3590ce4c2 --- /dev/null +++ b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Include/Library/PeCoffLib.h @@ -0,0 +1,392 @@ +/** @file + Provides services to load and relocate a PE/COFF image. + + The PE/COFF Loader Library abstracts the implementation of a PE/COFF loader for + IA-32, x86, IPF, and EBC processor types. The library functions are memory-based + and can be ported easily to any environment. + +Copyright (c) 2006 - 2008, Intel Corporation<BR> +Portions copyright (c) 2008-2009 Apple Inc. All rights reserved.<BR> +All rights reserved. This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +**/ + +#ifndef __BASE_PE_COFF_LIB_H__ +#define __BASE_PE_COFF_LIB_H__ + +#include <IndustryStandard/PeImage.h> +// +// Return status codes from the PE/COFF Loader services +// +#define IMAGE_ERROR_SUCCESS 0 +#define IMAGE_ERROR_IMAGE_READ 1 +#define IMAGE_ERROR_INVALID_PE_HEADER_SIGNATURE 2 +#define IMAGE_ERROR_INVALID_MACHINE_TYPE 3 +#define IMAGE_ERROR_INVALID_SUBSYSTEM 4 +#define IMAGE_ERROR_INVALID_IMAGE_ADDRESS 5 +#define IMAGE_ERROR_INVALID_IMAGE_SIZE 6 +#define IMAGE_ERROR_INVALID_SECTION_ALIGNMENT 7 +#define IMAGE_ERROR_SECTION_NOT_LOADED 8 +#define IMAGE_ERROR_FAILED_RELOCATION 9 +#define IMAGE_ERROR_FAILED_ICACHE_FLUSH 10 + +/** + Reads contents of a PE/COFF image. + + A function of this type reads contents of the PE/COFF image specified by FileHandle. The read + operation copies ReadSize bytes from the PE/COFF image starting at byte offset FileOffset into + the buffer specified by Buffer. The size of the buffer actually read is returned in ReadSize. + If FileOffset specifies an offset past the end of the PE/COFF image, a ReadSize of 0 is returned. + A function of this type must be registered in the ImageRead field of a PE_COFF_LOADER_IMAGE_CONTEXT + structure for the PE/COFF Loader Library service to function correctly. This function abstracts access + to a PE/COFF image so it can be implemented in an environment specific manner. For example, SEC and PEI + environments may access memory directly to read the contents of a PE/COFF image, and DXE or UEFI + environments may require protocol services to read the contents of PE/COFF image + stored on FLASH, disk, or network devices. + + If FileHandle is not a valid handle, then ASSERT(). + If ReadSize is NULL, then ASSERT(). + If Buffer is NULL, then ASSERT(). + + @param FileHandle Pointer to the file handle to read the PE/COFF image. + @param FileOffset Offset into the PE/COFF image to begin the read operation. + @param ReadSize On input, the size in bytes of the requested read operation. + On output, the number of bytes actually read. + @param Buffer Output buffer that contains the data read from the PE/COFF image. + + @retval RETURN_SUCCESS The specified portion of the PE/COFF image was read and the size + @retval RETURN_DEVICE_ERROR The specified portion of the PE/COFF image could not be read due + to a device error. + +**/ +typedef +RETURN_STATUS +(EFIAPI *PE_COFF_LOADER_READ_FILE)( + IN VOID *FileHandle, + IN UINTN FileOffset, + IN OUT UINTN *ReadSize, + OUT VOID *Buffer + ); + +/// +/// Context structure used while PE/COFF image is being loaded and relocated +/// +typedef struct { + /// + /// Is set by PeCoffLoaderGetImageInfo() to the ImageBase in the PE/COFF header + /// + PHYSICAL_ADDRESS ImageAddress; + /// + /// Is set by PeCoffLoaderGetImageInfo() to the SizeOfImage in the PE/COFF header. + /// Image size includes the size of Debug Entry if it is present. + /// + UINT64 ImageSize; + /// + /// Is set to zero by PeCoffLoaderGetImageInfo(). If DestinationAddress is non zero, + /// PeCoffLoaderRelocateImage() will relocate the image using this base address. + /// If the DestinationAddress is zero, the ImageAddress will be used as the base + /// address of relocation. + /// + PHYSICAL_ADDRESS DestinationAddress; + /// + /// PeCoffLoaderLoadImage() sets EntryPoint to to the entry point of the PE/COFF image. + /// + PHYSICAL_ADDRESS EntryPoint; + /// + /// Passed in by the caller to PeCoffLoaderGetImageInfo() and PeCoffLoaderLoadImage() + /// to abstract accessing the image from the library. + /// + PE_COFF_LOADER_READ_FILE ImageRead; + /// + /// Used as the FileHandle passed into the ImageRead function when it's called. + /// + VOID *Handle; + /// + /// Caller allocated buffer of size FixupDataSize that can be optionally allocated + /// prior to calling PeCoffLoaderRelocateImage(). + /// This buffer is filled with the information used to fix up the image. + /// The fixups have been applied to the image and this entry is just for information. + /// + VOID *FixupData; + /// + /// Is set by PeCoffLoaderGetImageInfo() to the Section Alignment in the PE/COFF header + /// If the image is a TE image, then this field is set to 0. + /// + UINT32 SectionAlignment; + /// + /// Set by PeCoffLoaderGetImageInfo() to offset to the PE/COFF header. + /// If the PE/COFF image does not start with a DOS header, this value is zero; + /// otherwise, it's the offset to the PE/COFF header. + /// + UINT32 PeCoffHeaderOffset; + /// + /// Set by PeCoffLoaderGetImageInfo() to the Relative Virtual Address of the debug directory + /// if it exists in the image + /// + UINT32 DebugDirectoryEntryRva; + /// + /// Set by PeCoffLoaderLoadImage() to CodeView area of the PE/COFF Debug directory. + /// + VOID *CodeView; + /// + /// Set by PeCoffLoaderLoadImage() to point to the PDB entry contained in the CodeView area. + /// The PdbPointer points to the filename of the PDB file used for source-level debug of + /// the image by a debugger. + /// + CHAR8 *PdbPointer; + /// + /// Is set by PeCoffLoaderGetImageInfo() to the Section Alignment in the PE/COFF header. + /// + UINTN SizeOfHeaders; + /// + /// Not used by this library class. Other library classes that layer on top of this library + /// class fill in this value as part of their GetImageInfo call. + /// This allows the caller of the library to know what type of memory needs to be allocated + /// to load and relocate the image. + /// + UINT32 ImageCodeMemoryType; + /// + /// Not used by this library class. Other library classes that layer on top of this library + /// class fill in this value as part of their GetImageInfo call. + /// This allows the caller of the library to know what type of memory needs to be allocated + /// to load and relocate the image + /// + UINT32 ImageDataMemoryType; + /// + /// Set by any of the library functions if they encounter an error. + /// + UINT32 ImageError; + /// + /// Set by PeCoffLoaderLoadImage() to indicate the size of FixupData that the caller must + /// allocate before calling PeCoffLoaderRelocateImage() + /// + UINTN FixupDataSize; + /// + /// Set by PeCoffLoaderGetImageInfo() to the machine type stored in the PE/COFF header + /// + UINT16 Machine; + /// + /// Set by PeCoffLoaderGetImageInfo() to the subsystem type stored in the PE/COFF header. + /// + UINT16 ImageType; + /// + /// Set by PeCoffLoaderGetImageInfo() to TRUE if the PE/COFF image does not contain + /// relocation information. + /// + BOOLEAN RelocationsStripped; + /// + /// Set by PeCoffLoaderGetImageInfo() to TRUE if the image is a TE image. + /// For a definition of the TE Image format, see the Platform Initialization Pre-EFI + /// Initialization Core Interface Specification. + /// + BOOLEAN IsTeImage; + /// + /// Set by PeCoffLoaderLoadImage() to the HII resource offset + /// if the image contains a custom PE/COFF resource with the type 'HII'; + /// otherwise, the entry remains to be 0. + /// + PHYSICAL_ADDRESS HiiResourceData; + /// + /// Private storage for implementation specific data. + /// + BOOLEAN IsFat; + UINT32 FatOffset; + UINT64 Context; +} PE_COFF_LOADER_IMAGE_CONTEXT; + +/** + Retrieves information about a PE/COFF image. + + Computes the PeCoffHeaderOffset, IsTeImage, ImageType, ImageAddress, ImageSize, + DestinationAddress, RelocationsStripped, SectionAlignment, SizeOfHeaders, and + DebugDirectoryEntryRva fields of the ImageContext structure. + If ImageContext is NULL, then return RETURN_INVALID_PARAMETER. + If the PE/COFF image accessed through the ImageRead service in the ImageContext + structure is not a supported PE/COFF image type, then return RETURN_UNSUPPORTED. + If any errors occur while computing the fields of ImageContext, + then the error status is returned in the ImageError field of ImageContext. + If the image is a TE image, then SectionAlignment is set to 0. + The ImageRead and Handle fields of ImageContext structure must be valid prior + to invoking this service. + + @param ImageContext Pointer to the image context structure that describes the PE/COFF + image that needs to be examined by this function. + + @retval RETURN_SUCCESS The information on the PE/COFF image was collected. + @retval RETURN_INVALID_PARAMETER ImageContext is NULL. + @retval RETURN_UNSUPPORTED The PE/COFF image is not supported. + +**/ +RETURN_STATUS +EFIAPI +PeCoffLoaderGetImageInfo ( + IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext + ); + +/** + Applies relocation fixups to a PE/COFF image that was loaded with PeCoffLoaderLoadImage(). + + If the DestinationAddress field of ImageContext is 0, then use the ImageAddress field of + ImageContext as the relocation base address. Otherwise, use the DestinationAddress field + of ImageContext as the relocation base address. The caller must allocate the relocation + fixup log buffer and fill in the FixupData field of ImageContext prior to calling this function. + + The ImageRead, Handle, PeCoffHeaderOffset, IsTeImage, Machine, ImageType, ImageAddress, + ImageSize, DestinationAddress, RelocationsStripped, SectionAlignment, SizeOfHeaders, + DebugDirectoryEntryRva, EntryPoint, FixupDataSize, CodeView, PdbPointer, and FixupData of + the ImageContext structure must be valid prior to invoking this service. + + If ImageContext is NULL, then ASSERT(). + + Note that if the platform does not maintain coherency between the instruction cache(s) and the data + cache(s) in hardware, then the caller is responsible for performing cache maintenance operations + prior to transferring control to a PE/COFF image that is loaded using this library. + + @param ImageContext Pointer to the image context structure that describes the PE/COFF + image that is being relocated. + + @retval RETURN_SUCCESS The PE/COFF image was relocated. + Extended status information is in the ImageError field of ImageContext. + @retval RETURN_LOAD_ERROR The image in not a valid PE/COFF image. + Extended status information is in the ImageError field of ImageContext. + @retval RETURN_UNSUPPORTED A relocation record type is not supported. + Extended status information is in the ImageError field of ImageContext. + +**/ +RETURN_STATUS +EFIAPI +PeCoffLoaderRelocateImage ( + IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext + ); + +/** + Loads a PE/COFF image into memory. + + Loads the PE/COFF image accessed through the ImageRead service of ImageContext into the buffer + specified by the ImageAddress and ImageSize fields of ImageContext. The caller must allocate + the load buffer and fill in the ImageAddress and ImageSize fields prior to calling this function. + The EntryPoint, FixupDataSize, CodeView, PdbPointer and HiiResourceData fields of ImageContext are computed. + The ImageRead, Handle, PeCoffHeaderOffset, IsTeImage, Machine, ImageType, ImageAddress, ImageSize, + DestinationAddress, RelocationsStripped, SectionAlignment, SizeOfHeaders, and DebugDirectoryEntryRva + fields of the ImageContext structure must be valid prior to invoking this service. + + If ImageContext is NULL, then ASSERT(). + + Note that if the platform does not maintain coherency between the instruction cache(s) and the data + cache(s) in hardware, then the caller is responsible for performing cache maintenance operations + prior to transferring control to a PE/COFF image that is loaded using this library. + + @param ImageContext Pointer to the image context structure that describes the PE/COFF + image that is being loaded. + + @retval RETURN_SUCCESS The PE/COFF image was loaded into the buffer specified by + the ImageAddress and ImageSize fields of ImageContext. + Extended status information is in the ImageError field of ImageContext. + @retval RETURN_BUFFER_TOO_SMALL The caller did not provide a large enough buffer. + Extended status information is in the ImageError field of ImageContext. + @retval RETURN_LOAD_ERROR The PE/COFF image is an EFI Runtime image with no relocations. + Extended status information is in the ImageError field of ImageContext. + @retval RETURN_INVALID_PARAMETER The image address is invalid. + Extended status information is in the ImageError field of ImageContext. + +**/ +RETURN_STATUS +EFIAPI +PeCoffLoaderLoadImage ( + IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext + ); + + +/** + Reads contents of a PE/COFF image from a buffer in system memory. + + This is the default implementation of a PE_COFF_LOADER_READ_FILE function + that assumes FileHandle pointer to the beginning of a PE/COFF image. + This function reads contents of the PE/COFF image that starts at the system memory + address specified by FileHandle. The read operation copies ReadSize bytes from the + PE/COFF image starting at byte offset FileOffset into the buffer specified by Buffer. + The size of the buffer actually read is returned in ReadSize. + + If FileHandle is NULL, then ASSERT(). + If ReadSize is NULL, then ASSERT(). + If Buffer is NULL, then ASSERT(). + + @param FileHandle Pointer to base of the input stream + @param FileOffset Offset into the PE/COFF image to begin the read operation. + @param ReadSize On input, the size in bytes of the requested read operation. + On output, the number of bytes actually read. + @param Buffer Output buffer that contains the data read from the PE/COFF image. + + @retval RETURN_SUCCESS Data is read from FileOffset from the Handle into + the buffer. +**/ +RETURN_STATUS +EFIAPI +PeCoffLoaderImageReadFromMemory ( + IN VOID *FileHandle, + IN UINTN FileOffset, + IN OUT UINTN *ReadSize, + OUT VOID *Buffer + ); + + +/** + Reapply fixups on a fixed up PE32/PE32+ image to allow virutal calling at EFI + runtime. + + This function reapplies relocation fixups to the PE/COFF image specified by ImageBase + and ImageSize so the image will execute correctly when the PE/COFF image is mapped + to the address specified by VirtualImageBase. RelocationData must be identical + to the FiuxupData buffer from the PE_COFF_LOADER_IMAGE_CONTEXT structure + after this PE/COFF image was relocated with PeCoffLoaderRelocateImage(). + + Note that if the platform does not maintain coherency between the instruction cache(s) and the data + cache(s) in hardware, then the caller is responsible for performing cache maintenance operations + prior to transferring control to a PE/COFF image that is loaded using this library. + + @param ImageBase Base address of a PE/COFF image that has been loaded + and relocated into system memory. + @param VirtImageBase The request virtual address that the PE/COFF image is to + be fixed up for. + @param ImageSize The size, in bytes, of the PE/COFF image. + @param RelocationData A pointer to the relocation data that was collected when the PE/COFF + image was relocated using PeCoffLoaderRelocateImage(). + +**/ +VOID +EFIAPI +PeCoffLoaderRelocateImageForRuntime ( + IN PHYSICAL_ADDRESS ImageBase, + IN PHYSICAL_ADDRESS VirtImageBase, + IN UINTN ImageSize, + IN VOID *RelocationData + ); + +/** + Unloads a loaded PE/COFF image from memory and releases its taken resource. + Releases any environment specific resources that were allocated when the image + specified by ImageContext was loaded using PeCoffLoaderLoadImage(). + + For NT32 emulator, the PE/COFF image loaded by system needs to release. + For real platform, the PE/COFF image loaded by Core doesn't needs to be unloaded, + this function can simply return RETURN_SUCCESS. + + If ImageContext is NULL, then ASSERT(). + + @param ImageContext Pointer to the image context structure that describes the PE/COFF + image to be unloaded. + + @retval RETURN_SUCCESS The PE/COFF image was unloaded successfully. +**/ +RETURN_STATUS +EFIAPI +PeCoffLoaderUnloadImage ( + IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext + ); +#endif diff --git a/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Include/VBoxDebugLib.h b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Include/VBoxDebugLib.h new file mode 100644 index 000000000..575c4b5b8 --- /dev/null +++ b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Include/VBoxDebugLib.h @@ -0,0 +1,35 @@ +/* $Id: VBoxDebugLib.h $ */ +/** @file + * VBoxDebugLib.h - Debug and logging routines implemented by VBoxDebugLib. + */ + +/* + * Copyright (C) 2009 Sun Microsystems, Inc. + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa + * Clara, CA 95054 USA or visit http://www.sun.com if you need + * additional information or have any questions. + */ + +#ifndef ___VBoxPkg_VBoxDebugLib_h +#define ___VBoxPkg_VBoxDebugLib_h + +#include <Uefi/UefiBaseType.h> +#include "VBoxPkg.h" + +size_t VBoxPrintChar(int ch); +size_t VBoxPrintGuid(CONST EFI_GUID *pGuid); +size_t VBoxPrintHex(UINT64 uValue, size_t cbType); +size_t VBoxPrintHexDump(const void *pv, size_t cb); +size_t VBoxPrintString(const char *pszString); + +#endif + diff --git a/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Include/VBoxMemLayout.h b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Include/VBoxMemLayout.h new file mode 100644 index 000000000..d9dd7de3b --- /dev/null +++ b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Include/VBoxMemLayout.h @@ -0,0 +1,29 @@ +/* $Id: VBoxMemLayout.h $ */ +/** @file + * VBoxMemLayou.h - Constants defining the memory layout. (Merge with DevEFI?) + */ + +/* + * Copyright (C) 2009 Sun Microsystems, Inc. + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa + * Clara, CA 95054 USA or visit http://www.sun.com if you need + * additional information or have any questions. + */ + +#ifndef ___VBoxMemLayout_h +#define ___VBoxMemLayout_h + +#define VBOXSEC_STACK_BASE (1*1024*1024) +#define VBOXSEC_STACK_SIZE (128*1024) + +#endif + diff --git a/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Include/VBoxPkg.h b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Include/VBoxPkg.h new file mode 100644 index 000000000..8fcdb3e01 --- /dev/null +++ b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Include/VBoxPkg.h @@ -0,0 +1,52 @@ +/* $Id: VBoxPkg.h $ */ +/** @file + * VBoxPkg.h - Common header, must be include before IPRT and VBox headers. + */ + +/* + * Copyright (C) 2009 Sun Microsystems, Inc. + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa + * Clara, CA 95054 USA or visit http://www.sun.com if you need + * additional information or have any questions. + */ + +#ifndef ___VBoxPkg_h +#define ___VBoxPkg_h + +/* + * IPRT configuration. + */ +#define IN_RING0 +/** @todo detect this */ +#if !defined(ARCH_BITS) || !defined(HC_ARCH_BITS) +# error "please add right bitness" +#endif + +/* + * VBox and IPRT headers. + */ +#include <VBox/version.h> +#include <iprt/types.h> +#ifdef _MSC_VER +# pragma warning ( disable : 4389) +# pragma warning ( disable : 4245) +# pragma warning ( disable : 4244) +#endif +#include <iprt/asm.h> +#ifdef _MSC_VER +# pragma warning ( default : 4244) +# pragma warning ( default : 4245) +# pragma warning ( default : 4389) +#endif + +#endif + diff --git a/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Library/VBoxDebugLib/VBoxDebugLib.c b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Library/VBoxDebugLib/VBoxDebugLib.c new file mode 100644 index 000000000..cf1d9232a --- /dev/null +++ b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Library/VBoxDebugLib/VBoxDebugLib.c @@ -0,0 +1,123 @@ +/* $Id: VBoxDebugLib.c $ */ +/** @file + * VBoxDebugLib.c - Debug logging and assertions support routines using DevEFI. + */ + +/* + * Copyright (C) 2009-2010 Sun Microsystems, Inc. + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa + * Clara, CA 95054 USA or visit http://www.sun.com if you need + * additional information or have any questions. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include <Base.h> +#include <Library/PrintLib.h> +#include <Library/DebugLib.h> + +#include "VBoxDebugLib.h" +#include "DevEFI.h" + + + +VOID EFIAPI +DebugPrint(IN UINTN ErrorLevel, IN CONST CHAR8 *Format, ...) +{ + CHAR8 szBuf[256]; + VA_LIST va; + UINTN cch; + RTCCUINTREG SavedFlags; + + /* No pool noise, please. */ + if (ErrorLevel == DEBUG_POOL) + return; + + VA_START(va, Format); + cch = AsciiVSPrint(szBuf, sizeof(szBuf), Format, va); + VA_END(va); + + /* make sure it's terminated and doesn't end with a newline */ + if (cch >= sizeof(szBuf)) + cch = sizeof(szBuf) - 1; + while (cch > 0 && (szBuf[cch - 1] == '\n' || szBuf[cch - 1] == '\r')) + cch--; + szBuf[cch] = '\0'; + + SavedFlags = ASMIntDisableFlags(); + + VBoxPrintString("dbg/"); + VBoxPrintHex(ErrorLevel, sizeof(ErrorLevel)); + VBoxPrintChar(' '); + VBoxPrintString(szBuf); + VBoxPrintChar('\n'); + + ASMSetFlags(SavedFlags); + +} + + +VOID EFIAPI +DebugAssert(IN CONST CHAR8 *FileName, IN UINTN LineNumber, IN CONST CHAR8 *Description) +{ + RTCCUINTREG SavedFlags = ASMIntDisableFlags(); + + VBoxPrintString("EFI Assertion failed! File="); + VBoxPrintString(FileName ? FileName : "<NULL>"); + VBoxPrintString(" line=0x"); + VBoxPrintHex(LineNumber, sizeof(LineNumber)); + VBoxPrintString("\nDescription: "); + VBoxPrintString(Description ? Description : "<NULL>"); + + ASMOutU8(EFI_PANIC_PORT, 2); /** @todo fix this. */ + + ASMSetFlags(SavedFlags); +} + + +VOID * EFIAPI +DebugClearMemory(OUT VOID *Buffer, IN UINTN Length) +{ + return Buffer; +} + + +BOOLEAN EFIAPI +DebugAssertEnabled(VOID) +{ + return TRUE; +} + + +BOOLEAN EFIAPI +DebugPrintEnabled(VOID) +{ + /** @todo some PCD for this so we can disable it in release builds. */ + return TRUE; +} + + +BOOLEAN EFIAPI +DebugCodeEnabled(VOID) +{ + /** @todo ditto */ + return TRUE; +} + + +BOOLEAN EFIAPI +DebugClearMemoryEnabled(VOID) +{ + return FALSE; +} + diff --git a/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Library/VBoxDebugLib/VBoxDebugLib.inf b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Library/VBoxDebugLib/VBoxDebugLib.inf new file mode 100644 index 000000000..09ae4b76b --- /dev/null +++ b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Library/VBoxDebugLib/VBoxDebugLib.inf @@ -0,0 +1,68 @@ +# $Id: VBoxDebugLib.inf $ +## @file +# VBoxDebugLib - Debug logging and assertions support routines using DevEFI. +# + + +# +# Copyright (C) 2009-2010 Sun Microsystems, Inc. +# +# This file is part of VirtualBox Open Source Edition (OSE), as +# available from http://www.virtualbox.org. This file is free software; +# you can redistribute it and/or modify it under the terms of the GNU +# General Public License (GPL) as published by the Free Software +# Foundation, in version 2 as it comes in the "COPYING" file of the +# VirtualBox OSE distribution. VirtualBox OSE is distributed in the +# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +# +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa +# Clara, CA 95054 USA or visit http://www.sun.com if you need +# additional information or have any questions. +# +#/ + + + +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = VBoxDebugLib + FILE_GUID = 549306AB-75C1-4585-8681-556EBB34C60C + MODULE_TYPE = BASE + VERSION_STRING = 1.0 + LIBRARY_CLASS = DebugLib + +[Sources.common] + VBoxDebugLib.c + VBoxPrintChar.c + VBoxPrintGuid.c + VBoxPrintHex.c + VBoxPrintHexDump.c + VBoxPrintString.c + +[Packages] + MdePkg/MdePkg.dec + VBoxPkg/VBoxPkg.dec + +[LibraryClasses] + BaseLib + BaseMemoryLib + PrintLib + +[Guids] + # none + +[Ppis] + # none + +[Guids] + # none + +[Pcd.common] + # none + +[FixedPcd.common] + # none + +[FeaturePcd.common] + # none + diff --git a/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Library/VBoxDebugLib/VBoxPrintChar.c b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Library/VBoxDebugLib/VBoxPrintChar.c new file mode 100644 index 000000000..1cc1a931b --- /dev/null +++ b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Library/VBoxDebugLib/VBoxPrintChar.c @@ -0,0 +1,39 @@ +/* $Id: VBoxPrintChar.c $ */ +/** @file + * VBoxPrintChar.c - Implementation of the VBoxPrintChar() debug logging routine. + */ + +/* + * Copyright (C) 2009-2010 Sun Microsystems, Inc. + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa + * Clara, CA 95054 USA or visit http://www.sun.com if you need + * additional information or have any questions. + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "VBoxDebugLib.h" +#include "DevEFI.h" + + +/** + * Prints a char. + * @returns 1 + * @param ch The char to print. + */ +size_t VBoxPrintChar(int ch) +{ + ASMOutU8(EFI_DEBUG_PORT, (uint8_t)ch); + return 1; +} + diff --git a/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Library/VBoxDebugLib/VBoxPrintGuid.c b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Library/VBoxDebugLib/VBoxPrintGuid.c new file mode 100644 index 000000000..524f6deec --- /dev/null +++ b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Library/VBoxDebugLib/VBoxPrintGuid.c @@ -0,0 +1,58 @@ +/* $Id: VBoxPrintGuid.c $ */ +/** @file + * VBoxPrintGuid.c - Implementation of the VBoxPrintGuid() debug logging routine. + */ + +/* + * Copyright (C) 2009-2010 Sun Microsystems, Inc. + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa + * Clara, CA 95054 USA or visit http://www.sun.com if you need + * additional information or have any questions. + */ + + + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "VBoxDebugLib.h" +#include "DevEFI.h" + + +/** + * Prints a EFI GUID. + * + * @returns Number of bytes printed. + * + * @param pGuid The GUID to print + */ +size_t VBoxPrintGuid(CONST EFI_GUID *pGuid) +{ + VBoxPrintHex(pGuid->Data1, sizeof(pGuid->Data1)); + VBoxPrintChar('-'); + VBoxPrintHex(pGuid->Data2, sizeof(pGuid->Data2)); + VBoxPrintChar('-'); + VBoxPrintHex(pGuid->Data3, sizeof(pGuid->Data3)); + VBoxPrintChar('-'); + VBoxPrintHex(pGuid->Data4[0], sizeof(pGuid->Data4[0])); + VBoxPrintHex(pGuid->Data4[1], sizeof(pGuid->Data4[1])); + VBoxPrintChar('-'); + VBoxPrintHex(pGuid->Data4[2], sizeof(pGuid->Data4[2])); + VBoxPrintHex(pGuid->Data4[3], sizeof(pGuid->Data4[3])); + VBoxPrintHex(pGuid->Data4[4], sizeof(pGuid->Data4[4])); + VBoxPrintHex(pGuid->Data4[5], sizeof(pGuid->Data4[5])); + VBoxPrintHex(pGuid->Data4[6], sizeof(pGuid->Data4[6])); + VBoxPrintHex(pGuid->Data4[7], sizeof(pGuid->Data4[7])); + return 37; +} + diff --git a/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Library/VBoxDebugLib/VBoxPrintHex.c b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Library/VBoxDebugLib/VBoxPrintHex.c new file mode 100644 index 000000000..cd128cf2c --- /dev/null +++ b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Library/VBoxDebugLib/VBoxPrintHex.c @@ -0,0 +1,78 @@ +/* $Id: VBoxPrintHex.c $ */ +/** @file + * VBoxPrintHex.c - Implementation of the VBoxPrintHex() debug logging routine. + */ + +/* + * Copyright (C) 2009-2010 Sun Microsystems, Inc. + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa + * Clara, CA 95054 USA or visit http://www.sun.com if you need + * additional information or have any questions. + */ + + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "VBoxDebugLib.h" +#include "DevEFI.h" + + +/** + * Prints a char. + * @param ch The char to print. + */ +DECLINLINE(void) vboxPrintHexChar(int ch) +{ + ASMOutU8(EFI_DEBUG_PORT, (uint8_t)ch); +} + + +/** + * Print a hex number, up to 64-bit long. + * + * @returns Number of chars printed. + * + * @param uValue The value. + * @param cbType The size of the value type. + */ +size_t VBoxPrintHex(UINT64 uValue, size_t cbType) +{ + static const char s_szHex[17] = "0123456789abcdef"; + switch (cbType) + { + case 8: + vboxPrintHexChar(s_szHex[(uValue >> 60) & 0xf]); + vboxPrintHexChar(s_szHex[(uValue >> 56) & 0xf]); + vboxPrintHexChar(s_szHex[(uValue >> 52) & 0xf]); + vboxPrintHexChar(s_szHex[(uValue >> 48) & 0xf]); + vboxPrintHexChar(s_szHex[(uValue >> 44) & 0xf]); + vboxPrintHexChar(s_szHex[(uValue >> 40) & 0xf]); + vboxPrintHexChar(s_szHex[(uValue >> 36) & 0xf]); + vboxPrintHexChar(s_szHex[(uValue >> 32) & 0xf]); + case 4: + vboxPrintHexChar(s_szHex[(uValue >> 28) & 0xf]); + vboxPrintHexChar(s_szHex[(uValue >> 24) & 0xf]); + vboxPrintHexChar(s_szHex[(uValue >> 20) & 0xf]); + vboxPrintHexChar(s_szHex[(uValue >> 16) & 0xf]); + case 2: + vboxPrintHexChar(s_szHex[(uValue >> 12) & 0xf]); + vboxPrintHexChar(s_szHex[(uValue >> 8) & 0xf]); + case 1: + vboxPrintHexChar(s_szHex[(uValue >> 4) & 0xf]); + vboxPrintHexChar(s_szHex[(uValue ) & 0xf]); + break; + } + return cbType * 2; +} + diff --git a/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Library/VBoxDebugLib/VBoxPrintHexDump.c b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Library/VBoxDebugLib/VBoxPrintHexDump.c new file mode 100644 index 000000000..ea258a664 --- /dev/null +++ b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Library/VBoxDebugLib/VBoxPrintHexDump.c @@ -0,0 +1,97 @@ +/* $Id: VBoxPrintHexDump.c $ */ +/** @file + * VBoxPrintHex.c - Implementation of the VBoxPrintHex() debug logging routine. + */ + +/* + * Copyright (C) 2009-2010 Sun Microsystems, Inc. + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa + * Clara, CA 95054 USA or visit http://www.sun.com if you need + * additional information or have any questions. + */ + + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include "VBoxDebugLib.h" +#include "DevEFI.h" +#include <iprt/ctype.h> + + +/** + * Prints a char. + * @returns 1. + * @param ch The char to print. + */ +DECLINLINE(int) vboxPrintHexDumpChar(int ch) +{ + ASMOutU8(EFI_DEBUG_PORT, (uint8_t)ch); + return 1; +} + + +/** + * Prints a hex dump the specified memory block. + * + * @returns Number of bytes printed. + * + * @param pv The memory to dump. + * @param cb Number of bytes to dump. + */ +size_t VBoxPrintHexDump(const void *pv, size_t cb) +{ + size_t cchPrinted = 0; + uint8_t const *pb = (uint8_t const *)pv; + while (cb > 0) + { + unsigned i; + + /* the offset */ + cchPrinted += VBoxPrintHex((uintptr_t)pb, sizeof(pb)); + cchPrinted += VBoxPrintString(" "); + + /* the hex bytes value. */ + for (i = 0; i < 16; i++) + { + cchPrinted += vboxPrintHexDumpChar(i == 7 ? '-' : ' '); + if (i < cb) + cchPrinted += VBoxPrintHex(pb[i], 1); + else + cchPrinted += VBoxPrintString(" "); + } + + /* the printable chars */ + cchPrinted += VBoxPrintString(" "); + for (i = 0; i < 16 && i < cb; i++) + cchPrinted += vboxPrintHexDumpChar(pb[i] == ' ' + ? ' ' + : RT_C_IS_GRAPH(pb[i]) + ? pb[i] + : '.'); + + /* finally, the new line. */ + cchPrinted += vboxPrintHexDumpChar('\n'); + + /* + * Advance. + */ + if (cb <= 16) + break; + cb -= 16; + pb += 16; + } + + return cchPrinted; +} + diff --git a/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Library/VBoxOemHookStatusCodeLib/VBoxOemHookStatusCodeLib.c b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Library/VBoxOemHookStatusCodeLib/VBoxOemHookStatusCodeLib.c new file mode 100644 index 000000000..17546bb72 --- /dev/null +++ b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Library/VBoxOemHookStatusCodeLib/VBoxOemHookStatusCodeLib.c @@ -0,0 +1,203 @@ +/* $Id: VBoxOemHookStatusCodeLib.c $ */ +/** @file + * DxeVBoxOemHookStatusCodeLib.c - Logging. + */ + + +/* + * Copyright (C) 2009-2010 Sun Microsystems, Inc. + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa + * Clara, CA 95054 USA or visit http://www.sun.com if you need + * additional information or have any questions. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include <Library/ReportStatusCodeLib.h> +#include <Library/OemHookStatusCodeLib.h> +#include <Library/PrintLib.h> +#include <Library/BaseMemoryLib.h> +#include <Guid/StatusCodeDataTypeId.h> +#include <Guid/StatusCodeDataTypeDebug.h> +#if 0 /* See VBoxSecExtractDebugInfo */ +# include <DebugInfo.h> +#endif + +#include "VBoxDebugLib.h" +#include "DevEFI.h" + + + +EFI_STATUS EFIAPI +OemHookStatusCodeInitialize(VOID) +{ + VBoxPrintString("OemHookStatusCodeInitialize\n"); + return EFI_SUCCESS; +} + + +#if 0 /* vvl: With thbe new version the API changed a bit and VA_LIST isn't used any more. Before applying + * any changes here I would like to understand in which cases we need this help function. + * bird: Some components sent information in this format. Search for the UUID or EFI_DEBUG_INFO usage. + */ +/** + * Helper VBoxSecPeiReportStatusCode uses for catching some odd reports. + */ +static BOOLEAN +VBoxSecExtractDebugInfo(IN CONST EFI_STATUS_CODE_DATA *pData, + OUT UINT32 *puErrorLevel, + OUT VA_LIST *pVa, + OUT CHAR8 **ppszFormat) +{ + EFI_DEBUG_INFO *pDebugInfo; + + if ( !CompareGuid(&pData->Type, &gEfiStatusCodeSpecificDataGuid) + || pData->HeaderSize != sizeof(*pData) + || pData->Size <= sizeof(UINT64) * 12 + sizeof(EFI_DEBUG_INFO) + 1) + return FALSE; + + pDebugInfo = (EFI_DEBUG_INFO *)(pData + 1); + *pVa = (VA_LIST)(pDebugInfo + 1); + *ppszFormat = (CHAR8 *)((UINT64 *)pVa + 12); + return TRUE; +} +#endif + +/** Worker that dumps the raw data. */ +static void +VBoxOemHookStatusCodeReportRawDump(EFI_STATUS_CODE_TYPE Type, + EFI_STATUS_CODE_VALUE Value, + UINT32 Instance, + CONST EFI_GUID *CallerId) +{ + VBoxPrintString("Report: Type="); + VBoxPrintHex(Type, sizeof(Type)); + VBoxPrintString(" Value="); + VBoxPrintHex(Value, sizeof(Value)); + + VBoxPrintString(" Instance="); + VBoxPrintHex(Instance, sizeof(Instance)); + if (CallerId) + { + VBoxPrintString(" CallerId="); + VBoxPrintGuid(CallerId); + } + +#define CASE_PRINT(Head,Print,Tail) \ + case Head ## Print ## Tail : VBoxPrintString(" " #Print); break + switch (Type & EFI_STATUS_CODE_SEVERITY_MASK) /* quick guess work... */ + { + CASE_PRINT(EFI_ERROR_,MINOR,); + CASE_PRINT(EFI_ERROR_,MAJOR,); + CASE_PRINT(EFI_ERROR_,UNRECOVERED,); + CASE_PRINT(EFI_ERROR_,UNCONTAINED,); + } + switch (Type & EFI_STATUS_CODE_TYPE_MASK) /* quick guess work... */ + { + CASE_PRINT(EFI_,PROGRESS,_CODE); + CASE_PRINT(EFI_,ERROR,_CODE); + CASE_PRINT(EFI_,DEBUG,_CODE); + } +#undef CASE_PRINT + VBoxPrintChar('\n'); +} + + +EFI_STATUS EFIAPI +OemHookStatusCodeReport(IN EFI_STATUS_CODE_TYPE Type, + IN EFI_STATUS_CODE_VALUE Value, + IN UINT32 Instance, + IN EFI_GUID *CallerId OPTIONAL, + IN EFI_STATUS_CODE_DATA *Data OPTIONAL) +{ + /* + * Try figure out the data payload + */ + if (Data != NULL) + { + CHAR8 *pszFilename; + CHAR8 *pszDescription; + UINT32 uLine; + UINT32 uErrorLevel; + BASE_LIST bs; + CHAR8 *pszFormat; + + if (ReportStatusCodeExtractAssertInfo(Type, Value, Data, &pszFilename, + &pszDescription, &uLine)) + { + VBoxPrintString("Assertion Failed! Line=0x"); + VBoxPrintHex(uLine, sizeof(uLine)); + if (pszFilename) + { + VBoxPrintString(" File="); + VBoxPrintString(pszFilename); + } + if (pszDescription) + { + VBoxPrintString(" Desc="); + VBoxPrintString(pszDescription); + } + VBoxPrintChar('\n'); + } + else if ( ReportStatusCodeExtractDebugInfo(Data, &uErrorLevel, &bs, &pszFormat) +#if 0 /* See question at VBoxSecExtractDebugInfo. */ + || VBoxSecExtractDebugInfo(Data, &uErrorLevel, &va, &pszFormat) +#endif + ) + { + CHAR8 szBuf[128]; + UINTN cch; + + cch = AsciiBSPrint(szBuf, sizeof(szBuf), pszFormat, bs); + if (cch >= sizeof(szBuf)) + cch = sizeof(szBuf) - 1; + while ( cch > 0 + && ( szBuf[cch - 1] == '\n' + || szBuf[cch - 1] == '\r')) + cch--; + szBuf[cch] = '\0'; + + VBoxPrintString("DBG/"); + VBoxPrintHex(uErrorLevel, sizeof(uErrorLevel)); + VBoxPrintString(": "); + VBoxPrintString(szBuf); + VBoxPrintChar('\n'); + } + else + { + /* + * Unknown data, resort to raw dump of everything. + */ + VBoxOemHookStatusCodeReportRawDump(Type, Value, Instance, CallerId); + + VBoxPrintString("OemReport: Unknown data type "); + VBoxPrintGuid(&Data->Type); + VBoxPrintString(" (Size="); + VBoxPrintHex(Data->Size, sizeof(Data->Size)); + VBoxPrintString(" HeaderSize="); + VBoxPrintHex(Data->HeaderSize, sizeof(Data->HeaderSize)); + VBoxPrintString(")\n"); + if (Data->Size > 0 && Data->Size <= 128) + VBoxPrintHexDump(Data + 1, Data->Size); + } + } + /* + * No data, do a raw dump. + */ + else + VBoxOemHookStatusCodeReportRawDump(Type, Value, Instance, CallerId); + + return EFI_SUCCESS; +} + diff --git a/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Library/VBoxOemHookStatusCodeLib/VBoxOemHookStatusCodeLib.inf b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Library/VBoxOemHookStatusCodeLib/VBoxOemHookStatusCodeLib.inf new file mode 100644 index 000000000..e8a718526 --- /dev/null +++ b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/Library/VBoxOemHookStatusCodeLib/VBoxOemHookStatusCodeLib.inf @@ -0,0 +1,66 @@ +# $Id: VBoxOemHookStatusCodeLib.inf $ +## @file +# VBoxOemHookStatusCodeLib - Logging. +# + +# +# Copyright (C) 2009-2010 Sun Microsystems, Inc. +# +# This file is part of VirtualBox Open Source Edition (OSE), as +# available from http://www.virtualbox.org. This file is free software; +# you can redistribute it and/or modify it under the terms of the GNU +# General Public License (GPL) as published by the Free Software +# Foundation, in version 2 as it comes in the "COPYING" file of the +# VirtualBox OSE distribution. VirtualBox OSE is distributed in the +# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +# +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa +# Clara, CA 95054 USA or visit http://www.sun.com if you need +# additional information or have any questions. +# +#/ + +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = VBoxOemHookStatusCodeLib + FILE_GUID = 2199AC76-067A-4DFC-B09F-9E8C02CE05B3 + MODULE_TYPE = BASE + VERSION_STRING = 1.0 + LIBRARY_CLASS = OemHookStatusCodeLib + EDK_RELEASE_VERSION = 0x00020000 + EFI_SPECIFICATION_VERSION = 0x00020000 + +[Sources.common] + VBoxOemHookStatusCodeLib.c + +[Packages] + MdePkg/MdePkg.dec + IntelFrameworkPkg/IntelFrameworkPkg.dec + IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec + VBoxPkg/VBoxPkg.dec + +[LibraryClasses] + DebugLib + BaseLib + BaseMemoryLib + ReportStatusCodeLib + PrintLib + +[Guids] + # none + +[Ppis] + # none + +[Guids] + # none + +[Pcd.common] + # none + +[FixedPcd.common] + # none + +[FeaturePcd.common] + # none + diff --git a/src/VBox/Devices/EFI/Firmware2/VBoxPkg/VBoxLogo/VBoxLogo.inf b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/VBoxLogo/VBoxLogo.inf new file mode 100644 index 000000000..f6b11ac3b --- /dev/null +++ b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/VBoxLogo/VBoxLogo.inf @@ -0,0 +1,41 @@ +# $Id$
+
+#* @file
+# VBoxLogo.inf - Logo module declarations.
+#
+
+#
+# Copyright (C) 2009.2010 Sun Microsystems, Inc.
+#
+# Copyright (C) Sun Microsystems, Inc. +# +# This file is part of VirtualBox Open Source Edition (OSE), as +# available from http://www.virtualbox.org. This file is free software; +# you can redistribute it and/or modify it under the terms of the GNU +# General Public License (GPL) as published by the Free Software +# Foundation, in version 2 as it comes in the "COPYING" file of the +# VirtualBox OSE distribution. VirtualBox OSE is distributed in the +# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +# +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa +# Clara, CA 95054 USA or visit http://www.sun.com if you need +# additional information or have any questions. +# +**/
+
+[Defines]
+ INF_VERSION = 0x00010005
+ BASE_NAME = VBoxLogo
+ FILE_GUID = 323afebe-cc60-11de-af38-4731b4e5bd74
+ MODULE_TYPE = USER_DEFINED
+ VERSION_STRING = 1.0
+
+#
+# The following information is for reference only and not required by the build tools.
+#
+# VALID_ARCHITECTURES = IA32 X64 IPF EBC
+#
+
+[Binaries.common]
+ BIN|VBoxLogo.bmp|*
+
diff --git a/src/VBox/Devices/EFI/Firmware2/VBoxPkg/VBoxMisc/Makefile b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/VBoxMisc/Makefile new file mode 100644 index 000000000..d473dafb7 --- /dev/null +++ b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/VBoxMisc/Makefile @@ -0,0 +1,51 @@ +# $Id$ +#* @file +# Makefile - assembling the iso image for experimenting with EFI. +#/ +# +# +# Copyright (C) 2009-2010 Sun Microsystems, Inc. +# +# This file is part of VirtualBox Open Source Edition (OSE), as +# available from http://www.virtualbox.org. This file is free software; +# you can redistribute it and/or modify it under the terms of the GNU +# General Public License (GPL) as published by the Free Software +# Foundation, in version 2 as it comes in the "COPYING" file of the +# VirtualBox OSE distribution. VirtualBox OSE is distributed in the +# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +# +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa +# Clara, CA 95054 USA or visit http://www.sun.com if you need +# additional information or have any questions. +# +#/ + +# +# Here we add modules to be burn on iso-image +# +SOURCES += VBoxInterceptorDxe.efi +SOURCES += VBoxMimicryDxe.efi + +ifeq ($(BUILD_ARCH), IA32) +ARCH_SUFFIX= +else +ARCH_SUFFIX=$(BUILD_ARCH) +endif + +BUILD_ARCH ?= IA32 +BUILD_DIR=$(WORKSPACE)/Build/VBoxPkg$(ARCH_SUFFIX)/DEBUG_UNIXGCC/$(BUILD_ARCH) + +ISO_DIR=efi-app +FILES_TO_ISO=$(foreach file, $(SOURCES), $(addprefix $(ISO_DIR)/, $(file))) + +DEST=efi-app.iso +all:${DEST} + +$(DEST):$(FILES_TO_ISO) + mkisofs -R -o $@ $(basename $@) + +$(ISO_DIR)/%.efi:$(BUILD_DIR)/%.efi + cp $< $@ + +clean: + $(RM) -rf ${DEST} $(FILES_TO_ISO) diff --git a/src/VBox/Devices/EFI/Firmware2/VBoxPkg/VBoxMisc/efi-app/Readme.txt b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/VBoxMisc/efi-app/Readme.txt new file mode 100644 index 000000000..22e7a27fc --- /dev/null +++ b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/VBoxMisc/efi-app/Readme.txt @@ -0,0 +1,33 @@ +# $Id$ */ +#* @file +# Readme.txt - Some description about using this module. + + +# +# Copyright (C) 2009-2010 Sun Microsystems, Inc. +# +# This file is part of VirtualBox Open Source Edition (OSE), as +# available from http://www.virtualbox.org. This file is free software; +# you can redistribute it and/or modify it under the terms of the GNU +# General Public License (GPL) as published by the Free Software +# Foundation, in version 2 as it comes in the "COPYING" file of the +# VirtualBox OSE distribution. VirtualBox OSE is distributed in the +# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +# +# The contents of this file may alternatively be used under the terms +# of the Common Development and Distribution License Version 1.0 +# (CDDL) only, as it comes in the "COPYING.CDDL" file of the +# VirtualBox OSE distribution, in which case the provisions of the +# CDDL are applicable instead of those of the GPL. +# +# You may elect to license modified versions of this file under the +# terms and conditions of either the GPL or the CDDL or both. +# +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa +# Clara, CA 95054 USA or visit http://www.sun.com if you need +# additional information or have any questions. +#/ +Here could be some help how to manage files on efi-app ISO + +VBoxInterceptor - intercepts calls to gBS and gRT, outputs a lot of traffics to dev_efi.e.l2, (please be pacient ;)) + Shell> load VBoxInterceptor.efi diff --git a/src/VBox/Devices/EFI/Firmware2/VBoxPkg/VBoxPkg.dec b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/VBoxPkg.dec new file mode 100644 index 000000000..2af7c97b2 --- /dev/null +++ b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/VBoxPkg.dec @@ -0,0 +1,78 @@ +# $Id: VBoxPkg.dec $ +## @file +# VBoxPkg.dec - VirtualBox Package description. +# + +# +# Copyright (C) 2009-2010 Sun Microsystems, Inc. +# +# This file is part of VirtualBox Open Source Edition (OSE), as +# available from http://www.virtualbox.org. This file is free software; +# you can redistribute it and/or modify it under the terms of the GNU +# General Public License (GPL) as published by the Free Software +# Foundation, in version 2 as it comes in the "COPYING" file of the +# VirtualBox OSE distribution. VirtualBox OSE is distributed in the +# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +# +# The contents of this file may alternatively be used under the terms +# of the Common Development and Distribution License Version 1.0 +# (CDDL) only, as it comes in the "COPYING.CDDL" file of the +# VirtualBox OSE distribution, in which case the provisions of the +# CDDL are applicable instead of those of the GPL. +# +# You may elect to license modified versions of this file under the +# terms and conditions of either the GPL or the CDDL or both. +# +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa +# Clara, CA 95054 USA or visit http://www.sun.com if you need +# additional information or have any questions. +#/ + +[Defines] + DEC_SPECIFICATION = 0x00010005 + PACKAGE_NAME = VBoxPkg + PACKAGE_GUID = D118A5AF-05C8-427E-8047-EF53092514B7 + PACKAGE_VERSION = 0.1 + +[Includes.common] + Include + +[Guids.common] +# gEfiPciExpressBaseAddressGuid = {0x3677d529, 0x326f, 0x4603, {0xa9, 0x26, 0xea, 0xac, 0xe0, 0x1d, 0xcb, 0xb0 }} + gEfiAcpiDescriptionGuid = {0x3c699197, 0x093c, 0x4c69, {0xb0, 0x6b, 0x12, 0x8a, 0xe3, 0x48, 0x1d, 0xc9 }} +# gEfiFlashMapHobGuid = { 0xb091e7d2, 0x5a0, 0x4198, {0x94, 0xf0, 0x74, 0xb7, 0xb8, 0xc5, 0x54, 0x59 }} + gVBoxVgaPkgTokenSpaceGuid = { 0xa3a8ce56, 0x4a07, 0x441f, {0xa3, 0xf5, 0x6f, 0x53, 0xdb, 0x9c, 0xb7, 0xd8}} + +# +# Various types of Platform Configuration Database (PCD) items. +# +[PcdsFixedAtBuild.common] + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|0|UINT32|0x00001000 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize|0|UINT32|0x00001001 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0|UINT32|0x00001002 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize|0|UINT32|0x00001003 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0|UINT32|0x00001004 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize|0|UINT32|0x00001005 + +## XXX - boot mode - gEfiNt32PkgTokenSpaceGuid.PcdWinNtBootMode|1|UINT32|0x00001006 + +# gEfiNt32PkgTokenSpaceGuid.PcdWinNtFlashFvRecoveryBase|0x0|UINT32|0x00001010 +# gEfiNt32PkgTokenSpaceGuid.PcdWinNtFlashFvRecoverySize|0x0|UINT32|0x00001011 + +# gEfiNt32PkgTokenSpaceGuid.PcdWinNtFirmwareFdSize|0x0|UINT32|0x00001012 +# gEfiNt32PkgTokenSpaceGuid.PcdWinNtFirmwareFdSize|0x0|UINT32|0x00001012 +# gEfiNt32PkgTokenSpaceGuid.PcdWinNtFirmwareBlockSize|0|UINT32|0x00001013 + +# gEfiNt32PkgTokenSpaceGuid.PcdWinNtFlashNvStorageVariableBase|0x0|UINT32|0x00001014 +# gEfiNt32PkgTokenSpaceGuid.PcdWinNtFlashNvStorageFtwSpareBase|0x0|UINT32|0x00001015 +# gEfiNt32PkgTokenSpaceGuid.PcdWinNtFlashNvStorageFtwWorkingBase|0x0|UINT32|0x00001016 +# gEfiNt32PkgTokenSpaceGuid.PcdWinNtFdBaseAddress|0x0|UINT32|0x00001017 + +[PcdsDynamic.common] + # none yet + +[PcdsPatchableInModule.common] +## XXX - boot mode - gEfiNt32PkgTokenSpaceGuid.PcdWinNtBootMode|1|UINT32|0x00001006 +[PcdsFeatureFlag.common] + gVBoxVgaPkgTokenSpaceGuid.PcdSupportGop|TRUE|BOOLEAN|0x00010004 + gVBoxVgaPkgTokenSpaceGuid.PcdSupportUga|FALSE|BOOLEAN|0x00010005 diff --git a/src/VBox/Devices/EFI/Firmware2/VBoxPkg/VBoxPkg.dsc b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/VBoxPkg.dsc new file mode 100644 index 000000000..a49741f2f --- /dev/null +++ b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/VBoxPkg.dsc @@ -0,0 +1,418 @@ +# $Id: VBoxPkg.dsc $ +## @file +# VBoxPkg.dsc - VirtualBox Flash Device. +# + +# +# Copyright (C) 2009-2010 Sun Microsystems, Inc. +# +# This file is part of VirtualBox Open Source Edition (OSE), as +# available from http://www.virtualbox.org. This file is free software; +# you can redistribute it and/or modify it under the terms of the GNU +# General Public License (GPL) as published by the Free Software +# Foundation, in version 2 as it comes in the "COPYING" file of the +# VirtualBox OSE distribution. VirtualBox OSE is distributed in the +# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +# +# The contents of this file may alternatively be used under the terms +# of the Common Development and Distribution License Version 1.0 +# (CDDL) only, as it comes in the "COPYING.CDDL" file of the +# VirtualBox OSE distribution, in which case the provisions of the +# CDDL are applicable instead of those of the GPL. +# +# You may elect to license modified versions of this file under the +# terms and conditions of either the GPL or the CDDL or both. +# +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa +# Clara, CA 95054 USA or visit http://www.sun.com if you need +# additional information or have any questions. +#/ + + +# -------------------------------------------------------------------- +# +# This file is based on: Ovmf/OvmfIA32.dsc +#/** @file +# EFI/Framework Open Virtual Machine Firmware (OVMF) platform +# +# Copyright (c) 2006 - 2009, Intel Corporation +# +# All rights reserved. This program and the accompanying materials +# are licensed and made available under the terms and conditions of the BSD License +# which accompanies this distribution. The full text of the license may be found at +# http://opensource.org/licenses/bsd-license.php +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# +#**/ + +################################################################################ +# +# Defines Section - statements that will be processed to create a Makefile. +# +################################################################################ +[Defines] + PLATFORM_NAME = VBoxPkg + PLATFORM_GUID = 5a9e7754-d81b-49ea-85ad-69eaa7b1539b + PLATFORM_VERSION = 0.1 + DSC_ SPECIFICATION = 0x00010005 + OUTPUT_DIRECTORY = Build/VBoxPkg + SUPPORTED_ARCHITECTURES = IA32 + BUILD_TARGETS = DEBUG|RELEASE + SKUID_IDENTIFIER = DEFAULT + FLASH_DEFINITION = VBoxPkg/VBoxPkg.fdf + +################################################################################ +# +# SKU Identification section - list of all SKU IDs supported by this Platform. +# +################################################################################ +[SkuIds] + 0|DEFAULT + +################################################################################ +# +# Library Class section - list of all Library Classes needed by this Platform. +# +################################################################################ +[LibraryClasses.common] + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf + TimerLib|OvmfPkg/Library/AcpiTimerLib/AcpiTimerLib.inf + #TimerLib|DuetPkg/Library/DuetTimerLib/DuetTimerLib.inf + PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf + BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf + BaseLib|MdePkg/Library/BaseLib/BaseLib.inf + SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf + CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf + PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf + #PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf + PeCoffLib|VBoxPkg/Library/VBoxPeCoffLib/VBoxPeCoffLib.inf + PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf + #PciIncompatibleDeviceSupportLib|IntelFrameworkModulePkg/Library/PciIncompatibleDeviceSupportLib/PciIncompatibleDeviceSupportLib.inf + CacheMaintenanceLib|MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf + UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf + UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf + HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf + S3Lib|MdeModulePkg/Library/PeiS3LibNull/PeiS3LibNull.inf + RecoveryLib|MdeModulePkg/Library/PeiRecoveryLibNull/PeiRecoveryLibNull.inf + GenericBdsLib|VBoxPkg/Library/VBoxGenericBdsLib/VBoxGenericBdsLib.inf + CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf + DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf + PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf + PciCf8Lib|MdePkg/Library/BasePciCf8Lib/BasePciCf8Lib.inf + PciLib|MdePkg/Library/BasePciLibCf8/BasePciLibCf8.inf + IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf + #OemHookStatusCodeLib|IntelFrameworkModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf + OemHookStatusCodeLib|VBoxPkg/Library/VBoxOemHookStatusCodeLib/VBoxOemHookStatusCodeLib.inf + SerialPortLib|PcAtChipsetPkg/Library/SerialIoLib/SerialIoLib.inf + MtrrLib|UefiCpuPkg/Library/MtrrLib/MtrrLib.inf + UefiLib|MdePkg/Library/UefiLib/UefiLib.inf + UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf + UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf + UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf + UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf + DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf + NvVarsFileLib|OvmfPkg/Library/NvVarsFileLib/NvVarsFileLib.inf + FileHandleLib|ShellPkg/Library/BaseFileHandleLib/BaseFileHandleLib.inf + +[LibraryClasses.common.SEC] + #DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf + DebugLib|VBoxPkg/Library/VBoxDebugLib/VBoxDebugLib.inf + ReportStatusCodeLib|IntelFrameworkModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf + +[LibraryClasses.common.PEI_CORE] + BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf + HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf + PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLibIdt/PeiServicesTablePointerLibIdt.inf + PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf + MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf + PeiCoreEntryPoint|MdePkg/Library/PeiCoreEntryPoint/PeiCoreEntryPoint.inf + ReportStatusCodeLib|IntelFrameworkModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf + OemHookStatusCodeLib|VBoxPkg/Library/VBoxOemHookStatusCodeLib/VBoxOemHookStatusCodeLib.inf + #OemHookStatusCodeLib|IntelFrameworkModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf + PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf + #DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf + DebugLib|VBoxPkg/Library/VBoxDebugLib/VBoxDebugLib.inf + #PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf + +[LibraryClasses.common.PEIM] + BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf + HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf + PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLibIdt/PeiServicesTablePointerLibIdt.inf + PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf + MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf + PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf + ReportStatusCodeLib|IntelFrameworkModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf + OemHookStatusCodeLib|VBoxPkg/Library/VBoxOemHookStatusCodeLib/VBoxOemHookStatusCodeLib.inf + #OemHookStatusCodeLib|IntelFrameworkModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf + PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf + #DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf + DebugLib|VBoxPkg/Library/VBoxDebugLib/VBoxDebugLib.inf + #PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf + PeiResourcePublicationLib|MdePkg/Library/PeiResourcePublicationLib/PeiResourcePublicationLib.inf + ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf + +[LibraryClasses.common.DXE_CORE] + HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf + DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf + MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf + ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf + #DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf + DebugLib|VBoxPkg/Library/VBoxDebugLib/VBoxDebugLib.inf + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf + ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf + +[LibraryClasses.common.DXE_RUNTIME_DRIVER] + HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf + DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf + MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf + ReportStatusCodeLib|IntelFrameworkModulePkg/Library/SmmRuntimeDxeReportStatusCodeLibFramework/SmmRuntimeDxeReportStatusCodeLibFramework.inf + #DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf + DebugLib|VBoxPkg/Library/VBoxDebugLib/VBoxDebugLib.inf + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf + ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf + UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf + DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf + +[LibraryClasses.common.UEFI_DRIVER] + HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf + DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf + MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf + ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf + #DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf + DebugLib|VBoxPkg/Library/VBoxDebugLib/VBoxDebugLib.inf + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf + ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf + UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf + UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf + +[LibraryClasses.common.DXE_DRIVER] + HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf + MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf + ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf + DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf + UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf + #DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf + DebugLib|VBoxPkg/Library/VBoxDebugLib/VBoxDebugLib.inf + NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf + IpIoLib|MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.inf + UdpIoLib|MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.inf + DpcLib|MdeModulePkg/Library/DxeDpcLib/DxeDpcLib.inf + PlatformBdsLib|OvmfPkg/Library/PlatformBdsLib/PlatformBdsLib.inf + +[LibraryClasses.common.UEFI_APPLICATION] + HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf + MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf + #DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf + DebugLib|VBoxPkg/Library/VBoxDebugLib/VBoxDebugLib.inf + +################################################################################ +# +# Pcd Section - list of all EDK II PCD Entries defined by this Platform. +# +################################################################################ +[PcdsFeatureFlag.common] + gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeUseHardSerial|TRUE + gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|TRUE + +[PcdsFixedAtBuild.common] + gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize|1 + gEfiSioTokenSpaceGuid.PcdSerialRegisterBase|0x3F8 + gEfiSioTokenSpaceGuid.PcdSerialLineControl|0x07 + gEfiSioTokenSpaceGuid.PcdSerialBoudRate|115200 + + gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFirmwareFdSize|0x200000 + gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFirmwareBlockSize|0x10000 + gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashFvRecoveryBase|0xFFE00000 + gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashFvRecoverySize|0x00200000 + + gEfiMdePkgTokenSpaceGuid.PcdMaximumGuidedExtractHandler|0x10 + gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxFvSupported|6 + gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPeimPerFv|32 + gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x400 + gEfiMdeModulePkgTokenSpaceGuid.PcdMaxHardwareErrorVariableSize|0x8000 + gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize|0xc000 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize|0xc000 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize|0x2000 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize|0x10000 + + gEfiEdkModulePkgTokenSpaceGuid.PcdDxePcdDatabaseTraverseEnabled|TRUE + gEfiMdeModulePkgTokenSpaceGuid.PcdVpdBaseAddress|0x0 + +[PcdsFeatureFlag.common] + gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSupportUefiDecompress|FALSE + gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode|FALSE + + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE + gVBoxVgaPkgTokenSpaceGuid.PcdSupportUga|FALSE + gVBoxVgaPkgTokenSpaceGuid.PcdSupportGop|TRUE + +[PcdsFixedAtBuild.common] + gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x07 + gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2F + + +[PcdsDynamicDefault.common] + gEfiMdePkgTokenSpaceGuid.PcdFSBClock|0 + gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|0 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0 + + +################################################################################ +# +# Pcd Dynamic Section - list of all EDK II PCD Entries defined by this Platform +# +################################################################################ + +[PcdsDynamicDefault.common.DEFAULT] + +################################################################################ +# +# Components Section - list of all EDK II Modules needed by this Platform. +# +################################################################################ +[Components.common] + # + # SEC Phase modules + # + OvmfPkg/Sec/SecMain.inf + + # + # PEI Phase modules + # + MdeModulePkg/Core/Pei/PeiMain.inf + MdeModulePkg/Universal/PCD/Pei/Pcd.inf { + <LibraryClasses> + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf + } + IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf + MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf { + <LibraryClasses> + NULL|IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf + } + + OvmfPkg/PlatformPei/PlatformPei.inf { + <LibraryClasses> + PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf + } + + + # + # DXE Phase modules + # + MdeModulePkg/Core/Dxe/DxeMain.inf { + <LibraryClasses> + NULL|IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf + } + + IntelFrameworkModulePkg/Universal/StatusCode/RuntimeDxe/StatusCodeRuntimeDxe.inf + MdeModulePkg/Universal/PCD/Dxe/Pcd.inf { + <LibraryClasses> + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf + } + + MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf + MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf + IntelFrameworkModulePkg/Universal/DataHubDxe/DataHubDxe.inf + MdeModulePkg/Universal/EbcDxe/EbcDxe.inf + PcAtChipsetPkg/8259InterruptControllerDxe/8259.inf + UefiCpuPkg/CpuIoDxe/CpuIo.inf + UefiCpuPkg/CpuDxe/CpuDxe.inf + PcAtChipsetPkg/8254TimerDxe/8254Timer.inf + PcAtChipsetPkg/PciHostBridgeDxe/PciHostBridgeDxe.inf + IntelFrameworkModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf + PcAtChipsetPkg/KbcResetDxe/Reset.inf + MdeModulePkg/Universal/Metronome/Metronome.inf { + <LibraryClasses> + TimerLib|OvmfPkg/Library/AcpiTimerLib/AcpiTimerLib.inf + #TimerLib|DuetPkg/Library/DuetTimerLib/DuetTimerLib.inf + } + + PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf { + <LibraryClasses> + TimerLib|OvmfPkg/Library/AcpiTimerLib/AcpiTimerLib.inf + #TimerLib|DuetPkg/Library/DuetTimerLib/DuetTimerLib.inf + } + + IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf { + <LibraryClasses> + TimerLib|OvmfPkg/Library/AcpiTimerLib/AcpiTimerLib.inf + #TimerLib|DuetPkg/Library/DuetTimerLib/DuetTimerLib.inf + } + + OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf { + <LibraryClasses> + PlatformFvbLib|OvmfPkg/Library/EmuVariableFvbLib/EmuVariableFvbLib.inf + } + + MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf + MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf + MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf + MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf + MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf + MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf + MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf + MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf + MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf + MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf + MdeModulePkg/Universal/PrintDxe/PrintDxe.inf + MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf + MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf + MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf + MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf + MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf + IntelFrameworkModulePkg/Bus/Pci/IdeBusDxe/IdeBusDxe.inf + PcAtChipsetPkg/Bus/Pci/IdeControllerDxe/IdeControllerDxe.inf + MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf + MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf + + # VBOX + VBoxPkg/VBoxFsDxe/VBoxIso9660.inf + VBoxPkg/VBoxFsDxe/VBoxHfs.inf + VBoxPkg/VBoxVgaMiniPortDxe/VBoxVgaMiniPortDxe.inf + VBoxPkg/VBoxVgaDxe/VBoxVgaDxe.inf + VBoxPkg/VBoxSysTables/VBoxSysTables.inf + VBoxPkg/AcpiTables/AcpiTables.inf + # VBOX end + IntelFrameworkModulePkg/Universal/Console/VgaClassDxe/VgaClassDxe.inf + + # + # ISA Support + # + PcAtChipsetPkg/IsaAcpiDxe/IsaAcpi.inf + IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf + IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/IsaSerialDxe.inf + IntelFrameworkModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2keyboardDxe.inf + IntelFrameworkModulePkg/Bus/Isa/IsaFloppyDxe/IsaFloppyDxe.inf + + # + # ACPI Support + # + MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf + MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf + + # + # Don't include it to fdf + VBoxPkg/VBoxInterceptorDxe/VBoxInterceptorDxe.inf + + # + # add -DVBOX + # +[BuildOptions.common] + GCC:*_*_*_CC_FLAGS = -DVBOX -DARCH_BITS=32 -DHC_ARCH_BITS=32 + # + # mingw set 0x4000000 as a default image base that is the reason + # PCD module loaded in the middle of space grub supposed to load + # boot images. + # this base address shoosen looking at + # Shell> memmap + # in the place where Image.c locates the rest of the modules. + GCC:*_*_*_DLINK_FLAGS = --image-base 0x1f000000 + INTEL:*_*_*_CC_FLAGS = -DVBOX -DARCH_BITS=32 -DHC_ARCH_BITS=32 + MSFT:*_*_*_CC_FLAGS = -DVBOX -DARCH_BITS=32 -DHC_ARCH_BITS=32 diff --git a/src/VBox/Devices/EFI/Firmware2/VBoxPkg/VBoxPkg.fdf b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/VBoxPkg.fdf new file mode 100644 index 000000000..cda5d1b13 --- /dev/null +++ b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/VBoxPkg.fdf @@ -0,0 +1,374 @@ +# $Id: VBoxPkg.fdf $ +## @file +# VBoxPkg.fdf - VirtualBox Flash Device. +# + + +# +# Copyright (C) 2009-2010 Sun Microsystems, Inc. +# +# This file is part of VirtualBox Open Source Edition (OSE), as +# available from http://www.virtualbox.org. This file is free software; +# you can redistribute it and/or modify it under the terms of the GNU +# General Public License (GPL) as published by the Free Software +# Foundation, in version 2 as it comes in the "COPYING" file of the +# VirtualBox OSE distribution. VirtualBox OSE is distributed in the +# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +# +# The contents of this file may alternatively be used under the terms +# of the Common Development and Distribution License Version 1.0 +# (CDDL) only, as it comes in the "COPYING.CDDL" file of the +# VirtualBox OSE distribution, in which case the provisions of the +# CDDL are applicable instead of those of the GPL. +# +# You may elect to license modified versions of this file under the +# terms and conditions of either the GPL or the CDDL or both. +# +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa +# Clara, CA 95054 USA or visit http://www.sun.com if you need +# additional information or have any questions. +# + + +# -------------------------------------------------------------------- +# This file is based on: Ovmf/Ovmf.fdf +# +# Open Virtual Machine Firmware: FDF +# +# Copyright (c) 2006 - 2009, Intel Corporation +# +# All rights reserved. This program and the accompanying materials +# are licensed and made available under the terms and conditions of the BSD License +# which accompanies this distribution. The full text of the license may be found at +# http://opensource.org/licenses/bsd-license.php +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# +# + +################################################################################ +# +# FD Section +# The [FD] Section is made up of the definition statements and a +# description of what goes into the Flash Device Image. Each FD section +# defines one flash "device" image. A flash device image may be one of +# the following: Removable media bootable image (like a boot floppy +# image,) an Option ROM image (that would be "flashed" into an add-in +# card,) a System "Flash" image (that would be burned into a system's +# flash) or an Update ("Capsule") image that will be used to update and +# existing system flash. +# +################################################################################ +[FD.VBOX] +BaseAddress = 0xFFE00000 # The base address of the FLASH Device. +Size = 0x001f0000 # The size in bytes of the FLASH Device +ErasePolarity = 1 +BlockSize = 0x10000 +NumBlocks = 0x1f + +################################################################################ +# +# Following are lists of FD Region layout which correspond to the locations of different +# images within the flash device. +# +# Regions must be defined in ascending order and may not overlap. +# +# A Layout Region start with a eight digit hex offset (leading "0x" required) followed by +# the pipe "|" character, followed by the size of the region, also in hex with the leading +# "0x" characters. Like: +# Offset|Size +# PcdOffsetCName|PcdSizeCName +# RegionType <FV, DATA, or FILE> +# +################################################################################ +0x0|0x1F0000 +gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashFvRecoveryBase|gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashFvRecoverySize +FV = MAINFV + +################################################################################ +# +# FV Section +# +# [FV] section is used to define what components or modules are placed within a flash +# device file. This section also defines order the components and modules are positioned +# within the image. The [FV] section consists of define statements, set statements and +# module statements. +# +################################################################################ +[FV.DXEFV] +BlockSize = 0x1000 +FvAlignment = 16 #FV alignment and FV attributes setting. +ERASE_POLARITY = 1 +MEMORY_MAPPED = TRUE +STICKY_WRITE = TRUE +LOCK_CAP = TRUE +LOCK_STATUS = TRUE +WRITE_DISABLED_CAP = TRUE +WRITE_ENABLED_CAP = TRUE +WRITE_STATUS = TRUE +WRITE_LOCK_CAP = TRUE +WRITE_LOCK_STATUS = TRUE +READ_DISABLED_CAP = TRUE +READ_ENABLED_CAP = TRUE +READ_STATUS = TRUE +READ_LOCK_CAP = TRUE +READ_LOCK_STATUS = TRUE + +# +# Files to be placed in DXEFV +# +# This firmware volume will have files placed in it uncompressed, +# and then then entire firmware volume will be compressed in a +# single compression operation in order to achieve better +# overall compression. +# + +APRIORI DXE { + INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf + INF IntelFrameworkModulePkg/Universal/DataHubDxe/DataHubDxe.inf +} + +# +# DXE Phase modules +# +INF MdeModulePkg/Core/Dxe/DxeMain.inf + +INF IntelFrameworkModulePkg/Universal/StatusCode/RuntimeDxe/StatusCodeRuntimeDxe.inf +INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf + +INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf +INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf +INF IntelFrameworkModulePkg/Universal/DataHubDxe/DataHubDxe.inf +INF MdeModulePkg/Universal/EbcDxe/EbcDxe.inf +INF PcAtChipsetPkg/8259InterruptControllerDxe/8259.inf +INF UefiCpuPkg/CpuIoDxe/CpuIo.inf +INF UefiCpuPkg/CpuDxe/CpuDxe.inf +INF PcAtChipsetPkg/8254TimerDxe/8254Timer.inf +INF PcAtChipsetPkg/PciHostBridgeDxe/PciHostBridgeDxe.inf +INF IntelFrameworkModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf +INF PcAtChipsetPkg/KbcResetDxe/Reset.inf +INF MdeModulePkg/Universal/Metronome/Metronome.inf +INF PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf +#INF PcAtChipsetPkg/PcRtc/RealTimeClock.inf + +INF OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf +INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf +INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf +INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf +INF MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf +INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf +INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf +INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf +INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf +INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf +INF IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf +INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf +INF MdeModulePkg/Universal/PrintDxe/PrintDxe.inf +INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf +INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf +INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf +#INF MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf +#INF MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf +INF IntelFrameworkModulePkg/Bus/Pci/IdeBusDxe/IdeBusDxe.inf +INF PcAtChipsetPkg/Bus/Pci/IdeControllerDxe/IdeControllerDxe.inf +INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf +INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf + +# VBOX +INF VBoxPkg/VBoxFsDxe/VBoxIso9660.inf +INF VBoxPkg/VBoxFsDxe/VBoxHfs.inf +INF VBoxPkg/VBoxVgaMiniPortDxe/VBoxVgaMiniPortDxe.inf +INF VBoxPkg/VBoxVgaDxe/VBoxVgaDxe.inf +INF VBoxPkg/VBoxSysTables/VBoxSysTables.inf +INF RuleOverride=ACPITABLE VBoxPkg/AcpiTables/AcpiTables.inf +#INF VBoxPkg/VBoxInterceptorDxe/VBoxInterceptorDxe.inf +# VBOX end +#INF IntelFrameworkModulePkg/Universal/Console/VgaClassDxe/VgaClassDxe.inf + +INF PcAtChipsetPkg/IsaAcpiDxe/IsaAcpi.inf +INF IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf +INF IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/IsaSerialDxe.inf +INF IntelFrameworkModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2keyboardDxe.inf +INF IntelFrameworkModulePkg/Bus/Isa/IsaFloppyDxe/IsaFloppyDxe.inf + +INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf +INF MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf + +INF FatBinPkg/EnhancedFatDxe/Fat.inf +INF EdkShellBinPkg/FullShell/FullShell.inf +#FILE DRIVER = 961578FE-B6B7-44c3-AF35-6BC705CD2B1F { +# SECTION PE32 = FatBinPkg/EnhancedFatDxe/Ia32/Fat.efi +# } +# +#FILE APPLICATION = c57ad6b7-0515-40a8-9d21-551652854e37 { +# SECTION COMPRESS PI_STD { +# SECTION GUIDED { +# SECTION PE32 = EdkShellBinPkg/FullShell/Ia32/Shell_Full.efi +# } +# } +# } + +FILE FREEFORM = 7BB28B99-61BB-11D5-9A5D-0090273FC14D { + SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE { # LzmaCompress + SECTION RAW = VBoxPkg/VBoxLogo/VBoxLogo.bmp + } + } + +################################################################################ + +[FV.MAINFV] +FvAlignment = 16 +ERASE_POLARITY = 1 +MEMORY_MAPPED = TRUE +STICKY_WRITE = TRUE +LOCK_CAP = TRUE +LOCK_STATUS = TRUE +WRITE_DISABLED_CAP = TRUE +WRITE_ENABLED_CAP = TRUE +WRITE_STATUS = TRUE +WRITE_LOCK_CAP = TRUE +WRITE_LOCK_STATUS = TRUE +READ_DISABLED_CAP = TRUE +READ_ENABLED_CAP = TRUE +READ_STATUS = TRUE +READ_LOCK_CAP = TRUE +READ_LOCK_STATUS = TRUE + +# +# Files to be placed in MAINFV +# +# This firmware volume will have all the files placed in it which +# must not be compressed at the initial boot phase. The only +# exception to this is the compressed 'DXEFV'. +# + +APRIORI PEI { + INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf +} + +# +# SEC Phase modules +# +INF OvmfPkg/Sec/SecMain.inf +#INF VBoxPkg/VBoxSec/VBoxSec.inf + +# +# PEI Phase modules +# +INF MdeModulePkg/Core/Pei/PeiMain.inf +INF RuleOverride=NORELOC MdeModulePkg/Universal/PCD/Pei/Pcd.inf +INF RuleOverride=NORELOC IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf +INF RuleOverride=NORELOC OvmfPkg/PlatformPei/PlatformPei.inf +INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf + +# +# This file contains the compressed 'DXEFV', which is compressed +# in a single compression operation in order to achieve better +# overall compression. +# +FILE FV_IMAGE = 20bc8ac9-94d1-4208-ab28-5d673fd73486 { + SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE { # LzmaCompress + SECTION FV_IMAGE = DXEFV + } + } + +#INF RuleOverride=RESET_VECTOR OvmfPkg/ResetVector/Bin/ResetVector.inf + +################################################################################ +# +# Rules are use with the [FV] section's module INF type to define +# how an FFS file is created for a given INF file. The following Rule are the default +# rules for the different module type. User can add the customized rules to define the +# content of the FFS file. +# +################################################################################ + +[Rule.Common.PEI_CORE] + FILE PEI_CORE = $(NAMED_GUID) { + PE32 PE32 |.efi + UI STRING ="$(MODULE_NAME)" Optional + VERSION STRING ="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) + } + +[Rule.Common.SEC] + FILE SEC = $(NAMED_GUID) { + PE32 PE32 |.efi + UI STRING ="$(MODULE_NAME)" Optional + VERSION STRING ="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) + } + +[Rule.Common.PEIM] + FILE PEIM = $(NAMED_GUID) { + PEI_DEPEX PEI_DEPEX Optional |.depex + PE32 PE32 Align=32 |.efi + UI STRING="$(MODULE_NAME)" Optional + VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) + } + +[Rule.Common.PEIM.NORELOC] + FILE PEIM = $(NAMED_GUID) RELOCS_STRIPPED { + PEI_DEPEX PEI_DEPEX Optional |.depex + TE TE |.efi + UI STRING="$(MODULE_NAME)" Optional + VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) + } +[Rule.Common.PEIM.TIANOCOMPRESSED] + FILE PEIM = $(NAMED_GUID) { + PEI_DEPEX PEI_DEPEX Optional |.depex + GUIDED A31280AD-481E-41B6-95E8-127F4C984779 PROCESSING_REQUIRED = TRUE { + PE32 PE32 |.efi + UI STRING="$(MODULE_NAME)" Optional + VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) + } + } + +[Rule.Common.DXE_CORE] + FILE DXE_CORE = $(NAMED_GUID) { + PE32 PE32 |.efi + UI STRING="$(MODULE_NAME)" Optional + VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) + } + +[Rule.Common.UEFI_DRIVER] + FILE DRIVER = $(NAMED_GUID) { + DXE_DEPEX DXE_DEPEX Optional |.depex + PE32 PE32 |.efi + UI STRING="$(MODULE_NAME)" Optional + VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) + } + +[Rule.Common.DXE_DRIVER] + FILE DRIVER = $(NAMED_GUID) { + DXE_DEPEX DXE_DEPEX Optional |.depex + PE32 PE32 |.efi + UI STRING="$(MODULE_NAME)" Optional + VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) + } + +[Rule.Common.DXE_RUNTIME_DRIVER] + FILE DRIVER = $(NAMED_GUID) { + DXE_DEPEX DXE_DEPEX Optional |.depex + PE32 PE32 |.efi + UI STRING="$(MODULE_NAME)" Optional + VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) + } + +[Rule.Common.UEFI_APPLICATION] + FILE APPLICATION = $(NAMED_GUID) { + PE32 PE32 |.efi + UI STRING="$(MODULE_NAME)" Optional + VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) + } + +[Rule.Common.USER_DEFINED.ACPITABLE] + FILE FREEFORM = $(NAMED_GUID) { + RAW ACPI |.acpi + RAW ASL |.aml + } + +[Rule.Common.SEC.RESET_VECTOR] + FILE RAW = $(NAMED_GUID) { + RAW RAW |.raw + } + diff --git a/src/VBox/Devices/EFI/Firmware2/VBoxPkg/VBoxPkgX64.dsc b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/VBoxPkgX64.dsc new file mode 100644 index 000000000..b2b7c916a --- /dev/null +++ b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/VBoxPkgX64.dsc @@ -0,0 +1,382 @@ +# $Id: VBoxPkgX64.dsc $ + +# +# Copyright (C) 2009-2010 Sun Microsystems, Inc. +# +# This file is part of VirtualBox Open Source Edition (OSE), as +# available from http://www.virtualbox.org. This file is free software; +# you can redistribute it and/or modify it under the terms of the GNU +# General Public License (GPL) as published by the Free Software +# Foundation, in version 2 as it comes in the "COPYING" file of the +# VirtualBox OSE distribution. VirtualBox OSE is distributed in the +# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +# +# The contents of this file may alternatively be used under the terms +# of the Common Development and Distribution License Version 1.0 +# (CDDL) only, as it comes in the "COPYING.CDDL" file of the +# VirtualBox OSE distribution, in which case the provisions of the +# CDDL are applicable instead of those of the GPL. +# +# You may elect to license modified versions of this file under the +# terms and conditions of either the GPL or the CDDL or both. +# +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa +# Clara, CA 95054 USA or visit http://www.sun.com if you need +# additional information or have any questions. +#/ + +#/** @file +# EFI/Framework Open Virtual Machine Firmware (OVMF) platform +# +# Copyright (c) 2006 - 2009, Intel Corporation +# +# All rights reserved. This program and the accompanying materials +# are licensed and made available under the terms and conditions of the BSD License +# which accompanies this distribution. The full text of the license may be found at +# http://opensource.org/licenses/bsd-license.php +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# +#**/ + +################################################################################ +# +# Defines Section - statements that will be processed to create a Makefile. +# +################################################################################ +[Defines] + PLATFORM_NAME = VBoxPkg + PLATFORM_GUID = 5a9e7754-d81b-49ea-85ad-69eaa7b1539b + PLATFORM_VERSION = 0.1 + DSC_ SPECIFICATION = 0x00010005 + OUTPUT_DIRECTORY = Build/VBoxPkgX64 + SUPPORTED_ARCHITECTURES = X64 + BUILD_TARGETS = DEBUG|RELEASE + SKUID_IDENTIFIER = DEFAULT + FLASH_DEFINITION = VBoxPkg/VBoxPkg.fdf + +################################################################################ +# +# SKU Identification section - list of all SKU IDs supported by this Platform. +# +################################################################################ +[SkuIds] + 0|DEFAULT + +################################################################################ +# +# Library Class section - list of all Library Classes needed by this Platform. +# +################################################################################ +[LibraryClasses.common] + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf + TimerLib|OvmfPkg/Library/AcpiTimerLib/AcpiTimerLib.inf + PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf + BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf + BaseLib|MdePkg/Library/BaseLib/BaseLib.inf + SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf + CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf + PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf + PeCoffLib|VBoxPkg/Library/VBoxPeCoffLib/VBoxPeCoffLib.inf + PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf + CacheMaintenanceLib|MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf + UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf + UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf + HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf + GenericBdsLib|VBoxPkg/Library/VBoxGenericBdsLib/VBoxGenericBdsLib.inf + CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf + DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf + PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf + PciCf8Lib|MdePkg/Library/BasePciCf8Lib/BasePciCf8Lib.inf + PciLib|MdePkg/Library/BasePciLibCf8/BasePciLibCf8.inf + IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf + OemHookStatusCodeLib|IntelFrameworkModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf + SerialPortLib|PcAtChipsetPkg/Library/SerialIoLib/SerialIoLib.inf + MtrrLib|UefiCpuPkg/Library/MtrrLib/MtrrLib.inf + UefiLib|MdePkg/Library/UefiLib/UefiLib.inf + UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf + UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf + UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf + UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf + DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf + NvVarsFileLib|OvmfPkg/Library/NvVarsFileLib/NvVarsFileLib.inf + FileHandleLib|ShellPkg/Library/BaseFileHandleLib/BaseFileHandleLib.inf + +[LibraryClasses.common.SEC] + #DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf + DebugLib|VBoxPkg/Library/VBoxDebugLib/VBoxDebugLib.inf + ReportStatusCodeLib|IntelFrameworkModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf + +[LibraryClasses.common.PEI_CORE] + BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf + HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf + PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLibIdt/PeiServicesTablePointerLibIdt.inf + PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf + MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf + PeiCoreEntryPoint|MdePkg/Library/PeiCoreEntryPoint/PeiCoreEntryPoint.inf + ReportStatusCodeLib|IntelFrameworkModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf + OemHookStatusCodeLib|IntelFrameworkModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf + PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf + DebugLib|VBoxPkg/Library/VBoxDebugLib/VBoxDebugLib.inf + #DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf + +[LibraryClasses.common.PEIM] + BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf + HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf + PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLibIdt/PeiServicesTablePointerLibIdt.inf + PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf + MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf + PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf + ReportStatusCodeLib|IntelFrameworkModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf + OemHookStatusCodeLib|IntelFrameworkModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf + PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf + DebugLib|VBoxPkg/Library/VBoxDebugLib/VBoxDebugLib.inf + #DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf + PeiResourcePublicationLib|MdePkg/Library/PeiResourcePublicationLib/PeiResourcePublicationLib.inf + ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf + +[LibraryClasses.common.DXE_CORE] + HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf + DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf + MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf + ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf + #DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf + DebugLib|VBoxPkg/Library/VBoxDebugLib/VBoxDebugLib.inf + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf + ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf + +[LibraryClasses.common.DXE_RUNTIME_DRIVER] + HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf + DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf + MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf + ReportStatusCodeLib|IntelFrameworkModulePkg/Library/SmmRuntimeDxeReportStatusCodeLibFramework/SmmRuntimeDxeReportStatusCodeLibFramework.inf + DebugLib|VBoxPkg/Library/VBoxDebugLib/VBoxDebugLib.inf + #DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf + ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf + UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf + DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf + +[LibraryClasses.common.UEFI_DRIVER] + HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf + DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf + MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf + ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf + DebugLib|VBoxPkg/Library/VBoxDebugLib/VBoxDebugLib.inf + #DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf + ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf + UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf + +[LibraryClasses.common.DXE_DRIVER] + HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf + MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf + ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf + DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf + UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf + #DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf + DebugLib|VBoxPkg/Library/VBoxDebugLib/VBoxDebugLib.inf + NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf + IpIoLib|MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.inf + UdpIoLib|MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.inf + DpcLib|MdeModulePkg/Library/DxeDpcLib/DxeDpcLib.inf + PlatformBdsLib|OvmfPkg/Library/PlatformBdsLib/PlatformBdsLib.inf + +[LibraryClasses.common.UEFI_APPLICATION] + HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf + MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf + DebugLib|VBoxPkg/Library/VBoxDebugLib/VBoxDebugLib.inf + #DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf + +################################################################################ +# +# Pcd Section - list of all EDK II PCD Entries defined by this Platform. +# +################################################################################ +[PcdsFeatureFlag.common] + gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeUseHardSerial|TRUE + gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|TRUE + +[PcdsFixedAtBuild.common] + gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize|1 + gEfiSioTokenSpaceGuid.PcdSerialRegisterBase|0x3F8 + gEfiSioTokenSpaceGuid.PcdSerialLineControl|0x07 + gEfiSioTokenSpaceGuid.PcdSerialBoudRate|115200 + + gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFirmwareFdSize|0x200000 + gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFirmwareBlockSize|0x10000 + gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashFvRecoveryBase|0xFFE00000 + gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashFvRecoverySize|0x00200000 + + gEfiMdePkgTokenSpaceGuid.PcdMaximumGuidedExtractHandler|0x10 + gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxFvSupported|6 + gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPeimPerFv|32 + gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x400 + gEfiMdeModulePkgTokenSpaceGuid.PcdMaxHardwareErrorVariableSize|0x8000 + gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize|0xc000 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize|0xc000 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize|0x2000 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize|0x10000 + + gEfiEdkModulePkgTokenSpaceGuid.PcdDxePcdDatabaseTraverseEnabled|TRUE + gEfiMdeModulePkgTokenSpaceGuid.PcdVpdBaseAddress|0x0 + +[PcdsFeatureFlag.common] + gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSupportUefiDecompress|FALSE + gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode|FALSE + + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE + gOptionRomPkgTokenSpaceGuid.PcdSupportGop|TRUE + gOptionRomPkgTokenSpaceGuid.PcdSupportUga|FALSE + +[PcdsFixedAtBuild.common] + gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x07 + gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2F + + +################################################################################ +# +# Pcd Dynamic Section - list of all EDK II PCD Entries defined by this Platform +# +################################################################################ + +[PcdsDynamicDefault.common] + gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|0 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0 + + +################################################################################ +# +# Components Section - list of all EDK II Modules needed by this Platform. +# +################################################################################ +[Components.common] + # + # SEC Phase modules + # + OvmfPkg/Sec/SecMain.inf + + # + # PEI Phase modules + # + MdeModulePkg/Core/Pei/PeiMain.inf + MdeModulePkg/Universal/PCD/Pei/Pcd.inf { + <LibraryClasses> + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf + } + IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf + MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf { + <LibraryClasses> + NULL|IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf + } + + OvmfPkg/PlatformPei/PlatformPei.inf { + <LibraryClasses> + PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf + } + + # + # DXE Phase modules + # + MdeModulePkg/Core/Dxe/DxeMain.inf { + <LibraryClasses> + NULL|IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf + } + + IntelFrameworkModulePkg/Universal/StatusCode/RuntimeDxe/StatusCodeRuntimeDxe.inf + MdeModulePkg/Universal/PCD/Dxe/Pcd.inf { + <LibraryClasses> + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf + } + + MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf + MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf + IntelFrameworkModulePkg/Universal/DataHubDxe/DataHubDxe.inf + MdeModulePkg/Universal/EbcDxe/EbcDxe.inf + PcAtChipsetPkg/8259InterruptControllerDxe/8259.inf + UefiCpuPkg/CpuIoDxe/CpuIo.inf + UefiCpuPkg/CpuDxe/CpuDxe.inf + PcAtChipsetPkg/8254TimerDxe/8254Timer.inf + PcAtChipsetPkg/PciHostBridgeDxe/PciHostBridgeDxe.inf + IntelFrameworkModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf + PcAtChipsetPkg/KbcResetDxe/Reset.inf + MdeModulePkg/Universal/Metronome/Metronome.inf { + <LibraryClasses> + TimerLib|OvmfPkg/Library/AcpiTimerLib/AcpiTimerLib.inf + } + + PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf { + <LibraryClasses> + TimerLib|OvmfPkg/Library/AcpiTimerLib/AcpiTimerLib.inf + } + + IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf { + <LibraryClasses> + TimerLib|OvmfPkg/Library/AcpiTimerLib/AcpiTimerLib.inf + } + + OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf { + <LibraryClasses> + PlatformFvbLib|OvmfPkg/Library/EmuVariableFvbLib/EmuVariableFvbLib.inf + } + MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf + MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf + MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf + MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf + MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf + MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf + MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf + MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf + MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf + MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf + MdeModulePkg/Universal/PrintDxe/PrintDxe.inf + MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf + MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf + MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf + MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf + MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf + IntelFrameworkModulePkg/Bus/Pci/IdeBusDxe/IdeBusDxe.inf + PcAtChipsetPkg/Bus/Pci/IdeControllerDxe/IdeControllerDxe.inf + MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf + MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf + + # VBOX + VBoxPkg/VBoxFsDxe/VBoxIso9660.inf + VBoxPkg/VBoxFsDxe/VBoxHfs.inf + VBoxPkg/VBoxVgaMiniPortDxe/VBoxVgaMiniPortDxe.inf + VBoxPkg/VBoxVgaDxe/VBoxVgaDxe.inf + VBoxPkg/VBoxSysTables/VBoxSysTables.inf + VBoxPkg/AcpiTables/AcpiTables.inf + # VBOX end + + # + # ISA Support + # + PcAtChipsetPkg/IsaAcpiDxe/IsaAcpi.inf + IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf + IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/IsaSerialDxe.inf + IntelFrameworkModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2keyboardDxe.inf + IntelFrameworkModulePkg/Bus/Isa/IsaFloppyDxe/IsaFloppyDxe.inf + + # + # ACPI Support + # + MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf + MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf + + # + # Don't include it to fdf + VBoxPkg/VBoxInterceptorDxe/VBoxInterceptorDxe.inf + VBoxPkg/VBoxMimicryDxe/VBoxMimicryDxe.inf + +[BuildOptions.common] + GCC:*_*_*_CC_FLAGS = -DVBOX -DARCH_BITS=64 -DHC_ARCH_BITS=64 + GCC:*_*_*_DLINK_FLAGS = --image-base 0x1f000000 + INTEL:*_*_*_CC_FLAGS = -DVBOX -DARCH_BITS=64 -DHC_ARCH_BITS=64 + MSFT:*_*_*_CC_FLAGS = -DVBOX -DARCH_BITS=64 -DHC_ARCH_BITS=64 diff --git a/src/VBox/Devices/EFI/Firmware2/VBoxPkg/VBoxVgaMiniPortDxe/VBoxVgaMiniPortDxe.c b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/VBoxVgaMiniPortDxe/VBoxVgaMiniPortDxe.c new file mode 100644 index 000000000..361b47f42 --- /dev/null +++ b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/VBoxVgaMiniPortDxe/VBoxVgaMiniPortDxe.c @@ -0,0 +1,655 @@ +/* $Id: VBoxVgaMiniPortDxe.c $ */ +/** @file + * VBoxVgaMiniPortDxe.c - VgaMiniPort Protocol Implementation. + */ + + +/* + * Copyright (C) 2009-2010 Sun Microsystems, Inc. + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa + * Clara, CA 95054 USA or visit http://www.sun.com if you need + * additional information or have any questions. + */ + + +/******************************************************************************* +* Header Files * +*******************************************************************************/ +#include <Protocol/ComponentName.h> +#include <Protocol/ComponentName2.h> +#include <Protocol/DriverBinding.h> +#include <Protocol/PciIo.h> +#include <Protocol/VgaMiniPort.h> +#include <Library/BaseMemoryLib.h> +#include <Library/DebugLib.h> +#include <Library/UefiBootServicesTableLib.h> +#include <Library/UefiLib.h> +#include <IndustryStandard/Pci22.h> + +#include "VBoxPkg.h" +#include "iprt/asm.h" +#include "VBoxVgaFonts.h" + + +/******************************************************************************* +* Structures and Typedefs * +*******************************************************************************/ +/** + * Instance data for a VGA device this driver handles. + */ +typedef struct VBOXVGAMINIPORT +{ + /** The VGA Mini Port Protocol. */ + EFI_VGA_MINI_PORT_PROTOCOL VgaMiniPort; + /** Magic value, VBOX_VGA_MINI_PORT_MAGIC. */ + UINT32 u32Magic; + /** The controller handle of the device. */ + EFI_HANDLE hController; + /** The PciIo protocol for the device. */ + EFI_PCI_IO_PROTOCOL *pPciIo; +} VBOXVGAMINIPORT; +/** Pointer to a VBOXVGAMINIPORT structure. */ +typedef VBOXVGAMINIPORT *PVBOXVGAMINIPORT; + +/** VBOXVGAMINIPORT::u32Magic value (Isaac Asimov). */ +#define VBOX_VGA_MINI_PORT_MAGIC 0x19200102 +/** VBOXVGAMINIPORT::u32Magic dead value. */ +#define VBOX_VGA_MINI_PORT_MAGIC_DEAD 0x19920406 + + +/******************************************************************************* +* Internal Functions * +*******************************************************************************/ +static EFI_STATUS EFIAPI +VBoxVgaMiniPortDB_Supported(IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, + IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL); +static EFI_STATUS EFIAPI +VBoxVgaMiniPortDB_Start(IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, + IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL); +static EFI_STATUS EFIAPI +VBoxVgaMiniPortDB_Stop(IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, + IN UINTN NumberOfChildren, IN EFI_HANDLE *ChildHandleBuffer OPTIONAL); + + +static EFI_STATUS EFIAPI +VBoxVgaMiniPortVMP_SetMode(IN EFI_VGA_MINI_PORT_PROTOCOL *This, IN UINTN ModeNumber); + + +static EFI_STATUS EFIAPI +VBoxVgaMiniPortCN_GetDriverName(IN EFI_COMPONENT_NAME_PROTOCOL *This, + IN CHAR8 *Language, OUT CHAR16 **DriverName); +static EFI_STATUS EFIAPI +VBoxVgaMiniPortCN_GetControllerName(IN EFI_COMPONENT_NAME_PROTOCOL *This, + IN EFI_HANDLE ControllerHandle, + IN EFI_HANDLE ChildHandle OPTIONAL, + IN CHAR8 *Language, OUT CHAR16 **ControllerName); + + +static EFI_STATUS EFIAPI +VBoxVgaMiniPortCN2_GetDriverName(IN EFI_COMPONENT_NAME2_PROTOCOL *This, + IN CHAR8 *Language, OUT CHAR16 **DriverName); +static EFI_STATUS EFIAPI +VBoxVgaMiniPortCN2_GetControllerName(IN EFI_COMPONENT_NAME2_PROTOCOL *This, + IN EFI_HANDLE ControllerHandle, + IN EFI_HANDLE ChildHandle OPTIONAL, + IN CHAR8 *Language, OUT CHAR16 **ControllerName); + + +/******************************************************************************* +* Global Variables * +*******************************************************************************/ +/** EFI Driver Binding Protocol. */ +static EFI_DRIVER_BINDING_PROTOCOL g_VBoxVgaMiniPortDB = +{ + VBoxVgaMiniPortDB_Supported, + VBoxVgaMiniPortDB_Start, + VBoxVgaMiniPortDB_Stop, + /* .Version = */ 1, /* One higher than Pci/VgaMiniPortDxe. */ + /* .ImageHandle = */ NULL, + /* .DriverBindingHandle = */ NULL +}; + +/** EFI Component Name Protocol. */ +static const EFI_COMPONENT_NAME_PROTOCOL g_VBoxVgaMiniPortCN = +{ + VBoxVgaMiniPortCN_GetDriverName, + VBoxVgaMiniPortCN_GetControllerName, + "eng" +}; + +/** EFI Component Name 2 Protocol. */ +static const EFI_COMPONENT_NAME2_PROTOCOL g_VBoxVgaMiniPortCN2 = +{ + VBoxVgaMiniPortCN2_GetDriverName, + VBoxVgaMiniPortCN2_GetControllerName, + "en" +}; + +/** Driver name translation table. */ +static CONST EFI_UNICODE_STRING_TABLE g_aVBoxMiniPortDriverLangAndNames[] = +{ + { "eng;en", L"PCI VGA Mini Port Driver" }, + { NULL, NULL } +}; + + + +/** + * VBoxVgaMiniPort entry point. + * + * @returns EFI status code. + * + * @param ImageHandle The image handle. + * @param SystemTable The system table pointer. + */ +EFI_STATUS EFIAPI +DxeInitializeVBoxVgaMiniPort(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable) +{ + EFI_STATUS rc; + DEBUG((DEBUG_INFO, "DxeInitializeVBoxVgaMiniPort\n")); + + rc = EfiLibInstallDriverBindingComponentName2(ImageHandle, SystemTable, + &g_VBoxVgaMiniPortDB, ImageHandle, + &g_VBoxVgaMiniPortCN, &g_VBoxVgaMiniPortCN2); + ASSERT_EFI_ERROR(rc); + return rc; +} + +/** + * @copydoc EFI_DRIVER_BINDING_SUPPORTED + */ +static EFI_STATUS EFIAPI +VBoxVgaMiniPortDB_Supported(IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, + IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL) +{ + EFI_STATUS rcRet = EFI_UNSUPPORTED; + EFI_PCI_IO_PROTOCOL *pPciIo; + EFI_STATUS rc; + + DEBUG((DEBUG_INFO, "%a: Controller=%p\n", __FUNCTION__, ControllerHandle)); + + /* + * To perform the test we need to check some PCI configuration registers, + * just read all the standard ones to make life simpler. + */ + rc = gBS->OpenProtocol(ControllerHandle, &gEfiPciIoProtocolGuid, (VOID **)&pPciIo, + This->DriverBindingHandle, ControllerHandle, EFI_OPEN_PROTOCOL_BY_DRIVER); + if (!EFI_ERROR(rc)) + { + PCI_TYPE00 CfgRegs; + + rc = pPciIo->Pci.Read(pPciIo, + EfiPciIoWidthUint32, + 0 /* Offset */, + sizeof(CfgRegs) / sizeof(UINT32) /* Count */ , + &CfgRegs); + if (!EFI_ERROR(rc)) + { + /* + * Perform the test. + */ + if (IS_PCI_VGA(&CfgRegs)) + { +#if 0 /** @todo this doesn't quite work with our DevVGA since it doesn't flag I/O access. */ + if ( CfgRegs.Hdr.Command & (PCI_COMMAND_IOACCESS | PCI_COMMAND_MEMACCESS) + == (PCI_COMMAND_IOACCESS | PCI_COMMAND_MEMACCESS)) +#else + if (1) +#endif + { + DEBUG((DEBUG_INFO, "%a: Found supported VGA device! (VendorId=%x DeviceId=%x)\n", + __FUNCTION__, CfgRegs.Hdr.VendorId, CfgRegs.Hdr.DeviceId)); + rcRet = EFI_SUCCESS; + } + else + DEBUG((DEBUG_INFO, "%a: VGA device not enabled! (VendorId=%x DeviceId=%x)\n", + __FUNCTION__, CfgRegs.Hdr.VendorId, CfgRegs.Hdr.DeviceId)); + } + else + DEBUG((DEBUG_INFO, "%a: Not VGA (Class=%x,%x,%x VendorId=%x DeviceId=%x)\n", + __FUNCTION__, CfgRegs.Hdr.ClassCode[0], CfgRegs.Hdr.ClassCode[1], + CfgRegs.Hdr.ClassCode[2], CfgRegs.Hdr.VendorId, CfgRegs.Hdr.DeviceId)); + } + else + DEBUG((DEBUG_INFO, "%a: pPciIo->Pci.Read -> %r\n", __FUNCTION__, rc)); + + gBS->CloseProtocol(ControllerHandle, &gEfiPciIoProtocolGuid, This->DriverBindingHandle, ControllerHandle); + } + else + DEBUG((DEBUG_INFO, "%a: PciIoProtocol -> %r\n", __FUNCTION__, rc)); + return rcRet; +} + +/** + * @copydoc EFI_DRIVER_BINDING_START + */ +static EFI_STATUS EFIAPI +VBoxVgaMiniPortDB_Start(IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, + IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL) +{ + EFI_STATUS rc; + EFI_PCI_IO_PROTOCOL *pPciIo; + + DEBUG((DEBUG_INFO, "%a\n", __FUNCTION__)); + + /* + * We need the PCI I/O abstraction protocol. + */ + rc = gBS->OpenProtocol(ControllerHandle, &gEfiPciIoProtocolGuid, (VOID **)&pPciIo, + This->DriverBindingHandle, ControllerHandle, EFI_OPEN_PROTOCOL_BY_DRIVER); + if (!EFI_ERROR(rc)) + { + /* + * Allocate and initialize the instance data. + */ + PVBOXVGAMINIPORT pThisDev; + rc = gBS->AllocatePool(EfiBootServicesData, sizeof(*pThisDev), (VOID **)&pThisDev); + if (!EFI_ERROR(rc)) + { + pThisDev->VgaMiniPort.SetMode = VBoxVgaMiniPortVMP_SetMode; + pThisDev->VgaMiniPort.VgaMemoryOffset = 0x000b8000; + pThisDev->VgaMiniPort.CrtcAddressRegisterOffset = 0x03d4; + pThisDev->VgaMiniPort.CrtcDataRegisterOffset = 0x03d5; + pThisDev->VgaMiniPort.VgaMemoryBar = EFI_PCI_IO_PASS_THROUGH_BAR; + pThisDev->VgaMiniPort.CrtcAddressRegisterBar = EFI_PCI_IO_PASS_THROUGH_BAR; + pThisDev->VgaMiniPort.CrtcDataRegisterBar = EFI_PCI_IO_PASS_THROUGH_BAR; + pThisDev->VgaMiniPort.MaxMode = 2; + pThisDev->u32Magic = VBOX_VGA_MINI_PORT_MAGIC; + pThisDev->hController = ControllerHandle; + pThisDev->pPciIo = pPciIo; + + /* + * Register the VGA Mini Port Protocol. + */ + rc = gBS->InstallMultipleProtocolInterfaces(&ControllerHandle, + &gEfiVgaMiniPortProtocolGuid, &pThisDev->VgaMiniPort, + NULL, NULL); + if (!EFI_ERROR(rc)) + { + DEBUG((DEBUG_INFO, "%a: Successfully started, pThisDev=%p ControllerHandle=%p\n", + __FUNCTION__, pThisDev, ControllerHandle)); + return EFI_SUCCESS; + } + + DEBUG((DEBUG_INFO, "%a: InstallMultipleProtocolInterfaces -> %r\n", __FUNCTION__, rc)); + gBS->FreePool(pThisDev); + } + else + DEBUG((DEBUG_INFO, "%a: AllocatePool -> %r\n", __FUNCTION__, rc)); + + gBS->CloseProtocol(ControllerHandle, &gEfiPciIoProtocolGuid, This->DriverBindingHandle, ControllerHandle); + } + else + DEBUG((DEBUG_INFO, "%a: PciIoProtocol -> %r\n", __FUNCTION__, rc)); + return rc; +} + +/** + * @copydoc EFI_DRIVER_BINDING_STOP + */ +static EFI_STATUS EFIAPI +VBoxVgaMiniPortDB_Stop(IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, + IN UINTN NumberOfChildren, IN EFI_HANDLE *ChildHandleBuffer OPTIONAL) +{ + EFI_STATUS rc; + PVBOXVGAMINIPORT pThisDev; + + DEBUG((DEBUG_INFO, "%a: ControllerHandle=%p NumberOfChildren=%u\n", __FUNCTION__, ControllerHandle, NumberOfChildren)); + + /* + * Get the miniport driver instance associated with the controller. + */ + rc = gBS->OpenProtocol(ControllerHandle, &gEfiVgaMiniPortProtocolGuid, + (VOID **)&pThisDev, This->DriverBindingHandle, + ControllerHandle, EFI_OPEN_PROTOCOL_GET_PROTOCOL); + if (!EFI_ERROR(rc)) + { + ASSERT(pThisDev->u32Magic == VBOX_VGA_MINI_PORT_MAGIC); + ASSERT(pThisDev->hController == ControllerHandle); + if ( pThisDev->u32Magic == VBOX_VGA_MINI_PORT_MAGIC + && pThisDev->hController == ControllerHandle) + { + /* + * Uninstall the VgaMiniPort interface. + */ + rc = gBS->UninstallProtocolInterface(ControllerHandle, + &gEfiVgaMiniPortProtocolGuid, + &pThisDev->VgaMiniPort); + if (!EFI_ERROR(rc)) + { + /* + * Invalidate and release sources associated with the device instance. + */ + pThisDev->u32Magic = VBOX_VGA_MINI_PORT_MAGIC_DEAD; + gBS->FreePool(pThisDev); + + } + else + DEBUG((DEBUG_INFO, "%a: UninstallProtocolInterface -> %r\n", __FUNCTION__, rc)); + } + else + { + DEBUG((DEBUG_INFO, "%a: magic=%x/%x hController=%x/%x\n", __FUNCTION__, + pThisDev->u32Magic, VBOX_VGA_MINI_PORT_MAGIC, + pThisDev->hController, ControllerHandle)); + rc = EFI_DEVICE_ERROR; + } + gBS->CloseProtocol(ControllerHandle, &gEfiPciIoProtocolGuid, + This->DriverBindingHandle, ControllerHandle); + } + else + DEBUG((DEBUG_INFO, "%a: VgaMiniPortProtocol -> %r\n", __FUNCTION__, rc)); + return rc; +} + + + + + +/** + * @copydoc EFI_VGA_MINI_PORT_SET_MODE + */ +static EFI_STATUS EFIAPI +VBoxVgaMiniPortVMP_SetMode(IN EFI_VGA_MINI_PORT_PROTOCOL *This, IN UINTN ModeNumber) +{ + PVBOXVGAMINIPORT pThisDev = (PVBOXVGAMINIPORT)This; + UINT8 r[64]; + int i; + + /* + * Check input. + */ + if (pThisDev->u32Magic != VBOX_VGA_MINI_PORT_MAGIC) + { + DEBUG((DEBUG_INFO, "%a: u32Magic=%x/%x\n", __FUNCTION__, pThisDev->u32Magic, VBOX_VGA_MINI_PORT_MAGIC)); + return EFI_DEVICE_ERROR; + } + if (ModeNumber >= This->MaxMode) + { + DEBUG((DEBUG_INFO, "%a: ModeNumber=%d >= MaxMode=%d\n", __FUNCTION__, ModeNumber, This->MaxMode)); + return EFI_UNSUPPORTED; + } + DEBUG((DEBUG_INFO, "%a: ModeNumber=%d\n", __FUNCTION__, ModeNumber)); + + /* some initialization */ + ASMOutU8(0x3c2, 0xc3); + ASMOutU8(0x3c4, 0x04); + ASMOutU8(0x3c5, 0x02); + + /* + * inb(r63, 0x3da); // reset attr F/F + * outb(0x3c0, 0); // disable palette + * outb(0x3d4, 0x11); outb(0x3d5, 0); // unprotect crtc regs 0 - 7 + */ + r[63] = ASMInU8((UINTN)0x3da); + ASMOutU8(0x3c0, 0); + ASMOutU16(0x3d4, 0x0011); + +#define BOUTB(count, aport, dport) \ + do { \ + for (i = 0 ; i < count; ++i) \ + { \ + ASMOutU8((aport), (UINT8)i);\ + ASMOutU8((dport), r[i]); \ + } \ + } while (0) + + /* + * Reset and set sequencer registers + * + * r0 = 0x01; r1 = 0x00; r2 = 0x03; r3 = 0x00; r4 = 0x02; + * boutb(5, 0x3c4, 0x3c5); + */ + r[0] = 0x01; + r[1] = 0x00; + r[2] = 0x03; + r[3] = 0x00; + r[4] = 0x02; + BOUTB(5, 0x3c4, 0x3c5); + + /* + * set misc out register + * + * outb(0x3c2, 0x67); + * + * r0 = 3 + * boutb(1, 0x3c4, 0x3c5); // enable sequencer + */ + r[0] = 3; + BOUTB(1, 0x3c4, 0x3c5); + + /* set all crtc registers */ + r[0] = 0x5f; r[1] = 0x4f; r[2] = 0x50; r[3] = 0x82; + r[4] = 0x55; r[5] = 0x81; r[6] = 0xbf; r[7] = 0x1f; + r[8] = 0x00; r[9] = 0x4f; r[10]= 0x0d; r[11]= 0x0e; + r[12]= 0x00; r[13]= 0x00; r[14]= 0x03; r[15]= 0xc0; + r[16]= 0x9c; r[17]= 0x0e; r[18]= 0x8f; r[19]= 0x28; + r[20]= 0x1f; r[21]= 0x96; r[22]= 0xb9; r[23]= 0xa3; + r[24]= 0xff; + BOUTB(25, 0x3d4, 0x3d5); + + /* set all graphics controller registers */ + r[0]= 0x00; r[1]= 0x00; r[2]= 0x00; r[3]= 0x00; + r[4]= 0x00; r[5]= 0x10; r[6]= 0x0e; r[7]= 0x00; + r[8]= 0xff; + BOUTB(9, 0x3ce, 0x3cf); + + /* set all attribute registers */ + r[63] = ASMInU8(0x3da); // reset flip/flop + r[0] = 0x00; r[1] = 0x01; r[2] = 0x02; r[3] = 0x03; + r[4] = 0x04; r[5] = 0x05; r[6] = 0x14; r[7] = 0x07; + r[8] = 0x38; r[9] = 0x39; r[10]= 0x3a; r[11]= 0x3b; + r[12]= 0x3c; r[13]= 0x3d; r[14]= 0x3e; r[15]= 0x3f; + r[16]= 0x0c; r[17]= 0x00; r[18]= 0x0f; r[19]= 0x08; + r[20]= 0x00; + BOUTB(21, 0x3c0, 0x3c0); + ASMOutU8(0x3c0, 0x20); // re-enable palette + + /* set all VBox extended registers */ + r[0] = 1; + BOUTB(1, 0x3c4, 0x3c5); // disable sequencer + + ASMOutU16(0x1ce, 0x04); ASMOutU16(0x1cf, 0); // ENABLE + + r[0] = 3; + BOUTB(1, 0x3c4, 0x3c5); // enable sequencer + + /* Load default values into the first 16 entries of the DAC */ + { + static const UINT8 s_a3bVgaDac[64*3] = + { + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x2A, + 0x00, 0x2A, 0x00, + 0x00, 0x2A, 0x2A, + 0x2A, 0x00, 0x00, + 0x2A, 0x00, 0x2A, + 0x2A, 0x2A, 0x00, + 0x2A, 0x2A, 0x2A, + 0x00, 0x00, 0x15, + 0x00, 0x00, 0x3F, + 0x00, 0x2A, 0x15, + 0x00, 0x2A, 0x3F, + 0x2A, 0x00, 0x15, + 0x2A, 0x00, 0x3F, + 0x2A, 0x2A, 0x15, + 0x2A, 0x2A, 0x3F, + 0x00, 0x15, 0x00, + 0x00, 0x15, 0x2A, + 0x00, 0x3F, 0x00, + 0x00, 0x3F, 0x2A, + 0x2A, 0x15, 0x00, + 0x2A, 0x15, 0x2A, + 0x2A, 0x3F, 0x00, + 0x2A, 0x3F, 0x2A, + 0x00, 0x15, 0x15, + 0x00, 0x15, 0x3F, + 0x00, 0x3F, 0x15, + 0x00, 0x3F, 0x3F, + 0x2A, 0x15, 0x15, + 0x2A, 0x15, 0x3F, + 0x2A, 0x3F, 0x15, + 0x2A, 0x3F, 0x3F, + 0x15, 0x00, 0x00, + 0x15, 0x00, 0x2A, + 0x15, 0x2A, 0x00, + 0x15, 0x2A, 0x2A, + 0x3F, 0x00, 0x00, + 0x3F, 0x00, 0x2A, + 0x3F, 0x2A, 0x00, + 0x3F, 0x2A, 0x2A, + 0x15, 0x00, 0x15, + 0x15, 0x00, 0x3F, + 0x15, 0x2A, 0x15, + 0x15, 0x2A, 0x3F, + 0x3F, 0x00, 0x15, + 0x3F, 0x00, 0x3F, + 0x3F, 0x2A, 0x15, + 0x3F, 0x2A, 0x3F, + 0x15, 0x15, 0x00, + 0x15, 0x15, 0x2A, + 0x15, 0x3F, 0x00, + 0x15, 0x3F, 0x2A, + 0x3F, 0x15, 0x00, + 0x3F, 0x15, 0x2A, + 0x3F, 0x3F, 0x00, + 0x3F, 0x3F, 0x2A, + 0x15, 0x15, 0x15, + 0x15, 0x15, 0x3F, + 0x15, 0x3F, 0x15, + 0x15, 0x3F, 0x3F, + 0x3F, 0x15, 0x15, + 0x3F, 0x15, 0x3F, + 0x3F, 0x3F, 0x15, + 0x3F, 0x3F, 0x3F + }; + + for (i = 0; i < 64; ++i) + { + ASMOutU8(0x3c8, (UINT8)i); + ASMOutU8(0x3c9, s_a3bVgaDac[i*3 + 0]); + ASMOutU8(0x3c9, s_a3bVgaDac[i*3 + 1]); + ASMOutU8(0x3c9, s_a3bVgaDac[i*3 + 2]); + } + } + + /* Load the appropriate font into the first map */ + { + UINT8 const *pabFont; + unsigned offBase = 0; + UINT16 height; + + switch (ModeNumber) { + case 0: // 80x25 mode, uses 8x16 font + pabFont = g_abVgaFont_8x16; + height = 16; + break; + case 1: // 80x50 mode, uses 8x8 font + pabFont = g_abVgaFont_8x8; + height = 8; + break; + default: + ASSERT(0); // Valid mode numbers checked above + return EFI_UNSUPPORTED; + } + // Enable font map access + { + /* Write sequencer registers */ + ASMOutU16(0x3c4, 0x0100); + ASMOutU16(0x3c4, 0x0402); + ASMOutU16(0x3c4, 0x0704); + ASMOutU16(0x3c4, 0x0300); + /* Write graphics controller registers */ + ASMOutU16(0x3ce, 0x0204); + ASMOutU16(0x3ce, 0x0005); + ASMOutU16(0x3ce, 0x0406); + } + + for (i = 0; i < 256; ++i) + { + int offChr = i * height; + int offDst = offBase + i * 32; + CopyMem((UINT8 *)0xA0000 + offDst, pabFont + offChr, height); + } + + // Set the CRTC Maximum Scan Line register + ASMOutU16(0x3d4, 0x4009 | ((height - 1) << 8)); + + // Disable font map access again + { + /* Write sequencer registers */ + ASMOutU16(0x3c4, 0x0100); + ASMOutU16(0x3c4, 0x0302); + ASMOutU16(0x3c4, 0x0304); + ASMOutU16(0x3c4, 0x0300); + /* Write graphics controller registers */ + ASMOutU16(0x3ce, 0x0004); + ASMOutU16(0x3ce, 0x1005); + ASMOutU16(0x3ce, 0x0e06); + } + } + + return EFI_SUCCESS; +} + + + + +/** @copydoc EFI_COMPONENT_NAME_GET_DRIVER_NAME */ +static EFI_STATUS EFIAPI +VBoxVgaMiniPortCN_GetDriverName(IN EFI_COMPONENT_NAME_PROTOCOL *This, + IN CHAR8 *Language, OUT CHAR16 **DriverName) +{ + return LookupUnicodeString2(Language, + This->SupportedLanguages, + &g_aVBoxMiniPortDriverLangAndNames[0], + DriverName, + TRUE); +} + +/** @copydoc EFI_COMPONENT_NAME_GET_CONTROLLER_NAME */ +static EFI_STATUS EFIAPI +VBoxVgaMiniPortCN_GetControllerName(IN EFI_COMPONENT_NAME_PROTOCOL *This, + IN EFI_HANDLE ControllerHandle, + IN EFI_HANDLE ChildHandle OPTIONAL, + IN CHAR8 *Language, OUT CHAR16 **ControllerName) +{ + /** @todo try query the protocol from the controller and forward the query. */ + return EFI_UNSUPPORTED; +} + + + + +/** @copydoc EFI_COMPONENT_NAME2_GET_DRIVER_NAME */ +static EFI_STATUS EFIAPI +VBoxVgaMiniPortCN2_GetDriverName(IN EFI_COMPONENT_NAME2_PROTOCOL *This, + IN CHAR8 *Language, OUT CHAR16 **DriverName) +{ + return LookupUnicodeString2(Language, + This->SupportedLanguages, + &g_aVBoxMiniPortDriverLangAndNames[0], + DriverName, + FALSE); +} + +/** @copydoc EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME */ +static EFI_STATUS EFIAPI +VBoxVgaMiniPortCN2_GetControllerName(IN EFI_COMPONENT_NAME2_PROTOCOL *This, + IN EFI_HANDLE ControllerHandle, + IN EFI_HANDLE ChildHandle OPTIONAL, + IN CHAR8 *Language, OUT CHAR16 **ControllerName) +{ + /** @todo try query the protocol from the controller and forward the query. */ + return EFI_UNSUPPORTED; +} + diff --git a/src/VBox/Devices/EFI/Firmware2/VBoxPkg/VBoxVgaMiniPortDxe/VBoxVgaMiniPortDxe.inf b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/VBoxVgaMiniPortDxe/VBoxVgaMiniPortDxe.inf new file mode 100644 index 000000000..1c449d0dc --- /dev/null +++ b/src/VBox/Devices/EFI/Firmware2/VBoxPkg/VBoxVgaMiniPortDxe/VBoxVgaMiniPortDxe.inf @@ -0,0 +1,56 @@ +# $Id: VBoxVgaMiniPortDxe.inf $ +## @file +# VBoxVgaMiniPortDxe.inf - VgaMiniPort Protocol module declaration. +# + + +# +# Copyright (C) 2009-2010 Sun Microsystems, Inc. +# +# This file is part of VirtualBox Open Source Edition (OSE), as +# available from http://www.virtualbox.org. This file is free software; +# you can redistribute it and/or modify it under the terms of the GNU +# General Public License (GPL) as published by the Free Software +# Foundation, in version 2 as it comes in the "COPYING" file of the +# VirtualBox OSE distribution. VirtualBox OSE is distributed in the +# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +# +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa +# Clara, CA 95054 USA or visit http://www.sun.com if you need +# additional information or have any questions. +# +#/ + + + +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = VBoxVgaMiniPortDxe + FILE_GUID = AE8558FD-9DA9-4FA1-AE16-94456C977244 + MODULE_TYPE = UEFI_DRIVER + VERSION_STRING = 1.0 + EDK_RELEASE_VERSION = 0x00020000 + EFI_SPECIFICATION_VERSION = 0x00020000 + ENTRY_POINT = DxeInitializeVBoxVgaMiniPort + +[Sources.common] + VBoxVgaMiniPortDxe.c + VBoxVgaFonts.h + VBoxVgaFont-8x14.h + +[Packages] + MdePkg/MdePkg.dec + IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec + VBoxPkg/VBoxPkg.dec + +[LibraryClasses] + UefiLib + DebugLib + UefiBootServicesTableLib + UefiDriverEntryPoint + BaseMemoryLib + MemoryAllocationLib + +[Protocols] + gEfiPciIoProtocolGuid ## TO_START + gEfiVgaMiniPortProtocolGuid ## BY_START diff --git a/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI32.fd b/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI32.fd Binary files differindex d979865dd..3c57b41e5 100644 --- a/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI32.fd +++ b/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI32.fd diff --git a/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI64.fd b/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI64.fd Binary files differindex 4abd8c375..d9c70a5f8 100644 --- a/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI64.fd +++ b/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI64.fd diff --git a/src/VBox/Devices/Graphics/BIOS/vbe.c b/src/VBox/Devices/Graphics/BIOS/vbe.c index 4b2aa9f1b..ee7ebdcd0 100644 --- a/src/VBox/Devices/Graphics/BIOS/vbe.c +++ b/src/VBox/Devices/Graphics/BIOS/vbe.c @@ -95,11 +95,13 @@ _no_vbebios_info_string: .byte 0x0a,0x0d .byte 0x00 +#ifdef DEBUG msg_vbe_init: .ascii "VirtualBox Version " .ascii VBOX_VERSION_STRING .ascii " VBE Display Adapter" .byte 0x0a,0x0d, 0x00 +#endif .align 2 diff --git a/src/VBox/Devices/Graphics/BIOS/vgabios.c b/src/VBox/Devices/Graphics/BIOS/vgabios.c index 6cf9e088c..3a8bfedfd 100644 --- a/src/VBox/Devices/Graphics/BIOS/vgabios.c +++ b/src/VBox/Devices/Graphics/BIOS/vgabios.c @@ -2055,7 +2055,9 @@ Bit8u car;Bit8u page;Bit8u attr;Bit8u flag; { if(vga_modes[line].class==TEXT) { - biosfn_scroll(0x01,0x07,0,0,nbrows-1,nbcols-1,page,SCROLL_UP); + address=SCREEN_MEM_START(nbcols,nbrows,page)+(xcurs+(ycurs-1)*nbcols)*2; + attr=read_byte(vga_modes[line].sstart,address+1); + biosfn_scroll(0x01,attr,0,0,nbrows-1,nbcols-1,page,SCROLL_UP); } else { diff --git a/src/VBox/Devices/Network/DevVirtioNet.cpp b/src/VBox/Devices/Network/DevVirtioNet.cpp index 8940de80d..4505560cf 100644 --- a/src/VBox/Devices/Network/DevVirtioNet.cpp +++ b/src/VBox/Devices/Network/DevVirtioNet.cpp @@ -302,7 +302,7 @@ PDMBOTHCBDECL(int) vnetGetConfig(void *pvState, uint32_t port, uint32_t cb, void if (port + cb > sizeof(struct VNetPCIConfig)) { Log(("%s vnetGetConfig: Read beyond the config structure is attempted (port=%RTiop cb=%x).\n", INSTANCE(pState), port, cb)); - return VERR_INTERNAL_ERROR; + return VERR_IOM_IOPORT_UNUSED; } memcpy(data, ((uint8_t*)&pState->config) + port, cb); return VINF_SUCCESS; @@ -314,7 +314,10 @@ PDMBOTHCBDECL(int) vnetSetConfig(void *pvState, uint32_t port, uint32_t cb, void if (port + cb > sizeof(struct VNetPCIConfig)) { Log(("%s vnetGetConfig: Write beyond the config structure is attempted (port=%RTiop cb=%x).\n", INSTANCE(pState), port, cb)); - return VERR_INTERNAL_ERROR; + if (port < sizeof(struct VNetPCIConfig)) + memcpy(((uint8_t*)&pState->config) + port, data, + sizeof(struct VNetPCIConfig) - port); + return VINF_SUCCESS; } memcpy(((uint8_t*)&pState->config) + port, data, cb); return VINF_SUCCESS; diff --git a/src/VBox/Devices/Network/DrvNAT.cpp b/src/VBox/Devices/Network/DrvNAT.cpp index 43633a1e5..7acf2c837 100644 --- a/src/VBox/Devices/Network/DrvNAT.cpp +++ b/src/VBox/Devices/Network/DrvNAT.cpp @@ -329,6 +329,7 @@ static DECLCALLBACK(void) drvNATRecvWorker(PDRVNAT pThis, uint8_t *pu8Buf, int c } rc = RTCritSectEnter(&pThis->csDevAccess); + AssertRC(rc); rc = pThis->pPort->pfnWaitReceiveAvail(pThis->pPort, RT_INDEFINITE_WAIT); if (RT_SUCCESS(rc)) diff --git a/src/VBox/Devices/Network/slirp/bootp.c b/src/VBox/Devices/Network/slirp/bootp.c index e5eb4dae6..f1c7d90b8 100644 --- a/src/VBox/Devices/Network/slirp/bootp.c +++ b/src/VBox/Devices/Network/slirp/bootp.c @@ -188,7 +188,7 @@ static struct mbuf *dhcp_create_msg(PNATState pData, struct bootp_t *bp, struct memset(rbp, 0, sizeof(struct bootp_t)); rbp->bp_op = BOOTP_REPLY; rbp->bp_xid = bp->bp_xid; /* see table 3 of rfc2131*/ - rbp->bp_flags = bp->bp_flags; + rbp->bp_flags = bp->bp_flags; /* figure 2 of rfc2131 */ rbp->bp_giaddr.s_addr = bp->bp_giaddr.s_addr; #if 0 /*check flags*/ saddr.sin_port = htons(BOOTP_SERVER); @@ -420,8 +420,8 @@ static int dhcp_decode_request(PNATState pData, struct bootp_t *bp, const uint8_ } else { - /*see table 4 rfc2131*/ - if (bp->bp_flags & DHCP_FLAGS_B) + /* table 4 of rfc2131 */ + if (bp->bp_flags & RT_H2N_U16_C(DHCP_FLAGS_B)) dhcp_stat = REBINDING; else dhcp_stat = RENEWING; @@ -728,7 +728,8 @@ static void bootp_reply(PNATState pData, struct mbuf *m, int offReply, uint16_t - sizeof(struct udphdr); m->m_data += sizeof(struct udphdr) + sizeof(struct ip); - if ((flags & DHCP_FLAGS_B) || nack != 0) + if ( (flags & RT_H2N_U16_C(DHCP_FLAGS_B)) + || nack != 0) daddr.sin_addr.s_addr = INADDR_BROADCAST; else daddr.sin_addr.s_addr = rbp->bp_yiaddr.s_addr; /*unicast requested by client*/ diff --git a/src/VBox/Devices/Network/slirp/bootp.h b/src/VBox/Devices/Network/slirp/bootp.h index 31c9e0044..da091e0e8 100644 --- a/src/VBox/Devices/Network/slirp/bootp.h +++ b/src/VBox/Devices/Network/slirp/bootp.h @@ -94,29 +94,30 @@ #define BOOTP_VENDOR_LEN 64 #define DHCP_OPT_LEN 312 +/* RFC 2131 */ struct bootp_t { - struct ip ip; - struct udphdr udp; - uint8_t bp_op; - uint8_t bp_htype; - uint8_t bp_hlen; - uint8_t bp_hops; - uint32_t bp_xid; - uint16_t bp_secs; - uint16_t bp_flags; - struct in_addr bp_ciaddr; - struct in_addr bp_yiaddr; - struct in_addr bp_siaddr; - struct in_addr bp_giaddr; - uint8_t bp_hwaddr[16]; - uint8_t bp_sname[64]; - uint8_t bp_file[128]; - uint8_t bp_vend[DHCP_OPT_LEN]; + struct ip ip; /**< header: IP header */ + struct udphdr udp; /**< header: UDP header */ + uint8_t bp_op; /**< opcode (BOOTP_REQUEST, BOOTP_REPLY) */ + uint8_t bp_htype; /**< hardware type */ + uint8_t bp_hlen; /**< hardware address length */ + uint8_t bp_hops; /**< hop count */ + uint32_t bp_xid; /**< transaction ID */ + uint16_t bp_secs; /**< numnber of seconds */ + uint16_t bp_flags; /**< flags (DHCP_FLAGS_B) */ + struct in_addr bp_ciaddr; /**< client IP address */ + struct in_addr bp_yiaddr; /**< your IP address */ + struct in_addr bp_siaddr; /**< server IP address */ + struct in_addr bp_giaddr; /**< gateway IP address */ + uint8_t bp_hwaddr[16]; /** client hardware address */ + uint8_t bp_sname[64]; /** server host name */ + uint8_t bp_file[128]; /** boot filename */ + uint8_t bp_vend[DHCP_OPT_LEN]; /**< vendor specific info */ }; -#define DHCP_FLAGS_B (1<<15) +#define DHCP_FLAGS_B (1<<15) /**< B, broadcast */ struct bootp_ext { uint8_t bpe_tag; diff --git a/src/VBox/Devices/Network/slirp/ip_icmp.c b/src/VBox/Devices/Network/slirp/ip_icmp.c index 1e4add7da..d7fbfb328 100644 --- a/src/VBox/Devices/Network/slirp/ip_icmp.c +++ b/src/VBox/Devices/Network/slirp/ip_icmp.c @@ -181,7 +181,11 @@ icmp_find_original_mbuf(PNATState pData, struct ip *ip) { m0 = icm->im_m; ip0 = mtod(m0, struct ip *); - AssertRelease(ip0->ip_p == IPPROTO_ICMP); + if (ip0->ip_p != IPPROTO_ICMP) + { + /* try next item */ + continue; + } icp0 = (struct icmp *)((char *)ip0 + (ip0->ip_hl << 2)); if ( ( (icp->icmp_type != ICMP_ECHO && ip->ip_src.s_addr == ip0->ip_dst.s_addr) || (icp->icmp_type == ICMP_ECHO && ip->ip_dst.s_addr == ip0->ip_dst.s_addr)) diff --git a/src/VBox/Devices/Network/slirp/libalias/alias_nbt.c b/src/VBox/Devices/Network/slirp/libalias/alias_nbt.c index afa6dc466..be1320572 100644 --- a/src/VBox/Devices/Network/slirp/libalias/alias_nbt.c +++ b/src/VBox/Devices/Network/slirp/libalias/alias_nbt.c @@ -70,6 +70,7 @@ __FBSDID("$FreeBSD: src/sys/netinet/libalias/alias_nbt.c,v 1.20.8.1 2009/04/15 0 # include <slirp.h> # include "alias_local.h" # include "alias_mod.h" +# define isprint RT_C_IS_PRINT #endif /*VBOX*/ #define NETBIOS_NS_PORT_NUMBER 137 diff --git a/src/VBox/Devices/Network/slirp/mbuf.c b/src/VBox/Devices/Network/slirp/mbuf.c index 93d5914fb..0863f3b72 100644 --- a/src/VBox/Devices/Network/slirp/mbuf.c +++ b/src/VBox/Devices/Network/slirp/mbuf.c @@ -88,7 +88,7 @@ m_init(PNATState pData) msize_init(pData); #if 1 rc = RTCritSectInit(&pData->cs_mbuf_zone); - AssertReleaseRC(rc); + AssertRC(rc); rc = mbuf_zone_init(pData); Assert((rc == 0)); #endif @@ -129,7 +129,7 @@ m_get(PNATState pData) DEBUG_CALL("m_get"); rc = RTCritSectEnter(&pData->cs_mbuf_zone); - AssertReleaseRC(rc); + AssertRC(rc); recheck_zone: if (m_freelist.m_next == &m_freelist) @@ -181,7 +181,7 @@ recheck_zone: end_error: DEBUG_ARG("m = %lx", (long )m); rc = RTCritSectLeave(&pData->cs_mbuf_zone); - AssertReleaseRC(rc); + AssertRC(rc); return m; } @@ -193,7 +193,7 @@ m_free(PNATState pData, struct mbuf *m) DEBUG_ARG("m = %lx", (long )m); rc = RTCritSectEnter(&pData->cs_mbuf_zone); - AssertReleaseRC(rc); + AssertRC(rc); mbuf_alloced--; if(m) { @@ -228,7 +228,7 @@ m_free(PNATState pData, struct mbuf *m) STAM_COUNTER_INC(&pData->StatMBufAllocation); } /* if(m) */ rc = RTCritSectLeave(&pData->cs_mbuf_zone); - AssertReleaseRC(rc); + AssertRC(rc); } /* update macros for m_get/m_free*/ diff --git a/src/VBox/Devices/Network/slirp/slirp_state.h b/src/VBox/Devices/Network/slirp/slirp_state.h index f462946b8..86cf04777 100644 --- a/src/VBox/Devices/Network/slirp/slirp_state.h +++ b/src/VBox/Devices/Network/slirp/slirp_state.h @@ -444,24 +444,24 @@ typedef struct NATState int rc; \ /* Assert(strcmp(RTThreadSelfName(), "EMT") != 0); */ \ rc = RTCritSectEnter(&VBOX_X(queue) ## _mutex); \ - AssertReleaseRC(rc); \ + AssertRC(rc); \ } while (0) # define QSOCKET_UNLOCK(queue) \ do { \ int rc; \ rc = RTCritSectLeave(&VBOX_X(queue) ## _mutex); \ - AssertReleaseRC(rc); \ + AssertRC(rc); \ } while (0) # define QSOCKET_LOCK_CREATE(queue) \ do { \ int rc; \ rc = RTCritSectInit(&pData->queue ## _mutex); \ - AssertReleaseRC(rc); \ + AssertRC(rc); \ } while (0) # define QSOCKET_LOCK_DESTROY(queue) \ do { \ int rc = RTCritSectDelete(&pData->queue ## _mutex); \ - AssertReleaseRC(rc); \ + AssertRC(rc); \ } while (0) # define QSOCKET_FOREACH(so, sonext, label) \ @@ -506,7 +506,7 @@ typedef struct NATState PRTREQ pReq = NULL; \ int rc; \ rc = RTReqAlloc((data)->pReqQueue, &pReq, RTREQTYPE_INTERNAL); \ - AssertReleaseRC(rc); \ + AssertRC(rc); \ pReq->u.Internal.pfn = (PFNRT)tcp_output; \ pReq->u.Internal.cArgs = 2; \ pReq->u.Internal.aArgs[0] = (uintptr_t)(data); \ diff --git a/src/VBox/Devices/Network/slirp/socket.h b/src/VBox/Devices/Network/slirp/socket.h index ba71b63f2..4706a5390 100644 --- a/src/VBox/Devices/Network/slirp/socket.h +++ b/src/VBox/Devices/Network/slirp/socket.h @@ -95,28 +95,28 @@ struct socket do { \ int rc; \ /* Assert(strcmp(RTThreadSelfName(), "EMT") != 0); */ \ - Log2(("lock:%s:%d L on %R[natsock]\n", __FUNCTION__, __LINE__, (so))); \ - Assert(!RTCritSectIsOwner(&(so)->so_mutex)); \ - rc = RTCritSectEnter(&(so)->so_mutex); \ - AssertReleaseRC(rc); \ + Log2(("lock:%s:%d L on %R[natsock]\n", __FUNCTION__, __LINE__, (so))); \ + Assert(!RTCritSectIsOwner(&(so)->so_mutex)); \ + rc = RTCritSectEnter(&(so)->so_mutex); \ + AssertRC(rc); \ } while (0) # define SOCKET_UNLOCK(so) \ do { \ int rc; \ - if ((so) != NULL) Log2(("lock:%s:%d U on %R[natsock]\n", __FUNCTION__, __LINE__, (so))); \ - rc = RTCritSectLeave(&(so)->so_mutex); \ - AssertReleaseRC(rc); \ + if ((so) != NULL) Log2(("lock:%s:%d U on %R[natsock]\n", __FUNCTION__, __LINE__, (so))); \ + rc = RTCritSectLeave(&(so)->so_mutex); \ + Assert(rc); \ } while (0) # define SOCKET_LOCK_CREATE(so) \ do { \ int rc; \ - rc = RTCritSectInit(&(so)->so_mutex); \ - AssertReleaseRC(rc); \ + rc = RTCritSectInit(&(so)->so_mutex); \ + AssertRC(rc); \ } while (0) # define SOCKET_LOCK_DESTROY(so) \ do { \ - int rc = RTCritSectDelete(&(so)->so_mutex); \ - AssertReleaseRC(rc); \ + int rc = RTCritSectDelete(&(so)->so_mutex); \ + AssertRC(rc); \ } while (0) #else # define SOCKET_LOCK(so) do {} while (0) diff --git a/src/VBox/Devices/Network/slirp/tcp_subr.c b/src/VBox/Devices/Network/slirp/tcp_subr.c index 60caa34db..e5050b7d5 100644 --- a/src/VBox/Devices/Network/slirp/tcp_subr.c +++ b/src/VBox/Devices/Network/slirp/tcp_subr.c @@ -362,7 +362,18 @@ tcp_sockclosed(PNATState pData, struct tcpcb *tp) if ( tp && tp->t_state >= TCPS_FIN_WAIT_2) soisfdisconnected(tp->t_socket); - if (tp) + /* + * (vasily) there're situations when the FIN or FIN,ACK are lost (Windows host) + * and retransmitting keeps VBox busy on sending closing sequences *very* frequent, + * easting a lot of CPU. To avoid this we don't sent on sockets marked as closed + * (see slirp.c for details about setting so_close member). + */ + if ( tp +#ifdef RT_OS_WINDOWS + && tp->t_socket + && !tp->t_socket->so_close +#endif + ) tcp_output(pData, tp); } diff --git a/src/VBox/Devices/Storage/ATAController.cpp b/src/VBox/Devices/Storage/ATAController.cpp index ce905994e..07647462c 100644 --- a/src/VBox/Devices/Storage/ATAController.cpp +++ b/src/VBox/Devices/Storage/ATAController.cpp @@ -4692,6 +4692,12 @@ int ataControllerIOPortReadStr1(PAHCIATACONTROLLER pCtl, RTIOPORT Port, RTGCPTR cTransAvailable = (s->iIOBufferPIODataEnd - s->iIOBufferPIODataStart) / cb; #ifndef IN_RING3 + /* Deal with the unlikely case where no data (or not enough for the read length operation) is available; go back to ring 3. */ + if (!cTransAvailable) + { + PDMCritSectLeave(&pCtl->lock); + return VINF_IOM_HC_IOPORT_READ; + } /* The last transfer unit cannot be handled in GC, as it involves thread communication. */ cTransAvailable--; #endif /* !IN_RING3 */ @@ -4738,6 +4744,12 @@ int ataControllerIOPortWriteStr1(PAHCIATACONTROLLER pCtl, RTIOPORT Port, RTGCPTR cTransAvailable = (s->iIOBufferPIODataEnd - s->iIOBufferPIODataStart) / cb; #ifndef IN_RING3 + /* Deal with the unlikely case where no data (or not enough for the read length operation) is available; go back to ring 3. */ + if (!cTransAvailable) + { + PDMCritSectLeave(&pCtl->lock); + return VINF_IOM_HC_IOPORT_WRITE; + } /* The last transfer unit cannot be handled in GC, as it involves thread communication. */ cTransAvailable--; #endif /* !IN_RING3 */ diff --git a/src/VBox/Devices/Storage/DevATA.cpp b/src/VBox/Devices/Storage/DevATA.cpp index 24d29e910..d9b23fc46 100644 --- a/src/VBox/Devices/Storage/DevATA.cpp +++ b/src/VBox/Devices/Storage/DevATA.cpp @@ -5387,6 +5387,12 @@ PDMBOTHCBDECL(int) ataIOPortReadStr1(PPDMDEVINS pDevIns, void *pvUser, RTIOPORT cTransAvailable = (s->iIOBufferPIODataEnd - s->iIOBufferPIODataStart) / cb; #ifndef IN_RING3 + /* Deal with the unlikely case where no data (or not enough for the read length operation) is available; go back to ring 3. */ + if (!cTransAvailable) + { + PDMCritSectLeave(&pCtl->lock); + return VINF_IOM_HC_IOPORT_READ; + } /* The last transfer unit cannot be handled in GC, as it involves thread communication. */ cTransAvailable--; #endif /* !IN_RING3 */ @@ -5439,6 +5445,12 @@ PDMBOTHCBDECL(int) ataIOPortWriteStr1(PPDMDEVINS pDevIns, void *pvUser, RTIOPORT cTransAvailable = (s->iIOBufferPIODataEnd - s->iIOBufferPIODataStart) / cb; #ifndef IN_RING3 + /* Deal with the unlikely case where no data (or not enough for the read length operation) is available; go back to ring 3. */ + if (!cTransAvailable) + { + PDMCritSectLeave(&pCtl->lock); + return VINF_IOM_HC_IOPORT_WRITE; + } /* The last transfer unit cannot be handled in GC, as it involves thread communication. */ cTransAvailable--; #endif /* !IN_RING3 */ diff --git a/src/VBox/Devices/Storage/DevBusLogic.cpp b/src/VBox/Devices/Storage/DevBusLogic.cpp index db1336163..6a6378a90 100644 --- a/src/VBox/Devices/Storage/DevBusLogic.cpp +++ b/src/VBox/Devices/Storage/DevBusLogic.cpp @@ -727,18 +727,10 @@ typedef struct BUSLOGICTASKSTATE Mailbox MailboxGuest; /** The SCSI request we pass to the underlying SCSI engine. */ PDMSCSIREQUEST PDMScsiRequest; - /** Number of bytes in all scatter gather entries. */ - uint32_t cbScatterGather; - /** Number of entries in the scatter gather list. */ - uint32_t cScatterGather; - /** Page map lock array. */ - PPGMPAGEMAPLOCK paPageLock; - /** Pointer to the scatter gather array. */ - PPDMDATASEG paScatterGather; - /** Pointer to the page map lock for the sense buffer. */ - PGMPAGEMAPLOCK pPageLockSense; + /** Data buffer segment */ + PDMDATASEG DataSeg; /** Pointer to the R3 sense buffer. */ - uint8_t *pu8SenseBuffer; + uint8_t *pbSenseBuffer; /** Flag whether this is a request from the BIOS. */ bool fBIOS; } BUSLOGICTASKSTATE, *PBUSLOGICTASKSTATE; @@ -989,281 +981,214 @@ static void buslogicDumpCCBInfo(PCommandControlBlock pCCB) #endif /** - * Maps the data buffer into R3. + * Allocate data buffer. * * @returns VBox status code. * @param pTaskState Pointer to the task state. - * @param fReadonly Flag whether the mappings should be readonly. */ -static int buslogicMapGCDataBufIntoR3(PBUSLOGICTASKSTATE pTaskState, bool fReadonly) +static int buslogicDataBufferAlloc(PBUSLOGICTASKSTATE pTaskState) { - int rc = VINF_SUCCESS; - uint32_t cScatterGatherEntriesR3 = 0; PPDMDEVINS pDevIns = pTaskState->CTX_SUFF(pTargetDevice)->CTX_SUFF(pBusLogic)->CTX_SUFF(pDevIns); - /* - * @todo: Check following assumption and what residual means. - * - * The BusLogic adapter can handle two different data buffer formats. - * The first one is that the data pointer entry in the CCB points to - * the buffer directly. In second mode the data pointer points to a - * scatter gather list which describes the buffer. - */ - if ( (pTaskState->CommandControlBlockGuest.uOpcode == BUSLOGIC_CCB_OPCODE_INITIATOR_CCB_SCATTER_GATHER) - || (pTaskState->CommandControlBlockGuest.uOpcode == BUSLOGIC_CCB_OPCODE_INITIATOR_CCB_RESIDUAL_SCATTER_GATHER)) + if ( (pTaskState->CommandControlBlockGuest.uDataDirection != BUSLOGIC_CCB_DIRECTION_NO_DATA) + && (pTaskState->CommandControlBlockGuest.cbData > 0)) { - uint32_t cScatterGatherGCRead; - uint32_t iScatterGatherEntry; - ScatterGatherEntry aScatterGatherReadGC[32]; /* Number of scatter gather list entries read from guest memory. */ - uint32_t cScatterGatherGCLeft = pTaskState->CommandControlBlockGuest.cbData / sizeof(ScatterGatherEntry); - RTGCPHYS GCPhysAddrScatterGatherCurrent = (RTGCPHYS)pTaskState->CommandControlBlockGuest.u32PhysAddrData; - - /* First pass - count needed R3 scatter gather list entries. */ - do + /* + * @todo: Check following assumption and what residual means. + * + * The BusLogic adapter can handle two different data buffer formats. + * The first one is that the data pointer entry in the CCB points to + * the buffer directly. In second mode the data pointer points to a + * scatter gather list which describes the buffer. + */ + if ( (pTaskState->CommandControlBlockGuest.uOpcode == BUSLOGIC_CCB_OPCODE_INITIATOR_CCB_SCATTER_GATHER) + || (pTaskState->CommandControlBlockGuest.uOpcode == BUSLOGIC_CCB_OPCODE_INITIATOR_CCB_RESIDUAL_SCATTER_GATHER)) { - cScatterGatherGCRead = (cScatterGatherGCLeft < RT_ELEMENTS(aScatterGatherReadGC)) - ? cScatterGatherGCLeft - : RT_ELEMENTS(aScatterGatherReadGC); - cScatterGatherGCLeft -= cScatterGatherGCRead; - - /* Read the SG entries. */ - PDMDevHlpPhysRead(pDevIns, GCPhysAddrScatterGatherCurrent, &aScatterGatherReadGC[0], - cScatterGatherGCRead * sizeof(ScatterGatherEntry)); - - for (iScatterGatherEntry = 0; iScatterGatherEntry < cScatterGatherGCRead; iScatterGatherEntry++) + uint32_t cScatterGatherGCRead; + uint32_t iScatterGatherEntry; + ScatterGatherEntry aScatterGatherReadGC[32]; /* Number of scatter gather list entries read from guest memory. */ + uint32_t cScatterGatherGCLeft = pTaskState->CommandControlBlockGuest.cbData / sizeof(ScatterGatherEntry); + RTGCPHYS GCPhysAddrScatterGatherCurrent = (RTGCPHYS)pTaskState->CommandControlBlockGuest.u32PhysAddrData; + size_t cbDataToTransfer = 0; + + /* Count number of bytes to transfer. */ + do { - RTGCPHYS GCPhysAddrDataBase; - size_t cbDataToTransfer; - - Log(("%s: iScatterGatherEntry=%u\n", __FUNCTION__, iScatterGatherEntry)); + cScatterGatherGCRead = (cScatterGatherGCLeft < RT_ELEMENTS(aScatterGatherReadGC)) + ? cScatterGatherGCLeft + : RT_ELEMENTS(aScatterGatherReadGC); + cScatterGatherGCLeft -= cScatterGatherGCRead; - GCPhysAddrDataBase = (RTGCPHYS)aScatterGatherReadGC[iScatterGatherEntry].u32PhysAddrSegmentBase; - cbDataToTransfer = aScatterGatherReadGC[iScatterGatherEntry].cbSegment; + /* Read the SG entries. */ + PDMDevHlpPhysRead(pDevIns, GCPhysAddrScatterGatherCurrent, &aScatterGatherReadGC[0], + cScatterGatherGCRead * sizeof(ScatterGatherEntry)); - Log(("%s: GCPhysAddrDataBase=%RGp cbDataToTransfer=%u\n", __FUNCTION__, GCPhysAddrDataBase, cbDataToTransfer)); - - /* - * Check if the physical address is page aligned. - */ - if (GCPhysAddrDataBase & PAGE_OFFSET_MASK) + for (iScatterGatherEntry = 0; iScatterGatherEntry < cScatterGatherGCRead; iScatterGatherEntry++) { - RTGCPHYS GCPhysAddrDataNextPage = PAGE_ADDRESS(GCPhysAddrDataBase) + PAGE_SIZE; - uint32_t u32GCPhysAddrDiff = GCPhysAddrDataNextPage - GCPhysAddrDataBase; - - Log(("%s: Align page: GCPhysAddrDataBase=%RGp GCPhysAddrDataNextPage=%RGp\n", - __FUNCTION__, GCPhysAddrDataBase, GCPhysAddrDataNextPage)); - - cScatterGatherEntriesR3++; - /* Subtract size of the buffer in the actual page. */ - if (cbDataToTransfer < u32GCPhysAddrDiff) - cbDataToTransfer = 0; - else - cbDataToTransfer -= u32GCPhysAddrDiff; - } + RTGCPHYS GCPhysAddrDataBase; - /* The address is now page aligned. */ - while (cbDataToTransfer) - { - Log(("%s: GCPhysAddrDataBase=%RGp cbDataToTransfer=%u cScatterGatherEntriesR3=%u\n", - __FUNCTION__, GCPhysAddrDataBase, cbDataToTransfer, cScatterGatherEntriesR3)); + Log(("%s: iScatterGatherEntry=%u\n", __FUNCTION__, iScatterGatherEntry)); - cScatterGatherEntriesR3++; + GCPhysAddrDataBase = (RTGCPHYS)aScatterGatherReadGC[iScatterGatherEntry].u32PhysAddrSegmentBase; + cbDataToTransfer += aScatterGatherReadGC[iScatterGatherEntry].cbSegment; - /* Check if this is the last page the buffer is in. */ - if (cbDataToTransfer < PAGE_SIZE) - cbDataToTransfer = 0; - else - cbDataToTransfer -= PAGE_SIZE; + Log(("%s: GCPhysAddrDataBase=%RGp cbDataToTransfer=%u\n", + __FUNCTION__, GCPhysAddrDataBase, + aScatterGatherReadGC[iScatterGatherEntry].cbSegment)); } - } - /* Set address to the next entries to read. */ - GCPhysAddrScatterGatherCurrent += cScatterGatherGCRead * sizeof(ScatterGatherEntry); - } while (cScatterGatherGCLeft); + /* Set address to the next entries to read. */ + GCPhysAddrScatterGatherCurrent += cScatterGatherGCRead * sizeof(ScatterGatherEntry); + } while (cScatterGatherGCLeft > 0); - Log(("%s: cScatterGatherEntriesR3=%u\n", __FUNCTION__, cScatterGatherEntriesR3)); - - /* - * Allocate page map lock and scatter gather array. - * @todo: Optimize with caching. - */ - AssertMsg(!pTaskState->paPageLock && !pTaskState->paScatterGather, ("paPageLock or/and paScatterGather are not NULL\n")); - pTaskState->cScatterGather = cScatterGatherEntriesR3; - pTaskState->cbScatterGather = 0; - pTaskState->paPageLock = (PPGMPAGEMAPLOCK)RTMemAllocZ(cScatterGatherEntriesR3 * sizeof(PGMPAGEMAPLOCK)); - AssertMsgReturn(pTaskState->paPageLock, ("Allocating page lock array failed\n"), VERR_NO_MEMORY); - pTaskState->paScatterGather = (PPDMDATASEG)RTMemAllocZ(cScatterGatherEntriesR3 * sizeof(PDMDATASEG)); - AssertMsgReturn(pTaskState->paScatterGather, ("Allocating page lock array failed\n"), VERR_NO_MEMORY); - - /* Second pass - map the elements into R3. **/ - cScatterGatherGCLeft = pTaskState->CommandControlBlockGuest.cbData / sizeof(ScatterGatherEntry); - GCPhysAddrScatterGatherCurrent = (RTGCPHYS)pTaskState->CommandControlBlockGuest.u32PhysAddrData; - PPGMPAGEMAPLOCK pPageLockCurrent = pTaskState->paPageLock; - PPDMDATASEG pScatterGatherCurrent = pTaskState->paScatterGather; - - do - { - cScatterGatherGCRead = (cScatterGatherGCLeft < RT_ELEMENTS(aScatterGatherReadGC)) ? cScatterGatherGCLeft : RT_ELEMENTS(aScatterGatherReadGC); - cScatterGatherGCLeft -= cScatterGatherGCRead; + Log((": cbDataToTransfer=%d\n", cbDataToTransfer)); - /* Read the SG entries. */ - PDMDevHlpPhysRead(pDevIns, GCPhysAddrScatterGatherCurrent, &aScatterGatherReadGC[0], cScatterGatherGCRead * sizeof(ScatterGatherEntry)); + /* Allocate buffer */ + pTaskState->DataSeg.cbSeg = cbDataToTransfer; + pTaskState->DataSeg.pvSeg = RTMemAlloc(pTaskState->DataSeg.cbSeg); + if (!pTaskState->DataSeg.pvSeg) + return VERR_NO_MEMORY; - for (iScatterGatherEntry = 0; iScatterGatherEntry < cScatterGatherGCRead; iScatterGatherEntry++) + /* Copy the data if needed */ + if (pTaskState->CommandControlBlockGuest.uDataDirection == BUSLOGIC_CCB_DIRECTION_OUT) { - RTGCPHYS GCPhysAddrDataBase; - uint32_t cbDataToTransfer; - - GCPhysAddrDataBase = (RTGCPHYS)aScatterGatherReadGC[iScatterGatherEntry].u32PhysAddrSegmentBase; - cbDataToTransfer = aScatterGatherReadGC[iScatterGatherEntry].cbSegment; - pTaskState->cbScatterGather += cbDataToTransfer; + cScatterGatherGCLeft = pTaskState->CommandControlBlockGuest.cbData / sizeof(ScatterGatherEntry); + GCPhysAddrScatterGatherCurrent = (RTGCPHYS)pTaskState->CommandControlBlockGuest.u32PhysAddrData; + uint8_t *pbData = (uint8_t *)pTaskState->DataSeg.pvSeg; - /* - * Check if the physical address is page aligned. - */ - if (GCPhysAddrDataBase & PAGE_OFFSET_MASK) + do { - RTGCPHYS GCPhysAddrDataNextPage = PAGE_ADDRESS(GCPhysAddrDataBase) + PAGE_SIZE; - uint32_t u32GCPhysAddrDiff = GCPhysAddrDataNextPage - GCPhysAddrDataBase; /* Difference from the buffer start to the next page boundary. */ - - /* Check if the mapping ends at the page boundary and set segment size accordingly. */ - pScatterGatherCurrent->cbSeg = (cbDataToTransfer < u32GCPhysAddrDiff) ? cbDataToTransfer : u32GCPhysAddrDiff; - - /* Create the mapping. */ - if (fReadonly) - rc = PDMDevHlpPhysGCPhys2CCPtrReadOnly(pDevIns, PAGE_ADDRESS(GCPhysAddrDataBase), 0, (const void **)&pScatterGatherCurrent->pvSeg, pPageLockCurrent); /** @todo r=bird: PAGE_ADDRESS is the wrong macro here as well... */ - else - rc = PDMDevHlpPhysGCPhys2CCPtr(pDevIns, PAGE_ADDRESS(GCPhysAddrDataBase), 0, &pScatterGatherCurrent->pvSeg, pPageLockCurrent); - - if (RT_FAILURE(rc)) - AssertMsgFailed(("Creating mapping failed rc=%Rrc\n", rc)); - - /* Let pvBuf point to the start of the buffer in the page. */ - pScatterGatherCurrent->pvSeg = ((uint8_t *)pScatterGatherCurrent->pvSeg) + (GCPhysAddrDataBase - PAGE_ADDRESS(GCPhysAddrDataBase)); - - /* Subtract size of the buffer in the actual page. */ - cbDataToTransfer -= (uint32_t)pScatterGatherCurrent->cbSeg; - pPageLockCurrent++; - pScatterGatherCurrent++; - /* Let physical address point to the next page in the buffer. */ - GCPhysAddrDataBase = GCPhysAddrDataNextPage; - } + cScatterGatherGCRead = (cScatterGatherGCLeft < RT_ELEMENTS(aScatterGatherReadGC)) + ? cScatterGatherGCLeft + : RT_ELEMENTS(aScatterGatherReadGC); + cScatterGatherGCLeft -= cScatterGatherGCRead; - /* The address is now page aligned. */ - while (cbDataToTransfer) - { - /* Check if this is the last page the buffer is in. */ - if (cbDataToTransfer < PAGE_SIZE) - { - pScatterGatherCurrent->cbSeg = cbDataToTransfer; - cbDataToTransfer = 0; - } - else + /* Read the SG entries. */ + PDMDevHlpPhysRead(pDevIns, GCPhysAddrScatterGatherCurrent, &aScatterGatherReadGC[0], + cScatterGatherGCRead * sizeof(ScatterGatherEntry)); + + for (iScatterGatherEntry = 0; iScatterGatherEntry < cScatterGatherGCRead; iScatterGatherEntry++) { - cbDataToTransfer -= PAGE_SIZE; - pScatterGatherCurrent->cbSeg = PAGE_SIZE; - } + RTGCPHYS GCPhysAddrDataBase; - /* Create the mapping. */ - if (fReadonly) - rc = PDMDevHlpPhysGCPhys2CCPtrReadOnly(pDevIns, GCPhysAddrDataBase, 0, (const void **)&pScatterGatherCurrent->pvSeg, pPageLockCurrent); - else - rc = PDMDevHlpPhysGCPhys2CCPtr(pDevIns, GCPhysAddrDataBase, 0, &pScatterGatherCurrent->pvSeg, pPageLockCurrent); + Log(("%s: iScatterGatherEntry=%u\n", __FUNCTION__, iScatterGatherEntry)); - if (RT_FAILURE(rc)) - AssertMsgFailed(("Creating mapping failed rc=%Rrc\n", rc)); + GCPhysAddrDataBase = (RTGCPHYS)aScatterGatherReadGC[iScatterGatherEntry].u32PhysAddrSegmentBase; + cbDataToTransfer = aScatterGatherReadGC[iScatterGatherEntry].cbSegment; - /* Go to the next page. */ - GCPhysAddrDataBase += PAGE_SIZE; - pPageLockCurrent++; - pScatterGatherCurrent++; - } - } + Log(("%s: GCPhysAddrDataBase=%RGp cbDataToTransfer=%u\n", __FUNCTION__, GCPhysAddrDataBase, cbDataToTransfer)); - /* Set address to the next entries to read. */ - GCPhysAddrScatterGatherCurrent += cScatterGatherGCRead * sizeof(ScatterGatherEntry); + PDMDevHlpPhysRead(pDevIns, GCPhysAddrDataBase, pbData, cbDataToTransfer); + pbData += cbDataToTransfer; + } - } while (cScatterGatherGCLeft); + /* Set address to the next entries to read. */ + GCPhysAddrScatterGatherCurrent += cScatterGatherGCRead * sizeof(ScatterGatherEntry); + } while (cScatterGatherGCLeft > 0); + } - } - else if ( (pTaskState->CommandControlBlockGuest.u32PhysAddrData != 0) - && (pTaskState->CommandControlBlockGuest.cbData != 0)) - { - /* The buffer is not scattered. */ - RTGCPHYS GCPhysAddrDataBase = (RTGCPHYS)PAGE_ADDRESS(pTaskState->CommandControlBlockGuest.u32PhysAddrData); - RTGCPHYS GCPhysAddrDataEnd = (RTGCPHYS)(pTaskState->CommandControlBlockGuest.u32PhysAddrData + pTaskState->CommandControlBlockGuest.cbData); - RTGCPHYS GCPhysAddrDataEndBase = (RTGCPHYS)PAGE_ADDRESS(GCPhysAddrDataEnd); - RTGCPHYS GCPhysAddrDataNext = (RTGCPHYS)PAGE_ADDRESS(GCPhysAddrDataEnd) + PAGE_SIZE; - uint32_t cPages = (GCPhysAddrDataNext - GCPhysAddrDataBase) / PAGE_SIZE; - uint32_t cbOffsetFirstPage = pTaskState->CommandControlBlockGuest.u32PhysAddrData & PAGE_OFFSET_MASK; - - Log(("Non scattered buffer:\n")); - Log(("u32PhysAddrData=%#x\n", pTaskState->CommandControlBlockGuest.u32PhysAddrData)); - Log(("cbData=%u\n", pTaskState->CommandControlBlockGuest.cbData)); - Log(("GCPhysAddrDataBase=0x%RGp\n", GCPhysAddrDataBase)); - Log(("GCPhysAddrDataEnd=0x%RGp\n", GCPhysAddrDataEnd)); - Log(("GCPhysAddrDataEndBase=0x%RGp\n", GCPhysAddrDataEndBase)); - Log(("GCPhysAddrDataNext=0x%RGp\n", GCPhysAddrDataNext)); - Log(("cPages=%u\n", cPages)); - - pTaskState->paPageLock = (PPGMPAGEMAPLOCK)RTMemAllocZ(cPages * sizeof(PGMPAGEMAPLOCK)); - AssertMsgReturn(pTaskState->paPageLock, ("Allocating page lock array failed\n"), VERR_NO_MEMORY); - pTaskState->paScatterGather = (PPDMDATASEG)RTMemAllocZ(cPages * sizeof(PDMDATASEG)); - AssertMsgReturn(pTaskState->paScatterGather, ("Allocating scatter gather list failed\n"), VERR_NO_MEMORY); - - PPGMPAGEMAPLOCK pPageLockCurrent = pTaskState->paPageLock; - PPDMDATASEG pScatterGatherCurrent = pTaskState->paScatterGather; - - for (uint32_t i = 0; i < cPages; i++) + } + else if (pTaskState->CommandControlBlockGuest.uOpcode == BUSLOGIC_CCB_OPCODE_INITIATOR_CCB) { - if (fReadonly) - rc = PDMDevHlpPhysGCPhys2CCPtrReadOnly(pDevIns, GCPhysAddrDataBase, 0, (const void **)&pScatterGatherCurrent->pvSeg, pPageLockCurrent); - else - rc = PDMDevHlpPhysGCPhys2CCPtr(pDevIns, GCPhysAddrDataBase, 0, &pScatterGatherCurrent->pvSeg, pPageLockCurrent); + /* The buffer is not scattered. */ + RTGCPHYS GCPhysAddrDataBase = (RTGCPHYS)pTaskState->CommandControlBlockGuest.u32PhysAddrData; - pScatterGatherCurrent->cbSeg = PAGE_SIZE; + AssertMsg(GCPhysAddrDataBase != 0, ("Physical address is 0\n")); - pPageLockCurrent++; - pScatterGatherCurrent++; - GCPhysAddrDataBase += PAGE_SIZE; - } + pTaskState->DataSeg.cbSeg = pTaskState->CommandControlBlockGuest.cbData; + pTaskState->DataSeg.pvSeg = RTMemAlloc(pTaskState->DataSeg.cbSeg); + if (!pTaskState->DataSeg.pvSeg) + return VERR_NO_MEMORY; + + Log(("Non scattered buffer:\n")); + Log(("u32PhysAddrData=%#x\n", pTaskState->CommandControlBlockGuest.u32PhysAddrData)); + Log(("cbData=%u\n", pTaskState->CommandControlBlockGuest.cbData)); + Log(("GCPhysAddrDataBase=0x%RGp\n", GCPhysAddrDataBase)); - /* Correct pointer of the first entry. */ - pTaskState->paScatterGather[0].pvSeg = (uint8_t *)pTaskState->paScatterGather[0].pvSeg + cbOffsetFirstPage; - pTaskState->paScatterGather[0].cbSeg -= cbOffsetFirstPage; - /* Correct size of the last entry. */ - pTaskState->paScatterGather[cPages-1].cbSeg = GCPhysAddrDataEnd - GCPhysAddrDataEndBase; - pTaskState->cScatterGather = cPages; - pTaskState->cbScatterGather = pTaskState->CommandControlBlockGuest.cbData; + /* Copy the data into the buffer. */ + PDMDevHlpPhysRead(pDevIns, GCPhysAddrDataBase, pTaskState->DataSeg.pvSeg, pTaskState->DataSeg.cbSeg); + } } - return rc; + return VINF_SUCCESS; } /** - * Free mapped pages and other allocated resources used for the scatter gather list. + * Free allocated resources used for the scatter gather list. * * @returns nothing. * @param pTaskState Pointer to the task state. */ -static void buslogicFreeGCDataBuffer(PBUSLOGICTASKSTATE pTaskState) +static void buslogicDataBufferFree(PBUSLOGICTASKSTATE pTaskState) { - PPGMPAGEMAPLOCK pPageMapLock = pTaskState->paPageLock; - PPDMDEVINS pDevIns = pTaskState->CTX_SUFF(pTargetDevice)->CTX_SUFF(pBusLogic)->CTX_SUFF(pDevIns); + PPDMDEVINS pDevIns = pTaskState->CTX_SUFF(pTargetDevice)->CTX_SUFF(pBusLogic)->CTX_SUFF(pDevIns); - for (uint32_t iPageLockCurrent = 0; iPageLockCurrent < pTaskState->cScatterGather; iPageLockCurrent++) + if ( (pTaskState->CommandControlBlockGuest.cbData > 0) + && ( (pTaskState->CommandControlBlockGuest.uDataDirection == BUSLOGIC_CCB_DIRECTION_IN) + || (pTaskState->CommandControlBlockGuest.uDataDirection == BUSLOGIC_CCB_DIRECTION_UNKNOWN))) { - PDMDevHlpPhysReleasePageMappingLock(pDevIns, pPageMapLock); - pPageMapLock++; + if ( (pTaskState->CommandControlBlockGuest.uOpcode == BUSLOGIC_CCB_OPCODE_INITIATOR_CCB_SCATTER_GATHER) + || (pTaskState->CommandControlBlockGuest.uOpcode == BUSLOGIC_CCB_OPCODE_INITIATOR_CCB_RESIDUAL_SCATTER_GATHER)) + { + uint32_t cScatterGatherGCRead; + uint32_t iScatterGatherEntry; + ScatterGatherEntry aScatterGatherReadGC[32]; /* Number of scatter gather list entries read from guest memory. */ + uint32_t cScatterGatherGCLeft = pTaskState->CommandControlBlockGuest.cbData / sizeof(ScatterGatherEntry); + RTGCPHYS GCPhysAddrScatterGatherCurrent = (RTGCPHYS)pTaskState->CommandControlBlockGuest.u32PhysAddrData; + uint8_t *pbData = (uint8_t *)pTaskState->DataSeg.pvSeg; + + do + { + cScatterGatherGCRead = (cScatterGatherGCLeft < RT_ELEMENTS(aScatterGatherReadGC)) + ? cScatterGatherGCLeft + : RT_ELEMENTS(aScatterGatherReadGC); + cScatterGatherGCLeft -= cScatterGatherGCRead; + + /* Read the SG entries. */ + PDMDevHlpPhysRead(pDevIns, GCPhysAddrScatterGatherCurrent, &aScatterGatherReadGC[0], + cScatterGatherGCRead * sizeof(ScatterGatherEntry)); + + for (iScatterGatherEntry = 0; iScatterGatherEntry < cScatterGatherGCRead; iScatterGatherEntry++) + { + RTGCPHYS GCPhysAddrDataBase; + size_t cbDataToTransfer; + + Log(("%s: iScatterGatherEntry=%u\n", __FUNCTION__, iScatterGatherEntry)); + + GCPhysAddrDataBase = (RTGCPHYS)aScatterGatherReadGC[iScatterGatherEntry].u32PhysAddrSegmentBase; + cbDataToTransfer = aScatterGatherReadGC[iScatterGatherEntry].cbSegment; + + Log(("%s: GCPhysAddrDataBase=%RGp cbDataToTransfer=%u\n", __FUNCTION__, GCPhysAddrDataBase, cbDataToTransfer)); + + PDMDevHlpPhysWrite(pDevIns, GCPhysAddrDataBase, pbData, cbDataToTransfer); + pbData += cbDataToTransfer; + } + + /* Set address to the next entries to read. */ + GCPhysAddrScatterGatherCurrent += cScatterGatherGCRead * sizeof(ScatterGatherEntry); + } while (cScatterGatherGCLeft > 0); + + } + else if (pTaskState->CommandControlBlockGuest.uOpcode == BUSLOGIC_CCB_OPCODE_INITIATOR_CCB) + { + /* The buffer is not scattered. */ + RTGCPHYS GCPhysAddrDataBase = (RTGCPHYS)pTaskState->CommandControlBlockGuest.u32PhysAddrData; + + AssertMsg(GCPhysAddrDataBase != 0, ("Physical address is 0\n")); + + Log(("Non scattered buffer:\n")); + Log(("u32PhysAddrData=%#x\n", pTaskState->CommandControlBlockGuest.u32PhysAddrData)); + Log(("cbData=%u\n", pTaskState->CommandControlBlockGuest.cbData)); + Log(("GCPhysAddrDataBase=0x%RGp\n", GCPhysAddrDataBase)); + + /* Copy the data into the guest memory. */ + PDMDevHlpPhysWrite(pDevIns, GCPhysAddrDataBase, pTaskState->DataSeg.pvSeg, pTaskState->DataSeg.cbSeg); + } } - /* @todo: optimize with caching. */ - RTMemFree(pTaskState->paPageLock); - RTMemFree(pTaskState->paScatterGather); - pTaskState->paPageLock = NULL; - pTaskState->paScatterGather = NULL; - pTaskState->cScatterGather = 0; - pTaskState->cbScatterGather = 0; + RTMemFree(pTaskState->DataSeg.pvSeg); + pTaskState->DataSeg.pvSeg = NULL; + pTaskState->DataSeg.cbSeg = 0; } /** @@ -1272,45 +1197,36 @@ static void buslogicFreeGCDataBuffer(PBUSLOGICTASKSTATE pTaskState) * @returns nothing. * @param pTaskState Pointer to the task state. */ -static void buslogicFreeGCSenseBuffer(PBUSLOGICTASKSTATE pTaskState) +static void buslogicSenseBufferFree(PBUSLOGICTASKSTATE pTaskState) { PPDMDEVINS pDevIns = pTaskState->CTX_SUFF(pTargetDevice)->CTX_SUFF(pBusLogic)->CTX_SUFF(pDevIns); + RTGCPHYS GCPhysAddrSenseBuffer = (RTGCPHYS)pTaskState->CommandControlBlockGuest.u32PhysAddrSenseData; + uint32_t cbSenseBuffer = pTaskState->CommandControlBlockGuest.cbSenseData; - PDMDevHlpPhysReleasePageMappingLock(pDevIns, &pTaskState->pPageLockSense); - pTaskState->pu8SenseBuffer = NULL; + /* Copy into guest memory. */ + PDMDevHlpPhysWrite(pDevIns, GCPhysAddrSenseBuffer, pTaskState->pbSenseBuffer, cbSenseBuffer); + + RTMemFree(pTaskState->pbSenseBuffer); + pTaskState->pbSenseBuffer = NULL; } /** - * Map the sense buffer into R3. + * Alloc the sense buffer. * * @returns VBox status code. * @param pTaskState Pointer to the task state. * @note Current assumption is that the sense buffer is not scattered and does not cross a page boundary. */ -static int buslogicMapGCSenseBufferIntoR3(PBUSLOGICTASKSTATE pTaskState) +static int buslogicSenseBufferAlloc(PBUSLOGICTASKSTATE pTaskState) { - int rc = VINF_SUCCESS; PPDMDEVINS pDevIns = pTaskState->CTX_SUFF(pTargetDevice)->CTX_SUFF(pBusLogic)->CTX_SUFF(pDevIns); - RTGCPHYS GCPhysAddrSenseBuffer = (RTGCPHYS)pTaskState->CommandControlBlockGuest.u32PhysAddrSenseData; -#ifdef RT_STRICT uint32_t cbSenseBuffer = pTaskState->CommandControlBlockGuest.cbSenseData; -#endif - RTGCPHYS GCPhysAddrSenseBufferBase = PAGE_ADDRESS(GCPhysAddrSenseBuffer); - - AssertMsg(GCPhysAddrSenseBuffer >= GCPhysAddrSenseBufferBase, - ("Impossible GCPhysAddrSenseBuffer < GCPhysAddrSenseBufferBase\n")); - - /* Sanity checks for the assumption. */ - AssertMsg(((GCPhysAddrSenseBuffer + cbSenseBuffer) < (GCPhysAddrSenseBufferBase + PAGE_SIZE)), - ("Sense buffer crosses page boundary\n")); - rc = PDMDevHlpPhysGCPhys2CCPtr(pDevIns, GCPhysAddrSenseBufferBase, 0, (void **)&pTaskState->pu8SenseBuffer, &pTaskState->pPageLockSense); - AssertMsgRC(rc, ("Mapping sense buffer failed rc=%Rrc\n", rc)); + pTaskState->pbSenseBuffer = (uint8_t *)RTMemAllocZ(cbSenseBuffer); + if (!pTaskState->pbSenseBuffer) + return VERR_NO_MEMORY; - /* Correct start address of the sense buffer. */ - pTaskState->pu8SenseBuffer += (GCPhysAddrSenseBuffer - GCPhysAddrSenseBufferBase); - - return rc; + return VINF_SUCCESS; } #endif /* IN_RING3 */ @@ -1586,8 +1502,7 @@ static int buslogicRegisterRead(PBUSLOGIC pBusLogic, unsigned iRegister, uint32_ break; } default: - AssertMsgFailed(("Register not available\n")); - rc = VERR_IOM_IOPORT_UNUSED; + *pu32 = UINT32_C(0xffffffff); } Log2(("%s: pu32=%p:{%.*Rhxs} iRegister=%d rc=%Rrc\n", @@ -1629,7 +1544,7 @@ static int buslogicRegisterWrite(PBUSLOGIC pBusLogic, unsigned iRegister, uint8_ case BUSLOGIC_REGISTER_COMMAND: { /* Fast path for mailbox execution command. */ - if ((uVal == BUSLOGICCOMMAND_EXECUTE_MAILBOX_COMMAND) && (pBusLogic->uOperationCode = 0xff)) + if ((uVal == BUSLOGICCOMMAND_EXECUTE_MAILBOX_COMMAND) && (pBusLogic->uOperationCode == 0xff)) { ASMAtomicIncU32(&pBusLogic->cMailboxesReady); if (!ASMAtomicXchgBool(&pBusLogic->fNotificationSend, true)) @@ -1830,8 +1745,8 @@ static int buslogicIsaIOPortRead (PPDMDEVINS pDevIns, void *pvUser, rc = vboxscsiReadRegister(&pBusLogic->VBoxSCSI, (Port - BUSLOGIC_ISA_IO_PORT), pu32); - Log2(("%s: pu32=%p:{%.*Rhxs} iRegister=%d rc=%Rrc\n", - __FUNCTION__, pu32, 1, pu32, (Port - BUSLOGIC_ISA_IO_PORT), rc)); + //Log2(("%s: pu32=%p:{%.*Rhxs} iRegister=%d rc=%Rrc\n", + // __FUNCTION__, pu32, 1, pu32, (Port - BUSLOGIC_ISA_IO_PORT), rc)); return rc; } @@ -2052,10 +1967,10 @@ static DECLCALLBACK(int) buslogicDeviceSCSIRequestCompleted(PPDMISCSIPORT pInter } else { - buslogicFreeGCDataBuffer(pTaskState); + buslogicDataBufferFree(pTaskState); - if (pTaskState->pu8SenseBuffer) - buslogicFreeGCSenseBuffer(pTaskState); + if (pTaskState->pbSenseBuffer) + buslogicSenseBufferFree(pTaskState); buslogicSendIncomingMailbox(pBusLogic, pTaskState, BUSLOGIC_MAILBOX_INCOMING_ADAPTER_STATUS_CMD_COMPLETED, @@ -2120,8 +2035,6 @@ static int buslogicProcessMailboxNext(PBUSLOGIC pBusLogic) if (pTaskState->MailboxGuest.u.out.uActionCode == BUSLOGIC_MAILBOX_OUTGOING_ACTION_START_COMMAND) { - bool fReadonly = false; - /* Fetch CCB now. */ RTGCPHYS GCPhysAddrCCB = (RTGCPHYS)pTaskState->MailboxGuest.u32PhysAddrCCB; PDMDevHlpPhysRead(pBusLogic->CTX_SUFF(pDevIns), GCPhysAddrCCB, @@ -2134,38 +2047,23 @@ static int buslogicProcessMailboxNext(PBUSLOGIC pBusLogic) buslogicDumpCCBInfo(&pTaskState->CommandControlBlockGuest); #endif - switch (pTaskState->CommandControlBlockGuest.uDataDirection) - { - case BUSLOGIC_CCB_DIRECTION_UNKNOWN: - case BUSLOGIC_CCB_DIRECTION_IN: - fReadonly = false; - break; - case BUSLOGIC_CCB_DIRECTION_OUT: - case BUSLOGIC_CCB_DIRECTION_NO_DATA: - fReadonly = true; - break; - default: - AssertMsgFailed(("Invalid data transfer direction type %u\n", - pTaskState->CommandControlBlockGuest.uDataDirection)); - } - - /* Map required buffers. */ - rc = buslogicMapGCDataBufIntoR3(pTaskState, fReadonly); - AssertMsgRC(rc, ("Mapping failed rc=%Rrc\n", rc)); + /* Alloc required buffers. */ + rc = buslogicDataBufferAlloc(pTaskState); + AssertMsgRC(rc, ("Alloc failed rc=%Rrc\n", rc)); if (pTaskState->CommandControlBlockGuest.cbSenseData) { - rc = buslogicMapGCSenseBufferIntoR3(pTaskState); + rc = buslogicSenseBufferAlloc(pTaskState); AssertMsgRC(rc, ("Mapping sense buffer failed rc=%Rrc\n", rc)); } /* Check if device is present on bus. If not return error immediately and don't process this further. */ if (!pBusLogic->aDeviceStates[pTaskState->CommandControlBlockGuest.uTargetId].fPresent) { - buslogicFreeGCDataBuffer(pTaskState); + buslogicDataBufferFree(pTaskState); - if (pTaskState->pu8SenseBuffer) - buslogicFreeGCSenseBuffer(pTaskState); + if (pTaskState->pbSenseBuffer) + buslogicSenseBufferFree(pTaskState); buslogicSendIncomingMailbox(pBusLogic, pTaskState, BUSLOGIC_MAILBOX_INCOMING_ADAPTER_STATUS_SCSI_SELECTION_TIMEOUT, @@ -2193,11 +2091,20 @@ static int buslogicProcessMailboxNext(PBUSLOGIC pBusLogic) pTaskState->PDMScsiRequest.cbCDB = pTaskState->CommandControlBlockGuest.cbCDB; pTaskState->PDMScsiRequest.pbCDB = pTaskState->CommandControlBlockGuest.aCDB; - pTaskState->PDMScsiRequest.cbScatterGather = pTaskState->cbScatterGather; - pTaskState->PDMScsiRequest.cScatterGatherEntries = pTaskState->cScatterGather; - pTaskState->PDMScsiRequest.paScatterGatherHead = pTaskState->paScatterGather; + if (pTaskState->DataSeg.cbSeg) + { + pTaskState->PDMScsiRequest.cbScatterGather = pTaskState->DataSeg.cbSeg; + pTaskState->PDMScsiRequest.cScatterGatherEntries = 1; + pTaskState->PDMScsiRequest.paScatterGatherHead = &pTaskState->DataSeg; + } + else + { + pTaskState->PDMScsiRequest.cbScatterGather = 0; + pTaskState->PDMScsiRequest.cScatterGatherEntries = 0; + pTaskState->PDMScsiRequest.paScatterGatherHead = NULL; + } pTaskState->PDMScsiRequest.cbSenseBuffer = pTaskState->CommandControlBlockGuest.cbSenseData; - pTaskState->PDMScsiRequest.pbSenseBuffer = pTaskState->pu8SenseBuffer; + pTaskState->PDMScsiRequest.pbSenseBuffer = pTaskState->pbSenseBuffer; pTaskState->PDMScsiRequest.pvUser = pTaskState; LogFlowFunc(("before increment %u\n", pTargetDevice->cOutstandingRequests)); diff --git a/src/VBox/Devices/Storage/DevLsiLogicSCSI.cpp b/src/VBox/Devices/Storage/DevLsiLogicSCSI.cpp index 2491f1d05..9c7569682 100644 --- a/src/VBox/Devices/Storage/DevLsiLogicSCSI.cpp +++ b/src/VBox/Devices/Storage/DevLsiLogicSCSI.cpp @@ -2141,7 +2141,18 @@ typedef struct LSILOGICSCSI # define LSILOGIC_REG_DOORBELL_GET_SIZE(x) (((x) & 0x00ff0000) >> 16) #define LSILOGIC_REG_WRITE_SEQUENCE 0x04 + #define LSILOGIC_REG_HOST_DIAGNOSTIC 0x08 +# define LSILOGIC_REG_HOST_DIAGNOSTIC_DIAG_MEM_ENABLE (RT_BIT(0)) +# define LSILOGIC_REG_HOST_DIAGNOSTIC_DISABLE_ARM (RT_BIT(1)) +# define LSILOGIC_REG_HOST_DIAGNOSTIC_RESET_ADAPTER (RT_BIT(2)) +# define LSILOGIC_REG_HOST_DIAGNOSTIC_DIAG_RW_ENABLE (RT_BIT(4)) +# define LSILOGIC_REG_HOST_DIAGNOSTIC_RESET_HISTORY (RT_BIT(5)) +# define LSILOGIC_REG_HOST_DIAGNOSTIC_FLASH_BAD_SIG (RT_BIT(6)) +# define LSILOGIC_REG_HOST_DIAGNOSTIC_DRWE (RT_BIT(7)) +# define LSILOGIC_REG_HOST_DIAGNOSTIC_PREVENT_IOC_BOOT (RT_BIT(9)) +# define LSILOGIC_REG_HOST_DIAGNOSTIC_CLEAR_FLASH_BAD_SIG (RT_BIT(10)) + #define LSILOGIC_REG_TEST_BASE_ADDRESS 0x0c #define LSILOGIC_REG_DIAG_RW_DATA 0x10 #define LSILOGIC_REG_DIAG_RW_ADDRESS 0x14 @@ -2888,6 +2899,18 @@ static int lsilogicRegisterWrite(PLSILOGICSCSI pThis, uint32_t uOffset, void *pv } break; } + case LSILOGIC_REG_HOST_DIAGNOSTIC: + { +#ifndef IN_RING3 + return VINF_IOM_HC_IOPORT_WRITE; +#else + if (u32 & LSILOGIC_REG_HOST_DIAGNOSTIC_RESET_ADAPTER) + { + lsilogicHardReset(pThis); + } + break; +#endif + } default: /* Ignore. */ { break; @@ -2963,24 +2986,15 @@ static int lsilogicRegisterRead(PLSILOGICSCSI pThis, uint32_t uOffset, void *pv, } case LSILOGIC_REG_HOST_DIAGNOSTIC: { - //AssertMsgFailed(("todo\n")); - break; - } - case LSILOGIC_REG_TEST_BASE_ADDRESS: - { - AssertMsgFailed(("todo\n")); + if (pThis->fDiagnosticEnabled) + *pu32 = LSILOGIC_REG_HOST_DIAGNOSTIC_DRWE; + else + *pu32 = 0; break; } + case LSILOGIC_REG_TEST_BASE_ADDRESS: /* The spec doesn't say anything about these registers, so we just ignore them */ case LSILOGIC_REG_DIAG_RW_DATA: - { - AssertMsgFailed(("todo\n")); - break; - } case LSILOGIC_REG_DIAG_RW_ADDRESS: - { - AssertMsgFailed(("todo\n")); - break; - } default: /* Ignore. */ { break; diff --git a/src/VBox/Devices/Storage/VHDHDDCore.cpp b/src/VBox/Devices/Storage/VHDHDDCore.cpp index 428607f93..43597538a 100644 --- a/src/VBox/Devices/Storage/VHDHDDCore.cpp +++ b/src/VBox/Devices/Storage/VHDHDDCore.cpp @@ -112,7 +112,7 @@ typedef struct VHDDynamicDiskHeader uint8_t ParentUuid[16]; uint32_t ParentTimeStamp; uint32_t Reserved0; - uint8_t ParentUnicodeName[512]; + uint16_t ParentUnicodeName[256]; VHDPLE ParentLocatorEntry[VHD_MAX_LOCATOR_ENTRIES]; uint8_t Reserved1[256]; } VHDDynamicDiskHeader; @@ -400,7 +400,7 @@ static uint32_t vhdChecksum(void *pHeader, uint32_t cbSize) return ~checksum; } -static int vhdFilenameToUtf16(const char *pszFilename, void *pvBuf, uint32_t cbBufSize, uint32_t *pcbActualSize) +static int vhdFilenameToUtf16(const char *pszFilename, uint16_t *pu16Buf, uint32_t cbBufSize, uint32_t *pcbActualSize, bool fBigEndian) { int rc; PRTUTF16 tmp16 = NULL; @@ -415,7 +415,12 @@ static int vhdFilenameToUtf16(const char *pszFilename, void *pvBuf, uint32_t cbB rc = VERR_FILENAME_TOO_LONG; goto out; } - memcpy(pvBuf, tmp16, cTmp16Len * sizeof(*tmp16)); + + if (fBigEndian) + for (unsigned i = 0; i < cTmp16Len; i++) + pu16Buf[i] = RT_H2BE_U16(tmp16[i]); + else + memcpy(pu16Buf, tmp16, cTmp16Len * sizeof(*tmp16)); if (pcbActualSize) *pcbActualSize = (uint32_t)(cTmp16Len * sizeof(*tmp16)); @@ -463,7 +468,7 @@ static int vhdLocatorUpdate(PVHDIMAGE pImage, PVHDPLE pLocator, const char *pszF break; case VHD_PLATFORM_CODE_W2RU: /* Update unicode relative name. */ - rc = vhdFilenameToUtf16(pszFilename, pvBuf, cbMaxLen, &cb); + rc = vhdFilenameToUtf16(pszFilename, (uint16_t *)pvBuf, cbMaxLen, &cb, false); if (RT_FAILURE(rc)) goto out; pLocator->u32DataLength = RT_H2BE_U32(cb); @@ -482,7 +487,7 @@ static int vhdLocatorUpdate(PVHDIMAGE pImage, PVHDPLE pLocator, const char *pszF RTMemTmpFree(pszTmp); goto out; } - rc = vhdFilenameToUtf16(pszTmp, pvBuf, cbMaxLen, &cb); + rc = vhdFilenameToUtf16(pszTmp, (uint16_t *)pvBuf, cbMaxLen, &cb, false); RTMemTmpFree(pszTmp); if (RT_FAILURE(rc)) goto out; @@ -529,7 +534,7 @@ static int vhdDynamicHeaderUpdate(PVHDIMAGE pImage) if (pImage->pszParentFilename) { rc = vhdFilenameToUtf16(RTPathFilename(pImage->pszParentFilename), - ddh.ParentUnicodeName, sizeof(ddh.ParentUnicodeName) - 1, NULL); + ddh.ParentUnicodeName, sizeof(ddh.ParentUnicodeName) - 1, NULL, true); if (RT_FAILURE(rc)) return rc; } @@ -1449,6 +1454,10 @@ static int vhdSetUuid(void *pBackendData, PCRTUUID pUuid) /* Update checksum. */ pImage->vhdFooterCopy.Checksum = 0; pImage->vhdFooterCopy.Checksum = RT_H2BE_U32(vhdChecksum(&pImage->vhdFooterCopy, sizeof(VHDFooter))); + + /* Need to update the dynamic disk header to update the disk footer copy at the beginning. */ + if (!(pImage->uImageFlags & VD_IMAGE_FLAGS_FIXED)) + pImage->fDynHdrNeedsUpdate = true; rc = VINF_SUCCESS; } else @@ -1884,12 +1893,13 @@ static int vhdCreateImage(PVHDIMAGE pImage, uint64_t cbSize, } Footer.DataOffset = RT_H2BE_U64(pImage->u64DataOffset); - pImage->vhdFooterCopy = Footer; /* Compute and update the footer checksum. */ Footer.Checksum = 0; Footer.Checksum = RT_H2BE_U32(vhdChecksum(&Footer, sizeof(Footer))); + pImage->vhdFooterCopy = Footer; + /* Store the footer */ rc = vhdFileWriteSync(pImage, pImage->uCurrentEndOfFile, &Footer, sizeof(Footer), NULL); if (RT_FAILURE(rc)) diff --git a/src/VBox/Frontends/VBoxFB/VBoxFB.cpp b/src/VBox/Frontends/VBoxFB/VBoxFB.cpp index 75092313c..b609450f2 100644 --- a/src/VBox/Frontends/VBoxFB/VBoxFB.cpp +++ b/src/VBox/Frontends/VBoxFB/VBoxFB.cpp @@ -65,7 +65,7 @@ int main(int argc, char *argv[]) }; printf("VirtualBox DirectFB GUI built %s %s\n" - "(C) 2004-2009 Sun Microsystems, Inc.\n" + "(C) 2004-" VBOX_C_YEAR " " VBOX_VENDOR "\n" "(C) 2004-2005 secunet Security Networks AG\n", __DATE__, __TIME__); for (;;) diff --git a/src/VBox/Frontends/VBoxHeadless/VBoxHeadless.cpp b/src/VBox/Frontends/VBoxHeadless/VBoxHeadless.cpp index 9412c0e45..4d05273d2 100644 --- a/src/VBox/Frontends/VBoxHeadless/VBoxHeadless.cpp +++ b/src/VBox/Frontends/VBoxHeadless/VBoxHeadless.cpp @@ -451,10 +451,9 @@ extern "C" DECLEXPORT (int) TrustedMain (int argc, char **argv, char **envp) RTEnvUnset("DISPLAY"); LogFlow (("VBoxHeadless STARTED.\n")); - RTPrintf ("VirtualBox Headless Interface %s\n" - "(C) 2008-2009 Sun Microsystems, Inc.\n" - "All rights reserved.\n\n", - VBOX_VERSION_STRING); + RTPrintf (VBOX_PRODUCT " Headless Interface " VBOX_VERSION_STRING "\n" + "(C) 2008-" VBOX_C_YEAR " " VBOX_VENDOR "\n" + "All rights reserved.\n\n"); Bstr id; /* the below cannot be Bstr because on Linux Bstr doesn't work until XPCOM (nsMemory) is initialized */ diff --git a/src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp b/src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp index 082d7d6d5..2e1572e83 100644 --- a/src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp +++ b/src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp @@ -40,9 +40,9 @@ void showLogo(void) if (!s_fShown) { - RTPrintf("VirtualBox Command Line Management Interface Version " + RTPrintf(VBOX_PRODUCT" Command Line Management Interface Version " VBOX_VERSION_STRING "\n" - "(C) 2005-2009 Sun Microsystems, Inc.\n" + "(C) 2005-" VBOX_C_YEAR " " VBOX_VENDOR "\n" "All rights reserved.\n" "\n"); s_fShown = true; @@ -354,6 +354,7 @@ void printUsage(USAGECATEGORY u64Cmd) " take <name> [--description <desc>] [--pause] |\n" " delete <uuid>|<name> |\n" " restore <uuid>|<name> |\n" + " restorecurrent |\n" " edit <uuid>|<name>|--current\n" " [--name <name>]\n" " [--description <desc>] |\n" diff --git a/src/VBox/Frontends/VBoxManage/VBoxManageSnapshot.cpp b/src/VBox/Frontends/VBoxManage/VBoxManageSnapshot.cpp index ad713a913..13fa43ec4 100644 --- a/src/VBox/Frontends/VBoxManage/VBoxManageSnapshot.cpp +++ b/src/VBox/Frontends/VBoxManage/VBoxManageSnapshot.cpp @@ -252,7 +252,10 @@ int handleSnapshot(HandlerArg *a) CHECK_ERROR_BREAK(a->session, COMGETTER(Console)(console.asOutParam())); /* switch based on the command */ - bool fDelete = false, fRestore = false; + bool fDelete = false, + fRestore = false, + fRestoreCurrent = false; + if (!strcmp(a->argv[1], "take")) { /* there must be a name */ @@ -338,10 +341,20 @@ int handleSnapshot(HandlerArg *a) } else if ( (fDelete = !strcmp(a->argv[1], "delete")) || (fRestore = !strcmp(a->argv[1], "restore")) + || (fRestoreCurrent = !strcmp(a->argv[1], "restorecurrent")) ) { + if (fRestoreCurrent) + { + if (a->argc > 2) + { + errorSyntax(USAGE_SNAPSHOT, "Too many arguments"); + rc = E_FAIL; + break; + } + } /* exactly one parameter: snapshot name */ - if (a->argc != 3) + else if (a->argc != 3) { errorSyntax(USAGE_SNAPSHOT, "Expecting snapshot name only"); rc = E_FAIL; @@ -349,28 +362,35 @@ int handleSnapshot(HandlerArg *a) } ComPtr<ISnapshot> pSnapshot; + ComPtr<IProgress> pProgress; + Bstr bstrSnapGuid; - /* assume it's a UUID */ - Bstr guidSnap(a->argv[2]); - if (!guidSnap.isEmpty()) + if (fRestoreCurrent) { - CHECK_ERROR_BREAK(pMachine, GetSnapshot(guidSnap, pSnapshot.asOutParam())); + CHECK_ERROR_BREAK(pMachine, COMGETTER(CurrentSnapshot)(pSnapshot.asOutParam())); + CHECK_ERROR_BREAK(pSnapshot, COMGETTER(Id)(bstrSnapGuid.asOutParam())); } else { - /* then it must be a name */ - CHECK_ERROR_BREAK(pMachine, FindSnapshot(Bstr(a->argv[2]), pSnapshot.asOutParam())); - pSnapshot->COMGETTER(Id)(guidSnap.asOutParam()); + // restore or delete snapshot: then resolve cmd line argument to snapshot instance + // assume it's a UUID + bstrSnapGuid = a->argv[2]; + if (FAILED(pMachine->GetSnapshot(bstrSnapGuid, pSnapshot.asOutParam()))) + { + // then it must be a name + CHECK_ERROR_BREAK(pMachine, FindSnapshot(Bstr(a->argv[2]), pSnapshot.asOutParam())); + CHECK_ERROR_BREAK(pSnapshot, COMGETTER(Id)(bstrSnapGuid.asOutParam())); + } } - ComPtr<IProgress> pProgress; if (fDelete) { - CHECK_ERROR_BREAK(console, DeleteSnapshot(guidSnap, pProgress.asOutParam())); + CHECK_ERROR_BREAK(console, DeleteSnapshot(bstrSnapGuid, pProgress.asOutParam())); } else { - // must be restore + // restore or restore current + RTPrintf("Restoring snapshot %ls\n", bstrSnapGuid.raw()); CHECK_ERROR_BREAK(console, RestoreSnapshot(pSnapshot, pProgress.asOutParam())); } diff --git a/src/VBox/Frontends/VBoxSDL/VBoxSDL.cpp b/src/VBox/Frontends/VBoxSDL/VBoxSDL.cpp index b4eef3f82..a23341cbc 100644 --- a/src/VBox/Frontends/VBoxSDL/VBoxSDL.cpp +++ b/src/VBox/Frontends/VBoxSDL/VBoxSDL.cpp @@ -973,8 +973,8 @@ DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) SDL_Event EvHKeyDown2; LogFlow(("SDL GUI started\n")); - RTPrintf("Sun VirtualBox SDL GUI version %s\n" - "(C) 2005-2009 Sun Microsystems, Inc.\n" + RTPrintf(VBOX_PRODUCT " SDL GUI version %s\n" + "(C) 2005-" VBOX_C_YEAR " " VBOX_VENDOR "\n" "All rights reserved.\n\n", VBOX_VERSION_STRING); @@ -985,48 +985,6 @@ DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) return 1; } - rc = com::Initialize(); - if (FAILED(rc)) - { - RTPrintf("Error: COM initialization failed, rc = 0x%x!\n", rc); - return 1; - } - - do - { - // scopes all the stuff till shutdown - //////////////////////////////////////////////////////////////////////////// - - ComPtr <IVirtualBox> virtualBox; - ComPtr <ISession> session; - bool sessionOpened = false; - - rc = virtualBox.createLocalObject (CLSID_VirtualBox); - if (FAILED(rc)) - { - com::ErrorInfo info; - if (info.isFullAvailable()) - PrintError("Failed to create VirtualBox object", - info.getText().raw(), info.getComponent().raw()); - else - RTPrintf("Failed to create VirtualBox object! No error information available (rc = 0x%x).\n", rc); - break; - } - rc = session.createInprocObject (CLSID_Session); - if (FAILED(rc)) - { - RTPrintf("Failed to create session object, rc = 0x%x!\n", rc); - break; - } - - EventQueue* eventQ = com::EventQueue::getMainEventQueue(); - - /* Get the number of network adapters */ - ULONG NetworkAdapterCount = 0; - ComPtr <ISystemProperties> sysInfo; - virtualBox->COMGETTER(SystemProperties) (sysInfo.asOutParam()); - sysInfo->COMGETTER (NetworkAdapterCount) (&NetworkAdapterCount); - // command line argument parsing stuff for (int curArg = 1; curArg < argc; curArg++) { @@ -1040,8 +998,7 @@ DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) if (++curArg >= argc) { RTPrintf("Error: VM not specified (UUID or name)!\n"); - rc = E_FAIL; - break; + return 1; } // first check if a UUID was supplied if (RT_FAILURE(RTUuidFromStr(uuidVM.ptr(), argv[curArg]))) @@ -1056,8 +1013,7 @@ DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) if (++curArg >= argc) { RTPrintf("Error: missing argument for comment!\n"); - rc = E_FAIL; - break; + return 1; } } else if ( !strcmp(argv[curArg], "--boot") @@ -1066,8 +1022,7 @@ DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) if (++curArg >= argc) { RTPrintf("Error: missing argument for boot drive!\n"); - rc = E_FAIL; - break; + return 1; } switch (argv[curArg][0]) { @@ -1098,12 +1053,9 @@ DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) default: { RTPrintf("Error: wrong argument for boot drive!\n"); - rc = E_FAIL; - break; + return 1; } } - if (FAILED (rc)) - break; } else if ( !strcmp(argv[curArg], "--memory") || !strcmp(argv[curArg], "-memory") @@ -1112,8 +1064,7 @@ DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) if (++curArg >= argc) { RTPrintf("Error: missing argument for memory size!\n"); - rc = E_FAIL; - break; + return 1; } memorySize = atoi(argv[curArg]); } @@ -1123,8 +1074,7 @@ DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) if (++curArg >= argc) { RTPrintf("Error: missing argument for vram size!\n"); - rc = E_FAIL; - break; + return 1; } vramSize = atoi(argv[curArg]); } @@ -1148,8 +1098,7 @@ DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) if (curArg + 3 >= argc) { RTPrintf("Error: missing arguments for fixed video mode!\n"); - rc = E_FAIL; - break; + return 1; } fixedWidth = atoi(argv[++curArg]); fixedHeight = atoi(argv[++curArg]); @@ -1177,8 +1126,7 @@ DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) if (++curArg >= argc) { RTPrintf("Error: missing a string of disabled hostkey combinations\n"); - rc = E_FAIL; - break; + return 1; } gHostKeyDisabledCombinations = argv[curArg]; size_t cch = strlen(gHostKeyDisabledCombinations); @@ -1188,12 +1136,9 @@ DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) { RTPrintf("Error: <hostkey> + '%c' is not a valid combination\n", gHostKeyDisabledCombinations[i]); - rc = E_FAIL; - break; + return 1; } } - if (rc == E_FAIL) - break; } else if ( !strcmp(argv[curArg], "--nograbonclick") || !strcmp(argv[curArg], "-nograbonclick")) @@ -1211,8 +1156,7 @@ DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) if (++curArg >= argc) { RTPrintf("Error: missing file name for --pidfile!\n"); - rc = E_FAIL; - break; + return 1; } gpszPidFile = argv[curArg]; } @@ -1222,8 +1166,7 @@ DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) if (++curArg >= argc) { RTPrintf("Error: missing file name for first hard disk!\n"); - rc = E_FAIL; - break; + return 1; } /* resolve it. */ if (RTPathExists(argv[curArg])) @@ -1231,8 +1174,7 @@ DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) if (!hdaFile) { RTPrintf("Error: The path to the specified harddisk, '%s', could not be resolved.\n", argv[curArg]); - rc = E_FAIL; - break; + return 1; } } else if ( !strcmp(argv[curArg], "--fda") @@ -1241,8 +1183,7 @@ DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) if (++curArg >= argc) { RTPrintf("Error: missing file/device name for first floppy disk!\n"); - rc = E_FAIL; - break; + return 1; } /* resolve it. */ if (RTPathExists(argv[curArg])) @@ -1250,8 +1191,7 @@ DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) if (!fdaFile) { RTPrintf("Error: The path to the specified floppy disk, '%s', could not be resolved.\n", argv[curArg]); - rc = E_FAIL; - break; + return 1; } } else if ( !strcmp(argv[curArg], "--cdrom") @@ -1260,8 +1200,7 @@ DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) if (++curArg >= argc) { RTPrintf("Error: missing file/device name for cdrom!\n"); - rc = E_FAIL; - break; + return 1; } /* resolve it. */ if (RTPathExists(argv[curArg])) @@ -1269,8 +1208,7 @@ DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) if (!cdromFile) { RTPrintf("Error: The path to the specified cdrom, '%s', could not be resolved.\n", argv[curArg]); - rc = E_FAIL; - break; + return 1; } } #if defined(RT_OS_LINUX) && defined(VBOXSDL_WITH_X11) @@ -1314,8 +1252,7 @@ DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) if (++curArg >= argc) { RTPrintf("Error: missing font file name for secure label!\n"); - rc = E_FAIL; - break; + return 1; } secureLabelFontFile = argv[curArg]; } @@ -1325,8 +1262,7 @@ DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) if (++curArg >= argc) { RTPrintf("Error: missing font point size for secure label!\n"); - rc = E_FAIL; - break; + return 1; } secureLabelPointSize = atoi(argv[curArg]); } @@ -1336,8 +1272,7 @@ DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) if (++curArg >= argc) { RTPrintf("Error: missing font pixel offset for secure label!\n"); - rc = E_FAIL; - break; + return 1; } secureLabelFontOffs = atoi(argv[curArg]); } @@ -1347,8 +1282,7 @@ DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) if (++curArg >= argc) { RTPrintf("Error: missing text color value for secure label!\n"); - rc = E_FAIL; - break; + return 1; } sscanf(argv[curArg], "%X", &secureLabelColorFG); } @@ -1358,8 +1292,7 @@ DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) if (++curArg >= argc) { RTPrintf("Error: missing background color value for secure label!\n"); - rc = E_FAIL; - break; + return 1; } sscanf(argv[curArg], "%X", &secureLabelColorBG); } @@ -1401,15 +1334,13 @@ DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) if (++curArg >= argc) { RTPrintf("Error: missing the rate value for the --warpdrive option!\n"); - rc = E_FAIL; - break; + return 1; } u32WarpDrive = RTStrToUInt32(argv[curArg]); if (u32WarpDrive < 2 || u32WarpDrive > 20000) { RTPrintf("Error: the warp drive rate is restricted to [2..20000]. (%d)\n", u32WarpDrive); - rc = E_FAIL; - break; + return 1; } } #endif /* VBOXSDL_ADVANCED_OPTIONS */ @@ -1427,8 +1358,7 @@ DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) if (++curArg + 1 >= argc) { RTPrintf("Error: not enough arguments for host keys!\n"); - rc = E_FAIL; - break; + return 1; } gHostKeySym1 = atoi(argv[curArg++]); if (curArg + 1 < argc && (argv[curArg+1][0] == '0' || atoi(argv[curArg+1]) > 0)) @@ -1449,8 +1379,44 @@ DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) return 1; } } + + rc = com::Initialize(); + if (FAILED(rc)) + { + RTPrintf("Error: COM initialization failed, rc = 0x%x!\n", rc); + return 1; + } + + /* NOTE: do not convert the following scope to a "do {} while (0);", as + * this would make it all too tempting to use "break;" incorrectly - it + * would skip over the cleanup. */ + { + // scopes all the stuff till shutdown + //////////////////////////////////////////////////////////////////////////// + + ComPtr <IVirtualBox> virtualBox; + ComPtr <ISession> session; + bool sessionOpened = false; + EventQueue* eventQ = com::EventQueue::getMainEventQueue(); + const CLSID sessionID = CLSID_Session; + + rc = virtualBox.createLocalObject(CLSID_VirtualBox); + if (FAILED(rc)) + { + com::ErrorInfo info; + if (info.isFullAvailable()) + PrintError("Failed to create VirtualBox object", + info.getText().raw(), info.getComponent().raw()); + else + RTPrintf("Failed to create VirtualBox object! No error information available (rc = 0x%x).\n", rc); + goto leave; + } + rc = session.createInprocObject(sessionID); if (FAILED(rc)) - break; + { + RTPrintf("Failed to create session object, rc = 0x%x!\n", rc); + goto leave; + } /* * Do we have a name but no UUID? @@ -1782,7 +1748,9 @@ DECLEXPORT(int) TrustedMain(int argc, char **argv, char **envp) gProgress = NULL; ComPtr<ISnapshot> pCurrentSnapshot; - CHECK_ERROR_BREAK(gMachine, COMGETTER(CurrentSnapshot)(pCurrentSnapshot.asOutParam())); + CHECK_ERROR(gMachine, COMGETTER(CurrentSnapshot)(pCurrentSnapshot.asOutParam())); + if (FAILED(rc)) + goto leave; CHECK_ERROR(gConsole, RestoreSnapshot(pCurrentSnapshot, gProgress.asOutParam())); rc = gProgress->WaitForCompletion(-1); @@ -2787,16 +2755,17 @@ leave: /** @todo power off paused VMs too? */ ) ) + do { cbConsoleImpl->ignorePowerOffEvents(true); - ComPtr <IProgress> progress; + ComPtr<IProgress> progress; CHECK_ERROR_BREAK(gConsole, PowerDown(progress.asOutParam())); - CHECK_ERROR_BREAK (progress, WaitForCompletion (-1)); + CHECK_ERROR_BREAK(progress, WaitForCompletion(-1)); BOOL completed; - CHECK_ERROR_BREAK (progress, COMGETTER(Completed) (&completed)); + CHECK_ERROR_BREAK(progress, COMGETTER(Completed)(&completed)); ASSERT (completed); LONG hrc; - CHECK_ERROR_BREAK (progress, COMGETTER(ResultCode) (&hrc)); + CHECK_ERROR_BREAK(progress, COMGETTER(ResultCode)(&hrc)); if (FAILED(hrc)) { com::ErrorInfo info; @@ -2807,7 +2776,7 @@ leave: RTPrintf("Failed to power down virtual machine! No error information available (rc = 0x%x).\n", hrc); break; } - } + } while (0); /* * Now we discard all settings so that our changes will @@ -2896,6 +2865,11 @@ leave: if (gLibrarySDL_ttf) RTLdrClose(gLibrarySDL_ttf); #endif + + /* VirtualBox callback unregistration. */ + if (!virtualBox.isNull() && !callback.isNull()) + virtualBox->UnregisterCallback(callback); + LogFlow(("Releasing machine, session...\n")); gMachine = NULL; session = NULL; @@ -2905,18 +2879,17 @@ leave: // end "all-stuff" scope //////////////////////////////////////////////////////////////////////////// } - while (0); /* Must be before com::Shutdown() */ callback.setNull(); consoleCallback.setNull(); - + LogFlow(("Uninitializing COM...\n")); com::Shutdown(); LogFlow(("Returning from main()!\n")); RTLogFlush(NULL); - return FAILED (rc) ? 1 : 0; + return FAILED(rc) ? 1 : 0; } @@ -4269,16 +4242,11 @@ static void UpdateTitlebar(TitlebarMode mode, uint32_t u32User) char szPrevTitle[1024]; strcpy(szPrevTitle, szTitle); - - strcpy(szTitle, "Sun VirtualBox - "); - Bstr name; gMachine->COMGETTER(Name)(name.asOutParam()); - if (name) - strcat(szTitle, Utf8Str(name).raw()); - else - strcat(szTitle, "<noname>"); + RTStrPrintf(szTitle, sizeof(szTitle), "%s - " VBOX_PRODUCT, + name ? Utf8Str(name).raw() : "<noname>"); /* which mode are we in? */ switch (mode) @@ -4288,15 +4256,15 @@ static void UpdateTitlebar(TitlebarMode mode, uint32_t u32User) MachineState_T machineState; gMachine->COMGETTER(State)(&machineState); if (machineState == MachineState_Paused) - strcat(szTitle, " - [Paused]"); + RTStrPrintf(szTitle + strlen(szTitle), sizeof(szTitle) - strlen(szTitle), " - [Paused]"); if (gfGrabbed) - strcat(szTitle, " - [Input captured]"); + RTStrPrintf(szTitle + strlen(szTitle), sizeof(szTitle) - strlen(szTitle), " - [Input captured]"); +#if defined(DEBUG) || defined(VBOX_WITH_STATISTICS) // do we have a debugger interface if (gMachineDebugger) { -#if defined(DEBUG) || defined(VBOX_WITH_STATISTICS) // query the machine state BOOL recompileSupervisor = FALSE; BOOL recompileUser = FALSE; @@ -4324,13 +4292,8 @@ static void UpdateTitlebar(TitlebarMode mode, uint32_t u32User) RTStrPrintf(psz, &szTitle[sizeof(szTitle)] - psz, " WD=%d%%]", virtualTimeRate); else RTStrPrintf(psz, &szTitle[sizeof(szTitle)] - psz, "]"); -#else - BOOL hwVirtEnabled = FALSE; - gMachineDebugger->COMGETTER(HWVirtExEnabled)(&hwVirtEnabled); - RTStrPrintf(szTitle + strlen(szTitle), sizeof(szTitle) - strlen(szTitle), - "%s", hwVirtEnabled ? " (HWVirtEx)" : ""); -#endif /* DEBUG */ } +#endif /* DEBUG || VBOX_WITH_STATISTICS */ break; } @@ -4342,7 +4305,8 @@ static void UpdateTitlebar(TitlebarMode mode, uint32_t u32User) MachineState_T machineState; gMachine->COMGETTER(State)(&machineState); if (machineState == MachineState_Starting) - strcat(szTitle, " - Starting..."); + RTStrPrintf(szTitle + strlen(szTitle), sizeof(szTitle) - strlen(szTitle), + " - Starting..."); else if (machineState == MachineState_Restoring) { ULONG cPercentNow; @@ -4402,7 +4366,7 @@ static void UpdateTitlebar(TitlebarMode mode, uint32_t u32User) #ifdef VBOX_WIN32_UI setUITitle(szTitle); #else - SDL_WM_SetCaption(szTitle, "Sun VirtualBox"); + SDL_WM_SetCaption(szTitle, VBOX_PRODUCT); #endif } diff --git a/src/VBox/Frontends/VBoxShell/vboxinfo.vbs b/src/VBox/Frontends/VBoxShell/vboxinfo.vbs index 142ad865a..3e1db65cc 100644 --- a/src/VBox/Frontends/VBoxShell/vboxinfo.vbs +++ b/src/VBox/Frontends/VBoxShell/vboxinfo.vbs @@ -1,18 +1,18 @@ '
-' Copyright (C) 2009 Sun Microsystems, Inc.
-'
-' This file is part of VirtualBox Open Source Edition (OSE), as
-' available from http://www.virtualbox.org. This file is free software;
-' you can redistribute it and/or modify it under the terms of the GNU
-' General Public License (GPL) as published by the Free Software
-' Foundation, in version 2 as it comes in the "COPYING" file of the
-' VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-' hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-'
-' Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
-' Clara, CA 95054 USA or visit http://www.sun.com if you need
-' additional information or have any questions.
-'
+' Copyright (C) 2009 Sun Microsystems, Inc. +' +' This file is part of VirtualBox Open Source Edition (OSE), as +' available from http://www.virtualbox.org. This file is free software; +' you can redistribute it and/or modify it under the terms of the GNU +' General Public License (GPL) as published by the Free Software +' Foundation, in version 2 as it comes in the "COPYING" file of the +' VirtualBox OSE distribution. VirtualBox OSE is distributed in the +' hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +' +' Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa +' Clara, CA 95054 USA or visit http://www.sun.com if you need +' additional information or have any questions. +' Sub Print(str)
Wscript.Echo str
diff --git a/src/VBox/Frontends/VirtualBox/VBoxUI.pro b/src/VBox/Frontends/VirtualBox/VBoxUI.pro index af741c793..523f89244 100644 --- a/src/VBox/Frontends/VirtualBox/VBoxUI.pro +++ b/src/VBox/Frontends/VirtualBox/VBoxUI.pro @@ -66,6 +66,7 @@ TRANSLATIONS = \ nls/VirtualBox_tr.ts \ nls/VirtualBox_id.ts \ nls/VirtualBox_ca.ts \ + nls/VirtualBox_ca_VA.ts \ nls/VirtualBox_sk.ts \ nls/VirtualBox_eu.ts \ nls/VirtualBox_nl.ts \ diff --git a/src/VBox/Frontends/VirtualBox/nls/ApprovedLanguages.kmk b/src/VBox/Frontends/VirtualBox/nls/ApprovedLanguages.kmk index a11666967..0e3ae4f54 100644 --- a/src/VBox/Frontends/VirtualBox/nls/ApprovedLanguages.kmk +++ b/src/VBox/Frontends/VirtualBox/nls/ApprovedLanguages.kmk @@ -44,6 +44,7 @@ VBOX_APPROVED_GUI_LANGUAGES := \ sk \ eu \ ca \ + ca_VA \ id \ tr \ km_KH \ diff --git a/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ca_VA.ts b/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ca_VA.ts new file mode 100644 index 000000000..f94c2ff2d --- /dev/null +++ b/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ca_VA.ts @@ -0,0 +1,10786 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="ca-va"> +<context> + <name>@@@</name> + <message> + <source>English</source> + <comment>Native language name</comment> + <translation>Català (valencià )</translation> + </message> + <message> + <source>--</source> + <comment>Native language country name (empty if this language is for all countries)</comment> + <translation></translation> + </message> + <message> + <source>English</source> + <comment>Language name, in English</comment> + <translation>Catalan (Valencian)</translation> + </message> + <message> + <source>--</source> + <comment>Language country name, in English (empty if native country name is empty)</comment> + <translation></translation> + </message> + <message> + <source>Sun Microsystems, Inc.</source> + <comment>Comma-separated list of translators</comment> + <translation>Vicent Fornés, Pau Iranzo <info@somgnu.cat>.</translation> + </message> +</context> +<context> + <name>AttachmentsModel</name> + <message> + <source>Double-click to add a new attachment</source> + <translation type="obsolete">Doble clic per afegir una nova adjunció</translation> + </message> + <message> + <source>Hard Disk</source> + <translation type="obsolete">Disc dur</translation> + </message> + <message> + <source>Slot</source> + <translation type="obsolete">Ranura</translation> + </message> +</context> +<context> + <name>BootItemsList</name> + <message> + <source>Move Up (Ctrl-Up)</source> + <translation type="obsolete">Mou amunt (Ctrl+Fletxa amunt)</translation> + </message> + <message> + <source>Move Down (Ctrl-Down)</source> + <translation type="obsolete">Mou avall (Ctrl+Fletxa avall)</translation> + </message> + <message> + <source>Moves the selected boot device up.</source> + <translation type="obsolete">Mou amunt el dispositiu d'arrecada seleccionat.</translation> + </message> + <message> + <source>Moves the selected boot device down.</source> + <translation type="obsolete">Mou avall el dispositiu d'arrencada seleccionat.</translation> + </message> +</context> +<context> + <name>BootItemsTable</name> + <message> + <source>Defines the boot device order. Use the checkboxes on the left to enable or disable individual boot devices. Move items up and down to change the device order.</source> + <translation type="obsolete">Definiu l'orde dels dispositius d'arrencada. Useu les caseles de selecció a l'esquerra per activar o desactivar els dispositius d'arrencada individuals. Moveu els elements amunt i avall per a canviar l'orde dels dispositius.</translation> + </message> +</context> +<context> + <name>HDItemsModel</name> + <message> + <source>Double-click to add a new attachment</source> + <translation type="obsolete">Doble clic per afegir una nova adjunció</translation> + </message> + <message> + <source>Hard Disk</source> + <translation type="obsolete">Disc dur</translation> + </message> + <message> + <source>Slot</source> + <translation type="obsolete">Ranura</translation> + </message> +</context> +<context> + <name>QApplication</name> + <message> + <source>This error means that the kernel driver was either not able to allocate enough memory or that some mapping operation failed.<br/><br/>There are known problems with Linux 2.6.29. If you are running such a kernel, please edit /usr/src/vboxdrv-*/Makefile and enable <i>VBOX_USE_INSERT_PAGE = 1</i>. After that, re-compile the kernel module by executing<br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>as root.</source> + <translation type="obsolete">Este error significa que el controlador del nucli no ha pogut assignar memòria suficient o bé alguna operació de mapejat ha fallat.<br/><br/>Existeixen alguns problemes coneguts amb el nucli Linux 2.6.29. Si esteu executant este nucli, editeu el fitxer /usr/src/vboxdrv-*/Makefile i habiliteu <i>VBOX_USE_INSERT_PAGE = 1</i>. Després d'això, torneu a compilar el mòdul executant com a root a una terminal l'orde <br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>.</translation> + </message> + <message> + <source>The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing<br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>as root. Users of Ubuntu, Fedora or Mandriva should install the DKMS package first. This package keeps track of Linux kernel changes and recompiles the vboxdrv kernel module if necessary.</source> + <translation>El controlador del nucli del VirtualBox (vboxdrv) no s'ha carregat o existeix un problema de permisos amb /dev/vboxdrv. Torneu a configurar el mòdul del nucli executant com a root a una terminal <br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>. Usuaris d'Ubuntu, Fedora o Mandriva haurien d'instal·lar abans el paquet DKMS. Este paquet manté actiu el mòdul quan hi ha canvis al nucli i el recompila si és necessari.</translation> + </message> + <message> + <source>Make sure the kernel module has been loaded successfully.</source> + <translation>Assegureu-vos que el mòdul del nucli s'ha carregat correctament.</translation> + </message> + <message> + <source>Executable <b>%1</b> requires Qt %2.x, found Qt %3.</source> + <translation>L'executable <b>%1</b> necessita Qt %2.x, però s'ha trobat Qt %3.</translation> + </message> + <message> + <source>Incompatible Qt Library Error</source> + <translation>S'ha produït un error de biblioteca Qt incompatible</translation> + </message> + <message> + <source>VirtualBox - Runtime Error</source> + <translation>VirtualBox - Error d'execució</translation> + </message> + <message> + <source><b>Cannot access the kernel driver!</b><br/><br/></source> + <translation><b>No es pot accedir al controlador del nucli</b><br/><br/></translation> + </message> + <message> + <source>Kernel driver not accessible</source> + <translation>No es pot accedir al controlador del nucli</translation> + </message> + <message> + <source>Unknown error %2 during initialization of the Runtime</source> + <translation>S'ha produït un error desconegut %2 quan s'iniciava l'execució</translation> + </message> + <message> + <source>VirtualBox - Error In %1</source> + <translation>VirtualBox - Error en %1</translation> + </message> + <message> + <source><html><b>%1 (rc=%2)</b><br/><br/></source> + <translation><html><b>%1 (rc=%2)</b><br/><br/></translation> + </message> + <message> + <source>Please try reinstalling VirtualBox.</source> + <translation>Hauria d'ajudar-vos a tornar a instal·lar VirtualBox.</translation> + </message> + <message> + <source>The VirtualBox kernel modules do not match this version of VirtualBox. The installation of VirtualBox was apparently not successful. Please try completely uninstalling and reinstalling VirtualBox.</source> + <translation>Els mòduls del nucli del VirtualBox no coincideixen amb esta versió del VirtualBox. La instal·lació no s'ha completat. Proveu desinstal·lant i tornant a instal·lar el VirtualBox.</translation> + </message> + <message> + <source>The VirtualBox kernel modules do not match this version of VirtualBox. The installation of VirtualBox was apparently not successful. Executing<br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>may correct this. Make sure that you do not mix the OSE version and the PUEL version of VirtualBox.</source> + <translation>Els mòduls del nucli del VirtualBox no coincideixen amb esta versió del VirtualBox. La instal·lació no s'ha completat. Proveu a executar<br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/> per resoldre el problema. Assegureu-vos que no barrejeu la versió OSE (lliure) amb la versió completa dle VirtualBox.</translation> + </message> + <message> + <source>This error means that the kernel driver was either not able to allocate enough memory or that some mapping operation failed.</source> + <translation>Este error pot ser degut al fet que el nucli no ha pogut assignar memòria suficient o bé que alguna operació de mapatge ha fallat.</translation> + </message> +</context> +<context> + <name>QIArrowSplitter</name> + <message> + <source>&Back</source> + <translation>&Arrere</translation> + </message> + <message> + <source>&Next</source> + <translation>&Següent</translation> + </message> +</context> +<context> + <name>QIFileDialog</name> + <message> + <source>Select a directory</source> + <translation>Seleccioneu un directori</translation> + </message> + <message> + <source>Select a file</source> + <translation>Seleccioneu un fitxer</translation> + </message> +</context> +<context> + <name>QIHelpButton</name> + <message> + <source>&Help</source> + <translation type="obsolete">&Ajuda</translation> + </message> +</context> +<context> + <name>QIHotKeyEdit</name> + <message> + <source>Left </source> + <translation>Esquerra</translation> + </message> + <message> + <source>Right </source> + <translation>Dreta</translation> + </message> + <message> + <source>Left Shift</source> + <translation>Tecla de majúscules esquerra</translation> + </message> + <message> + <source>Right Shift</source> + <translation>Tecla de majúscules dreta</translation> + </message> + <message> + <source>Left Ctrl</source> + <translation>Control esquerra</translation> + </message> + <message> + <source>Right Ctrl</source> + <translation>Control dreta</translation> + </message> + <message> + <source>Left Alt</source> + <translation>Alt esquerra</translation> + </message> + <message> + <source>Right Alt</source> + <translation>Alt dreta</translation> + </message> + <message> + <source>Left WinKey</source> + <translation>Tecla de Windows esquerra</translation> + </message> + <message> + <source>Right WinKey</source> + <translation>Tecla de Windows dreta</translation> + </message> + <message> + <source>Menu key</source> + <translation>Tecla de menú</translation> + </message> + <message> + <source>Alt Gr</source> + <translation>Alt Gr</translation> + </message> + <message> + <source>Caps Lock</source> + <translation>Tecla de fixació de majúscules</translation> + </message> + <message> + <source>Scroll Lock</source> + <translation>Tecla de fixació de desplaçament</translation> + </message> + <message> + <source><key_%1></source> + <translation><key_%1></translation> + </message> + <message> + <source>Pause</source> + <translation>Pausa</translation> + </message> + <message> + <source>Print Screen</source> + <translation>Tecla d'impressió de pantalla</translation> + </message> + <message> + <source>F1</source> + <translation>F1</translation> + </message> + <message> + <source>F2</source> + <translation>F2</translation> + </message> + <message> + <source>F3</source> + <translation>F3</translation> + </message> + <message> + <source>F4</source> + <translation>F4</translation> + </message> + <message> + <source>F5</source> + <translation>F5</translation> + </message> + <message> + <source>F6</source> + <translation>F6</translation> + </message> + <message> + <source>F7</source> + <translation>F7</translation> + </message> + <message> + <source>F8</source> + <translation>F8</translation> + </message> + <message> + <source>F9</source> + <translation>F9</translation> + </message> + <message> + <source>F10</source> + <translation>F10</translation> + </message> + <message> + <source>F11</source> + <translation>F11</translation> + </message> + <message> + <source>F12</source> + <translation>F12</translation> + </message> + <message> + <source>F13</source> + <translation>F13</translation> + </message> + <message> + <source>F14</source> + <translation>F14</translation> + </message> + <message> + <source>F15</source> + <translation>F15</translation> + </message> + <message> + <source>F16</source> + <translation>F16</translation> + </message> + <message> + <source>F17</source> + <translation>F17</translation> + </message> + <message> + <source>F18</source> + <translation>F18</translation> + </message> + <message> + <source>F19</source> + <translation>F19</translation> + </message> + <message> + <source>F20</source> + <translation>F20</translation> + </message> + <message> + <source>F21</source> + <translation>F21</translation> + </message> + <message> + <source>F22</source> + <translation>F22</translation> + </message> + <message> + <source>F23</source> + <translation>F23</translation> + </message> + <message> + <source>F24</source> + <translation>F24</translation> + </message> + <message> + <source>Num Lock</source> + <translation>Tecla de fixació de teclat numèric</translation> + </message> + <message> + <source>Forward</source> + <translation>Avant</translation> + </message> + <message> + <source>Back</source> + <translation>Arrere</translation> + </message> +</context> +<context> + <name>QIHttp</name> + <message> + <source>Connection timed out</source> + <translation>S'ha excedit el temps d'espera de la connexió</translation> + </message> + <message> + <source>Could not locate the file on the server (response: %1)</source> + <translation>No es pot localitzar el fitxer al servidor (resposta: %1)</translation> + </message> +</context> +<context> + <name>QILabel</name> + <message> + <source>&Copy</source> + <translation>&Copia</translation> + </message> +</context> +<context> + <name>QILabelPrivate</name> + <message> + <source>&Copy</source> + <translation type="obsolete">&Copia</translation> + </message> +</context> +<context> + <name>QIMessageBox</name> + <message> + <source>OK</source> + <translation>D'acord</translation> + </message> + <message> + <source>Yes</source> + <translation>SÃ</translation> + </message> + <message> + <source>No</source> + <translation>No</translation> + </message> + <message> + <source>Cancel</source> + <translation>Cancel·la</translation> + </message> + <message> + <source>Ignore</source> + <translation>Ignora</translation> + </message> + <message> + <source>&Details</source> + <translation>&Detalls</translation> + </message> + <message> + <source>&Details (%1 of %2)</source> + <translation>&Detalls (%1 de %2)</translation> + </message> +</context> +<context> + <name>QIRichLabel</name> + <message> + <source>Copy to clipboard</source> + <translation type="obsolete">Copia al porta-retalls</translation> + </message> +</context> +<context> + <name>QIWidgetValidator</name> + <message> + <source>not complete</source> + <comment>value state</comment> + <translation>no és complet</translation> + </message> + <message> + <source>invalid</source> + <comment>value state</comment> + <translation>és invà lid</translation> + </message> + <message> + <source><qt>The value of the <b>%1</b> field on the <b>%2</b> page is %3.</qt></source> + <translation><qt>El valor del camp <b>%1</b> a la pà gina <b>%2</b> %3.</qt></translation> + </message> + <message> + <source><qt>One of the values on the <b>%1</b> page is %2.</qt></source> + <translation><qt>Un dels valors a la pà gina <b>%1</b> %2.</qt></translation> + </message> +</context> +<context> + <name>VBoxAboutDlg</name> + <message> + <source>VirtualBox - About</source> + <translation>Quant al VirtualBox</translation> + </message> + <message> + <source><qt>VirtualBox Graphical User Interface Version %1<br> +%2</qt></source> + <translation type="obsolete"><qt>InterfÃcie grà fica d'usuari del VirtualBox versió %1<br> +%2</qt></translation> + </message> + <message> + <source><qt>VirtualBox Graphical User Interface Version %1<br>%2</qt></source> + <translation type="obsolete"><qt>InterfÃcie grà fica d'usuari del VirtualBox versió %1<br>%2</qt></translation> + </message> + <message> + <source>VirtualBox Graphical User Interface</source> + <translation>InterfÃcie grà fica d'usuari del VirtualBox</translation> + </message> + <message> + <source>Version %1</source> + <translation>Versió %1</translation> + </message> +</context> +<context> + <name>VBoxAboutNonOSEDlg</name> + <message> + <source>VirtualBox - About</source> + <translation type="obsolete">VirtualBox - Quant a</translation> + </message> + <message> + <source>VirtualBox Graphical User Interface +Version %1</source> + <translation type="obsolete">InterfÃcie Grà fica d'Usuari de VirtualBox +Versió %1</translation> + </message> +</context> +<context> + <name>VBoxAddNIDialog</name> + <message> + <source>Add Host Interface</source> + <translation type="obsolete">Afig una interfÃcie de l'amfitrió</translation> + </message> + <message> + <source>Interface Name</source> + <translation type="obsolete">Nom de la interfÃcie</translation> + </message> + <message> + <source>Descriptive name of the new network interface</source> + <translation type="obsolete">Nom descriptiu de la interfÃcie de xarxa nova</translation> + </message> + <message> + <source>&OK</source> + <translation type="obsolete">&D'acord</translation> + </message> + <message> + <source>Cancel</source> + <translation type="obsolete">Cancel·la</translation> + </message> +</context> +<context> + <name>VBoxAddSFDialog</name> + <message> + <source>Add Share</source> + <translation type="obsolete">Afig una compartició</translation> + </message> + <message> + <source>Edit Share</source> + <translation type="obsolete">Edita la compartició</translation> + </message> + <message> + <source>Select a folder to share</source> + <translation type="obsolete">Selecciona una carpeta per compartir</translation> + </message> + <message> + <source>Folder Path</source> + <translation type="obsolete">Ruta cap a la carpeta</translation> + </message> + <message> + <source>Folder Name</source> + <translation type="obsolete">Nom de la carpeta</translation> + </message> + <message> + <source>Displays the path to an existing folder on the host PC.</source> + <translation type="obsolete">Mostra la ruta cap a una carpeta existent en l'ordinador amfitrió.</translation> + </message> + <message> + <source>Displays the name of the shared folder (as it will be seen by the guest OS).</source> + <translation type="obsolete">Mostra el nom de la carpeta compartida (tal com es veu des del sistema operatiu client).</translation> + </message> + <message> + <source>Opens the dialog to select a folder.</source> + <translation type="obsolete">Obri un dià leg per seleccionar una carpeta.</translation> + </message> + <message> + <source>Cancel</source> + <translation type="obsolete">Cancel·la</translation> + </message> + <message> + <source>&OK</source> + <translation type="obsolete">&D'acord</translation> + </message> + <message> + <source>&Make Permanent</source> + <translation type="obsolete">&Fes permanent</translation> + </message> + <message> + <source>&Read-only</source> + <translation type="obsolete">&Només lectura</translation> + </message> + <message> + <source>When checked, the guest OS will not be able to write to the specified shared folder.</source> + <translation type="obsolete">Quan estiga marcat, el sistema operatiu client no podrà escriure a la carpeta compartida especificada.</translation> + </message> +</context> +<context> + <name>VBoxAdditionsDownloader</name> + <message> + <source>Cancel</source> + <translation>Cancel·la</translation> + </message> + <message> + <source>Downloading the VirtualBox Guest Additions CD image from <nobr><b>%1</b>...</nobr></source> + <translation>S'està baixant la imatge de les Guest Additions del VirtualBox des de <nobr><b>%1</b>...</nobr></translation> + </message> + <message> + <source>Cancel the VirtualBox Guest Additions CD image download</source> + <translation>Cancel·la la baixada de la imatge de les Guest Additions del VirtualBox</translation> + </message> + <message> + <source><p>Failed to save the downloaded file as <nobr><b>%1</b>.</nobr></p></source> + <translation><p>No s'ha pogut alçar el fitxer baixat com a <nobr><b>%1</b>.</nobr></p></translation> + </message> + <message> + <source>Select folder to save Guest Additions image to</source> + <translation>Seleccioneu la carpeta on alçar la imatge de les Guest Additions</translation> + </message> +</context> +<context> + <name>VBoxApplianceEditorWgt</name> + <message> + <source>Virtual System %1</source> + <translation>Sistema virtual %1</translation> + </message> + <message> + <source>Name</source> + <translation>Nom</translation> + </message> + <message> + <source>Product</source> + <translation>Producte</translation> + </message> + <message> + <source>Product-URL</source> + <translation>URL del producte</translation> + </message> + <message> + <source>Vendor</source> + <translation>Venedor</translation> + </message> + <message> + <source>Vendor-URL</source> + <translation>URL del venedor</translation> + </message> + <message> + <source>Version</source> + <translation>Versió</translation> + </message> + <message> + <source>Description</source> + <translation>Descripció</translation> + </message> + <message> + <source>License</source> + <translation>Llicència</translation> + </message> + <message> + <source>Guest OS Type</source> + <translation>Tipus de sistema client</translation> + </message> + <message> + <source>CPU</source> + <translation>CPU</translation> + </message> + <message> + <source>RAM</source> + <translation>RAM</translation> + </message> + <message> + <source>Hard Disk Controller (IDE)</source> + <translation>Controlador de disc IDE</translation> + </message> + <message> + <source>Hard Disk Controller (SATA)</source> + <translation>Controlador de disc SATA</translation> + </message> + <message> + <source>Hard Disk Controller (SCSI)</source> + <translation>Controlador de disc SCSI</translation> + </message> + <message> + <source>DVD</source> + <translation>DVD</translation> + </message> + <message> + <source>Floppy</source> + <translation>Disquet</translation> + </message> + <message> + <source>Network Adapter</source> + <translation>Adaptador de xarxa</translation> + </message> + <message> + <source>USB Controller</source> + <translation>Controlador USB</translation> + </message> + <message> + <source>Sound Card</source> + <translation>Targeta de so</translation> + </message> + <message> + <source>Virtual Disk Image</source> + <translation>Imatge de disc virtual</translation> + </message> + <message> + <source>Unknown Hardware Item</source> + <translation>Maquinari desconegut</translation> + </message> + <message> + <source>MB</source> + <translation>MB</translation> + </message> + <message> + <source><b>Original Value:</b> %1</source> + <translation><b>Valor original:</b> %1</translation> + </message> + <message> + <source>Configuration</source> + <translation>Configuració</translation> + </message> + <message> + <source>Warnings:</source> + <translation>Avisos:</translation> + </message> +</context> +<context> + <name>VBoxCloseVMDlg</name> + <message> + <source>Close Virtual Machine</source> + <translation>Tanca la mà quina virtual</translation> + </message> + <message> + <source>You want to:</source> + <translation>Voleu:</translation> + </message> + <message> + <source>&Save the machine state</source> + <translation>&Alça l'estat de la mà quina</translation> + </message> + <message> + <source>&Power off the machine</source> + <translation>&Atura la mà quina</translation> + </message> + <message> + <source>&Revert to the current snapshot</source> + <translation type="obsolete">&Torna a la captura actual</translation> + </message> + <message> + <source>Revert the machine state to the state stored in the current snapshot</source> + <translation type="obsolete">Torna l'estat de la mà quina a l'estat emmagatzemat a la captura actual</translation> + </message> + <message> + <source>Help</source> + <translation type="obsolete">Ajuda</translation> + </message> + <message> + <source>F1</source> + <translation type="obsolete">F1</translation> + </message> + <message> + <source>&OK</source> + <translation type="obsolete">&D'acord</translation> + </message> + <message> + <source>Cancel</source> + <translation type="obsolete">Cancel·la</translation> + </message> + <message> + <source><p>Saves the current execution state of the virtual machine to the physical hard disk of the host PC.</p> +<p>Next time this machine is started, it will be restored from the saved state and continue execution from the same place you saved it at, which will let you continue your work immediately.</p> +<p>Note that saving the machine state may take a long time, depending on the guest operating system type and the amount of memory you assigned to the virtual machine.</p></source> + <translation type="obsolete"><p>Alça l'estat d'execució actual de la mà quina virtual al disc dur fÃsic de l'ordinador d'amfitrió.</p> +<p>La propera vegada que s'engegue esta mà quina, es restaurarà des de l'estat alçat i continuarà l'execució des del mateix lloc en què l'heu alçat, cosa que vos permetrà continuar immediatament amb el vostre treball.</p> +<p>Tingueu en compte que l'operació d'alçar l'estat de la mà quina pot prendre molt de temps, depenent del tipus de sistema operatiu client i la quantitat de memòria assignada a la mà quina virtual.</p></translation> + </message> + <message> + <source>S&end the shutdown signal</source> + <translation>&Envia el senyal d'aturada</translation> + </message> + <message> + <source><p>Sends the ACPI Power Button press event to the virtual machine.</p> +<p>Normally, the guest operating system running inside the virtual machine will detect this event and perform a clean shutdown procedure. This is a recommended way to turn off the virtual machine because all applications running inside it will get a chance to save their data and state.</p> +<p>If the machine doesn't respond to this action then the guest operating system may be misconfigured or doesn't understand ACPI Power Button events at all. In this case you should select the <b>Power off the machine</b> action to stop virtual machine execution.</p></source> + <translation type="obsolete"><p>Envia a la mà quina virtual l'esdeveniment de prémer el botó ACPI Power.</p> +<p>Normalment, el sistema operatiu client que s'està executant a dins de la mà quina virtual detectarà este esdeveniment i realitzarà un procediment de tancament net. Esta és una manera recomanada de tancar la mà quina virtual perquè totes les aplicacions que s'estan executant en ella tindran la possibilitat d'alçar les seues dades i estat.</p> +<p>Si la mà quina no respon a esta acció potser el sistema operatiu client pot estar mal configurat o no entén els events del botó ACPI Power. En este cas, seleccioneu l'acció <b>Atura la mà quina</b> per aturar l'execució de la mà quina virtual.</p></translation> + </message> + <message> + <source><p>Turns off the virtual machine.</p> +<p>Note that this action will stop machine execution immediately so that the guest operating system running inside it will not be able to perform a clean shutdown procedure which may result in <i>data loss</i> inside the virtual machine. Selecting this action is recommended only if the virtual machine does not respond to the <b>Send the shutdown signal</b> action.</p></source> + <translation type="obsolete"><p>Atura la mà quina virtual.</p> +<p>Tingueu en compte que esta acció aturarà immediatament l'execució de la mà quina de manera que el sistema operatiu client que s'hi està executant no podrà realitzar un procediment de tancament net, cosa que pot ocasionar una <i>pèrdua de dades</i> en la mà quina virtual. Només es recomana seleccionar esta acció si la mà quina virtual no respon a l'acció <b>Envia el senyal d'aturada</b>.</p></translation> + </message> + <message> + <source><p>When checked, the machine will be returned to the state stored in the current snapshot after it is turned off. This is useful if you are sure that you want to discard the results of your last sessions and start again at that snapshot.</p></source> + <translation><p>Quan estiga marcat, es restaurarà l'estat de la mà quina des de l'estat emmagatzemat a la captura actual quan es va aturar. Això és útil si esteu segur que voleu descartar els resultats de les últimes sessions i tornar a la captura actual.</p></translation> + </message> + <message> + <source><p>Saves the current execution state of the virtual machine to the physical hard disk of the host PC.</p><p>Next time this machine is started, it will be restored from the saved state and continue execution from the same place you saved it at, which will let you continue your work immediately.</p><p>Note that saving the machine state may take a long time, depending on the guest operating system type and the amount of memory you assigned to the virtual machine.</p></source> + <translation><p>Alça l'estat d'execució actual de la mà quina virtual al disc dur fÃsic de l'ordinador amfitrió.</p><p>La propera vegada que s'inicià esta mà quina, es restaurarà des de l'estat alçat i continuarà l'execució des del mateix lloc en què l'heu alçat, cosa que permetrà continuar immediatament amb el vostre treball.</p><p>Tingueu en compte que l'operació d'alçar l'estat de la mà quina pot prendre molt de temps, depenent del tipus de sistema operatiu client i la quantitat de memòria assignada a la mà quina virtual.</p></translation> + </message> + <message> + <source><p>Sends the ACPI Power Button press event to the virtual machine.</p><p>Normally, the guest operating system running inside the virtual machine will detect this event and perform a clean shutdown procedure. This is a recommended way to turn off the virtual machine because all applications running inside it will get a chance to save their data and state.</p><p>If the machine doesn't respond to this action then the guest operating system may be misconfigured or doesn't understand ACPI Power Button events at all. In this case you should select the <b>Power off the machine</b> action to stop virtual machine execution.</p></source> + <translation><p>Envia a la mà quina virtual l'esdeveniment de prémer el botó ACPI Power.</p><p>Normalment, el sistema operatiu client que s'està executant a dins de la mà quina virtual detectarà este esdeveniment i realitzarà un procediment de tancament net. Esta és una manera recomanada de tancar la mà quina virtual perquè totes les aplicacions que s'estan executant en ella tindran la possibilitat d'alçar les seues dades i estat.</p><p>Si la mà quina no respon a esta acció potser el sistema operatiu client pot estar mal configurat o no entén els events del botó ACPI Power. En este cas, seleccioneu l'acció <b>Atura la mà quina</b> per aturar l'execució de la mà quina virtual.</p></translation> + </message> + <message> + <source><p>Turns off the virtual machine.</p><p>Note that this action will stop machine execution immediately so that the guest operating system running inside it will not be able to perform a clean shutdown procedure which may result in <i>data loss</i> inside the virtual machine. Selecting this action is recommended only if the virtual machine does not respond to the <b>Send the shutdown signal</b> action.</p></source> + <translation><p>Atura la mà quina virtual.</p><p>Tingueu en compte que esta acció aturarà immediatament l'execució de la mà quina de manera que el sistema operatiu client que s'hi està executant no podrà realitzar un procediment de tancament net, cosa que podria ocasionar una <i>pèrdua de dades</i> a la mà quina virtual. Només es recomana seleccionar esta acció si la mà quina virtual no respon a l'acció <b>Envia el senyal d'aturada</b>.</p></translation> + </message> + <message> + <source>Restore the machine state stored in the current snapshot</source> + <translation>Restaura l'estat de la mà quina emmagatzemat a la captura actual</translation> + </message> + <message> + <source>&Restore current snapshot '%1'</source> + <translation>&Restaura la captura actual '%1'</translation> + </message> +</context> +<context> + <name>VBoxConsoleWnd</name> + <message> + <source>VirtualBox OSE</source> + <translation>VirtualBox OSE</translation> + </message> + <message> + <source>innotek VirtualBox</source> + <translation type="obsolete">innotek VirtualBox</translation> + </message> + <message> + <source>&Fullscreen Mode</source> + <translation>Mode de pantalla &completa</translation> + </message> + <message> + <source>Switch to fullscreen mode</source> + <translation>Canvia al mode de pantalla completa</translation> + </message> + <message> + <source>Mouse Integration</source> + <comment>enable/disable...</comment> + <translation>Integració del punter</translation> + </message> + <message> + <source>Auto-resize Guest Display</source> + <comment>enable/disable...</comment> + <translation>Redimensiona automà ticament la pantalla del client</translation> + </message> + <message> + <source>Auto-resize &Guest Display</source> + <translation>Re&dimensiona automà ticament la pantalla del client</translation> + </message> + <message> + <source>Automatically resize the guest display when the window is resized (requires Guest Additions)</source> + <translation>Redimensiona automà ticament la pantalla del client en canviar la mida de la finestra (requereix les Guest Additions)</translation> + </message> + <message> + <source>&Adjust Window Size</source> + <translation>Ajusta la mida de la &finestra</translation> + </message> + <message> + <source>Adjust window size and position to best fit the guest display</source> + <translation>Ajusta la mida i la posició de la finestra per adaptar-se millor a la pantalla del client</translation> + </message> + <message> + <source>&Insert Ctrl-Alt-Del</source> + <translation>&Insereix Ctrl+Alt+Supr</translation> + </message> + <message> + <source>Send the Ctrl-Alt-Del sequence to the virtual machine</source> + <translation>Envia la seqüència Ctrl+Alt+Supr a la mà quina virtual</translation> + </message> + <message> + <source>&Insert Ctrl-Alt-Backspace</source> + <translation>&Insereix Ctrl+Alt+Retrocés</translation> + </message> + <message> + <source>Send the Ctrl-Alt-Backspace sequence to the virtual machine</source> + <translation>Envia la seqüència Ctrl+Alt+Retrocés a la mà quina virtua</translation> + </message> + <message> + <source>&Reset</source> + <translation>&Reinicia</translation> + </message> + <message> + <source>Reset the virtual machine</source> + <translation>Reinicia la mà quina virtual</translation> + </message> + <message> + <source>ACPI S&hutdown</source> + <translation>At&urada ACPI</translation> + </message> + <message> + <source>Send the ACPI Power Button press event to the virtual machine</source> + <translation>Envia a la mà quina virtual l'esdeveniment de prémer el botó ACPI Power</translation> + </message> + <message> + <source>&Close...</source> + <translation>&Tanca...</translation> + </message> + <message> + <source>Close the virtual machine</source> + <translation>Tanca la mà quina virtual</translation> + </message> + <message> + <source>Take &Snapshot...</source> + <translation>Fe&s una captura...</translation> + </message> + <message> + <source>Take a snapshot of the virtual machine</source> + <translation>Fes una captura de la mà quina virtual</translation> + </message> + <message> + <source>&Floppy Image...</source> + <translation type="obsolete">Imatge de &disquet...</translation> + </message> + <message> + <source>Mount a floppy image file</source> + <translation type="obsolete">Munta un fitxer d'imatge de disquet</translation> + </message> + <message> + <source>Unmount F&loppy</source> + <translation type="obsolete">Desmunta el dis&quet</translation> + </message> + <message> + <source>Unmount the currently mounted floppy media</source> + <translation type="obsolete">Desmunta el suport que està muntat actualment en el disquet</translation> + </message> + <message> + <source>&CD/DVD-ROM Image...</source> + <translation type="obsolete">Imatge de &CD/DVD...</translation> + </message> + <message> + <source>Mount a CD/DVD-ROM image file</source> + <translation type="obsolete">Munta un fitxer d'imatge de CD/DVD</translation> + </message> + <message> + <source>Unmount C&D/DVD-ROM</source> + <translation type="obsolete">Desmunta el C&D/DVD</translation> + </message> + <message> + <source>Unmount the currently mounted CD/DVD-ROM media</source> + <translation type="obsolete">Desmunta el suport que està muntat actualment en el CD/DVD</translation> + </message> + <message> + <source>Remote Desktop (RDP) Server</source> + <comment>enable/disable...</comment> + <translation>Servidor d'escriptori remot (RDP)</translation> + </message> + <message> + <source>Remote Dis&play</source> + <translation type="obsolete">&Pantalla remota</translation> + </message> + <message> + <source>Enable or disable remote desktop (RDP) connections to this machine</source> + <translation>Habilita o inhabilita les connexions d'escriptori remot (RDP) a esta mà quina</translation> + </message> + <message> + <source>&Shared Folders...</source> + <translation>&Carpetes compartides...</translation> + </message> + <message> + <source>Create or modify shared folders</source> + <translation>Obri el dià leg per operar amb les carpetes compartides</translation> + </message> + <message> + <source>&Install Guest Additions...</source> + <translation>&Instal·la les Guest Additions...</translation> + </message> + <message> + <source>Mount the Guest Additions installation image</source> + <translation>Munta la imatge d'instal·lació de les Guest Additions</translation> + </message> + <message> + <source>&Statistics...</source> + <translation type="obsolete">E&stadÃstiques...</translation> + </message> + <message> + <source>&Command line...</source> + <translation type="obsolete">&LÃnia d'ordes...</translation> + </message> + <message> + <source>&VirtualBox Web Site...</source> + <translation type="obsolete">Lloc web de &VirtualBox...</translation> + </message> + <message> + <source>Open the browser and go to the VirtualBox product web site</source> + <translation type="obsolete">Obri el navegador i ves al lloc web del producte VirtualBox</translation> + </message> + <message> + <source>&About VirtualBox...</source> + <translation type="obsolete">&Quant a VirtualBox...</translation> + </message> + <message> + <source>Show a dialog with product information</source> + <translation type="obsolete">Mostra un dià leg amb la informació del producte</translation> + </message> + <message> + <source>&Reset All Warnings</source> + <translation type="obsolete">&Reinicia tots els avisos</translation> + </message> + <message> + <source>Go back to showing all suppressed warnings and messages</source> + <translation type="obsolete">Fa que tots els avisos i missatges suprimits es mostren una altra vegada</translation> + </message> + <message> + <source>Mount &Floppy</source> + <translation type="obsolete">Munta el &disquet</translation> + </message> + <message> + <source>Mount &CD/DVD-ROM</source> + <translation type="obsolete">Munta el &CD/DVD</translation> + </message> + <message> + <source>&USB Devices</source> + <translation>Dispositius &USB</translation> + </message> + <message> + <source>&Devices</source> + <translation>&Dispositius</translation> + </message> + <message> + <source>De&bug</source> + <translation>De&puració</translation> + </message> + <message> + <source>&Help</source> + <translation>&Ajuda</translation> + </message> + <message> + <source>Indicates whether the guest display auto-resize function is On (<img src=auto_resize_on_16px.png/>) or Off (<img src=auto_resize_off_16px.png/>). Note that this function requires Guest Additions to be installed in the guest OS.</source> + <translation type="obsolete">Indica si la funció d'autoredimensió de la pantalla client està activada (<img src=auto_resize_on_16px.png/>) o desactivada (<img src=auto_resize_off_16px.png/>). Tingueu en compte que esta funció requereix tindre les Guest Additions instal·lades en el sistema operatiu client.</translation> + </message> + <message> + <source>Indicates whether the host mouse pointer is captured by the guest OS:<br><nobr><img src=mouse_disabled_16px.png/>&nbsp;&nbsp;pointer is not captured</nobr><br><nobr><img src=mouse_16px.png/>&nbsp;&nbsp;pointer is captured</nobr><br><nobr><img src=mouse_seamless_16px.png/>&nbsp;&nbsp;mouse integration (MI) is On</nobr><br><nobr><img src=mouse_can_seamless_16px.png/>&nbsp;&nbsp;MI is Off, pointer is captured</nobr><br><nobr><img src=mouse_can_seamless_uncaptured_16px.png/>&nbsp;&nbsp;MI is Off, pointer is not captured</nobr><br>Note that the mouse integration feature requires Guest Additions to be installed in the guest OS.</source> + <translation type="obsolete">Indica si el punter del ratolà de l'ordinador amfitrió és capturat pel sistema operatiu client:<br><nobr><img src=mouse_disabled_16px.png/>&nbsp;&nbsp;no captura el punter</nobr><br><nobr><img src=mouse_16px.png/>&nbsp;&nbsp;captura el punter</nobr><br><nobr><img src=mouse_seamless_16px.png/>&nbsp;&nbsp;la integració del ratolà (MI) està activada</nobr><br><nobr><img src=mouse_can_seamless_16px.png/>&nbsp;&nbsp;MI està desactivada, captura el punter</nobr><br><nobr><img src=mouse_can_seamless_uncaptured_16px.png/>&nbsp;&nbsp;MI està desactivada, no captura el punter</nobr><br>Tingueu en compte que la funció d'integració del ratolà requereix tindre instal·lades les Guest Additions en el sistema operatiu client.</translation> + </message> + <message> + <source>Shows the currently assigned Host key.<br>This key, when pressed alone, toggles the the keyboard and mouse capture state. It can also be used in combination with other keys to quickly perform actions from the main menu.</source> + <translation type="obsolete">Mostra la tecla assignada a l'amfitrió.<br>Quan es prem esta tecla commuta l'estat de captura del teclat i el ratolÃ. També es pot fer servir en combinació amb altres tecles per accedir rà pidament a algunes opcions del menú principal.</translation> + </message> + <message> + <source><hr>The VRDP Server is listening on port %1</source> + <translation><hr>El servidor VRDP està escoltant el port %1</translation> + </message> + <message> + <source><qt>Indicates the status of the hardware virtualization features used by this virtual machine:<br><nobr><b>%1:</b>&nbsp;%2</nobr><br><nobr><b>%3:</b>&nbsp;%4</nobr></qt></source> + <translation type="obsolete"><qt>Indica l'estat de les caracterÃstiques de virtualització per maquinari utilitzades per esta mà quina:<br><nobr><b>%1:</b>&nbsp;%2</nobr><br><nobr><b>%3:</b>&nbsp;%4</nobr></qt></translation> + </message> + <message> + <source>&Pause</source> + <translation>&Pausa</translation> + </message> + <message> + <source>Suspend the execution of the virtual machine</source> + <translation>Suspèn l'execució de la mà quina virtual</translation> + </message> + <message> + <source>R&esume</source> + <translation>R&eprèn</translation> + </message> + <message> + <source>Resume the execution of the virtual machine</source> + <translation>Reprén l'execució de la mà quina virtual</translation> + </message> + <message> + <source>Disable &Mouse Integration</source> + <translation>Desactiva la integració del &punter</translation> + </message> + <message> + <source>Temporarily disable host mouse pointer integration</source> + <translation>Desactiva temporalment la integració del punter de l'amfitrió</translation> + </message> + <message> + <source>Enable &Mouse Integration</source> + <translation>Activa la integració del &punter</translation> + </message> + <message> + <source>Enable temporarily disabled host mouse pointer integration</source> + <translation>Activa la integració del punter de l'amfitrió que s'havia desactivat temporalment</translation> + </message> + <message> + <source>Snapshot %1</source> + <translation>Captura %1</translation> + </message> + <message> + <source>Host Drive </source> + <translation type="obsolete">Unitat de l'ordinador amfitrió </translation> + </message> + <message> + <source>&Machine</source> + <translation>&Mà quina</translation> + </message> + <message> + <source>&Network Adapters</source> + <translation type="obsolete">Adaptadors de &xarxa</translation> + </message> + <message> + <source>Adapter %1</source> + <comment>network</comment> + <translation type="obsolete">Adaptador %1</translation> + </message> + <message> + <source>Mount the selected physical drive of the host PC</source> + <comment>Floppy tip</comment> + <translation type="obsolete">Munta la unitat fÃsica de l'ordinador amfitrió seleccionada</translation> + </message> + <message> + <source>Sun VirtualBox</source> + <translation>Sun VirtualBox</translation> + </message> + <message> + <source>Mount the selected physical drive of the host PC</source> + <comment>CD/DVD tip</comment> + <translation type="obsolete">Munta la unitat fÃsica de l'ordinador amfitrió seleccionada</translation> + </message> + <message> + <source>Disconnect the cable from the selected virtual network adapter</source> + <translation type="obsolete">Desconnecta el cable de l'adaptador virtual de xarxa seleccionat</translation> + </message> + <message> + <source>Connect the cable to the selected virtual network adapter</source> + <translation type="obsolete">Connecta el cable de l'adaptador virtual de xarxa seleccionat</translation> + </message> + <message> + <source>Seam&less Mode</source> + <translation>Mode f&luid</translation> + </message> + <message> + <source>Switch to seamless desktop integration mode</source> + <translation>Canvia al mode d'integració de l'escriptori fluid</translation> + </message> + <message> + <source>Indicates whether the keyboard is captured by the guest OS (<img src=hostkey_captured_16px.png/>) or not (<img src=hostkey_16px.png/>).</source> + <translation type="obsolete">Indica si el teclat és capturat pel sistema operatiu client (<img src=hostkey_captured_16px.png/>) o no (<img src=hostkey_16px.png/>).</translation> + </message> + <message> + <source><qt><nobr>Indicates the activity of the floppy media:</nobr>%1</qt></source> + <comment>Floppy tooltip</comment> + <translation type="obsolete"><qt><nobr>Indica l'activitat del disquet:</nobr>%1</qt></translation> + </message> + <message> + <source><br><nobr><b>Host Drive</b>: %1</nobr></source> + <comment>Floppy tooltip</comment> + <translation type="obsolete"><br><nobr><b>Unitat de l'amfitrió</b>: %1</nobr></translation> + </message> + <message> + <source><br><nobr><b>Image</b>: %1</nobr></source> + <comment>Floppy tooltip</comment> + <translation type="obsolete"><br><nobr><b>Imatge</b>: %1</nobr></translation> + </message> + <message> + <source><br><nobr><b>No media mounted</b></nobr></source> + <comment>Floppy tooltip</comment> + <translation type="obsolete"><br><nobr><b>No hi ha cap suport muntat</b></nobr></translation> + </message> + <message> + <source><qt><nobr>Indicates the activity of the CD/DVD-ROM media:</nobr>%1</qt></source> + <comment>DVD-ROM tooltip</comment> + <translation type="obsolete"><qt><nobr>Indica l'activitat del CD/DVD:</nobr>%1</qt></translation> + </message> + <message> + <source><br><nobr><b>Host Drive</b>: %1</nobr></source> + <comment>DVD-ROM tooltip</comment> + <translation type="obsolete"><br><nobr><b>Unitat de l'amfitrió</b>: %1</nobr></translation> + </message> + <message> + <source><br><nobr><b>Image</b>: %1</nobr></source> + <comment>DVD-ROM tooltip</comment> + <translation type="obsolete"><br><nobr><b>Imatge</b>: %1</nobr></translation> + </message> + <message> + <source><br><nobr><b>No media mounted</b></nobr></source> + <comment>DVD-ROM tooltip</comment> + <translation type="obsolete"><br><nobr><b>No hi ha cap suport muntat</b></nobr></translation> + </message> + <message> + <source><qt><nobr>Indicates activity on the the virtual hard disks:</nobr>%1</qt></source> + <comment>HDD tooltip</comment> + <translation type="obsolete"><qt><nobr>Indica l'activitat dels discos durs virtuals:</nobr>%1</qt></translation> + </message> + <message> + <source><br><nobr><b>No hard disks attached</b></nobr></source> + <comment>HDD tooltip</comment> + <translation><br><nobr><b>No hi ha cap disc dur connectat</b></nobr></translation> + </message> + <message> + <source><qt><nobr>Indicates the activity of the network interfaces:</nobr>%1</qt></source> + <comment>Network adapters tooltip</comment> + <translation type="obsolete"><qt><nobr>Indica l'activitat de les interfÃcies de xarxa:</nobr>%1</qt></translation> + </message> + <message> + <source><br><nobr><b>Adapter %1 (%2)</b>: cable %3</nobr></source> + <comment>Network adapters tooltip</comment> + <translation><br><nobr><b>Adaptador %1 (%2)</b>: el fil està %3</nobr></translation> + </message> + <message> + <source>connected</source> + <comment>Network adapters tooltip</comment> + <translation>connectat</translation> + </message> + <message> + <source>disconnected</source> + <comment>Network adapters tooltip</comment> + <translation>desconnectat</translation> + </message> + <message> + <source><br><nobr><b>All network adapters are disabled</b></nobr></source> + <comment>Network adapters tooltip</comment> + <translation><br><nobr><b>Tots els adaptadors de xarxa estan desactivats</b></nobr></translation> + </message> + <message> + <source><qt><nobr>Indicates the activity of the attached USB devices:</nobr>%1</qt></source> + <comment>USB device tooltip</comment> + <translation type="obsolete"><qt><nobr>Indica l'activitat dels dispositius USB connectats:</nobr>%1</qt></translation> + </message> + <message> + <source><br><nobr><b>No USB devices attached</b></nobr></source> + <comment>USB device tooltip</comment> + <translation><br><nobr><b>No hi ha dispositius USB connectats</b></nobr></translation> + </message> + <message> + <source><br><nobr><b>USB Controller is disabled</b></nobr></source> + <comment>USB device tooltip</comment> + <translation><br><nobr><b>El controlador USB està desactivat</b></nobr></translation> + </message> + <message> + <source>Indicates whether the Remote Display (VRDP Server) is enabled (<img src=vrdp_16px.png/>) or not (<img src=vrdp_disabled_16px.png/>).</source> + <translation type="obsolete">Indica si la pantalla remota (servidor VRDP) està activada (<img src=vrdp_16px.png/>) o no (<img src=vrdp_disabled_16px.png/>).</translation> + </message> + <message> + <source><qt><nobr>Indicates the activity of the machineof the machine'sapos;s shared folders: shared folders:</nobr>%1</qt></source> + <comment>Shared folders tooltip</comment> + <translation type="obsolete"><qt><nobr>Indica l'activitat de les carpetes compartides:</nobr>%1</qt></translation> + </message> + <message> + <source><br><nobr><b>No shared folders</b></nobr></source> + <comment>Shared folders tooltip</comment> + <translation><br><nobr><b>No hi ha carpetes compartides</b></nobr></translation> + </message> + <message> + <source>&Contents...</source> + <translation type="obsolete">&Continguts...</translation> + </message> + <message> + <source>F1</source> + <translation type="obsolete">F1</translation> + </message> + <message> + <source>Show the online help contents</source> + <translation type="obsolete">Mostra els continguts de l'ajuda en lÃnia</translation> + </message> + <message> + <source>R&egister VirtualBox...</source> + <translation type="obsolete">R&egistreu-vos al VirtualBox...</translation> + </message> + <message> + <source>Open VirtualBox registration form</source> + <translation type="obsolete">Obri el formulari de registre del VirtualBox</translation> + </message> + <message> + <source>Session I&nformation Dialog</source> + <translation>D&ià leg informatiu de la sessió</translation> + </message> + <message> + <source>Show Session Information Dialog</source> + <translation>Mostra el dià leg informatiu de la sessió</translation> + </message> + <message> + <source>&Statistics...</source> + <comment>debug action</comment> + <translation>E&stadÃstiques...</translation> + </message> + <message> + <source>&Command Line...</source> + <comment>debug action</comment> + <translation>&LÃnia d'ordes...</translation> + </message> + <message> + <source>Indicates whether the guest display auto-resize function is On (<img src=:/auto_resize_on_16px.png/>) or Off (<img src=:/auto_resize_off_16px.png/>). Note that this function requires Guest Additions to be installed in the guest OS.</source> + <translation>Indica si la funció d'autoredimensió de la pantalla client està activada (<img src=auto_resize_on_16px.png/>) o desactivada (<img src=auto_resize_off_16px.png/>). Tingueu en compte que esta funció requereix tindre les Guest Additions instal·lades en el sistema operatiu client.</translation> + </message> + <message> + <source>Indicates whether the host mouse pointer is captured by the guest OS:<br><nobr><img src=:/mouse_disabled_16px.png/>&nbsp;&nbsp;pointer is not captured</nobr><br><nobr><img src=:/mouse_16px.png/>&nbsp;&nbsp;pointer is captured</nobr><br><nobr><img src=:/mouse_seamless_16px.png/>&nbsp;&nbsp;mouse integration (MI) is On</nobr><br><nobr><img src=:/mouse_can_seamless_16px.png/>&nbsp;&nbsp;MI is Off, pointer is captured</nobr><br><nobr><img src=:/mouse_can_seamless_uncaptured_16px.png/>&nbsp;&nbsp;MI is Off, pointer is not captured</nobr><br>Note that the mouse integration feature requires Guest Additions to be installed in the guest OS.</source> + <translation>Indica si el punter del ratolà de l'ordinador amfitrió és capturat pel sistema operatiu client:<br><nobr><img src=mouse_disabled_16px.png/>&nbsp;&nbsp;no captura el punter</nobr><br><nobr><img src=mouse_16px.png/>&nbsp;&nbsp;captura el punter</nobr><br><nobr><img src=mouse_seamless_16px.png/>&nbsp;&nbsp;la integració del ratolà (MI) està activada</nobr><br><nobr><img src=mouse_can_seamless_16px.png/>&nbsp;&nbsp;MI està desactivada, captura el punter</nobr><br><nobr><img src=mouse_can_seamless_uncaptured_16px.png/>&nbsp;&nbsp;MI està desactivada, no captura el punter</nobr><br>Tingueu en compte que la funció d'integració del ratolà requereix tindre instal·lades les Guest Additions en el sistema operatiu client.</translation> + </message> + <message> + <source>Indicates whether the keyboard is captured by the guest OS (<img src=:/hostkey_captured_16px.png/>) or not (<img src=:/hostkey_16px.png/>).</source> + <translation>Indica si el teclat és capturat pel sistema operatiu client (<img src=hostkey_captured_16px.png/>) o no (<img src=hostkey_16px.png/>).</translation> + </message> + <message> + <source>Indicates whether the Remote Display (VRDP Server) is enabled (<img src=:/vrdp_16px.png/>) or not (<img src=:/vrdp_disabled_16px.png/>).</source> + <translation>Indica si la pantalla remota (servidor VRDP) està activada (<img src=vrdp_16px.png/>) o no (<img src=vrdp_disabled_16px.png/>).</translation> + </message> + <message> + <source>&Logging...</source> + <comment>debug action</comment> + <translation>&S'està connectant...</translation> + </message> + <message> + <source>Shows the currently assigned Host key.<br>This key, when pressed alone, toggles the keyboard and mouse capture state. It can also be used in combination with other keys to quickly perform actions from the main menu.</source> + <translation>Mostra la tecla assignada a l'amfitrió.<br>Quan es prem esta tecla commuta l'estat de captura del teclat i el ratolÃ. També es pot fer servir en combinació amb altres tecles per accedir rà pidament a algunes opcions del menú principal.</translation> + </message> + <message> + <source>Indicates the status of the hardware virtualization features used by this virtual machine:<br><nobr><b>%1:</b>&nbsp;%2</nobr><br><nobr><b>%3:</b>&nbsp;%4</nobr></source> + <comment>Virtualization Stuff LED</comment> + <translation>Indica l'estat de les caracterÃstiques de virtualització de maquinari que fa servir esta mà quina virtual:<br><nobr><b>%1:</b>&nbsp;%2</nobr><br><nobr><b>%3:</b>&nbsp;%4</nobr></translation> + </message> + <message> + <source><br><nobr><b>%1:</b>&nbsp;%2</nobr></source> + <comment>Virtualization Stuff LED</comment> + <translation><br><nobr><b>%1:</b>&nbsp;%2</nobr></translation> + </message> + <message> + <source> EXPERIMENTAL build %1r%2 - %3</source> + <translation> Versió EXPERIMENTAL %1r%2 - %3</translation> + </message> + <message> + <source>&CD/DVD Devices</source> + <translation>Dispositius &CD/DVD</translation> + </message> + <message> + <source>&Floppy Devices</source> + <translation>Dis&queteres</translation> + </message> + <message> + <source>&Network Adapters...</source> + <translation>Adaptadors de &xarxa...</translation> + </message> + <message> + <source>Change the settings of network adapters</source> + <translation>Canvia els parà metres dels adaptadors de xarxa</translation> + </message> + <message> + <source>&Remote Display</source> + <translation>Pantalla &remota</translation> + </message> + <message> + <source>More CD/DVD Images...</source> + <translation>Més imatges de CD/DVD...</translation> + </message> + <message> + <source>Unmount CD/DVD Device</source> + <translation>Desmunta el CD/DVD</translation> + </message> + <message> + <source>More Floppy Images...</source> + <translation>Més imatges de disquet...</translation> + </message> + <message> + <source>Unmount Floppy Device</source> + <translation>Desmunta la disquetera</translation> + </message> + <message> + <source>No CD/DVD Devices Attached</source> + <translation>No s'ha conectat cap dispositiu de CD/DVD</translation> + </message> + <message> + <source>No Floppy Devices Attached</source> + <translation>No s'ha connectat cap dispositiu de disquetera</translation> + </message> + <message> + <source><p style='white-space:pre'><nobr>Indicates the activity of the virtual hard disks:</nobr>%1</p></source> + <comment>HDD tooltip</comment> + <translation><p style='white-space:pre'><nobr>Indica l'activitat dels discos durs virtuals:</nobr>%1</p></translation> + </message> + <message> + <source><p style='white-space:pre'><nobr>Indicates the activity of the CD/DVD devices:</nobr>%1</p></source> + <comment>CD/DVD tooltip</comment> + <translation><p style='white-space:pre'><nobr>Indica l'activitat dels dispositius de CD/DVD:</nobr>%1</p></translation> + </message> + <message> + <source><br><nobr><b>No CD/DVD devices attached</b></nobr></source> + <comment>CD/DVD tooltip</comment> + <translation><br><nobr><b>No s'ha connectat cap dispositiu de CD/DVD</b></nobr></translation> + </message> + <message> + <source><p style='white-space:pre'><nobr>Indicates the activity of the floppy devices:</nobr>%1</p></source> + <comment>FD tooltip</comment> + <translation><p style='white-space:pre'><nobr>Indica l'activitat dels dispositius de disquetera:</nobr>%1</p></translation> + </message> + <message> + <source><br><nobr><b>No floppy devices attached</b></nobr></source> + <comment>FD tooltip</comment> + <translation><br><nobr><b>No s'ha connectat cap dispositiu de disquetera</b></nobr></translation> + </message> + <message> + <source><p style='white-space:pre'><nobr>Indicates the activity of the network interfaces:</nobr>%1</p></source> + <comment>Network adapters tooltip</comment> + <translation><p style='white-space:pre'><nobr>Indica l'activitat dels dispositius de xarxa:</nobr>%1</p></translation> + </message> + <message> + <source><p style='white-space:pre'><nobr>Indicates the activity of the attached USB devices:</nobr>%1</p></source> + <comment>USB device tooltip</comment> + <translation><p style='white-space:pre'><nobr>Indica l'activitat dels dispositius USB connectats:</nobr>%1</p></translation> + </message> + <message> + <source><p style='white-space:pre'><nobr>Indicates the activity of the machine's shared folders:</nobr>%1</p></source> + <comment>Shared folders tooltip</comment> + <translation><p style='white-space:pre'><nobr>Indica l'activitat de les carpetes compartides per la mà quina virtual:</nobr>%1</p></translation> + </message> +</context> +<context> + <name>VBoxDiskImageManagerDlg</name> + <message> + <source>Name</source> + <translation type="obsolete">Nom</translation> + </message> + <message> + <source>Virtual Size</source> + <translation type="obsolete">Mida virtual</translation> + </message> + <message> + <source>Actual Size</source> + <translation type="obsolete">Mida actual</translation> + </message> + <message> + <source>Size</source> + <translation type="obsolete">Mida</translation> + </message> + <message> + <source>Virtual Disk Manager</source> + <translation type="obsolete">Gestor de discos virtuals</translation> + </message> + <message> + <source>&Hard Disks</source> + <translation type="obsolete">&Discos durs</translation> + </message> + <message> + <source>&CD/DVD Images</source> + <translation type="obsolete">Imatges de &CD/DVD</translation> + </message> + <message> + <source>&Floppy Images</source> + <translation type="obsolete">Imatges de dis&quet</translation> + </message> + <message> + <source>Help</source> + <translation type="obsolete">Ajuda</translation> + </message> + <message> + <source>F1</source> + <translation type="obsolete">F1</translation> + </message> + <message> + <source>Invoke dialog's help</source> + <translation type="obsolete">Invoca l'ajuda del dià leg</translation> + </message> + <message> + <source>&OK</source> + <translation type="obsolete">&D'acord</translation> + </message> + <message> + <source>Accept dialog</source> + <translation type="obsolete">Accepta el dià leg</translation> + </message> + <message> + <source>Cancel</source> + <translation type="obsolete">Cancel·la</translation> + </message> + <message> + <source>Cancel dialog</source> + <translation type="obsolete">Cancel·la el dià leg</translation> + </message> + <message> + <source>--</source> + <comment>no info</comment> + <translation type="obsolete">--</translation> + </message> + <message> + <source>&New...</source> + <translation type="obsolete">&Nova...</translation> + </message> + <message> + <source>&Add...</source> + <translation type="obsolete">&Afig...</translation> + </message> + <message> + <source>R&emove</source> + <translation type="obsolete">&Elimina</translation> + </message> + <message> + <source>Re&lease</source> + <translation type="obsolete">A&llibera</translation> + </message> + <message> + <source>Re&fresh</source> + <translation type="obsolete">Re&fresca</translation> + </message> + <message> + <source>New</source> + <translation type="obsolete">Nova</translation> + </message> + <message> + <source>Add</source> + <translation type="obsolete">Afig</translation> + </message> + <message> + <source>Remove</source> + <translation type="obsolete">Elimina</translation> + </message> + <message> + <source>Release</source> + <translation type="obsolete">Allibera</translation> + </message> + <message> + <source>Refresh</source> + <translation type="obsolete">Refresca</translation> + </message> + <message> + <source>Ctrl+N</source> + <translation type="obsolete">Ctrl+N</translation> + </message> + <message> + <source>Ctrl+A</source> + <translation type="obsolete">Ctrl+A</translation> + </message> + <message> + <source>Ctrl+D</source> + <translation type="obsolete">Ctrl+D</translation> + </message> + <message> + <source>Ctrl+L</source> + <translation type="obsolete">Ctrl+L</translation> + </message> + <message> + <source>Ctrl+R</source> + <translation type="obsolete">Ctrl+R</translation> + </message> + <message> + <source>&Actions</source> + <translation type="obsolete">&Accions</translation> + </message> + <message> + <source>Location</source> + <translation type="obsolete">Ubicació</translation> + </message> + <message> + <source>Disk Type</source> + <translation type="obsolete">Tipus de disc</translation> + </message> + <message> + <source>Storage Type</source> + <translation type="obsolete">Tipus d'emmagatzematge</translation> + </message> + <message> + <source>Attached to</source> + <translation type="obsolete">Connectat a</translation> + </message> + <message> + <source>Snapshot</source> + <translation type="obsolete">Captura</translation> + </message> + <message> + <source>Checking accessibility</source> + <translation type="obsolete">S'està comprovant l'accessibilitat</translation> + </message> + <message> + <source><nobr><b>%1</b></nobr><br>Checking accessibility...</source> + <comment>HDD</comment> + <translation type="obsolete"><nobr><b>%1</b></nobr><br>S'està comprovant l'accessibilitat...</translation> + </message> + <message> + <source><nobr><b>%1</b></nobr><br><nobr>Disk type:&nbsp;&nbsp;%2</nobr><br><nobr>Storage type:&nbsp;&nbsp;%3</nobr></source> + <translation type="obsolete"><nobr><b>%1</b></nobr><br><nobr>Tipus del disc:&nbsp;&nbsp;%2</nobr><br><nobr>Tipus d'emmagatzematge:&nbsp;&nbsp;%3</nobr></translation> + </message> + <message> + <source><br><nobr>Attached to:&nbsp;&nbsp;%1</nobr></source> + <comment>HDD</comment> + <translation type="obsolete"><br><nobr>Connectat a:&nbsp;&nbsp;%1</nobr></translation> + </message> + <message> + <source><br><nobr>Snapshot:&nbsp;&nbsp;%5</nobr></source> + <comment>HDD</comment> + <translation type="obsolete"><br><nobr>Captura:&nbsp;&nbsp;%5</nobr></translation> + </message> + <message> + <source><nobr><b>%1</b></nobr><br>Error checking media accessibility</source> + <comment>HDD</comment> + <translation type="obsolete"><nobr><b>%1</b></nobr><br>S'ha produït un error quan s'estava comprovant l'accessibilitat als suports</translation> + </message> + <message> + <source><nobr><b>%1</b></nobr><br>%2</source> + <comment>HDD</comment> + <translation type="obsolete"><nobr><b>%1</b></nobr><br>%2</translation> + </message> + <message> + <source><nobr><b>%1</b></nobr><br>Checking accessibility...</source> + <comment>CD/DVD/Floppy</comment> + <translation type="obsolete"><nobr><b>%1</b></nobr><br>S'està comprovant l'accessibilitat...</translation> + </message> + <message> + <source><nobr><b>%1</b></nobr></source> + <comment>CD/DVD/Floppy</comment> + <translation type="obsolete"><nobr><b>%1</b></nobr></translation> + </message> + <message> + <source><br><nobr>Attached to:&nbsp;&nbsp;%1</nobr></source> + <comment>CD/DVD/Floppy</comment> + <translation type="obsolete"><br><nobr>Connectat a:&nbsp;&nbsp;%1</nobr></translation> + </message> + <message> + <source><nobr><b>%1</b></nobr><br>Error checking media accessibility</source> + <comment>CD/DVD/Floppy</comment> + <translation type="obsolete"><nobr><b>%1</b></nobr><br>S'ha produït un error quan s'estava comprovant l'accessibilitat als suports</translation> + </message> + <message> + <source><nobr><b>%1</b></nobr><br>%2</source> + <translation type="obsolete"><nobr><b>%1</b></nobr><br>%2</translation> + </message> + <message> + <source>The image file is not accessible</source> + <comment>CD/DVD/Floppy</comment> + <translation type="obsolete">No es pot accedir al fitxer d'imatge</translation> + </message> + <message> + <source>&Select</source> + <translation type="obsolete">&Selecciona</translation> + </message> + <message> + <source>All hard disk images (*.vdi; *.vmdk);;Virtual Disk images (*.vdi);;VMDK images (*.vmdk);;All files (*)</source> + <translation type="obsolete">Totes les imatges de discos durs (*.vdi; *.vmdk);;Imatges de disc virtual (*.vdi);;Imatges VMDK (*.vmdk);;Tots els fitxers (*)</translation> + </message> + <message> + <source>Select a hard disk image file</source> + <translation type="obsolete">Seleccioneu un fitxer d'imatge de disc dur</translation> + </message> + <message> + <source>Select a CD/DVD-ROM disk image file</source> + <translation type="obsolete">Seleccioneu un fitxer d'imatge de disc CD/DVD-ROM</translation> + </message> + <message> + <source>Select a floppy disk image file</source> + <translation type="obsolete">Seleccioneu un fitxer d'imatge de disquet</translation> + </message> + <message> + <source>Create a new virtual hard disk</source> + <translation type="obsolete">Crea un disc dur virtual nou</translation> + </message> + <message> + <source>Add (register) an existing image file</source> + <translation type="obsolete">Afig (registra) un fitxer d'imatge existent</translation> + </message> + <message> + <source>Remove (unregister) the selected media</source> + <translation type="obsolete">Elimina (suprimetix del registre) els suports seleccionats</translation> + </message> + <message> + <source>Release the selected media by detaching it from the machine</source> + <translation type="obsolete">Allibera els suports seleccionats desconnectant-los de la mà quina</translation> + </message> + <message> + <source>Refresh the media list</source> + <translation type="obsolete">Refresca la llista de suports</translation> + </message> + <message> + <source>CD/DVD-ROM images (*.iso);;All files (*)</source> + <translation type="obsolete">Imatges de CD/DVD-ROM (*.iso);;Tots els fitxers (*)</translation> + </message> + <message> + <source>Floppy images (*.img);;All files (*)</source> + <translation type="obsolete">Imatges de disquet (*.img);;Tots els fitxers (*)</translation> + </message> + <message> + <source>All hard disk images (*.vdi *.vmdk *.vhd);;Virtual Disk images (*.vdi);;VMDK images (*.vmdk);;VHD images (*.vhd);;All files (*)</source> + <translation type="obsolete">Totes les imatges de discos durs (*.vdi; *.vmdk);;Imatges de disc virtual (*.vdi);;Imatges VMDK (*.vmdk);;Imatges VHD (*.vhd);;Tots els fitxers (*)</translation> + </message> + <message> + <source>Hard &Disks</source> + <translation type="obsolete">&Discos durs</translation> + </message> + <message> + <source><nobr>Location:</nobr></source> + <translation type="obsolete"><nobr>Localitzacio:</nobr></translation> + </message> + <message> + <source><nobr>Disk Type:</nobr></source> + <translation type="obsolete"><nobr>Tipus de Disc:</nobr></translation> + </message> + <message> + <source><nobr>&nbsp;&nbsp;Storage Type:</nobr></source> + <translation type="obsolete"><nobr>&nbsp;&nbsp;Tipus d'emmagatzematge:</nobr></translation> + </message> + <message> + <source><nobr>Attached to:</nobr></source> + <translation type="obsolete"><nobr>Connectat a:</nobr></translation> + </message> + <message> + <source><nobr>&nbsp;&nbsp;Snapshot:</nobr></source> + <translation type="obsolete"><nobr>&nbsp;&nbsp;Captura:</nobr></translation> + </message> +</context> +<context> + <name>VBoxDownloaderWgt</name> + <message> + <source>Cancel</source> + <translation type="obsolete">Cancel·la</translation> + </message> + <message> + <source>Downloading the VirtualBox Guest Additions CD image from <nobr><b>%1</b>...</nobr></source> + <translation type="obsolete">S'està baixant la imatge del CD de les Guest Additions del VirtualBox des de <nobr><b>%1</b>...</nobr></translation> + </message> + <message> + <source>Cancel the VirtualBox Guest Additions CD image download</source> + <translation type="obsolete">Cancel·la la descà rrega de la imatge del CD de les Guest Additions del VirtualBox</translation> + </message> + <message> + <source>Could not locate the file on the server (response: %1).</source> + <translation type="obsolete">No es pot localitzar el fitxer al servidor (resposta: %1).</translation> + </message> + <message> + <source><p>Failed to save the downloaded file as <nobr><b>%1</b>.</nobr></p></source> + <translation type="obsolete"><p>Hi ha hagut un error mentre es desava el fitxer descarregat com a <nobr><b>%1</b>.</nobr></p></translation> + </message> + <message> + <source>Select folder to save Guest Additions image to</source> + <translation type="obsolete">Seleccioneu la carpeta on alçar la imatge de les Guest Additions</translation> + </message> + <message> + <source>Connection timed out.</source> + <translation type="obsolete">S'ha excedit el temps d'espera de la connexió.</translation> + </message> + <message> + <source>The download process has been cancelled by the user.</source> + <translation>L'usuari ha cancel·lat el procés de baixada.</translation> + </message> +</context> +<context> + <name>VBoxEmptyFileSelector</name> + <message> + <source>&Choose...</source> + <translation>&Trieu...</translation> + </message> +</context> +<context> + <name>VBoxExportApplianceWzd</name> + <message> + <source>Select a file to export into</source> + <translation>Seleccioneu un fitxer al qual s'exportarà </translation> + </message> + <message> + <source>Open Virtualization Format (%1)</source> + <translation>Format virtual obert (%1)</translation> + </message> + <message> + <source>Appliance</source> + <translation>Aplicació virtual</translation> + </message> + <message> + <source>Exporting Appliance ...</source> + <translation>S'està exportant l'aplicació virtual...</translation> + </message> + <message> + <source>Appliance Export Wizard</source> + <translation>Assistent d'exportació d'aplicació virtuals</translation> + </message> + <message> + <source>Welcome to the Appliance Export Wizard!</source> + <translation>Benvingut a l'assistent d'exportació d'aplicacions virtuals!</translation> + </message> + <message> + <source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This wizard will guide you through the process of exporting an appliance. </p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Use the <span style=" font-weight:600;">Next</span> button to go the next page of the wizard and the <span style=" font-weight:600;">Back</span> button to return to the previous page.</p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Please select the virtual machines that you wish to the appliance. You can select more than one. Please note that these machines have to be turned off before they can be exported.</p></body></html></source> + <translation><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Este assitent vos guiarà durant el procés d'exportació d'una aplicació virtual. </p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Feu servir el botó <span style=" font-weight:600;">Següent</span> per anar a la següent pà gina de l'assistent i el botó <span style=" font-weight:600;">Arrere</span> per anar a la pà gina prèvia.</p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Seleccioneu les mà quines virtuals que s'haurien d'exportar a l'aplicació virtual. En podeu seleccionar més d'una. Tingueu en compte que estes mà quines han d'estar aturades per tal que puguen importar-se.</p></body></html></translation> + </message> + <message> + <source>< &Back</source> + <translation>< &Arrere</translation> + </message> + <message> + <source>&Next ></source> + <translation>&Següent ></translation> + </message> + <message> + <source>Cancel</source> + <translation>Cancel·la</translation> + </message> + <message> + <source>Appliance Export Settings</source> + <translation>Parà metres d'exportació de l'aplicació virtual</translation> + </message> + <message> + <source>Here you can change additional configuration values of the selected virtual machines. You can modify most of the properties shown by double-clicking on the items.</source> + <translation>Acà podeu canviar valors adicionals de la configuració de les mà quines virtuals seleccionades. Podeu modificar la majoria de les propietats mostrades fent doble clic sobre els Ãtems.</translation> + </message> + <message> + <source>Restore Defaults</source> + <translation>Restaura els parà metres per defecte</translation> + </message> + <message> + <source>Please specify a filename into which the appliance information will be written. Currently VirtualBox supports the Open Virtualization Format (OVF).</source> + <translation type="obsolete">Especifiqueu un nom de fitxer a dins del qual s'escriurà la informació de l'aplicació virtual. Actualment el VirtualBox suporta el format obert de virtualització (OVF).</translation> + </message> + <message> + <source>Write in legacy OVF 0.9 format for compatibility with other virtualization products.</source> + <translation>Escriu en format OVF 0.9 original per ser compatible amb altres productes de virtualització.</translation> + </message> + <message> + <source>&Write legacy OVF 0.9</source> + <translation>&Escriu en format OVF 0.9 original</translation> + </message> + <message> + <source>&Export ></source> + <translation>&Exporta ></translation> + </message> + <message> + <source>Please choose a filename to export the OVF to.</source> + <translation>Seleccioneu un nom de fitxer al qual exportar l'OVF.</translation> + </message> + <message> + <source>Please complete the additional fields like the username, password and the bucket, and provide a filename for the OVF target.</source> + <translation>Ompliu els camps addicionals com el nom d'usuari, conrasenya i el contenidor. Després haureu de proveir un nom de fitxer a l'objectiu de l'OVF.</translation> + </message> + <message> + <source>Please complete the additional fields like the username, password, hostname and the bucket, and provide a filename for the OVF target.</source> + <translation>Completeu els camps addicionals com el nom d'usuari, la contrasenya, el nom de l'amfitrió i el contenidor. Després haureu de proveir un nom de fitxer a l'objectiu de l'OVF.</translation> + </message> + <message> + <source>Checking files ...</source> + <translation>S'estan comprovant els fitxers...</translation> + </message> + <message> + <source>Removing files ...</source> + <translation>S'estan eliminant els fitxers...</translation> + </message> + <message> + <source>Please specify the target for the OVF export. You can choose between a local file system export, uploading the OVF to the Sun Cloud service or an S3 storage server.</source> + <translation>Especifiqueu l'objectiu per a l'exportació OVF. Podeu triar entre una exportació del sistema a fitxer local, pujar l'OVF al servei Sun Cloud o en un servidor d'emmagatzamatge S3.</translation> + </message> + <message> + <source>&Local Filesystem </source> + <translation>Sistema de fitxers &local </translation> + </message> + <message> + <source>Sun &Cloud</source> + <translation>Sun &Cloud</translation> + </message> + <message> + <source>&Simple Storage System (S3)</source> + <translation>&Sistema d'emmagatzematge simple (S3)</translation> + </message> + <message> + <source>&Username:</source> + <translation>Nom d'&usuari:</translation> + </message> + <message> + <source>&Password:</source> + <translation>&Contrasenya:</translation> + </message> + <message> + <source>&File:</source> + <translation>&Fitxer:</translation> + </message> + <message> + <source>&Bucket:</source> + <translation>&Contenidor:</translation> + </message> + <message> + <source>&Hostname:</source> + <translation>&Nom de l'amfitrió:</translation> + </message> +</context> +<context> + <name>VBoxFilePathSelectorWidget</name> + <message> + <source><reset to default></source> + <translation><reset to default></translation> + </message> + <message> + <source>The actual default path value will be displayed after accepting the changes and opening this dialog again.</source> + <translation>La ruta actual per defecte es mostrarà després d'acceptar els canvis i obrir este dià leg novament. </translation> + </message> + <message> + <source><not selected></source> + <translation><no seleccionat></translation> + </message> + <message> + <source>Please use the <b>Other...</b> item from the drop-down list to select a path.</source> + <translation>Feu servir l'Ãtem <b>Altra...</b> a la llista desplegable per a seleccionar la ruta desitjada.</translation> + </message> + <message> + <source>Other...</source> + <translation>Altra...</translation> + </message> + <message> + <source>Reset</source> + <translation>Reinicialitza</translation> + </message> + <message> + <source>Opens a dialog to select a different folder.</source> + <translation>Obri un quadre de dià leg per a seleccionar una carpeta diferent.</translation> + </message> + <message> + <source>Resets the folder path to the default value.</source> + <translation>Reinicialitza la ruta de la carpeta al valor per defecte.</translation> + </message> + <message> + <source>Opens a dialog to select a different file.</source> + <translation>Obri un quadre de dià leg per a seleccionar un fitxer diferent.</translation> + </message> + <message> + <source>Resets the file path to the default value.</source> + <translation>Reinicialitza la ruta al fitxer al valor per defecte.</translation> + </message> + <message> + <source>&Copy</source> + <translation>&Copia</translation> + </message> + <message> + <source>Please type the folder path here.</source> + <translation>Introduïu acà la ruta desitjada per a la carpeta.</translation> + </message> + <message> + <source>Please type the file path here.</source> + <translation>Introduïu acà la ruta desitjada per al fitxer.</translation> + </message> +</context> +<context> + <name>VBoxGLSettingsDlg</name> + <message> + <source>General</source> + <translation>General</translation> + </message> + <message> + <source>Input</source> + <translation>Entrada</translation> + </message> + <message> + <source>Update</source> + <translation>Actualització</translation> + </message> + <message> + <source>Language</source> + <translation>Idioma</translation> + </message> + <message> + <source>USB</source> + <translation>USB</translation> + </message> + <message> + <source>Network</source> + <translation>Xarxa</translation> + </message> + <message> + <source>VirtualBox - %1</source> + <translation>VirtualBox - %1</translation> + </message> +</context> +<context> + <name>VBoxGLSettingsGeneral</name> + <message> + <source>Displays the path to the default VDI folder. This folder is used, if not explicitly specified otherwise, when adding existing or creating new virtual hard disks.</source> + <translation type="obsolete">Mostra la ruta cap a la carpeta de fitxers VDI predeterminada. S'usa esta carpeta, si no se n'especifica explÃcitament una altra, quan s'afig o es crea un disc virtual.</translation> + </message> + <message> + <source>Displays the path to the default virtual machine folder. This folder is used, if not explicitly specified otherwise, when creating new virtual machines.</source> + <translation>Mostra la ruta cap a la carpeta de mà quines virtuals predeterminada. S'usa esta carpeta, si no se n'especifica explÃcitament una altra, quan es crea una mà quina virtual.</translation> + </message> + <message> + <source>Displays the path to the library that provides authentication for Remote Display (VRDP) clients.</source> + <translation>Mostra la ruta cap a la biblioteca que proveeix l'autenticació per a clients de la pantalla remota (VRDP).</translation> + </message> + <message> + <source>Default &Hard Disk Folder:</source> + <translation>Carpeta de &disc dur per defecte:</translation> + </message> + <message> + <source>Default &Machine Folder:</source> + <translation>Carpeta de la &mà quina per defecte:</translation> + </message> + <message> + <source>V&RDP Authentication Library:</source> + <translation>Biblioteca d'autenticació V&RDP:</translation> + </message> + <message> + <source>When checked, the Dock Icon will reflect the VM window content in realtime.</source> + <translation>Quan estiga marcat, la icona del dock mostrarà el contingut de la finestra de la mà quina virtual en temps real.</translation> + </message> + <message> + <source>&Dock Icon Realtime Preview</source> + <translation>Previsualització en temps real a la icona del &dock</translation> + </message> + <message> + <source>Displays the path to the default hard disk folder. This folder is used, if not explicitly specified otherwise, when adding existing or creating new virtual hard disks.</source> + <translation>Mostra la ruta cap a la carpeta de disc dur predeterminada. S'usa esta carpeta, si no se n'especifica explÃcitament una altra, quan s'afig o es crea un disc virtual.</translation> + </message> + <message> + <source>When checked, the application will provide an icon with the context menu in the system tray.</source> + <translation>Quan estiga marcat, l'aplicació proveirà una icona amb el menú de context a la safata de sistema.</translation> + </message> + <message> + <source>&Show System Tray Icon</source> + <translation>&Mostra la icona a la safata del sistema</translation> + </message> + <message> + <source>&Auto show Dock && Menubar in fullscreen</source> + <translation>&Mostra el dock automà ticament i la barra de menú al mode de pantalla completa</translation> + </message> +</context> +<context> + <name>VBoxGLSettingsInput</name> + <message> + <source>Host &Key:</source> + <translation>Tecla d'&amfitrió:</translation> + </message> + <message> + <source>Displays the key used as a Host Key in the VM window. Activate the entry field and press a new Host Key. Note that alphanumeric, cursor movement and editing keys cannot be used.</source> + <translation>Mostra la tecla que es fa servir com a tecla d'amfitrió en la finestra de la mà quina virtual. Activeu el camp d'entrada i premeu una nova tecla d'amfitrió. Tingueu en compte que les tecles alfanumèriques, de moviment del cursor i d'edició no es poden fer servir com a tecles d'amfitrió.</translation> + </message> + <message> + <source>When checked, the keyboard is automatically captured every time the VM window is activated. When the keyboard is captured, all keystrokes (including system ones like Alt-Tab) are directed to the VM.</source> + <translation>Quan estiga marcat, el teclat serà automà ticament capturat cada vegada que s'active la finestra de la mà quina virtual. Quan el teclat és capturat, totes les pulsacions de tecles (incloses les de sistema, com ara Alt+Tab) es redireccionaran cap a la mà quina virtual.</translation> + </message> + <message> + <source>&Auto Capture Keyboard</source> + <translation>&Auto-captura el teclat</translation> + </message> +</context> +<context> + <name>VBoxGLSettingsLanguage</name> + <message> + <source> (built-in)</source> + <comment>Language</comment> + <translation> (integrat)</translation> + </message> + <message> + <source><unavailable></source> + <comment>Language</comment> + <translation><no disponible></translation> + </message> + <message> + <source><unknown></source> + <comment>Author(s)</comment> + <translation><desconegut></translation> + </message> + <message> + <source>Default</source> + <comment>Language</comment> + <translation>Predeterminat</translation> + </message> + <message> + <source>Language:</source> + <translation>Idioma:</translation> + </message> + <message> + <source>&Interface Language:</source> + <translation>Idioma de la &interfÃcie:</translation> + </message> + <message> + <source>Lists all available user interface languages. The effective language is written in <b>bold</b>. Select <i>Default</i> to reset to the system default language.</source> + <translation>Mostra tots els idiomes disponibles. L'idioma activat es mostra en <b>negreta</b>. Seleccioneu <i>Predeterminat</i> per tornar a l'idioma per defecte.</translation> + </message> + <message> + <source>Name</source> + <translation>Nom</translation> + </message> + <message> + <source>Id</source> + <translation>Id</translation> + </message> + <message> + <source>Language</source> + <translation>Idioma</translation> + </message> + <message> + <source>Author</source> + <translation>Autor</translation> + </message> + <message> + <source>Author(s):</source> + <translation>Autor(s):</translation> + </message> +</context> +<context> + <name>VBoxGLSettingsNetwork</name> + <message> + <source>%1 network</source> + <comment><adapter name> network</comment> + <translation>%1 xarxa</translation> + </message> + <message> + <source>host IPv4 address of <b>%1</b> is wrong</source> + <translation>l'adreça IPv4 de l'amfitrió de <b>%1</b> és errònia</translation> + </message> + <message> + <source>host IPv4 network mask of <b>%1</b> is wrong</source> + <translation>la mà scara de xarxa IPv4 de l'amfitrió <b>%1</b> és errònia</translation> + </message> + <message> + <source>host IPv6 address of <b>%1</b> is wrong</source> + <translation>l'adreça IPv6 de l'amfitrió de <b>%1</b> és errònia</translation> + </message> + <message> + <source>DHCP server address of <b>%1</b> is wrong</source> + <translation>l'adreça del servidor DHCP de <b>%1</b> és errònia</translation> + </message> + <message> + <source>DHCP server network mask of <b>%1</b> is wrong</source> + <translation>la mà scara de xarxa del servidor DHCP de <b>%1</b> és errònia</translation> + </message> + <message> + <source>DHCP lower address bound of <b>%1</b> is wrong</source> + <translation>el lÃmit inferior de l'adreça DHCP de <b>%1</b> és erroni</translation> + </message> + <message> + <source>DHCP upper address bound of <b>%1</b> is wrong</source> + <translation>el lÃmit superior de l'adreça DHCP de <b>%1</b> és erroni</translation> + </message> + <message> + <source>Adapter</source> + <translation>Adaptador</translation> + </message> + <message> + <source>Automatically configured</source> + <comment>interface</comment> + <translation>Configurat automà ticament</translation> + </message> + <message> + <source>Manually configured</source> + <comment>interface</comment> + <translation>Configurat manualment</translation> + </message> + <message> + <source>IPv4 Address</source> + <translation>Adreça IPv4</translation> + </message> + <message> + <source>Not set</source> + <comment>address</comment> + <translation>Sense especificar</translation> + </message> + <message> + <source>IPv4 Network Mask</source> + <translation>Mà scara de xarxa IPv4</translation> + </message> + <message> + <source>Not set</source> + <comment>mask</comment> + <translation>Sense especificar</translation> + </message> + <message> + <source>IPv6 Address</source> + <translation>Adreça IPv6</translation> + </message> + <message> + <source>IPv6 Network Mask Length</source> + <translation>Mida de la mà scara de xarxa IPv6</translation> + </message> + <message> + <source>Not set</source> + <comment>length</comment> + <translation>Sense especificar</translation> + </message> + <message> + <source>DHCP Server</source> + <translation>Servidor DHCP</translation> + </message> + <message> + <source>Enabled</source> + <comment>server</comment> + <translation>Activat</translation> + </message> + <message> + <source>Disabled</source> + <comment>server</comment> + <translation>Desactivat</translation> + </message> + <message> + <source>Address</source> + <translation>Adreça</translation> + </message> + <message> + <source>Network Mask</source> + <translation>Mà scara de xarxa</translation> + </message> + <message> + <source>Lower Bound</source> + <translation>LÃmit inferior</translation> + </message> + <message> + <source>Not set</source> + <comment>bound</comment> + <translation>Sense especificar</translation> + </message> + <message> + <source>Upper Bound</source> + <translation>LÃmit superior</translation> + </message> + <message> + <source>&Add host-only network</source> + <translation>&Afig xarxa només per a l'amfitrió</translation> + </message> + <message> + <source>&Remove host-only network</source> + <translation>&Suprimeix xarxa només per a l'amfitrió</translation> + </message> + <message> + <source>&Edit host-only network</source> + <translation>&Edita xarxa només per a l'amfitrió</translation> + </message> + <message> + <source>Performing</source> + <comment>creating/removing host-only network</comment> + <translation>S'estan realitzant les operacions</translation> + </message> + <message> + <source>&Host-only Networks:</source> + <translation>&Xarxes només de l'amfitrió:</translation> + </message> + <message> + <source>Lists all available host-only networks.</source> + <translation>Mostra totes les xarxes només de l'amfitrió.</translation> + </message> + <message> + <source>Name</source> + <translation>Nom</translation> + </message> +</context> +<context> + <name>VBoxGLSettingsNetworkDetails</name> + <message> + <source>Host-only Network Details</source> + <translation>Detalls de xarxa de només l'amfitrió</translation> + </message> + <message> + <source>&Adapter</source> + <translation>&Adaptador</translation> + </message> + <message> + <source>Manual &Configuration</source> + <translation>&Configuració manual</translation> + </message> + <message> + <source>Use manual configuration for this host-only network adapter.</source> + <translation>Fes servir la configuració manual només per a l'adaptador de xarxa de l'amfitrió.</translation> + </message> + <message> + <source>&IPv4 Address:</source> + <translation>Adreça &IPv4:</translation> + </message> + <message> + <source>Displays the host IPv4 address for this adapter.</source> + <translation>Mostra l'adreça IPv4 de l'amfitrió d'este adaptador.</translation> + </message> + <message> + <source>IPv4 Network &Mask:</source> + <translation>&Mà scara de xarxa IPv4:</translation> + </message> + <message> + <source>Displays the host IPv4 network mask for this adapter.</source> + <translation>Mostra la mà scara de xarxa IPv4 de l'amfitrió d'este adaptador.</translation> + </message> + <message> + <source>I&Pv6 Address:</source> + <translation>Adreça I&Pv6:</translation> + </message> + <message> + <source>Displays the host IPv6 address for this adapter if IPv6 is supported.</source> + <translation>Mostra l'adreça IPv6 de l'amfitrió d'este adaptador si IPv6 està suportat.</translation> + </message> + <message> + <source>IPv6 Network Mask &Length:</source> + <translation>&Longitud de la mà scara de xarxa IPv6:</translation> + </message> + <message> + <source>Displays the host IPv6 network mask prefix length for this adapter if IPv6 is supported.</source> + <translation>Mostra la longitud de l'adreça de la mà scara de xarxa IPv6 de l'amfitrió per a este adaptador si IPv6 està suportat.</translation> + </message> + <message> + <source>&DHCP Server</source> + <translation>Servidor &DHCP</translation> + </message> + <message> + <source>&Enable Server</source> + <translation>&Habilita el servidor</translation> + </message> + <message> + <source>Indicates whether the DHCP Server is enabled on machine startup or not.</source> + <translation>Indica si el servidor DHCP està habilitat en iniciar de la mà quina o no.</translation> + </message> + <message> + <source>Server Add&ress:</source> + <translation>Ad&reça del servidor:</translation> + </message> + <message> + <source>Displays the address of the DHCP server servicing the network associated with this host-only adapter.</source> + <translation>Mostra l'adreça del servidor DHCP de la xarxa associada a este adaptador de només l'amfitrió.</translation> + </message> + <message> + <source>Server &Mask:</source> + <translation>&Mà scara del servidor:</translation> + </message> + <message> + <source>Displays the network mask of the DHCP server servicing the network associated with this host-only adapter.</source> + <translation>Mostra la mà scara de xarxa del servidor DHCP de la xarxa associada a este adaptador de només l'amfitrió.</translation> + </message> + <message> + <source>&Lower Address Bound:</source> + <translation>Adreça lÃmit &inferior:</translation> + </message> + <message> + <source>Displays the lower address bound offered by the DHCP server servicing the network associated with this host-only adapter.</source> + <translation>Mostra l'adreça lÃmit inferior oferida pel servidor DHCP de la xarxa associada aquet adaptador de només l'amfitrió.</translation> + </message> + <message> + <source>&Upper Address Bound:</source> + <translation>Adreça lÃmit &superior:</translation> + </message> + <message> + <source>Displays the upper address bound offered by the DHCP server servicing the network associated with this host-only adapter.</source> + <translation>Mostra l'adreça lÃmit superior oferida pel servidor DHCP de la xarxa associada a este adaptador de només l'amfitrió.</translation> + </message> +</context> +<context> + <name>VBoxGLSettingsUpdate</name> + <message> + <source>When checked, the application will periodically connect to the VirtualBox website and check whether a new VirtualBox version is available.</source> + <translation>Quan estiga marcat, l'aplicació es connectarà periòdicament al web del VirtualBox per comprovar si hi ha noves versions disponibles.</translation> + </message> + <message> + <source>&Check for updates</source> + <translation>&Comprova si hi ha actualitzacions</translation> + </message> + <message> + <source>&Once per:</source> + <translation>&Una vegada per:</translation> + </message> + <message> + <source>Specifies how often the new version check should be performed. Note that if you want to completely disable this check, just clear the above check box.</source> + <translation>Especifica amb quina periodicitat es comprovarà si hi ha noves versions. Si voleu desactivar esta acció, desmarqueu la casella de dalt.</translation> + </message> + <message> + <source>Next Check:</source> + <translation>Propera comprovació:</translation> + </message> + <message> + <source>Check for:</source> + <translation>Comprova per:</translation> + </message> + <message> + <source><p>Choose this if you only wish to be notified about stable updates to VirtualBox.</p></source> + <translation><p>Trieu això si voleu ser notificats sobre actualitzacions estables del VirtualBox.</p></translation> + </message> + <message> + <source>&Stable release versions</source> + <translation>&Versions publicades estables</translation> + </message> + <message> + <source><p>Choose this if you wish to be notified about all new VirtualBox releases.</p></source> + <translation><p>Trieu això si voleu ser informats de noves versions publicades del VirtualBox.</p></translation> + </message> + <message> + <source>&All new releases</source> + <translation>&Totes les noves versions</translation> + </message> + <message> + <source><p>Choose this to be notified about all new VirtualBox releases and pre-release versions of VirtualBox.</p></source> + <translation><p>Trieu això si voleu ser notificats de les noves versions i versions en desenvolupament del VirtualBox.</p></translation> + </message> + <message> + <source>All new releases and &pre-releases</source> + <translation>Totes les &noves versions i també versions en desenvolupament</translation> + </message> +</context> +<context> + <name>VBoxGlobal</name> + <message> + <source>Differencing</source> + <comment>hard disk</comment> + <translation type="obsolete">S'estan calculant les diferències</translation> + </message> + <message> + <source>Unknown device %1:%2</source> + <comment>USB device details</comment> + <translation>Dispositiu desconegut %1:%2</translation> + </message> + <message> + <source><nobr>Vendor ID: %1</nobr><br><nobr>Product ID: %2</nobr><br><nobr>Revision: %3</nobr></source> + <comment>USB device tooltip</comment> + <translation><nobr>ID del proveïdor: %1</nobr><br><nobr>ID del producte: %2</nobr><br><nobr>Revisió: %3</nobr></translation> + </message> + <message> + <source><br><nobr>Serial No. %1</nobr></source> + <comment>USB device tooltip</comment> + <translation><br><nobr>Núm de sèrie %1</nobr></translation> + </message> + <message> + <source><br><nobr>State: %1</nobr></source> + <comment>USB device tooltip</comment> + <translation><br><nobr>Estat: %1</nobr></translation> + </message> + <message> + <source>Name</source> + <comment>details report</comment> + <translation>Nom</translation> + </message> + <message> + <source>OS Type</source> + <comment>details report</comment> + <translation>Tipus de sistema operatiu</translation> + </message> + <message> + <source>Base Memory</source> + <comment>details report</comment> + <translation>Memòria base</translation> + </message> + <message> + <source><nobr>%3 MB</nobr></source> + <comment>details report</comment> + <translation type="obsolete"><nobr>%3 MB</nobr></translation> + </message> + <message> + <source>General</source> + <comment>details report</comment> + <translation>General</translation> + </message> + <message> + <source>Video Memory</source> + <comment>details report</comment> + <translation>Memòria de vÃdeo</translation> + </message> + <message> + <source><nobr>%4 MB</nobr></source> + <comment>details report</comment> + <translation type="obsolete"><nobr>%4 MB</nobr></translation> + </message> + <message> + <source>Boot Order</source> + <comment>details report</comment> + <translation>Orde d'arrencada</translation> + </message> + <message> + <source>ACPI</source> + <comment>details report</comment> + <translation>ACPI</translation> + </message> + <message> + <source>IO APIC</source> + <comment>details report</comment> + <translation>IO APIC</translation> + </message> + <message> + <source>Nested Paging</source> + <comment>details report</comment> + <translation>Paginació imbricada</translation> + </message> + <message> + <source>Not Attached</source> + <comment>details report (HDDs)</comment> + <translation type="obsolete">No està connectat</translation> + </message> + <message> + <source>Hard Disks</source> + <comment>details report</comment> + <translation type="obsolete">Discos durs</translation> + </message> + <message> + <source>Enabled</source> + <comment>details report (ACPI)</comment> + <translation>Activat</translation> + </message> + <message> + <source>Disabled</source> + <comment>details report (ACPI)</comment> + <translation>Desactivat</translation> + </message> + <message> + <source>Enabled</source> + <comment>details report (IO APIC)</comment> + <translation>Activat</translation> + </message> + <message> + <source>Disabled</source> + <comment>details report (IO APIC)</comment> + <translation>Desactivat</translation> + </message> + <message> + <source>Enabled</source> + <comment>details report (Nested Paging)</comment> + <translation>Activat</translation> + </message> + <message> + <source>Disabled</source> + <comment>details report (Nested Paging)</comment> + <translation>Desactivat</translation> + </message> + <message> + <source>Not mounted</source> + <comment>details report (floppy)</comment> + <translation type="obsolete">No està muntat</translation> + </message> + <message> + <source>Image</source> + <comment>details report (floppy)</comment> + <translation type="obsolete">Imatge</translation> + </message> + <message> + <source>Host Drive</source> + <comment>details report (floppy)</comment> + <translation type="obsolete">Unitat de l'ordinador amfitrió</translation> + </message> + <message> + <source>Floppy</source> + <comment>details report</comment> + <translation type="obsolete">Disquet</translation> + </message> + <message> + <source>Bridged Adapter</source> + <comment>NetworkAttachmentType</comment> + <translation>Adaptador pont</translation> + </message> + <message> + <source>Not mounted</source> + <comment>details report (DVD)</comment> + <translation type="obsolete">No està muntat</translation> + </message> + <message> + <source>Image</source> + <comment>details report (DVD)</comment> + <translation type="obsolete">Imatge</translation> + </message> + <message> + <source>Host Drive</source> + <comment>details report (DVD)</comment> + <translation type="obsolete">Unitat de l'ordinador amfitrió</translation> + </message> + <message> + <source>CD/DVD-ROM</source> + <comment>details report</comment> + <translation type="obsolete">CD/DVD</translation> + </message> + <message> + <source>Adapter</source> + <comment>details report (audio)</comment> + <translation type="obsolete">Adaptador</translation> + </message> + <message> + <source>Disabled</source> + <comment>details report (audio)</comment> + <translation>Desactivat</translation> + </message> + <message> + <source>Audio</source> + <comment>details report</comment> + <translation>Àudio</translation> + </message> + <message> + <source>Bridged adapter, %1</source> + <comment>details report (network)</comment> + <translation>Adaptador pont, %1</translation> + </message> + <message> + <source>Host-only adapter, '%1'</source> + <comment>details report (network)</comment> + <translation>Adaptador de només l'amfitrió, '%1'</translation> + </message> + <message> + <source>Adapter %1</source> + <comment>details report (network)</comment> + <translation>Adaptador %1</translation> + </message> + <message> + <source>Disabled</source> + <comment>details report (network)</comment> + <translation>Desactivat</translation> + </message> + <message> + <source>Network</source> + <comment>details report</comment> + <translation>Xarxa</translation> + </message> + <message> + <source>Device Filters</source> + <comment>details report (USB)</comment> + <translation>Filtres del dispositiu</translation> + </message> + <message> + <source>%1 (%2 active)</source> + <comment>details report (USB)</comment> + <translation>%1 (%2 actiu)</translation> + </message> + <message> + <source>Disabled</source> + <comment>details report (USB)</comment> + <translation>Desactivat</translation> + </message> + <message> + <source>VRDP Server Port</source> + <comment>details report (VRDP)</comment> + <translation type="obsolete">Port del servidor VRDP</translation> + </message> + <message> + <source>%1</source> + <comment>details report (VRDP)</comment> + <translation type="obsolete">%1</translation> + </message> + <message> + <source>Disabled</source> + <comment>details report (VRDP)</comment> + <translation type="obsolete">Desactivat</translation> + </message> + <message> + <source>Remote Display</source> + <comment>details report</comment> + <translation type="obsolete">Pantalla remota</translation> + </message> + <message> + <source>Opening URLs is not implemented yet.</source> + <translation type="obsolete">Encara no està implementada l'opció d'obrir URL.</translation> + </message> + <message> + <source>Powered Off</source> + <comment>MachineState</comment> + <translation>Aturada</translation> + </message> + <message> + <source>Saved</source> + <comment>MachineState</comment> + <translation>Alçat</translation> + </message> + <message> + <source>Aborted</source> + <comment>MachineState</comment> + <translation>Interromput</translation> + </message> + <message> + <source>Running</source> + <comment>MachineState</comment> + <translation>S'està executant</translation> + </message> + <message> + <source>Paused</source> + <comment>MachineState</comment> + <translation>Pausat</translation> + </message> + <message> + <source>Starting</source> + <comment>MachineState</comment> + <translation>S'està iniciant</translation> + </message> + <message> + <source>Stopping</source> + <comment>MachineState</comment> + <translation>S'està aturant</translation> + </message> + <message> + <source>Saving</source> + <comment>MachineState</comment> + <translation>S'està desant</translation> + </message> + <message> + <source>Restoring</source> + <comment>MachineState</comment> + <translation>S'està restaurant</translation> + </message> + <message> + <source>Discarding</source> + <comment>MachineState</comment> + <translation type="obsolete">S'està descartant</translation> + </message> + <message> + <source>Closed</source> + <comment>SessionState</comment> + <translation>Tancat</translation> + </message> + <message> + <source>Open</source> + <comment>SessionState</comment> + <translation>Obert</translation> + </message> + <message> + <source>Spawning</source> + <comment>SessionState</comment> + <translation>S'està engendrant</translation> + </message> + <message> + <source>Closing</source> + <comment>SessionState</comment> + <translation>S'està tancant</translation> + </message> + <message> + <source>None</source> + <comment>DeviceType</comment> + <translation>Cap</translation> + </message> + <message> + <source>Floppy</source> + <comment>DeviceType</comment> + <translation>Disquet</translation> + </message> + <message> + <source>CD/DVD-ROM</source> + <comment>DeviceType</comment> + <translation>CD/DVD</translation> + </message> + <message> + <source>Hard Disk</source> + <comment>DeviceType</comment> + <translation>Disc dur</translation> + </message> + <message> + <source>Network</source> + <comment>DeviceType</comment> + <translation>Xarxa</translation> + </message> + <message> + <source>Primary</source> + <comment>DiskControllerType</comment> + <translation type="obsolete">Primari</translation> + </message> + <message> + <source>Secondary</source> + <comment>DiskControllerType</comment> + <translation type="obsolete">Secundari</translation> + </message> + <message> + <source>Normal</source> + <comment>DiskType</comment> + <translation>Normal</translation> + </message> + <message> + <source>Immutable</source> + <comment>DiskType</comment> + <translation>Immutable</translation> + </message> + <message> + <source>Writethrough</source> + <comment>DiskType</comment> + <translation>Escriptura directa</translation> + </message> + <message> + <source>Virtual Disk Image</source> + <comment>DiskStorageType</comment> + <translation type="obsolete">Imatge de disc virtual</translation> + </message> + <message> + <source>iSCSI</source> + <comment>DiskStorageType</comment> + <translation type="obsolete">iSCSI</translation> + </message> + <message> + <source>VMDK Image</source> + <comment>DiskStorageType</comment> + <translation type="obsolete">Imatge VMDK</translation> + </message> + <message> + <source>Null</source> + <comment>VRDPAuthType</comment> + <translation>Nul</translation> + </message> + <message> + <source>External</source> + <comment>VRDPAuthType</comment> + <translation>Extern</translation> + </message> + <message> + <source>Guest</source> + <comment>VRDPAuthType</comment> + <translation>Client</translation> + </message> + <message> + <source>Ignore</source> + <comment>USBFilterActionType</comment> + <translation>Ignora</translation> + </message> + <message> + <source>Hold</source> + <comment>USBFilterActionType</comment> + <translation>Retèn</translation> + </message> + <message> + <source>Master</source> + <comment>DiskControllerDevice</comment> + <translation type="obsolete">Mestre</translation> + </message> + <message> + <source>Slave</source> + <comment>DiskControllerDevice</comment> + <translation type="obsolete">Esclau</translation> + </message> + <message> + <source>Device&nbsp;%1</source> + <comment>DiskControllerDevice</comment> + <translation type="obsolete">Dispositiu&nbsp;%1</translation> + </message> + <message> + <source>Null Audio Driver</source> + <comment>AudioDriverType</comment> + <translation>Controlador d'à udio nul</translation> + </message> + <message> + <source>Windows Multimedia</source> + <comment>AudioDriverType</comment> + <translation>Windows Multimedia</translation> + </message> + <message> + <source>OSS Audio Driver</source> + <comment>AudioDriverType</comment> + <translation>Controlador d'à udio OSS</translation> + </message> + <message> + <source>ALSA Audio Driver</source> + <comment>AudioDriverType</comment> + <translation>Controlador d'à udio ALSA</translation> + </message> + <message> + <source>Windows DirectSound</source> + <comment>AudioDriverType</comment> + <translation>Windows DirectSound</translation> + </message> + <message> + <source>CoreAudio</source> + <comment>AudioDriverType</comment> + <translation>CoreAudio</translation> + </message> + <message> + <source>Intel PRO/1000 MT Server (82545EM)</source> + <comment>NetworkAdapterType</comment> + <translation>Intel PRO/1000 MT Server (82545EM)</translation> + </message> + <message> + <source>Not attached</source> + <comment>NetworkAttachmentType</comment> + <translation>No connectat</translation> + </message> + <message> + <source>NAT</source> + <comment>NetworkAttachmentType</comment> + <translation>NAT</translation> + </message> + <message> + <source>Host Interface</source> + <comment>NetworkAttachmentType</comment> + <translation type="obsolete">InterfÃcie de xarxa de l'amfitrió</translation> + </message> + <message> + <source>Internal Network</source> + <comment>NetworkAttachmentType</comment> + <translation>Xarxa interna</translation> + </message> + <message> + <source>Host-only Adapter</source> + <comment>NetworkAttachmentType</comment> + <translation>Adaptador de només l'amfitrió</translation> + </message> + <message> + <source>Not supported</source> + <comment>USBDeviceState</comment> + <translation>No compatible</translation> + </message> + <message> + <source>Unavailable</source> + <comment>USBDeviceState</comment> + <translation>No disponible</translation> + </message> + <message> + <source>Busy</source> + <comment>USBDeviceState</comment> + <translation>Ocupat</translation> + </message> + <message> + <source>Available</source> + <comment>USBDeviceState</comment> + <translation>Disponible</translation> + </message> + <message> + <source>Held</source> + <comment>USBDeviceState</comment> + <translation>Retingut</translation> + </message> + <message> + <source>Captured</source> + <comment>USBDeviceState</comment> + <translation>Capturat</translation> + </message> + <message> + <source><i>Checking...</i></source> + <comment>hard disk</comment> + <translation type="obsolete"><i>S'està comprovant...</i></translation> + </message> + <message> + <source><i>Inaccessible</i></source> + <comment>hard disk</comment> + <translation type="obsolete"><i>Inaccessible</i></translation> + </message> + <message> + <source>Disabled</source> + <comment>ClipboardType</comment> + <translation>Desactivat</translation> + </message> + <message> + <source>Host To Guest</source> + <comment>ClipboardType</comment> + <translation>De l'amfitrió al client</translation> + </message> + <message> + <source>Guest To Host</source> + <comment>ClipboardType</comment> + <translation>Del client a l'amfitrió</translation> + </message> + <message> + <source>Bidirectional</source> + <comment>ClipboardType</comment> + <translation>Bidireccional</translation> + </message> + <message> + <source>Select a directory</source> + <translation type="obsolete">Seleccioneu un directori</translation> + </message> + <message> + <source>Select a file</source> + <translation type="obsolete">Seleccioneu un fitxer</translation> + </message> + <message> + <source>Port %1</source> + <comment>details report (serial ports)</comment> + <translation>Port %1</translation> + </message> + <message> + <source>Disabled</source> + <comment>details report (serial ports)</comment> + <translation>Desactivat</translation> + </message> + <message> + <source>Serial Ports</source> + <comment>details report</comment> + <translation>Ports en sèrie</translation> + </message> + <message> + <source>USB</source> + <comment>details report</comment> + <translation>USB</translation> + </message> + <message> + <source>Shared Folders</source> + <comment>details report (shared folders)</comment> + <translation>Carpetes compartides</translation> + </message> + <message> + <source>%1</source> + <comment>details report (shadef folders)</comment> + <translation type="obsolete">%1</translation> + </message> + <message> + <source>None</source> + <comment>details report (shared folders)</comment> + <translation>Cap</translation> + </message> + <message> + <source>Shared Folders</source> + <comment>details report</comment> + <translation>Carpetes compartides</translation> + </message> + <message> + <source>Stuck</source> + <comment>MachineState</comment> + <translation type="obsolete">Encallada</translation> + </message> + <message> + <source>Disconnected</source> + <comment>PortMode</comment> + <translation>Desconnectat</translation> + </message> + <message> + <source>Host Pipe</source> + <comment>PortMode</comment> + <translation>Conducte cap a l'amfitrió</translation> + </message> + <message> + <source>Host Device</source> + <comment>PortMode</comment> + <translation>Dispositiu de l'amfitrió</translation> + </message> + <message> + <source>Bridged Network</source> + <comment>NetworkAttachmentType</comment> + <translation type="obsolete">Xarxa en pont</translation> + </message> + <message> + <source>Host-only Network</source> + <comment>NetworkAttachmentType</comment> + <translation type="obsolete">Xarxa només d'amfitrió</translation> + </message> + <message> + <source>PIIX3</source> + <comment>StorageControllerType</comment> + <translation>PIIX3</translation> + </message> + <message> + <source>PIIX4</source> + <comment>StorageControllerType</comment> + <translation>PIIX4</translation> + </message> + <message> + <source>ICH6</source> + <comment>StorageControllerType</comment> + <translation>ICH6</translation> + </message> + <message> + <source>AHCI</source> + <comment>StorageControllerType</comment> + <translation>AHCI</translation> + </message> + <message> + <source>Lsilogic</source> + <comment>StorageControllerType</comment> + <translation>Lsilogic</translation> + </message> + <message> + <source>BusLogic</source> + <comment>StorageControllerType</comment> + <translation>BusLogic</translation> + </message> + <message> + <source>User-defined</source> + <comment>serial port</comment> + <translation>Definit per l'usuari</translation> + </message> + <message> + <source>Custom Hard Disk</source> + <comment>DiskStorageType</comment> + <translation type="obsolete">Disc dur personalitzat</translation> + </message> + <message> + <source>VT-x/AMD-V</source> + <comment>details report</comment> + <translation>VT-x/AMD-V</translation> + </message> + <message> + <source>PAE/NX</source> + <comment>details report</comment> + <translation>PAE/NX</translation> + </message> + <message> + <source>Enabled</source> + <comment>details report (VT-x/AMD-V)</comment> + <translation>Activat</translation> + </message> + <message> + <source>Disabled</source> + <comment>details report (VT-x/AMD-V)</comment> + <translation>Desactivat</translation> + </message> + <message> + <source>Enabled</source> + <comment>details report (PAE/NX)</comment> + <translation>Activat</translation> + </message> + <message> + <source>Disabled</source> + <comment>details report (PAE/NX)</comment> + <translation>Desactivat</translation> + </message> + <message> + <source>Host Driver</source> + <comment>details report (audio)</comment> + <translation>Controlador amfitrió</translation> + </message> + <message> + <source>Controller</source> + <comment>details report (audio)</comment> + <translation>Controlador</translation> + </message> + <message> + <source>Bridged network, %1</source> + <comment>details report (network)</comment> + <translation type="obsolete">Xarxa en pont, %1</translation> + </message> + <message> + <source>Internal network, '%1'</source> + <comment>details report (network)</comment> + <translation>Xarxa interna, '%1'</translation> + </message> + <message> + <source>Host-only network, '%1'</source> + <comment>details report (network)</comment> + <translation type="obsolete">Xarxa només de l'amfitrió, '%1'</translation> + </message> + <message> + <source>Port %1</source> + <comment>details report (parallel ports)</comment> + <translation>Port %1</translation> + </message> + <message> + <source>Disabled</source> + <comment>details report (parallel ports)</comment> + <translation>Desactivat</translation> + </message> + <message> + <source>Parallel Ports</source> + <comment>details report</comment> + <translation>Ports paral·lels</translation> + </message> + <message> + <source>USB</source> + <comment>DeviceType</comment> + <translation>USB</translation> + </message> + <message> + <source>Shared Folder</source> + <comment>DeviceType</comment> + <translation>Carpeta compartida</translation> + </message> + <message> + <source>IDE</source> + <comment>StorageBus</comment> + <translation>IDE</translation> + </message> + <message> + <source>SATA</source> + <comment>StorageBus</comment> + <translation>SATA</translation> + </message> + <message> + <source>SCSI</source> + <comment>StorageBus</comment> + <translation>SCSI</translation> + </message> + <message> + <source>Primary</source> + <comment>StorageBusChannel</comment> + <translation>Primari</translation> + </message> + <message> + <source>Secondary</source> + <comment>StorageBusChannel</comment> + <translation>Secundari</translation> + </message> + <message> + <source>Master</source> + <comment>StorageBusDevice</comment> + <translation>Mestre</translation> + </message> + <message> + <source>Slave</source> + <comment>StorageBusDevice</comment> + <translation>Esclau</translation> + </message> + <message> + <source>Port %1</source> + <comment>StorageBusChannel</comment> + <translation>Port %1</translation> + </message> + <message> + <source>VHD Image</source> + <comment>DiskStorageType</comment> + <translation type="obsolete">Imatge VHD</translation> + </message> + <message> + <source>Solaris Audio</source> + <comment>AudioDriverType</comment> + <translation>Solaris Audio</translation> + </message> + <message> + <source>PulseAudio</source> + <comment>AudioDriverType</comment> + <translation>PulseAudio</translation> + </message> + <message> + <source>ICH AC97</source> + <comment>AudioControllerType</comment> + <translation>ICH AC97</translation> + </message> + <message> + <source>SoundBlaster 16</source> + <comment>AudioControllerType</comment> + <translation>SoundBlaster 16</translation> + </message> + <message> + <source>PCnet-PCI II (Am79C970A)</source> + <comment>NetworkAdapterType</comment> + <translation>PCnet-PCI II (Am79C970A)</translation> + </message> + <message> + <source>PCnet-FAST III (Am79C973)</source> + <comment>NetworkAdapterType</comment> + <translation>PCnet-FAST III (Am79C973)</translation> + </message> + <message> + <source>Intel PRO/1000 MT Desktop (82540EM)</source> + <comment>NetworkAdapterType</comment> + <translation>Intel PRO/1000 MT Desktop (82540EM)</translation> + </message> + <message> + <source>PIIX3</source> + <comment>IDEControllerType</comment> + <translation type="obsolete">PIIX3</translation> + </message> + <message> + <source>PIIX4</source> + <comment>IDEControllerType</comment> + <translation type="obsolete">PIIX4</translation> + </message> + <message> + <source>Intel PRO/1000 T Server (82543GC)</source> + <comment>NetworkAdapterType</comment> + <translation>Intel PRO/1000 T Server (82543GC)</translation> + </message> + <message> + <source><nobr>Vendor ID: %1</nobr></source> + <comment>USB filter tooltip</comment> + <translation><nobr>ID del venedor: %1</nobr></translation> + </message> + <message> + <source><nobr>Product ID: %2</nobr></source> + <comment>USB filter tooltip</comment> + <translation><nobr>ID del producte: %2</nobr></translation> + </message> + <message> + <source><nobr>Revision: %3</nobr></source> + <comment>USB filter tooltip</comment> + <translation><nobr>Revisió: %3</nobr></translation> + </message> + <message> + <source><nobr>Product: %4</nobr></source> + <comment>USB filter tooltip</comment> + <translation><nobr>Producte: %4</nobr></translation> + </message> + <message> + <source><nobr>Manufacturer: %5</nobr></source> + <comment>USB filter tooltip</comment> + <translation><nobr>Fabricant: %5</nobr></translation> + </message> + <message> + <source><nobr>Serial No.: %1</nobr></source> + <comment>USB filter tooltip</comment> + <translation><nobr>No. de sèrie: %1</nobr></translation> + </message> + <message> + <source><nobr>Port: %1</nobr></source> + <comment>USB filter tooltip</comment> + <translation><nobr>Port: %1</nobr></translation> + </message> + <message> + <source><nobr>State: %1</nobr></source> + <comment>USB filter tooltip</comment> + <translation><nobr>Estat: %1</nobr></translation> + </message> + <message> + <source>host interface, %1</source> + <comment>details report (network)</comment> + <translation type="obsolete">InterfÃcie amfitriona, %1</translation> + </message> + <message> + <source>internal network, '%1'</source> + <comment>details report (network)</comment> + <translation type="obsolete">xarxa interna, '%1'</translation> + </message> + <message> + <source>Adapter %1</source> + <comment>network</comment> + <translation>Adaptador %1</translation> + </message> + <message> + <source><br><nobr>Type&nbsp;(Format):&nbsp;&nbsp;%2&nbsp;(%3)</nobr></source> + <comment>hard disk</comment> + <translation type="obsolete"><br><nobr>Tipus&nbsp;(format):&nbsp;&nbsp;%2&nbsp;(%3)</nobr></translation> + </message> + <message> + <source><br><nobr>Attached to:&nbsp;&nbsp;%1</nobr></source> + <comment>medium</comment> + <translation type="obsolete"><br><nobr>Connectat a:&nbsp;&nbsp;%1</nobr></translation> + </message> + <message> + <source><i>Not&nbsp;Attached</i></source> + <comment>medium</comment> + <translation type="obsolete"><i>No&nbsp;connectat</i></translation> + </message> + <message> + <source><br><i>Checking accessibility...</i></source> + <comment>medium</comment> + <translation type="obsolete"><br><i>S'està comprovant l'accessibilitat...</i></translation> + </message> + <message> + <source><hr>Failed to check media accessibility.<br>%1.</source> + <comment>medium</comment> + <translation type="obsolete"><hr>Ha fallat la comprovació de l'accessibilitat.<br>%1.</translation> + </message> + <message> + <source><hr><img src=%1/>&nbsp;Attaching this hard disk will be performed indirectly using a newly created differencing hard disk.</source> + <comment>medium</comment> + <translation type="obsolete"><hr><img src=%1/>&nbsp;Per a connectar este disc dur es crearà un altre disc dur diferenciat.</translation> + </message> + <message> + <source>Checking...</source> + <comment>medium</comment> + <translation>S'està comprovant...</translation> + </message> + <message> + <source>Inaccessible</source> + <comment>medium</comment> + <translation>No s'hi pot accedir</translation> + </message> + <message> + <source><hr>Some of the media in this hard disk chain are inaccessible. Please use the Virtual Media Manager in <b>Show Differencing Hard Disks</b> mode to inspect these media.</source> + <translation type="obsolete"><hr>No s'hi pot accedir a alguns dels suports d'este disc. Feu servir el gestor de suports virtuals al mode <b>Mostra diferències als discos durs</b> per inspeccionar este suport.</translation> + </message> + <message> + <source>%1<hr>This base hard disk is indirectly attached using the following differencing hard disk:<br>%2%3</source> + <translation type="obsolete">%1<hr>Este disc dur base es connecta indirectament fent servint el següent disc dur diferenciat:<br>%2%3</translation> + </message> + <message> + <source>3D Acceleration</source> + <comment>details report</comment> + <translation>Acceleració 3D</translation> + </message> + <message> + <source>Enabled</source> + <comment>details report (3D Acceleration)</comment> + <translation>Activada</translation> + </message> + <message> + <source>Disabled</source> + <comment>details report (3D Acceleration)</comment> + <translation>Desactivada</translation> + </message> + <message> + <source>Setting Up</source> + <comment>MachineState</comment> + <translation>S'està configurant</translation> + </message> + <message> + <source>Differencing</source> + <comment>DiskType</comment> + <translation>S'estan calculant les diferències</translation> + </message> + <message> + <source><nobr>%1 MB</nobr></source> + <comment>details report</comment> + <translation><nobr>%1 MB</nobr></translation> + </message> + <message> + <source>Processor(s)</source> + <comment>details report</comment> + <translation>Processador(s)</translation> + </message> + <message> + <source><nobr>%1</nobr></source> + <comment>details report</comment> + <translation><nobr>%1</nobr></translation> + </message> + <message> + <source>System</source> + <comment>details report</comment> + <translation>Sistema</translation> + </message> + <message> + <source>Remote Display Server Port</source> + <comment>details report (VRDP Server)</comment> + <translation>Port servidor de pantalla remot</translation> + </message> + <message> + <source>Remote Display Server</source> + <comment>details report (VRDP Server)</comment> + <translation>Servidor de pantalla remot</translation> + </message> + <message> + <source>Disabled</source> + <comment>details report (VRDP Server)</comment> + <translation>Desactivat</translation> + </message> + <message> + <source>Display</source> + <comment>details report</comment> + <translation>Pantalla</translation> + </message> + <message> + <source>Raw File</source> + <comment>PortMode</comment> + <translation>Fitxer Raw</translation> + </message> + <message> + <source>Enabled</source> + <comment>details report (2D Video Acceleration)</comment> + <translation>Activat</translation> + </message> + <message> + <source>Disabled</source> + <comment>details report (2D Video Acceleration)</comment> + <translation>Desactivat</translation> + </message> + <message> + <source>2D Video Acceleration</source> + <comment>details report</comment> + <translation>Acceleració de vÃdeo 2D</translation> + </message> + <message> + <source>Not Attached</source> + <comment>details report (Storage)</comment> + <translation>No està connectat</translation> + </message> + <message> + <source>Storage</source> + <comment>details report</comment> + <translation>Emmagatzematge</translation> + </message> + <message> + <source>Teleported</source> + <comment>MachineState</comment> + <translation>Teleportat</translation> + </message> + <message> + <source>Guru Meditation</source> + <comment>MachineState</comment> + <translation>Mediació gurú</translation> + </message> + <message> + <source>Teleporting</source> + <comment>MachineState</comment> + <translation>Telepotació</translation> + </message> + <message> + <source>Taking Live Snapshot</source> + <comment>MachineState</comment> + <translation>S'està capturant la captura</translation> + </message> + <message> + <source>Teleporting Paused VM</source> + <comment>MachineState</comment> + <translation>S'està teleportant la MV en pausa</translation> + </message> + <message> + <source>Restoring Snapshot</source> + <comment>MachineState</comment> + <translation>S'està restaurant la captura</translation> + </message> + <message> + <source>Deleting Snapshot</source> + <comment>MachineState</comment> + <translation>S'està eliminant la captura</translation> + </message> + <message> + <source>Floppy</source> + <comment>StorageBus</comment> + <translation>Disquet</translation> + </message> + <message> + <source>Device %1</source> + <comment>StorageBusDevice</comment> + <translation>Dispositiu %1</translation> + </message> + <message> + <source>IDE Primary Master</source> + <comment>New Storage UI : Slot Name</comment> + <translation>IDE primari mestre</translation> + </message> + <message> + <source>IDE Primary Slave</source> + <comment>New Storage UI : Slot Name</comment> + <translation>IDE primari esclau</translation> + </message> + <message> + <source>IDE Secondary Master</source> + <comment>New Storage UI : Slot Name</comment> + <translation>IDE secondari mestre</translation> + </message> + <message> + <source>IDE Secondary Slave</source> + <comment>New Storage UI : Slot Name</comment> + <translation>IDE secondari esclau</translation> + </message> + <message> + <source>SATA Port %1</source> + <comment>New Storage UI : Slot Name</comment> + <translation>Port SATA %1</translation> + </message> + <message> + <source>SCSI Port %1</source> + <comment>New Storage UI : Slot Name</comment> + <translation>Port SCSI %1</translation> + </message> + <message> + <source>Floppy Device %1</source> + <comment>New Storage UI : Slot Name</comment> + <translation>Disquetera %1</translation> + </message> + <message> + <source>Paravirtualized Network (virtio-net)</source> + <comment>NetworkAdapterType</comment> + <translation>Xarxa paravirtualitzada (virtio-net)</translation> + </message> + <message> + <source>I82078</source> + <comment>StorageControllerType</comment> + <translation>I82078</translation> + </message> + <message> + <source>Empty</source> + <comment>medium</comment> + <translation>Buit</translation> + </message> + <message> + <source>Host Drive '%1'</source> + <comment>medium</comment> + <translation>Dispositiu amfitrió %1</translation> + </message> + <message> + <source>Host Drive %1 (%2)</source> + <comment>medium</comment> + <translation>Dispositiu amfitrió %1 (%2)</translation> + </message> + <message> + <source><p style=white-space:pre>Type (Format): %1 (%2)</p></source> + <comment>medium</comment> + <translation><p style=white-space:pre>Tipus (format): %1 (%2)</p></translation> + </message> + <message> + <source><p>Attached to: %1</p></source> + <comment>image</comment> + <translation><p>Connectat a: %1</p></translation> + </message> + <message> + <source><i>Not Attached</i></source> + <comment>image</comment> + <translation><i>No connectat</i></translation> + </message> + <message> + <source><i>Checking accessibility...</i></source> + <comment>medium</comment> + <translation><i>S'està comprovant l'accessibilitat...</i></translation> + </message> + <message> + <source>Failed to check media accessibility.</source> + <comment>medium</comment> + <translation>No s'ha pogut comprovar l'accessibilitat al suport.</translation> + </message> + <message> + <source><b>No medium selected</b></source> + <comment>medium</comment> + <translation><b>No s'ha seleccionat cap suport</b></translation> + </message> + <message> + <source>You can also change this while the machine is running.</source> + <translation>També podeu canviar això mentre la mà quina s'està executant.</translation> + </message> + <message> + <source><b>No media available</b></source> + <comment>medium</comment> + <translation><b>No hi ha cap suport disponible</b></translation> + </message> + <message> + <source>You can create media images using the virtual media manager.</source> + <translation>Podeu crear imatges de suports fent servir el gestor virtual de suports.</translation> + </message> + <message> + <source>Attaching this hard disk will be performed indirectly using a newly created differencing hard disk.</source> + <comment>medium</comment> + <translation>Si connecteu este disc dur es millorarà de forma indirecta fent servir un nou disc dur diferenciat.</translation> + </message> + <message> + <source>Some of the media in this hard disk chain are inaccessible. Please use the Virtual Media Manager in <b>Show Differencing Hard Disks</b> mode to inspect these media.</source> + <comment>medium</comment> + <translation>Alguns dels suports d'este disc dur no són accessibles. Feu servir el Gestor virtual de suports en el mode <b>Mostra els discos durs diferenciats</b> per inspeccionar estos suports.</translation> + </message> + <message> + <source>This base hard disk is indirectly attached using the following differencing hard disk:</source> + <comment>medium</comment> + <translation>Este disc dur base es connecta indirectament fent servir el disc dur diferenciat següent:</translation> + </message> + <message numerus="yes"> + <source>%n year(s)</source> + <translation> + <numerusform>%n any</numerusform> + <numerusform>%n anys</numerusform> + <numerusform>%n anys</numerusform> + </translation> + </message> + <message numerus="yes"> + <source>%n month(s)</source> + <translation> + <numerusform>%n mes</numerusform> + <numerusform>%n mesos</numerusform> + <numerusform>%n mesos</numerusform> + </translation> + </message> + <message numerus="yes"> + <source>%n day(s)</source> + <translation> + <numerusform>%n dia</numerusform> + <numerusform>%n dies</numerusform> + <numerusform>%n dies</numerusform> + </translation> + </message> + <message numerus="yes"> + <source>%n hour(s)</source> + <translation> + <numerusform>%n hora</numerusform> + <numerusform>%n hores</numerusform> + <numerusform>%n hores</numerusform> + </translation> + </message> + <message numerus="yes"> + <source>%n minute(s)</source> + <translation> + <numerusform>%n minut</numerusform> + <numerusform>%n minuts</numerusform> + <numerusform>%n minuts</numerusform> + </translation> + </message> + <message numerus="yes"> + <source>%n second(s)</source> + <translation> + <numerusform>%n segon</numerusform> + <numerusform>%n segons</numerusform> + <numerusform>%n segons</numerusform> + </translation> + </message> + <message> + <source>(CD/DVD)</source> + <translation>(CD/DVD)</translation> + </message> +</context> +<context> + <name>VBoxGlobalSettings</name> + <message> + <source>'%1 (0x%2)' is an invalid host key code.</source> + <translation>'%1 (0x%2)' no és un codi de tecla d'amfitrió và lid.</translation> + </message> + <message> + <source>The value '%1' of the key '%2' doesn't match the regexp constraint '%3'.</source> + <translation>El valor '%1' de la tecla '%2' no concorda amb la restricció de l'expressió regular '%3'.</translation> + </message> + <message> + <source>Cannot delete the key '%1'.</source> + <translation>No es pot eliminar la tecla '%1'.</translation> + </message> +</context> +<context> + <name>VBoxGlobalSettingsDlg</name> + <message> + <source>Category</source> + <translation type="obsolete">Categoria</translation> + </message> + <message> + <source>[id]</source> + <translation type="obsolete">[id]</translation> + </message> + <message> + <source>[link]</source> + <translation type="obsolete">[enllaç]</translation> + </message> + <message> + <source>[name]</source> + <translation type="obsolete">[nom]</translation> + </message> + <message> + <source><i>Select a settings category from the list on the left-hand side and move the mouse over a settings item to get more information<i>.</source> + <translation type="obsolete"><i>Seleccioneu una categoria de parà metres en la llista de l'esquerra i deplaceu el ratolà sobre un element de la dreta per obtindre més informació<i>.</translation> + </message> + <message> + <source> General </source> + <translation type="obsolete"> General </translation> + </message> + <message> + <source>0</source> + <translation type="obsolete">0</translation> + </message> + <message> + <source>#general</source> + <translation type="obsolete">#general</translation> + </message> + <message> + <source> Input </source> + <translation type="obsolete"> Entrada </translation> + </message> + <message> + <source>1</source> + <translation type="obsolete">1</translation> + </message> + <message> + <source>#input</source> + <translation type="obsolete">#input</translation> + </message> + <message> + <source> USB </source> + <translation type="obsolete"> USB </translation> + </message> + <message> + <source>2</source> + <translation type="obsolete">2</translation> + </message> + <message> + <source>Default &Folders</source> + <translation type="obsolete">Carpetes &Predeterminades</translation> + </message> + <message> + <source>Machines</source> + <translation type="obsolete">Mà quines</translation> + </message> + <message> + <source>VDI files</source> + <translation type="obsolete">Fitxers VDI</translation> + </message> + <message> + <source>Select</source> + <translation type="obsolete">Selecciona</translation> + </message> + <message> + <source>&Keyboard</source> + <translation type="obsolete">&Teclat</translation> + </message> + <message> + <source>&Host Key</source> + <translation type="obsolete">Tecla d'&amfitrió</translation> + </message> + <message> + <source>&Auto capture keyboard</source> + <translation type="obsolete">&Auto-captura el teclat</translation> + </message> + <message> + <source>&USB Device Filters</source> + <translation type="obsolete">Filtres del dispositiu &USB</translation> + </message> + <message> + <source>Ins</source> + <translation type="obsolete">Inser</translation> + </message> + <message> + <source>Add Empty (Ins)</source> + <translation type="obsolete">Afig buit (Inser)</translation> + </message> + <message> + <source>Alt+Ins</source> + <translation type="obsolete">Alt+Inser</translation> + </message> + <message> + <source>Add From (Alt+Ins)</source> + <translation type="obsolete">Afig des de (Alt+Inser)</translation> + </message> + <message> + <source>Del</source> + <translation type="obsolete">Supr</translation> + </message> + <message> + <source>Remove (Del)</source> + <translation type="obsolete">Elimina (Supr)</translation> + </message> + <message> + <source>Removes the selected USB filter.</source> + <translation type="obsolete">Elimina el filtre d'USB seleccionat.</translation> + </message> + <message> + <source>Ctrl+Up</source> + <translation type="obsolete">Ctrl+Fletxa amunt</translation> + </message> + <message> + <source>Move Up (Ctrl+Up)</source> + <translation type="obsolete">Mou amunt (Ctrl+Fletxa amunt)</translation> + </message> + <message> + <source>Moves the selected USB filter up.</source> + <translation type="obsolete">Mou amunt el filtre d'USB seleccionat.</translation> + </message> + <message> + <source>Ctrl+Down</source> + <translation type="obsolete">Ctrl+Fletxa avall</translation> + </message> + <message> + <source>Move Down (Ctrl+Down)</source> + <translation type="obsolete">Mou avall (Ctrl+Fletxa avall)</translation> + </message> + <message> + <source>Moves the selected USB filter down.</source> + <translation type="obsolete">Mou avall el filtre d'USB seleccionat.</translation> + </message> + <message> + <source>Help</source> + <translation type="obsolete">Ajuda</translation> + </message> + <message> + <source>F1</source> + <translation type="obsolete">F1</translation> + </message> + <message> + <source>Displays the dialog help.</source> + <translation type="obsolete">Mostra el dià leg d'ajuda.</translation> + </message> + <message> + <source>Invalid settings detected</source> + <translation type="obsolete">S'han detectat parà metres no và lids</translation> + </message> + <message> + <source>&OK</source> + <translation type="obsolete">&D'acord</translation> + </message> + <message> + <source>Accepts (saves) changes and closes the dialog.</source> + <translation type="obsolete">Accepta (alça) els canvis i tanca el dià leg.</translation> + </message> + <message> + <source>Cancel</source> + <translation type="obsolete">Cancel·la</translation> + </message> + <message> + <source>Cancels changes and closes the dialog.</source> + <translation type="obsolete">Cancel·la els canvis i tanca el dià leg.</translation> + </message> + <message> + <source>VirtualBox Preferences</source> + <translation type="obsolete">Preferències del VirtualBox</translation> + </message> + <message> + <source>Displays the key used as a Host Key in the VM window. Activate the entry field and press a new Host Key. Note that alphanumeric, cursor movement and editing keys cannot be used.</source> + <translation type="obsolete">Mostra la tecla que es fa servir com a tecla d'amfitrió en la finestra de la mà quina virtual. Activeu el camp d'entrada i premeu una nova tecla d'amfitrió. Tingueu en compte les tecles alfanumèriques, de moviment del cursor i d'edició no es poden fer servir com a tecles d'amfitrió.</translation> + </message> + <message> + <source>New Filter %1</source> + <comment>usb</comment> + <translation type="obsolete">Filtre nou %1</translation> + </message> + <message> + <source>Language</source> + <translation type="obsolete">Idioma</translation> + </message> + <message> + <source> Language </source> + <translation type="obsolete">Idioma</translation> + </message> + <message> + <source>3</source> + <translation type="obsolete">3</translation> + </message> + <message> + <source>&Interface Language</source> + <translation type="obsolete">Idioma de la &interfÃcie</translation> + </message> + <message> + <source>Author(s):</source> + <translation type="obsolete">Autor(s):</translation> + </message> + <message> + <source>Language:</source> + <translation type="obsolete">Idioma:</translation> + </message> + <message> + <source> (built-in)</source> + <comment>Language</comment> + <translation type="obsolete"> (integrat)</translation> + </message> + <message> + <source><unavailable></source> + <comment>Language</comment> + <translation type="obsolete"><no disponible></translation> + </message> + <message> + <source><unknown></source> + <comment>Author(s)</comment> + <translation type="obsolete"><desconegut></translation> + </message> + <message> + <source> +<qt>Lists all available user interface languages. The effective language is +written in <b>bold</b>. Select <i>Default</i> to reset +to the system default language.</qt> + </source> + <translation type="obsolete"> +<qt>Relaciona tots els idiomes d'interfÃcie disponibles. L'idioma actual està +escrit en <b>negreta</b>. Seleccioneu <i>Predeterminat</i> per tornar a iniciar +a l'idioma predeterminat del sistema.</qt> + </translation> + </message> + <message> + <source>Default</source> + <comment>Language</comment> + <translation type="obsolete">Predeterminat</translation> + </message> + <message> + <source>Displays the path to the default VDI folder. This folder is used, if not explicitly specified otherwise, when adding existing or creating new virtual hard disks.</source> + <translation type="obsolete">Mostra la ruta cap a la carpeta de fitxers VDI predeterminada. S'usa esta carpeta, si no se n'especifica explÃcitament una altra, quan s'afig o es crea un disc virtual.</translation> + </message> + <message> + <source>Resets the virtual machine folder path to the default value. The actual default path will be displayed after accepting the changes and opening this dialog again.</source> + <translation type="obsolete">Reinicia el camà a la carpeta de mà quines virtuals al seu valor predeterminat. Després d'acceptar els canvis i tornar a obrir este dià leg, s'hi mostrarà este camÃ.</translation> + </message> + <message> + <source>Resets the VDI folder path to the default value. The actual default path will be displayed after accepting the changes and opening this dialog again.</source> + <translation type="obsolete">Reinicia el camà a la carpeta de fitxers VDI al seu valor predeterminat. Després d'acceptar els canvis i tornar a obrir este dià leg, s'hi mostrarà este camÃ.</translation> + </message> + <message> + <source>Displays the path to the default virtual machine folder. This folder is used, if not explicitly specified otherwise, when creating new virtual machines.</source> + <translation type="obsolete">Mostra la ruta cap a la carpeta de mà quines virtuals predeterminada. S'usa esta carpeta, si no se n'especifica explÃcitament una altra, quan es crea una mà quina virtual.</translation> + </message> + <message> + <source>Opens a dialog to select the default VDI folder.</source> + <translation type="obsolete">Obri un dià leg per seleccionar la carpeta de fitxers VDI predeterminada.</translation> + </message> + <message> + <source>Opens a dialog to select the default virtual machine folder.</source> + <translation type="obsolete">Obri un dià leg per seleccionar la carpeta de mà quines virtuals predeterminada.</translation> + </message> + <message> + <source>When checked, the keyboard is automatically captured every time the VM window is activated. When the keyboard is captured, all keystrokes (including system ones like Alt-Tab) are directed to the VM.</source> + <translation type="obsolete">Si activeu esta casella, el teclat serà automà ticament capturat cada vegada que s'active la finestra de la mà quina virtual. Quan el teclat és capturat, totes les pulsacions de tecles (incloses les de sistema, com ara Alt+Tab) es redireccionaran cap a la mà quina virtual.</translation> + </message> + <message> + <source>Lists all global USB filters. The checkbox to the left defines whether the particular filter is enabled or not.</source> + <translation type="obsolete">Relaciona tots els filtres d'USB globals. La casella de selecció de l'esquerra defineix si s'activa o no el filtre corresponent.</translation> + </message> + <message> + <source>Adds a new USB filter with all fields initially set to empty strings. Note that such a filter will match any attached USB device.</source> + <translation type="obsolete">Afig un filtre d'USB nou amb tots els camps definits inicialment com a cadenes buides. Tingueu en compte que un filtre com este concordarà amb qualsevol dispositiu USB connectat.</translation> + </message> + <message> + <source>Adds a new USB filter with all fields set to the values of the selected USB device attached to the host PC.</source> + <translation type="obsolete">Afig un filtre d'USB nou amb tots els camps definits amb els valors del dispositiu USB seleccionat dels que estan connectats a l'ordinador amfitrió.</translation> + </message> + <message> + <source>V&RDP Authentication Library</source> + <translation type="obsolete">Biblioteca d'autenticació V&RDP</translation> + </message> + <message> + <source>Displays the path to the library that provides authentication for Remote Display (VRDP) clients.</source> + <translation type="obsolete">Mostra la ruta cap a la biblioteca que proveeix l'autenticació per a clients de la pantalla remota (VRDP).</translation> + </message> + <message> + <source>Opens a dialog to select the VRDP authentication library file.</source> + <translation type="obsolete">Obri un dià leg per seleccionar el fitxer de la biblioteca d'autenticació VRDP .</translation> + </message> + <message> + <source>Resets the authentication library file to the default value. The actual default library file will be displayed after accepting the changes and opening this dialog again.</source> + <translation type="obsolete">Reinicia el fitxer de la biblioteca d'autenticació al seu valor predeterminat. Després d'acceptar els canvis i tornar a obrir este dià leg, s'hi mostrarà este fitxer.</translation> + </message> + <message> + <source>&Extended Features</source> + <translation type="obsolete">Funcions &esteses</translation> + </message> + <message> + <source>Enable &VT-x/AMD-V</source> + <translation type="obsolete">Activa &VT-x/AMD-V</translation> + </message> + <message> + <source>Defines whether virtual machines should try to make use of the host CPU's hardware virtualization extensions such as Intel VT-x and AMD-V by default or not.</source> + <translation type="obsolete">Defineix si, per defecte, les mà quines virtuals han de provar d'utilitzar les extensions de virtualització per maquinari de la CPU de l'ordinador amfitrió com ara Intel VT-x i AMD-V, o no.</translation> + </message> + <message> + <source> + <qt>Lists all global USB + filters. The checkbox to the left + defines whether the particular + filter is enabled or not. Use the + context menu or buttons to the + right to add or remove USB + filters.</qt> + </source> + <translation type="obsolete"> +<qt>Llista els filtres USB +globals. La casella de selecció +de la dreta defineix què filtre +concret està activat o no. Feu +servir el menú de context o +els botons de la dreta per +afegir o eliminar filtres USB.</qt></translation> + </message> + <message> + <source>Add Empty Filter</source> + <translation type="obsolete">Afig Filtre Buit</translation> + </message> + <message> + <source>&Add Empty Filter</source> + <translation type="obsolete">&Afig Filtre Buit</translation> + </message> + <message> + <source> + <qt>Adds a new USB filter with all fields initially set to + empty strings. Note that such a filter will match any attached USB + device.</qt> + </source> + <translation type="obsolete"><qt>Afig un nou filtre USB amb tots els camps fixats com +a cadenes buides. Tingueu en compte que els filtres coincidiran +amb qualsevol dispositiu USB connectat.</qt></translation> + </message> + <message> + <source>Add Filter From Device</source> + <translation type="obsolete">Afig un Filtre des d'un Dispositiu</translation> + </message> + <message> + <source>A&dd Filter From Device</source> + <translation type="obsolete">Afig un Filtre des d'un &Dispositiu</translation> + </message> + <message> + <source><qt>Adds a new USB filter with all fields set to the + values of the selected USB device attached to the host + PC.</qt> + </source> + <translation type="obsolete"><qt>Afig un nou filtre USB amb tots els camps +fixats als valors del dispositu USB seleccionat connectat +al sistema amfitrió.</qt></translation> + </message> + <message> + <source>Remove Filter</source> + <translation type="obsolete">Elimina el filtre</translation> + </message> + <message> + <source>&Remove Filter</source> + <translation type="obsolete">Elimina el filt&re</translation> + </message> + <message> + <source> + <qt>Removes the highlighted USB filter.</qt> + </source> + <translation type="obsolete"><qt>Elimina el filtre USB remarcat.</qt></translation> + </message> + <message> + <source>Move Filter Up</source> + <translation type="obsolete">Mou el Filtre Amunt</translation> + </message> + <message> + <source>&Move Filter Up</source> + <translation type="obsolete">&Mou el Filtre Amunt</translation> + </message> + <message> + <source> + <qt>Moves the highlighted USB filter up.</qt> + </source> + <translation type="obsolete"><qt>Mou el filtre remarcat amunt.</qt></translation> + </message> + <message> + <source>Move Filter Down</source> + <translation type="obsolete">Mou el Filtre Avall</translation> + </message> + <message> + <source>M&ove Filter Down</source> + <translation type="obsolete">M&ou el Filtre Avall</translation> + </message> + <message> + <source> + <qt>Moves the highlighted USB filter down.</qt> + </source> + <translation type="obsolete"><qt>Mou el filtre remarcat avall.</qt></translation> + </message> +</context> +<context> + <name>VBoxHardDiskSettings</name> + <message> + <source>Slot</source> + <translation type="obsolete">Ranura</translation> + </message> + <message> + <source>Hard Disk</source> + <translation type="obsolete">Disc dur</translation> + </message> + <message> + <source>VBoxHardDiskSettings</source> + <translation type="obsolete">VBoxHardDiskSettings</translation> + </message> + <message> + <source>&Hard Disks</source> + <translation type="obsolete">&Discos durs</translation> + </message> + <message> + <source>&Enable SATA Controller</source> + <translation type="obsolete">Habilita &el Controlador SATA</translation> + </message> + <message> + <source> + <qt>When checked, enables the virtual SATA + controller of this machine. Note that you cannot + attach hard disks to SATA ports when the virtual SATA + controller is disabled.</qt> + </source> + <translation type="obsolete"><qt>Quan estiga marcat, habilita el controlador +virtual SATA per a esta mà quina. Tingueu en +compte qu no podeu connectar discos durs a ports +SATA quan el controlador SATA no es troba actiu.</qt></translation> + </message> + <message> + <source>Hard Disks &Attachments</source> + <translation type="obsolete">Discos durs &connectats</translation> + </message> + <message> + <source> + <qt>Lists all hard disks attached to + this machine. Use a mouse double-click or the + <tt>F2</tt>/<tt>Space</tt> + key on the highlighted item to activate the + drop-down list and choose the desired value. + Use the context menu or buttons to the right + to add or remove hard disk + attachments.</qt> + </source> + <translation type="obsolete"><qt>Mostra tots els discos durs +connectats a esta mà quina. Feu doble +clic amb el ratolà o premeu el botó +<tt>F2</tt>/<tt>Espai</tt> a l'element +remarcat per activar la llista desplegable i +triar el valor que desitgeu. Feu servir el +menú de context o els botons de la dreta +per afegir o eliminar les adjuncions als discos +durs.</qt></translation> + </message> + <message> + <source>Add Attachment</source> + <translation type="obsolete">Afig una adjunció</translation> + </message> + <message> + <source>&Add Attachment</source> + <translation type="obsolete">&Afig una adjunció</translation> + </message> + <message> + <source>Ins</source> + <translation type="obsolete">Ins</translation> + </message> + <message> + <source> + <qt>Adds a new hard disk attachment.</qt> + </source> + <translation type="obsolete"><qt>Afig una nova adjunció al disc dur.</qt></translation> + </message> + <message> + <source>Remove Attachment</source> + <translation type="obsolete">Elimina l'adjunció</translation> + </message> + <message> + <source>&Remove Attachment</source> + <translation type="obsolete">&Elimina l'adjunció</translation> + </message> + <message> + <source>Delete</source> + <translation type="obsolete">Suprimeix</translation> + </message> + <message> + <source> + <qt>Removes the highlighted hard disk attachment.</qt> + </source> + <translation type="obsolete"><qt>Elimina l'adjunció al disc dur remarcada.</qt></translation> + </message> + <message> + <source>Select Hard Disk</source> + <translation type="obsolete">Seleccioneu un Disc Dur</translation> + </message> + <message> + <source>&Select Hard Disk</source> + <translation type="obsolete">&Seleccioneu un Disc Dur</translation> + </message> + <message> + <source>Ctrl+Space</source> + <translation type="obsolete">Ctrl+Espai</translation> + </message> + <message> + <source> + <qt>Invokes the Virtual Disk Manager to select a hard disk + to attach to the currently highlighted slot.</qt> + </source> + <translation type="obsolete"><qt>Invoca el gestor de discos virtuals per a seleccionar +un disc dur per connectar a la ranura remarcada actualment.</a></translation> + </message> + <message> + <source><i>%1</i> uses the hard disk that is already attached to <i>%2</i></source> + <translation type="obsolete"><i>%1</i> fa servir el disc dur que es troba connectat a <i>%2</i></translation> + </message> + <message> + <source>Double-click to add a new attachment</source> + <translation type="obsolete">Doble clic per afegir una nova adjunció</translation> + </message> + <message> + <source>No hard disk is selected for <i>%1</i></source> + <translation type="obsolete">No s'ha seleccionat cap disc dur per <i>%1</i></translation> + </message> +</context> +<context> + <name>VBoxHelpButton</name> + <message> + <source>&Help</source> + <translation>&Ajuda</translation> + </message> +</context> +<context> + <name>VBoxImportApplianceWgt</name> + <message> + <source>Importing Appliance ...</source> + <translation>S'està important l'aplicació virtual...</translation> + </message> + <message> + <source>Reading Appliance ...</source> + <translation>S'està llegint l'aplicació virtual...</translation> + </message> +</context> +<context> + <name>VBoxImportApplianceWzd</name> + <message> + <source>Select an appliance to import</source> + <translation>Seleccioneu una aplicació virtual per importar</translation> + </message> + <message> + <source>Open Virtualization Format (%1)</source> + <translation>Format obert de virtualització (%1)</translation> + </message> + <message> + <source>Appliance Import Wizard</source> + <translation>Assistent d'importació d'aplicacions virtuals</translation> + </message> + <message> + <source>Welcome to the Appliance Import Wizard!</source> + <translation>Benvingut a l'assistent d'importació d'aplicacions virtuals!</translation> + </message> + <message> + <source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This wizard will guide you through importing an appliance. </p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Use the <span style=" font-weight:600;">Next</span> button to go the next page of the wizard and the <span style=" font-weight:600;">Back</span> button to return to the previous page.</p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">VirtualBox currently supports importing appliances saved in the Open Virtualization Format (OVF). To continue, select the file to import below:</p></body></html></source> + <translation><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Este assitent vos guiarà durant el procés d'importació d'una aplicació virtual. </p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Feu servir el botó <span style=" font-weight:600;">Següent</span> per anar a la següent pà gina de l'assistent i el botó <span style=" font-weight:600;">Arrere</span> per anar a la pà gina prèvia.</p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Per importar una aplicació virtual, heu de seleccionar un fitxer que el descrigui primer. Actualment el VirtualBox suporta el format obert de virtualització (OVF). Per continuar, seleccioneu el fitxer per a importar:</p></body></html></translation> + </message> + <message> + <source>< &Back</source> + <translation>< &Arrere</translation> + </message> + <message> + <source>&Next ></source> + <translation>&Següent ></translation> + </message> + <message> + <source>Cancel</source> + <translation>Cancel·la</translation> + </message> + <message> + <source>Appliance Import Settings</source> + <translation>Parà metres d'importació de l'aplicació virtual</translation> + </message> + <message> + <source>These are the virtual machines contained in the appliance and the suggested settings of the imported VirtualBox machines. You can change many of the properties shown by double-clicking on the items and disable others using the check boxes below.</source> + <translation>Estes són les mà quines virtuals que es descriuen a l'aplicació virtual amb els mapejats suggerits per a la importació al VirtualBox. Podeu canviar la majoria dels parà metres mostrats fent doble clic sobre els Ãtems i inhabilitar altres fent servir els quadres de verificació.</translation> + </message> + <message> + <source>Restore Defaults</source> + <translation>Restaura els parà metres per defecte</translation> + </message> + <message> + <source>&Import ></source> + <translation>&Importa ></translation> + </message> +</context> +<context> + <name>VBoxImportLicenseViewer</name> + <message> + <source><b>The virtual system "%1" requires that you agree to the terms and conditions of the software license agreement shown below.</b><br /><br />Click <b>Agree</b> to continue or click <b>Disagree</b> to cancel the import.</source> + <translation><b>El sistema virtual "%1" requreix l'acceptació dels termes i condicions de l'acord de llicència del programari que es mostra.</b><br /><br />Premeu <b>Hi estic d'acord</b> per continuar o <b>No hi estic d'acord</b> per a cancel·lar la importació.</translation> + </message> + <message> + <source>Software License Agreement</source> + <translation>Acord de llicència de programari</translation> + </message> + <message> + <source>&Disagree</source> + <translation>&No hi estic d'acord</translation> + </message> + <message> + <source>&Agree</source> + <translation>Hi estic d'&acord</translation> + </message> + <message> + <source>&Print...</source> + <translation>Im&primeix...</translation> + </message> + <message> + <source>&Save...</source> + <translation>De&sa...</translation> + </message> + <message> + <source>Text (*.txt)</source> + <translation>Text (*.txt)</translation> + </message> + <message> + <source>Save license to file...</source> + <translation>Anomena i alça la llicència...</translation> + </message> +</context> +<context> + <name>VBoxLicenseViewer</name> + <message> + <source>I &Agree</source> + <translation>Hi estic d'&acord</translation> + </message> + <message> + <source>I &Disagree</source> + <translation>&No hi estic d'acord</translation> + </message> + <message> + <source>VirtualBox License</source> + <translation>Llicència del VirtualBox</translation> + </message> +</context> +<context> + <name>VBoxLineTextEdit</name> + <message> + <source>&Edit</source> + <translation>&Edita</translation> + </message> +</context> +<context> + <name>VBoxLogSearchPanel</name> + <message> + <source>Close the search panel</source> + <translation>Tanca el tauler de cerca</translation> + </message> + <message> + <source>Find </source> + <translation>Cerca </translation> + </message> + <message> + <source>Enter a search string here</source> + <translation>Introduïu acà la cadena a cercar</translation> + </message> + <message> + <source>&Previous</source> + <translation>&Anterior</translation> + </message> + <message> + <source>Search for the previous occurrence of the string</source> + <translation>Cerca la coincidència anterior de la cadena</translation> + </message> + <message> + <source>&Next</source> + <translation>&Següent</translation> + </message> + <message> + <source>Search for the next occurrence of the string</source> + <translation>Cerca la coincidència següent de la cadena</translation> + </message> + <message> + <source>C&ase Sensitive</source> + <translation>Distingeix entre &majúscules i minúscules</translation> + </message> + <message> + <source>Perform case sensitive search (when checked)</source> + <translation>Si activeu esta casella, la cerca distingirà entre majúscules i minúscules</translation> + </message> + <message> + <source>String not found</source> + <translation>No s'ha trobat la cadena</translation> + </message> +</context> +<context> + <name>VBoxMediaComboBox</name> + <message> + <source><no hard disk></source> + <translation type="obsolete"><no hi ha cap disc dur></translation> + </message> + <message> + <source>No hard disk</source> + <translation type="obsolete">No hi ha cap disc dur</translation> + </message> + <message> + <source>No media available. Use the Virtual Media Manager to add media of the corresponding type.</source> + <translation type="obsolete">No hi ha suports disponibles. Feu servir el gestor de suports virtuals per a afegir-ne de nous del tipus corresponent.</translation> + </message> + <message> + <source><no media></source> + <translation type="obsolete"><sense medis></translation> + </message> +</context> +<context> + <name>VBoxMediaManagerDlg</name> + <message> + <source>&Actions</source> + <translation>&Accions</translation> + </message> + <message> + <source>&New...</source> + <translation>&Nova...</translation> + </message> + <message> + <source>&Add...</source> + <translation>&Afig...</translation> + </message> + <message> + <source>R&emove</source> + <translation>&Elimina</translation> + </message> + <message> + <source>Re&lease</source> + <translation>A&llibera</translation> + </message> + <message> + <source>Re&fresh</source> + <translation>Re&fresca</translation> + </message> + <message> + <source>Create a new virtual hard disk</source> + <translation>Crea un disc dur virtual nou</translation> + </message> + <message> + <source>Add an existing medium</source> + <translation>Afig un suport existent</translation> + </message> + <message> + <source>Remove the selected medium</source> + <translation>Elimina el suport seleccionat</translation> + </message> + <message> + <source>Release the selected medium by detaching it from the machines</source> + <translation>Allibera el suport seleccionat de forma que ja no estiga connectat a les mà quines</translation> + </message> + <message> + <source>Refresh the media list</source> + <translation>Refresca la llista de suports</translation> + </message> + <message> + <source>Location</source> + <translation>Ubicació</translation> + </message> + <message> + <source>Type (Format)</source> + <translation>Tipus (Format)</translation> + </message> + <message> + <source>Attached to</source> + <translation>Connectat a</translation> + </message> + <message> + <source>Checking accessibility</source> + <translation>S'està comprovant l'accessibilitat</translation> + </message> + <message> + <source>&Select</source> + <translation>&Selecciona</translation> + </message> + <message> + <source>All hard disk images (%1)</source> + <translation>Totes les imatges de disc dur (%1)</translation> + </message> + <message> + <source>All files (*)</source> + <translation>Tots els fitxers (*)</translation> + </message> + <message> + <source>Select a hard disk image file</source> + <translation>Seleccioneu un fitxer d'imatge de disc dur</translation> + </message> + <message> + <source>CD/DVD-ROM images (*.iso);;All files (*)</source> + <translation>Imatges de CD/DVD (*.iso);;Tots els fitxers (*)</translation> + </message> + <message> + <source>Select a CD/DVD-ROM disk image file</source> + <translation>Seleccioneu un fitxer d'imatge de disc CD/DVD</translation> + </message> + <message> + <source>Floppy images (*.img);;All files (*)</source> + <translation>Imatges de disquet (*.img);;Tots els fitxers (*)</translation> + </message> + <message> + <source>Select a floppy disk image file</source> + <translation>Seleccioneu un fitxer d'imatge de disquet</translation> + </message> + <message> + <source><i>Not&nbsp;Attached</i></source> + <translation><i>No&nbsp;connectat</i></translation> + </message> + <message> + <source>--</source> + <comment>no info</comment> + <translation>--</translation> + </message> + <message> + <source>Virtual Media Manager</source> + <translation>Gestor de suports virtuals</translation> + </message> + <message> + <source>Hard &Disks</source> + <translation>&Discs durs</translation> + </message> + <message> + <source>Name</source> + <translation>Nom</translation> + </message> + <message> + <source>Virtual Size</source> + <translation>Mida virtual</translation> + </message> + <message> + <source>Actual Size</source> + <translation>Mida actual</translation> + </message> + <message> + <source>&CD/DVD Images</source> + <translation>Imatges de &CD/DVD</translation> + </message> + <message> + <source>Size</source> + <translation>Mida</translation> + </message> + <message> + <source>&Floppy Images</source> + <translation>Imatges de dis&quet</translation> + </message> + <message> + <source>Attached to</source> + <comment>VMM: Virtual Disk</comment> + <translation>Connectat a</translation> + </message> + <message> + <source>Attached to</source> + <comment>VMM: CD/DVD Image</comment> + <translation>Connectat a</translation> + </message> + <message> + <source>Attached to</source> + <comment>VMM: Floppy Image</comment> + <translation>Connectat a</translation> + </message> +</context> +<context> + <name>VBoxMiniToolBar</name> + <message> + <source>Always show the toolbar</source> + <translation>Mostra sempre la barra d'eines</translation> + </message> + <message> + <source>Exit Full Screen or Seamless Mode</source> + <translation>Ix del mode de pantalla completa o del mode fluid</translation> + </message> + <message> + <source>Close VM</source> + <translation>Tanca la mà quina virtual</translation> + </message> +</context> +<context> + <name>VBoxNIList</name> + <message> + <source>VirtualBox Host Interface %1</source> + <translation type="obsolete">InterfÃcie amfitriona %1 del VirtualBox</translation> + </message> + <message> + <source><p>Do you want to remove the selected host network interface <nobr><b>%1</b>?</nobr></p><p><b>Note:</b> This interface may be in use by one or more network adapters of this or another VM. After it is removed, these adapters will no longer work until you correct their settings by either choosing a different interface name or a different adapter attachment type.</p></source> + <translation type="obsolete"><p>Voleu suprimir la interfÃcie de xarxa <nobr><b>%1</b> seleccionada?</nobr></p><p><b>Nota:</b>Esta interfÃcie potser s'estiga fent servir per un o més adaptadors de xarxa d'esta o altra mà quina virtual. Després de suprimir-los, estos adaptadors no podran treballar fins que corregiu els parà metres triant un nom d'interfÃcie diferent o un tipus diferent d'adaptador.</p></translation> + </message> + <message> + <source>Host &Interfaces</source> + <translation type="obsolete">&InterfÃcies de l'amfitrió</translation> + </message> + <message> + <source>Lists all available host interfaces.</source> + <translation type="obsolete">Mostra totes les interfÃcies de l'amfitrió disponibles.</translation> + </message> + <message> + <source>A&dd New Host Interface</source> + <translation type="obsolete">A&fegeix una Nova InterfÃcie d'Amfitrió</translation> + </message> + <message> + <source>&Remove Selected Host Interface</source> + <translation type="obsolete">&Suprimeix la InterfÃcie Seleccionada d'Amfitrió</translation> + </message> + <message> + <source>Adds a new host interface.</source> + <translation type="obsolete">Afig una nova interfÃcie d'amfitrió.</translation> + </message> + <message> + <source>Removes the selected host interface.</source> + <translation type="obsolete">Suprimeix la interfÃcie amfitriona seleccionada.</translation> + </message> +</context> +<context> + <name>VBoxNetworkDialog</name> + <message> + <source>Network Adapters</source> + <translation>Adaptadors de xarxa</translation> + </message> +</context> +<context> + <name>VBoxNewHDWzd</name> + <message> + <source>Create New Virtual Disk</source> + <translation>Crea un disc virtual nou</translation> + </message> + <message> + <source><p>This wizard will help you to create a new virtual hard disk image for your virtual machine.</p> +<p>Use the <b>Next</b> button to go to the next page of the wizard +and the <b>Back</b> button to return to the previous page.</p></source> + <translation type="obsolete"><p>Este auxiliar vos ajudarà a crear una nova imatge de disc dur virtual per a la vostra mà quina virtual.</p> +<p>Feu servir el botó <b>Següent</b> per anar a la pà gina següent de l'auxiliar +i el botó <b>Arrere</b> per a tornar a la pà gina anterior.</p></translation> + </message> + <message> + <source>Welcome to the Create New Virtual Disk Wizard!</source> + <translation>Benvingut a l'auxiliar per a la creació d'un disc virtual nou!</translation> + </message> + <message> + <source><p>Select the type of virtual hard disk image you want to create.</p> +<p>A <b>dynamically expanding image</b> initially occupies a very small amount +of space on your physical hard disk. It will grow dynamically (up to +the size specified) as the Guest OS claims disk space.</p> +<p>A <b>fixed-size image</b> does not grow. It is stored in a file of approximately +the same size as the size of the virtual hard disk.</p></source> + <translation type="obsolete"><p>Seleccioneu el tipus d'imatge de disc dur virtual que voleu crear.</p> +<p>Una <b>imatge que s'expandeix dinà micament</b> inicialment ocupa molt poc espai +al vostre disc dur fÃsic. Augmentarà dinà micament (fins a la mida especificada) +a mesura que el sistema operatiu client necessite espai de disc.</p> +<p>Una <b>imatge de mida fixa</b> no augmenta. S'emmagetzema en un fitxer que té +aproximadament la mateixa mida que el disc dur virtual.</p></translation> + </message> + <message> + <source>Image Type</source> + <translation type="obsolete">Tipus d'imatge</translation> + </message> + <message> + <source>&Dynamically expanding image</source> + <translation type="obsolete">Imatge que s'expandeix &dinà micament</translation> + </message> + <message> + <source>&Fixed-size image</source> + <translation type="obsolete">Imatge de mida &fixa</translation> + </message> + <message> + <source>Virtual Disk Image Type</source> + <translation type="obsolete">Tipus d'imatge de disc virtual</translation> + </message> + <message> + <source><p>Press the <b>Select</b> button to select the location and name of the file +to store the virtual hard disk image or type a file name in the entry field.</p></source> + <translation type="obsolete"><p>Premeu el botó <b>Selecciona</b> per seleccionar el lloc i el nom del fitxer +on emmagatzemar la imatge del disc dur virtual o escriviu el nom del fitxer en el camp d'entrada.</p></translation> + </message> + <message> + <source>&Image File Name</source> + <translation type="obsolete">Nom del fitxer d'&imatge</translation> + </message> + <message> + <source>Select</source> + <translation type="obsolete">Selecciona</translation> + </message> + <message> + <source><p>Select the size of the virtual hard disk image in megabytes. This size will be reported to the Guest OS +as the size of the virtual hard disk.</p></source> + <translation type="obsolete"><p>Seleccioneu la mida de la imatge del disc dur virtual en megabytes. Esta serà la mida que s'informarà +al sistema operatiu client com a mida del disc dur.</p></translation> + </message> + <message> + <source>Image &Size</source> + <translation type="obsolete">&Mida de la imatge</translation> + </message> + <message> + <source>Virtual Disk Location and Size</source> + <translation>Ubicació i mida del disc virtual</translation> + </message> + <message> + <source>You are going to create a new virtual hard disk image with the following parameters:</source> + <translation type="obsolete">Esteu a punt de crear una imatge de disc dur virtual amb els parà metres següents:</translation> + </message> + <message> + <source>If the above settings are correct, press the <b>Finish</b> button. + Once you press it, a new hard disk image will be created. + </source> + <translation type="obsolete">Si el que hi ha més amunt és correcte premeu el botó <b>Finalitza</b>. + Quan el premeu, es crearà una imatge de disc dur nova. + </translation> + </message> + <message> + <source>Summary</source> + <translation>Resum</translation> + </message> + <message> + <source><nobr>%1 Bytes</nobr></source> + <translation><nobr>%1 bytes</nobr></translation> + </message> + <message> + <source><table><tr><td>Type:</td><td>%1</td></tr><tr><td>Location:</td><td>%2</td></tr><tr><td>Size:</td><td>%3&nbsp;(%4&nbsp;Bytes)</td></tr></table></source> + <translation type="obsolete"><table><tr><td>Tipus:</td><td>%1</td></tr><tr><td>Ubicació:</td><td>%2</td></tr><tr><td>Mida:</td><td>%3&nbsp;(%4&nbsp;Bytes)</td></tr></table></translation> + </message> + <message> + <source>Hard disk images (*.vdi)</source> + <translation>Imatges de disc dur (*.vdi)</translation> + </message> + <message> + <source>Select a file for the new hard disk image file</source> + <translation>Seleccioneu un fitxer per al fitxer d'imatge del disc dur nou</translation> + </message> + <message> + <source><p>Select the type of virtual hard disk image you want to create.</p> +<p>A <b>dynamically expanding image</b> initially occupies a very small amount +of space on your physical hard disk. It will grow dynamically (up to +the size specified) as the Guest OS claims disk space.</p> +<p>A <b>fixed-size image</b> does not grow. It is stored in a file of approximately +the same size as the size of the virtual hard disk. The creation of a fixed-size image may take a long +time depending on the image size and the write performance of your harddisk.</p></source> + <translation type="obsolete"><p>Seleccioneu la imatge de disc dur virtual que voleu crear.</p> +<p>Una <b>imatge d'expansió dinà mica</b> ocupa inicialment una quantiat +molt petita d'espai al disc dur fÃsic. Creixerà dinà micament (fins a la mida +especificada) conforme el Sistema Amfitrió consumisca espai.</p> +<p>Una <b>imatge de mida fixa</b> no creix. S'emmagatzema en un fitxer +de mida aproximadament la que s'indica per al disc dur virtual. La creació d'una +imatge de mida fixa triga un temps segons la grandà ria de la mateixa i de +l'eficiència d'escriptura del disc dur fÃsic.</p></translation> + </message> + <message> + <source><p>This wizard will help you to create a new virtual hard disk image for your virtual machine.</p><p>Use the <b>Next</b> button to go to the next page of the wizard and the <b>Back</b> button to return to the previous page.</p></source> + <translation type="obsolete"><p>Este auxiliar vos ajudarà a crear una nova imatge de disc dur virtual per a la vostra mà quina virtual.</p><p>Feu servir el botó <b>Següent</b> per anar a la pà gina següent de l'auxiliar i el botó <b>Arrere</b> per a tornar a la pà gina anterior.</p></translation> + </message> + <message> + <source>< &Back</source> + <translation>< &Arrere</translation> + </message> + <message> + <source>&Next ></source> + <translation>&Següent ></translation> + </message> + <message> + <source><p>Select the type of virtual hard disk image you want to create.</p><p>A <b>dynamically expanding image</b> initially occupies a very small amount of space on your physical hard disk. It will grow dynamically (up to the size specified) as the Guest OS claims disk space.</p><p>A <b>fixed-size image</b> does not grow. It is stored in a file of approximately the same size as the size of the virtual hard disk. The creation of a fixed-size image may take a long time depending on the image size and the write performance of your harddisk.</p></source> + <translation type="obsolete"><p>Seleccioneu el tipus d'imatge de disc dur virtual que voleu crear.</p> <p>Una <b>imatge que s'expandeix dinà micament</b> inicialment ocupa molt poc espai al vostre disc dur fÃsic. Augmentarà dinà micament (fins a la mida especificada) a mesura que el sistema operatiu client necessite espai de disc.</p><p>Una <b>imatge de mida fixa</b> no augmenta. S'emmagetzema en un fitxer que té aproximadament la mateixa mida que el disc dur virtual.</p></translation> + </message> + <message> + <source><p>Press the <b>Select</b> button to select the location and name of the file to store the virtual hard disk image or type a file name in the entry field.</p></source> + <translation type="obsolete"><p>Premeu el botó <b>Selecciona</b> per seleccionar el lloc i el nom del fitxer on emmagatzemar la imatge del disc dur virtual o escriviu el nom del fitxer en el camp d'entrada.</p></translation> + </message> + <message> + <source><p>Select the size of the virtual hard disk image in megabytes. This size will be reported to the Guest OS as the size of the virtual hard disk.</p></source> + <translation type="obsolete"><p>Seleccioneu la mida de la imatge del disc dur virtual en megabytes. Esta serà la mida que s'informarà al sistema operatiu client com a mida del disc dur.</p></translation> + </message> + <message> + <source>If the above settings are correct, press the <b>Finish</b> button. Once you press it, a new hard disk image will be created.</source> + <translation type="obsolete">Si el que hi ha més amunt és correcte premeu el botó <b>Finalitza</b>. Quan el premeu, es crearà una imatge de disc dur nova.</translation> + </message> + <message> + <source>&Finish</source> + <translation>&Finalitza</translation> + </message> + <message> + <source>Type</source> + <comment>summary</comment> + <translation>Tipus</translation> + </message> + <message> + <source>Location</source> + <comment>summary</comment> + <translation>Ubicació</translation> + </message> + <message> + <source>Size</source> + <comment>summary</comment> + <translation>Mida</translation> + </message> + <message> + <source>Bytes</source> + <comment>summary</comment> + <translation>Bytes</translation> + </message> + <message> + <source>Cancel</source> + <translation>Cancel·la</translation> + </message> + <message> + <source><p>This wizard will help you to create a new virtual hard disk for your virtual machine.</p><p>Use the <b>Next</b> button to go to the next page of the wizard and the <b>Back</b> button to return to the previous page.</p></source> + <translation><p>Este auxiliar vos ajudarà a crear una nova imatge de disc dur virtual per a la vostra mà quina virtual.</p><p>Feu servir el botó <b>Següent</b> per anar a la pà gina següent de l'auxiliar i el botó <b>Arrere</b> per a tornar a la pà gina anterior.</p></translation> + </message> + <message> + <source>Hard Disk Storage Type</source> + <translation>Tipus d'emmagatzematge per al disc dur</translation> + </message> + <message> + <source><p>Select the type of virtual hard disk you want to create.</p><p>A <b>dynamically expanding storage</b> initially occupies a very small amount of space on your physical hard disk. It will grow dynamically (up to the size specified) as the Guest OS claims disk space.</p><p>A <b>fixed-size storage</b> does not grow. It is stored in a file of approximately the same size as the size of the virtual hard disk. The creation of a fixed-size storage may take a long time depending on the storage size and the write performance of your harddisk.</p></source> + <translation><p>Seleccioneu la imatge de disc dur virtual que voleu crear. Una <b>imatge d'expansió dinà mica</b> ocupa inicialment una quantiat molt petita d'espai al disc dur fÃsic. Creixerà dinà micament (fins a la mida especificada) conforme el Sistema Amfitrió consumisca espai. Una <b>imatge de mida fixa</b> no creix. S'emmagatzema en un fitxer de mida aproximadament la que s'indica per al disc dur virtual. La creació d'una imatge de mida fixa triga un temps segons la mida de la mateixa i de l'eficiència d'escriptura del disc dur fÃsic.</p></translation> + </message> + <message> + <source>Storage Type</source> + <translation>Tipus d'emmagatzematge</translation> + </message> + <message> + <source>&Dynamically expanding storage</source> + <translation>Imatge que s'expandeix &dinà micament</translation> + </message> + <message> + <source>&Fixed-size storage</source> + <translation>Imatge de mida &fixa</translation> + </message> + <message> + <source><p>Press the <b>Select</b> button to select the location of a file to store the hard disk data or type a file name in the entry field.</p></source> + <translation><p>Premeu el botó <b>Selecciona</b> per seleccionar el lloc i el nom del fitxer on emmagatzemar la imatge del disc dur virtual o escriviu el nom del fitxer en el camp d'entrada.</p></translation> + </message> + <message> + <source>&Location</source> + <translation>&Ubicació</translation> + </message> + <message> + <source><p>Select the size of the virtual hard disk in megabytes. This size will be reported to the Guest OS as the maximum size of this hard disk.</p></source> + <translation><p>Seleccioneu la mida de la imatge del disc dur virtual en megabytes. Esta serà la mida que s'informarà al sistema operatiu client com a mida del disc dur.</p></translation> + </message> + <message> + <source>&Size</source> + <translation>&Mida</translation> + </message> + <message> + <source>You are going to create a new virtual hard disk with the following parameters:</source> + <translation>Ara creareu una imatge de disc dur virtual amb els parà metres següents:</translation> + </message> + <message> + <source>If the above settings are correct, press the <b>Finish</b> button. Once you press it, a new hard disk will be created.</source> + <translation>Si el que hi ha més amunt és correcte premeu el botó <b>Finalitza</b>. Quan el premeu, es crearà una imatge de disc dur nova.</translation> + </message> +</context> +<context> + <name>VBoxNewVMWzd</name> + <message> + <source>Create New Virtual Machine</source> + <translation>Crea una mà quina virtual nova</translation> + </message> + <message> + <source><p>This wizard will guide you through the steps that are necessary to create +a new virtual machine for VirtualBox.</p> +<p>Use the <b>Next</b> button to go the next page of the wizard +and the <b>Back</b> button to return to the previous page.</p></source> + <translation type="obsolete"><p>Este auxiliar vos guiarà a través dels passos que calen per crear +una nova mà quina virtual per a VirtualBox.</p> +<p>Utilitzeu el botó <b>Següent</b> per a anar a la pà gina següent de l'auxiliar +i el botó <b>Arrere</b> per a tornar a la pà gina anterior.</p></translation> + </message> + <message> + <source>Welcome to the New Virtual Machine Wizard!</source> + <translation>Benvingut a l'auxiliar per a la creació d'una mà quina virtual nova!</translation> + </message> + <message> + <source><p>Enter a name for the new virtual machine and select the type of the guest operating +system you plan to install onto the virtual machine.</p> +<p>The name of the virtual machine usually indicates its software and hardware configuration. +It will be used by all VirtualBox components to identify your virtual machine.</p></source> + <translation type="obsolete"><p>Introduïu un nom per a la mà quina virtual nova i seleccioneu el tipus del sistema +operatiu client que voleu instal·lar en la mà quina virtual.</p> +<p>Normalment, el nom de la mà quina virtual indica la seua configuració de programari i maquinari. +Tots els components del VirtualBox el faran servir per a identificar la mà quina virtual.</p></translation> + </message> + <message> + <source>N&ame</source> + <translation>N&om</translation> + </message> + <message> + <source>OS &Type</source> + <translation>&Tipus de sistema operatiu</translation> + </message> + <message> + <source>VM Name and OS Type</source> + <translation>Nom de la mà quina virtual i tipus de sistema operatiu</translation> + </message> + <message> + <source><p>Select the amount of base memory (RAM) in megabytes to be allocated to the virtual machine.</p></source> + <translation><p>Seleccioneu la quantitat de memòria base (RAM) en megabytes que s'assignaran a la mà quina virtual</p></translation> + </message> + <message> + <source>Base &Memory Size</source> + <translation>Mida de la &memòria base</translation> + </message> + <message> + <source><</source> + <translation type="obsolete"><</translation> + </message> + <message> + <source>=</source> + <translation type="obsolete">=</translation> + </message> + <message> + <source>></source> + <translation type="obsolete">></translation> + </message> + <message> + <source>MB</source> + <translation>MB</translation> + </message> + <message> + <source>Memory</source> + <translation>Memòria</translation> + </message> + <message> + <source><p>Select a hard disk image to be used +as the boot hard disk of the virtual machine. You can either create a new hard +disk using the <b>New</b> button or select an existing hard disk +image from the drop-down list or by pressing the <b>Existing</b> +button (to invoke the Virtual Disk Manager dialog).</p> +<p>If you need a more complicated hard disk setup, you can also skip this +step and attach hard disks later using the VM Settings dialog.</p></source> + <translation type="obsolete"><p>Seleccioneu la imatge de disc dur que es farà servir +com a disc dur d'arrrencada de la mà quina virtual. Podeu crear un disc dur nou +usant el botó <b>Nou</b> o seleccionar una imatge de disc +dur existent de la llista desplegable o prement el botó <b>Existents</b> +(per a invocar el dià leg del gestor de discos virtuals).</p> +<p>Si vos cal una configuració de disc dur més complexa, podeu també saltar-vos este +pas i connectar discos durs més avant, fent servir el dià leg de configuració de la mà quina virtual.</p></translation> + </message> + <message> + <source>B&oot Hard Disk (Primary Master)</source> + <translation type="obsolete">D&isc dur d'arrencada (primari mestre)</translation> + </message> + <message> + <source>N&ew...</source> + <translation type="obsolete">N&ou...</translation> + </message> + <message> + <source>E&xisting...</source> + <translation type="obsolete">E&xistents...</translation> + </message> + <message> + <source>Virtual Hard Disk</source> + <translation>Disc dur virtual</translation> + </message> + <message> + <source> + <p> + You are going to create a new virtual machine + with the following parameters: + </p> + </source> + <translation type="obsolete"> + <p> + Creareu una mà quina virtual nova + amb els parà metres següents: + </p> + </translation> + </message> + <message> + <source> + <p> + If the above is correct press the <b>Finish</b> button. + Once you press it, a new virtual machine will be created. + </p><p> + Note that you can alter these and all other setting of the + created virtual machine at any time using the + <b>Settings</b> dialog accessible through + the menu of the main window. + </p> + </source> + <translation type="obsolete"> + <p> + Si el que hi ha més amunt és correcte premeu el botó <b>Finalitza</b>. + Quan el premeu, es crearà una mà quina virtual nova. + </p><p> + Tingueu en compte que podeu canviar estos i els altres parà metres de la + mà quina virtua creada en qualsevol moment fent servir el + dià leg <b>Parà metres</b> a través del + menú de la finestra principal. + </p> + </translation> + </message> + <message> + <source>Summary</source> + <translation>Resum</translation> + </message> + <message> + <source><qt>%1&nbsp;MB</qt></source> + <translation type="obsolete"><qt>%1&nbsp;MB</qt></translation> + </message> + <message> + <source><tr><td>Name:</td><td>%1</td></tr><tr><td>OS Type:</td><td>%2</td></tr><tr><td>Base Memory:</td><td>%3&nbsp;MB</td></tr></source> + <translation type="obsolete"><tr><td>Nom:</td><td>%1</td></tr><tr><td>Tipus de sistema operatiu:</td><td>%2</td></tr><tr><td>Memòria RAM:</td><td>%3&nbsp;MB</td></tr></translation> + </message> + <message> + <source><tr><td>Boot Hard Disk:</td><td>%4</td></tr></source> + <translation type="obsolete"><tr><td>Disc dur d'arrencada:</td><td>%4</td></tr></translation> + </message> + <message> + <source>The recommended base memory size is <b>%1</b> MB.</source> + <translation>La mida de memòria base recomanada és <b>%1</b> MB.</translation> + </message> + <message> + <source>The recommended size of the boot hard disk is <b>%1</b> MB.</source> + <translation>La mida del disc dur d'arrencada recomanada és <b>%1</b> MB.</translation> + </message> + <message> + <source><p>This wizard will guide you through the steps that are necessary to create a new virtual machine for VirtualBox.</p><p>Use the <b>Next</b> button to go the next page of the wizard and the <b>Back</b> button to return to the previous page.</p></source> + <translation><p>Este auxiliar vos guiarà a través dels passos que calen per crear una nova mà quina virtual per a VirtualBox.</p><p>Utilitzeu el botó <b>Següent</b> per a anar a la pà gina següent de l'auxiliar i el botó <b>Arrere</b> per a tornar a la pà gina anterior.</p></translation> + </message> + <message> + <source>< &Back</source> + <translation>< &Arrere</translation> + </message> + <message> + <source>&Next ></source> + <translation>&Següent ></translation> + </message> + <message> + <source><p>Enter a name for the new virtual machine and select the type of the guest operating system you plan to install onto the virtual machine.</p><p>The name of the virtual machine usually indicates its software and hardware configuration. It will be used by all VirtualBox components to identify your virtual machine.</p></source> + <translation><p>Introduïu un nom per a la mà quina virtual nova i seleccioneu el tipus del sistema operatiu client que voleu instal·lar en la mà quina virtual.</p><p>Normalment, el nom de la mà quina virtual indica la seua configuració de programari i maquinari. Tots els components del VirtualBox el faran servir per a identificar la mà quina virtual.</p></translation> + </message> + <message> + <source>&Create new hard disk</source> + <translation>&Crea un disc nou</translation> + </message> + <message> + <source>&Use existing hard disk</source> + <translation>&Fes servir un disc existent</translation> + </message> + <message> + <source><p>Select a hard disk image to be used as the boot hard disk of the virtual machine. You can either create a new hard disk using the <b>New</b> button or select an existing hard disk image from the drop-down list or by pressing the <b>Existing</b> button (to invoke the Virtual Disk Manager dialog).</p><p>If you need a more complicated hard disk setup, you can also skip this step and attach hard disks later using the VM Settings dialog.</p></source> + <translation type="obsolete"><p>Seleccioneu la imatge de disc dur que es farà servir com a disc dur d'arrrencada de la mà quina virtual. Podeu crear un disc dur nou usant el botó <b>Nou</b> o seleccionar una imatge de disc dur existent de la llista desplegable o prement el botó <b>Existents</b> (per a invocar el dià leg del gestor de discos virtuals).</p> <p>Si vos cal una configuració de disc dur més complexa, podeu també saltar-vos este pas i connectar discos durs més avant, fent servir el dià leg de configuració de la mà quina virtual.</p></translation> + </message> + <message> + <source><p>You are going to create a new virtual machine with the following parameters:</p></source> + <translation>Creareu una mà quina virtual nova amb els parà metres següents:</p></translation> + </message> + <message> + <source><p>If the above is correct press the <b>Finish</b> button. Once you press it, a new virtual machine will be created. </p><p>Note that you can alter these and all other setting of the created virtual machine at any time using the <b>Settings</b> dialog accessible through the menu of the main window.</p></source> + <translation><p>Si el que hi ha més amunt és correcte premeu el botó <b>Finalitza</b>. Quan el premeu, es crearà una mà quina virtual nova.</p><p>Tingueu en compte que podeu canviar estos i els altres parà metres de la mà quina virtual creada en qualsevol moment fent servir el dià leg <b>Parà metres</b> a través del menú de la finestra principal.</p></translation> + </message> + <message> + <source>&Finish</source> + <translation>&Finalitza</translation> + </message> + <message> + <source>MB</source> + <comment>megabytes</comment> + <translation>MB</translation> + </message> + <message> + <source>Name</source> + <comment>summary</comment> + <translation>Nom</translation> + </message> + <message> + <source>OS Type</source> + <comment>summary</comment> + <translation>Tipus de sistema operatiu</translation> + </message> + <message> + <source>Base Memory</source> + <comment>summary</comment> + <translation>Memòria RAM</translation> + </message> + <message> + <source>Boot Hard Disk</source> + <comment>summary</comment> + <translation>Arrenca Disc Dur</translation> + </message> + <message> + <source>Cancel</source> + <translation>Cancel·la</translation> + </message> + <message> + <source><p>Select a hard disk image to be used as the boot hard disk of the virtual machine. You can either create a new hard disk using the <b>New</b> button or select an existing hard disk image from the drop-down list or by pressing the <b>Existing</b> button (to invoke the Virtual Media Manager dialog).</p><p>If you need a more complicated hard disk setup, you can also skip this step and attach hard disks later using the VM Settings dialog.</p></source> + <translation><p>Seleccioneu la imatge de disc dur que es farà servir com a disc dur d'arrrencada de la mà quina virtual. Podeu crear un disc dur nou usant el botó <b>Nou</b> o seleccionar una imatge de disc dur existent de la llista desplegable o prement el botó <b>Existents</b> (per a invocar el dià leg del gestor de discos virtuals). Si vos cal una configuració de disc dur més complexa, podeu també saltar-vos este pas i connectar discos durs més avant, fent servir el dià leg de configuració de la mà quina virtual.</p></translation> + </message> + <message> + <source>Boot Hard &Disk (Primary Master)</source> + <translation>D&isc dur d'arrencada (primari mestre)</translation> + </message> +</context> +<context> + <name>VBoxOSTypeSelectorWidget</name> + <message> + <source>Operating &System:</source> + <translation>&Sistema Operatiu:</translation> + </message> + <message> + <source>Displays the operating system family that you plan to install into this virtual machine.</source> + <translation>Mostra el tipus de sistema operatiu que voleu instal·lar a dins d'esta mà quina virtual.</translation> + </message> + <message> + <source>V&ersion:</source> + <translation type="obsolete">V&ersió:</translation> + </message> + <message> + <source>Displays the operating system type that you plan to install into this virtual machine (called a guest operating system).</source> + <translation>Mostra el tipus de sistema operatiu que voleu instal·lar a dins d'esta mà quina virtual (anomenat sistema operatiu client).</translation> + </message> + <message> + <source>&Version:</source> + <translation>&Versió:</translation> + </message> +</context> +<context> + <name>VBoxProblemReporter</name> + <message> + <source>Callee: </source> + <comment>error info</comment> + <translation>Subrutina:</translation> + </message> + <message> + <source>Callee&nbsp;RC: </source> + <comment>error info</comment> + <translation>Subrutina&nbsp;RC:</translation> + </message> + <message> + <source>CD/DVD image</source> + <translation type="obsolete">Imatge CD/DVD</translation> + </message> + <message> + <source>Component: </source> + <comment>error info</comment> + <translation>Component:</translation> + </message> + <message> + <source>Do not show this message again</source> + <comment>msg box flag</comment> + <translation>No tornes a mostrar este missatge</translation> + </message> + <message> + <source>Failed to access the USB subsystem.</source> + <translation>No s'ha pogut accedir al subsistema USB.</translation> + </message> + <message> + <source>Failed to apply the settings to the virtual machine <b>%1</b>.</source> + <translation>No s'ha pogut aplicar els parà metres de configuració a la mà quina virtual <b>%1</b>.</translation> + </message> + <message> + <source>Failed to attach a hard disk image with UUID %1 to the device slot %2 of the controller %3 of the machine <b>%4</b>.</source> + <translation type="obsolete">No s'ha pogut connectar la imatge de disc dur amb UUID %1 al dispositiu %2 del controlador %3 de la mà quina <b>%4</b>.</translation> + </message> + <message> + <source>Failed to attach the USB device <b>%1</b> to the virtual machine <b>%2</b>.</source> + <translation>No s'ha pogut afegir el dispositiu USB <b>%1</b> a la mà quina virtual <b>%2</b>.</translation> + </message> + <message> + <source>Failed to change the snapshot folder path of the virtual machine <b>%1<b> to <nobr><b>%2</b></nobr>.</source> + <translation>No s'ha pogut canviar la ruta de la carpeta de captures de la mà quina virtual <b>%1<b> a <nobr><b>%2</b></nobr>.</translation> + </message> + <message> + <source>Failed to create a new session.</source> + <translation>No s'ha pogut crear una nova sessió.</translation> + </message> + <message> + <source>Failed to create a new virtual machine.</source> + <translation>No s'ha pogut crear una nova mà quina virtual.</translation> + </message> + <message> + <source>Failed to create a new virtual machine <b>%1</b>.</source> + <translation>No s'ha pogut crear una nova mà quina virtual <b>%1</b>.</translation> + </message> + <message> + <source>Failed to create the shared folder <b>%1</b> (pointing to <nobr><b>%2</b></nobr>) for the virtual machine <b>%3</b>.</source> + <translation>No s'ha pogut crear una carpeta compartida <b>%1</b> (senyalant a <nobr><b>%2</b></nobr>) a la mà quina virtual <b>%3</b>.</translation> + </message> + <message> + <source>Failed to create a snapshot of the virtual machine <b>%1</b>.</source> + <translation>No s'ha pogut alçar una captura de pantalla de la mà quina virtual <b>%1</b>.</translation> + </message> + <message> + <source>Failed to create the host network interface <b>%1</b>.</source> + <translation type="obsolete">No s'ha pogut crear la interfÃcie de xarxa <b>%1</b> de l'amfitrió.</translation> + </message> + <message> + <source>Failed to create the virtual hard disk image <nobr><b>%1</b>.</nobr></source> + <translation type="obsolete">No s'ha pogut crear la imatge de disc dur virtual <nobr><b>%1</b>.</nobr></translation> + </message> + <message> + <source>Failed to delete the virtual hard disk image <b>%1</b>.</source> + <translation type="obsolete">No s'ha pogut eliminar la imatge de disc dur <b>%1</b>.</translation> + </message> + <message> + <source>Failed to detach a hard disk image from the device slot %1 of the controller %2 of the machine <b>%3</b>.</source> + <translation type="obsolete">No s'ha pogut treure la imatge de disc dur del despositiu %1 del controlador %2 de la mà quina <b>%3</b>.</translation> + </message> + <message> + <source>Failed to detach the USB device <b>%1</b> from the virtual machine <b>%2</b>.</source> + <translation>No s'ha pogut treure dispositiu USB <b>%1</b> de la mà quina virtual <b>%2</b>.</translation> + </message> + <message> + <source>Failed to discard the current snapshot and the current state of the virtual machine <b>%1</b>.</source> + <translation type="obsolete">No s'ha pogut descartar l'actual captura ni l'estat actual de la mà quina virtual<b>%1</b>.</translation> + </message> + <message> + <source>Failed to discard the current state of the virtual machine <b>%1</b>.</source> + <translation type="obsolete">No s'ha pogut descartar l'estat actual de la mà quina virtual <b>%1</b>.</translation> + </message> + <message> + <source>Failed to discard the saved state of the virtual machine <b>%1</b>.</source> + <translation>No s'ha pogut descartar l'estat alçat de la mà quina virtual <b>%1</b>.</translation> + </message> + <message> + <source>Failed to discard the snapshot <b>%1</b> of the virtual machine <b>%2</b>.</source> + <translation type="obsolete">No s'ha pogut descartar la captura de pantalla <b>%1</b> de la mà quina virtual <b>%2</b>.</translation> + </message> + <message> + <source>Failed to find license files in <nobr><b>%1</b></nobr>.</source> + <translation>No s'ha pogut trobar cap fitxer de llicència a <nobr><b>%1</b></nobr>.</translation> + </message> + <message> + <source>Failed to determine the accessibility state of the media <nobr><b>%1</b></nobr>. Some of the registered media may become inaccessible.</source> + <translation type="obsolete">No s'ha pogut accedir a l'estat del suport <nobr><b>%1</b></nobr>. No es podrà accedir a alguns dels dispositius.</translation> + </message> + <message> + <source>Failed to load the settings of the virtual machine <b>%1</b>.</source> + <translation type="obsolete">No s'ha pogut carregar els parà metres de la mà quina virtual <b>%1</b>.</translation> + </message> + <message> + <source>Failed to open a session for the virtual machine <b>%1</b>.</source> + <translation>No s'ha pogut obrir una sessió per a la mà quina virtual <b>%1</b>.</translation> + </message> + <message> + <source>Failed to open the license file <nobr><b>%1</b></nobr>. Check file permissions.</source> + <translation>No s'ha pogut obrir el fitxer de llicència <nobr><b>%1</b></nobr>. Comproveu els permisos del fitxer.</translation> + </message> + <message> + <source>Failed to open <tt>%1</tt>. Make sure your desktop environment can properly handle URLs of this type.</source> + <translation>No s'ha pogut obrir <tt>%1</tt>. Assegureu-vos que el vostre entorn d'escriptori pot gestionar este tipus d'URL.</translation> + </message> + <message> + <source>Failed to pause the execution of the virtual machine <b>%1</b>.</source> + <translation>No s'ha pogut pausar l'execució de la mà quina virtual <b>%1</b>.</translation> + </message> + <message> + <source>Failed to register the %1 <nobr><b>%2</b></nobr>.</source> + <translation type="obsolete">No s'ha pogut registrar %1 <nobr><b>%2</b></nobr>.</translation> + </message> + <message> + <source>Failed to remove the host network interface <b>%1</b>.</source> + <translation>No s'ha pogut suprimir la interfÃcie de xarxa <b>%1</b> de l'amfitrió.</translation> + </message> + <message> + <source>Failed to remove the shared folder <b>%1</b> (pointing to <nobr><b>%2</b></nobr>) from the virtual machine <b>%3</b>.</source> + <translation>No s'ha pogut eliminar la carpeta compartida <b>%1</b> (senyalant a <nobr><b>%2</b></nobr>) a la mà quina virtual <b>%3</b>.</translation> + </message> + <message> + <source>Failed to remove the virtual machine <b>%1</b>.</source> + <translation>No s'ha pogut eliminar la mà quina virtual <b>%1</b>.</translation> + </message> + <message> + <source>Failed to resume the execution of the virtual machine <b>%1</b>.</source> + <translation>No s'ha pogut reprendre l'execució de la mà quina virtual <b>%1</b>.</translation> + </message> + <message> + <source>Failed to save the settings of the virtual machine <b>%1</b>.</source> + <translation type="obsolete">No s'ha pogut alçar els canvis de la mà quina virtual <b>%1</b>.</translation> + </message> + <message> + <source>Failed to save the state of the virtual machine <b>%1</b>.</source> + <translation>No s'ha pogut alçar l'estat de la mà quina virtual <b>%1</b>.</translation> + </message> + <message> + <source>Failed to send the ACPI Power Button press event to the virtual machine <b>%1</b>.</source> + <translation>No s'ha pogut enviar l'esdeveniment de prémer el botó d'iniciar/aturar a la mà quina virtual <b>%1</b>.</translation> + </message> + <message> + <source>Failed to set global VirtualBox properties.</source> + <translation>No s'han pogut establir les propietats globals del VirtualBox.</translation> + </message> + <message> + <source>Failed to start the virtual machine <b>%1</b>.</source> + <translation>No s'ha pogut iniciar la mà quina virtual <b>%1</b>.</translation> + </message> + <message> + <source>Failed to stop the virtual machine <b>%1</b>.</source> + <translation>No s'ha pogut aturar la mà quina virtual <b>%1</b>.</translation> + </message> + <message> + <source>Failed to unregister the %1 <nobr><b>%2</b></nobr>.</source> + <translation type="obsolete">No s'ha pogut elimianar del registre %1 <nobr><b>%2</b></nobr>.</translation> + </message> + <message> + <source>floppy image</source> + <translation type="obsolete">imatge disquet</translation> + </message> + <message> + <source>hard disk</source> + <translation type="obsolete">disc dur</translation> + </message> + <message> + <source>Interface: </source> + <comment>error info</comment> + <translation>InterfÃcie:</translation> + </message> + <message> + <source><nobr>Error ID: </nobr></source> + <comment>runtime error info</comment> + <translation><nobr>ID de l'error:</nobr></translation> + </message> + <message> + <source><nobr>Fatal Error</nobr></source> + <comment>runtime error info</comment> + <translation><nobr>Error fatal</nobr></translation> + </message> + <message> + <source><nobr>Non-Fatal Error</nobr></source> + <comment>runtime error info</comment> + <translation><nobr>Error no fatal</nobr> </translation> + </message> + <message> + <source><nobr>Warning</nobr></source> + <comment>runtime error info</comment> + <translation><nobr>AvÃs</nobr></translation> + </message> + <message> + <source><p>A critical error has occurred while running the virtual machine and the machine execution has been stopped.</p><p>For help, please see the Community section on <a href=http://www.virtualbox.org>http://www.virtualbox.org</a> or your support contract. Please provide the contents of the log file <tt>VBox.log</tt> and the image file <tt>VBox.png</tt>, which you can find in the <nobr><b>%1</b></nobr> directory, as well as a description of what you were doing when this error happened. Note that you can also access the above files by selecting <b>Show Log</b> from the <b>Machine</b> menu of the main VirualBox window.</p><p>Press <b>OK</b> if you want to power off the machine or press <b>Ignore</b> if you want to leave it as is for debugging. Please note that debugging requires special knowledge and tools, so it is recommended to press <b>OK</b> now.</p></source> + <translation type="obsolete"><p>S'ha produït un error crÃtic mentre s'executava la mà quina virtual, que s'ha aturat.</p><p>Per obtindre ajuda, visiteu la secció Community a <a href=http://www.virtualbox.org>http://www.virtualbox.org</a> o al vostre contracte de suport. Afegiu el contingut del fitxer de registre <tt>VBox.log</tt> i el fitxer d'imatge <tt>VBox.png</tt>,que podreu trobar al directori <nobr><b>%1</b></nobr>, i una descripció sobre allò que està veu fent al moment al qual es va produir l'error. Podeu accedir als fitxers especificats mitjançant <b>Mostra registre</b> des del menú de la <b>Mà quina</b> a la finestra principal del VirtualBox.</p>Premeu <b>D'acord</b> si voleu aturar la mà quina o <b>Ignora</b> si voleu deixar-la en procés de depuració. Tingueu en compte que el procés de depuració requereix coneixements avançats i eines especials, per tant és recomanabla prémer <b>D'acord</b>.</p></translation> + </message> + <message> + <source><p>A fatal error has occurred during virtual machine execution! The virtual machine will be powered off. Please copy the following error message using the clipboard to help diagnose the problem:</p></source> + <translation><p>S'ha produït un error mentre la mà quina virtual s'executava i es tancarà . Es recomanable copiar el missatge d'error següent per a una anà lisi posterior:</p></translation> + </message> + <message> + <source><p>An error has occurred during virtual machine execution! The error details are shown below. You may try to correct the error and resume the virtual machine execution.</p></source> + <translation><p>S'ha produït un error mentre la mà quina virtual s'executava. Els detalls de l'error es mostren a continuació. Podeu provar a resoldre l'error i tornar a executar la mà quina virtual.</p></translation> + </message> + <message> + <source><p>Are you sure you want to discard the saved state of the virtual machine <b>%1</b>?</p><p>This operation is equivalent to resetting or powering off the machine without doing a proper shutdown of the guest OS.</p></source> + <translation><p>Esteu segur que voleu descartar l'estat alçat de la mà quina virtual<b>%1</b>?</p><p>Esta operació és equivalent a reiniciar o tancar la mà quina virtual de forma no adequada.</p> </translation> + </message> + <message> + <source><p>Are you sure you want to download the VirtualBox Guest Additions CD image from <nobr><a href="%1">%2</a></nobr> (size %3 bytes)?</p></source> + <translation><p>Esteu segur que voleu baixar la imatge del VirtualBox Guest Additions des de <nobr><a href="%1">%2</a></nobr> (mida %3 bytes)?</p></translation> + </message> + <message> + <source><p>Are you sure you want to permanently delete the virtual machine <b>%1</b>?</p><p>This operation cannot be undone.</p></source> + <translation><p>Esteu segur que voleu suprimir de forma permanent la mà quina virtual <b>%1</b>?</p><p>Esta operació no es podrà desfer.</p></translation> + </message> + <message> + <source><p>Are you sure you want to unregister the inaccessible virtual machine <b>%1</b>?</p><p>You will not be able to register it again from GUI.</p></source> + <translation><p>Esteu segur que voleu suprimir del registre la mà quina virtaul inaccessible<b>%1</b>?</p><p>No podreu registrar-la novament des de la interfÃcie.</p></translation> + </message> + <message> + <source><p>Cannot run VirtualBox in <i>VM Selector</i> mode due to local restrictions.</p><p>The application will now terminate.</p></source> + <translation><p>No es pot executar VirtualBox en el mode <i>VM Selector</i> degut a restriccions locals.</p><p>L'aplicació es tancarà .</p></translation> + </message> + <message> + <source><p>Congratulations! You have been successfully registered as a user of VirtualBox.</p><p>Thank you for finding time to fill out the registration form!</p></source> + <translation><p>Enhorabona! Vos heu registrat com a usuari de VirtualBox.</p><p>Grà cies per haver omplit el formulari!</p></translation> + </message> + <message> + <source><p>Could not enter seamless mode due to insufficient guest video memory.</p><p>You should configure the VM to have at least <b>%1</b> of video memory.</p></source> + <translation type="obsolete"><p>No es pot entrar al mode fluid degut a que no hi ha suficient memòria de vÃdeo.</p><p>Heu de configurar la mà quina virtual per tal que tinga almenys <b>%1</b> de memòria de vÃdeo.</p></translation> + </message> + <message> + <source><p>Could not find a language file for the language <b>%1</b> in the directory <b><nobr>%2</nobr></b>.</p><p>The language will be temporarily reset to the system default language. Please go to the <b>Preferences</b> dialog which you can open from the <b>File</b> menu of the main VirtualBox window, and select one of the existing languages on the <b>Language</b> page.</p></source> + <translation><p>No es pot trobar el fitxer de llengua per a l'idioma <b>%1</b> al directori <b><nobr>%2</nobr></b>.</p><p>Es farà servir l'anglés (llengua per defecte). Aneu al dià leg de <b>Preferències</b> que podeu obrir des del menú <b>Fitxer</b> de la finestra principal del VirtualBox. Allà podreu triar entre les diferents llengües a la secció d'<b>Idioma</b>.</p> </translation> + </message> + <message> + <source><p>Could not find the VirtualBox Guest Additions CD image file <nobr><b>%1</b></nobr> or <nobr><b>%2</b>.</nobr></p><p>Do you wish to download this CD image from the Internet?</p></source> + <translation><p>No es pot trobar el fitxer d'imatge del VirtualBox Guest Additions <nobr><b>%1</b></nobr> o <nobr><b>%2</b>.</nobr></p><p>Voleu baixar-la des d'internet?</p></translation> + </message> + <message> + <source><p>Could not load the language file <b><nobr>%1</nobr></b>. <p>The language will be temporarily reset to English (built-in). Please go to the <b>Preferences</b> dialog which you can open from the <b>File</b> menu of the main VirtualBox window, and select one of the existing languages on the <b>Language</b> page.</p></source> + <translation><p>No es pot trobar el fitxer de llengua per a l'idioma<b><nobr>%1</nobr></b>.</p><p>Es farà servir l'anglés (llengua per defecte). Aneu al dià leg de <b>Preferències</b> que podeu obrir des del menú <b>Fitxer</b> de la finestra principal del VirtualBox. Allà podreu triar entre les diferents llengües a la pà gina de <b>Llengües</b>.</p></translation> + </message> + <message> + <source><p>Do you want to delete this hard disk's image file <nobr><b>%1</b>?</nobr></p><p>If you select <b>No</b> then the virtual hard disk will be unregistered and removed from the collection, but the image file will be left on your physical disk.</p><p>If you select <b>Yes</b> then the image file will be permanently deleted after unregistering the hard disk. This operation cannot be undone.</p></source> + <translation type="obsolete"><p>Voleu esborrar este fitxer d'imatge de disc dur<nobr><b>%1</b>?</nobr></p><p>Si seleccioneu <b>No</b>, el disc dur virtual se suprimirà del registre, però la imatge es quedarà al disc dur fÃsic.</p><p>Si seleccioneu <b>SÃ</b>, la imatge s'eliminarà completament del registre i del disc dur fÃsic. Esta operació no es podrà desfer.</p></translation> + </message> + <message> + <source><p>Do you want to remove (unregister) the virtual hard disk <nobr><b>%1</b>?</nobr></p></source> + <translation type="obsolete"><p>Voleu eliminar (suprimir del registre) la imatge virtual de disc dur <nobr><b>%1</b>?</nobr></p></translation> + </message> + <message> + <source><p>Failed to connect to the VirtualBox online registration service.</p><p>%1</p></source> + <translation type="obsolete"><p>No s'ha pogut connectar al servei de registre en lÃnia de VirtualBox.</p><p>%1</p></translation> + </message> + <message> + <source><p>Failed to create the VirtualBox COM object.</p><p>The application will now terminate.</p></source> + <translation><p>No s'ha pogut crear l'objecte VirtualBox COM.</p><p>Ara es tancarà l'aplicació.</p></translation> + </message> + <message> + <source><p>Failed to download the VirtualBox Guest Additions CD image from <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p></source> + <translation><p>No s'ha pogut baixar la imatge del de VirtualBox Guest Additions des de <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p></translation> + </message> + <message> + <source><p>Failed to initialize COM or to find the VirtualBox COM server. Most likely, the VirtualBox server is not running or failed to start.</p><p>The application will now terminate.</p></source> + <translation><p>No s'ha pogut inicialitzar COM o no s'ha pogut trobar el servidor VirtualBox COM. Probablement el servidor VirtualBox no s'està executant o no s'ha iniciat.</p><p>Ara es tancarà l'aplicació.</p></translation> + </message> + <message> + <source><p>Failed to load the global GUI configuration.</p><p>The application will now terminate.</p></source> + <translation type="obsolete"><p>No s'ha pogut carregar la configuració global de la interfÃcie.</p><p>Ara es tancarà l'aplicació.</p></translation> + </message> + <message> + <source><p>Failed to register the VirtualBox product</p><p>%1</p></source> + <translation type="obsolete"><p>No s'ha pogut registrar el producte VirtualBox</p><p>%1</p></translation> + </message> + <message> + <source><p>Failed to remove the shared folder <b>%1</b> (pointing to <nobr><b>%2</b></nobr>) from the virtual machine <b>%3</b>.</p><p>Please close all programs in the guest OS that may be using this shared folder and try again.</p></source> + <translation><p>No s'ha pogut eliminar la carpeta compartida <b>%1</b> (que apunta cap a <nobr><b>%2</b></nobr>) de la mà quina virtual <b>%3</b>.</p><p>Tanqueu tots els programes al sistema client que fan servir la carpeta i proveu novament.</p></translation> + </message> + <message> + <source><p>Failed to save the global GUI configuration.<p></source> + <translation type="obsolete"><p>No s'ha pogut alçar la configuració global de la interfÃcie.</p></translation> + </message> + <message> + <source><p>One or more of the registered virtual hard disks, CD/DVD or floppy media are not currently accessible. As a result, you will not be able to operate virtual machines that use these media until they become accessible later.</p><p>Press <b>OK</b> to open the Virtual Disk Manager window and see what media are inaccessible, or press <b>Ignore</b> to ignore this message.</p></source> + <translation type="obsolete"><p>No es pot accedir a un o més dels discos, CD/DVD o disquet virtuals. Com a resultat, no podreu operar amb les mà quines virtuals que els facen servir fins que estiguen accessibles.</p><p>Premeu <b>D'acord</b> per obrir el gestor de discos virtuals i veure a quins suports no s'hi pot accedir, o premeu <b>ignora</b> per ignorar este missatge.</p></translation> + </message> + <message> + <source><p>Releasing this media image will detach it from the following virtual machine(s): <b>%1</b>.</p><p>Continue?</p></source> + <translation type="obsolete"><p>Llançant esta imatge la separareu de les següents mà quines virtuals: <b>%1</b>.</p><p>Voleu continuar?</p></translation> + </message> + <message> + <source><p>The image file <b>%1</b> already exists. You cannot create a new virtual hard disk that uses this file, because it can be already used by another virtual hard disk.</p><p>Please specify a different image file name.</p></source> + <translation type="obsolete"><p>El fitxer d'imatge <b>%1</b> ja existeix. No podeu crear un nou disc dur virtual que faça servir este fitxer ja que pot ser utilitzat per un altre disc dur virtual.</p><p>Especifiqueu un nom diferent per a la imatge.</p></translation> + </message> + <message> + <source><p>The VirtualBox Guest Additions CD image has been successfully downloaded from <nobr><a href="%1">%2</a></nobr> and saved locally as <nobr><b>%3</b>.</nobr></p><p>Do you wish to register this CD image and mount it on the virtual CD/DVD drive?</p></source> + <translation><p>S'ha baixat la imatge del VirtualBox Guest Additions des de <nobr><a href="%1">%2</a></nobr> i s'ha alçat localment com a <nobr><b>%3</b>.</nobr></p><p>Voleu registrar esta imatge de CD i montar-la a la unitat virtual de CD/DVD?</p></translation> + </message> + <message> + <source><p>The virtual machine execution may run into an error condition as described below. We suggest that you take an appropriate action to avert the error.</p></source> + <translation><p>La mà quina virtual s'executarà , però amb l'error que es descriu a continuació. Podeu ignorar este missatge, però és recomanable solucionar l'error per tal que no es torne a produir.</p></translation> + </message> + <message> + <source><p>The Virtual Machine is currently in the <b>Paused</b> state and not able to see any keyboard or mouse input. If you want to continue to work inside the VM, you need to resume it by selecting the corresponding action from the menu bar.</p></source> + <translation><p>La Mà quina Virtual és actualment en <b>Pausa</pa> i per tant no accepta cap acció provinent del teclat o del ratolÃ. Si voleu continuar treballant amb la mà quina virtual, haureu de reprendre el funcionament des de l'opció corresponent de la barra de menú.</p></translation> + </message> + <message> + <source><p>The Virtual Machine reports that the guest OS does not support <b>mouse pointer integration</b> in the current video mode. You need to capture the mouse (by clicking over the VM display or pressing the host key) in order to use the mouse inside the guest OS.</p></source> + <translation><p>La Mà quina Virtual ha informat que el sistema client no suporta <b>integració del punter del ratolÃ</b> al mode de vÃdeo actual. Heu de capturar el ratolà (clicant sobre la pantalla de la mà quina virtual o prement la tecla amfitrió) per tal de poder controlar el ratolà a dins del sistema client.</p></translation> + </message> + <message> + <source><p>The Virtual Machine reports that the guest OS supports <b>mouse pointer integration</b>. This means that you do not need to <i>capture</i> the mouse pointer to be able to use it in your guest OS -- all mouse actions you perform when the mouse pointer is over the Virtual Machine's display are directly sent to the guest OS. If the mouse is currently captured, it will be automatically uncaptured.</p><p>The mouse icon on the status bar will look like&nbsp;<img src=mouse_seamless_16px.png/>&nbsp;to inform you that mouse pointer integration is supported by the guest OS and is currently turned on.</p><p><b>Note</b>: Some applications may behave incorrectly in mouse pointer integration mode. You can always disable it for the current session (and enable it again) by selecting the corresponding action from the menu bar.</p></source> + <translation type="obsolete"><p>La Mà quina Virtual ha informat que el sistema client suporta <b>integració del punter del ratolÃ</b>. Això significa que no necessiteu <i>capturar</i> el punter del ratolà per poder fer-lo servir al sistema client -- totes les accions que executeu quan el punter del ratolà estiga a sobre de la Mà quina virtual s'enviaran directament al sistema client. Si es captura el ratolÃ, automà ticament es tornarà al mode normal.</p><p>La icona del ratolà a la barra d'estat es mostrarà com&nbsp;<img src=mouse_seamless_16px.png/>&nbsp;per informar-vos que la integració del punter està suportada pel sistema client que està actiu.</p><p><b>Nota</b>: Algunes aplicacions poden comportar-se incorrectament treballant en el mode d'integració del ratolÃ. Sempre podeu inhabilitar-ho a la sessió actual (o habilitar-ho) seleccionat l'opció corresponent a la barra de menú.</p></translation> + </message> + <message> + <source><p>The virtual machine window is optimized to work in <b>%1&nbsp;bit</b> color mode but the virtual display is currently set to <b>%2&nbsp;bit</b>.</p><p>Please open the display properties dialog of the guest OS and select a <b>%3&nbsp;bit</b> color mode, if it is available, for best possible performance of the virtual video subsystem.</p><p><b>Note</b>. Some operating systems, like OS/2, may actually work in 32&nbsp;bit mode but report it as 24&nbsp;bit (16 million colors). You may try to select a different color mode to see if this message disappears or you can simply disable the message now if you are sure the required color mode (%4&nbsp;bit) is not available in the guest OS.</p></source> + <translation><p>La finestra de la mà quina virtual està optimitzada per treballar en el mode de color <b>%1&nbsp;bit</b> però la qualitat del color que es mostra actualment està establerta a <b>%2&nbsp;bit</b>.</p><p>. Obriu el dià leg de propietats de la pantalla del sistema client i seleccioneu el mode de color <b>%3&nbsp;bit</b>, si és disponible, per obtindre el millor funcionament possible del subsistema de vÃdeo.</p><p><b>Nota</b>: Alguns sistemes operatius, com OS/2, necessiten treballar actualment al mode 32&nbsp;bit però informen que és 24&nbsp;bit (16 milions de colors). Haureu de provar a seleccionar una qualitat de color diferent per veure si és correcta i este missatge desapareix o simplemente podeu inhabilitar este missatge si esteu segur que la qualitat de color requerida (%4&nbsp;bit) no és disponible al sistema client.</p></translation> + </message> + <message> + <source><p>The virtual machine window will be now switched to <b>fullscreen</b> mode. You can go back to windowed mode at any time by pressing <b>%1</b>. Note that the <i>Host</i> key is currently defined as <b>%1</b>.</p><p>Note that the main menu bar is hidden in fullscreen mode. You can access it by pressing <b>Host+Home</b>.</p></source> + <translation type="obsolete"><p>La mà quina virtual passarà ara al mode de <b>pantalla completa</b>. Podeu tornar arrere prement <b>%1</b>. Tingueu en compte que la <i>tecla d'amfitrió</i> està definida actualment com <b>%2</b>.</p><p>La barra de menú estarà amagada al mode de pantalla completa. Podreu accedir a ella prement <b>tecla d'amfitrió+Home</b>.</p></translation> + </message> + <message> + <source><p>The virtual machine window will be now switched to <b>Seamless</b> mode. You can go back to windowed mode at any time by pressing <b>%1</b>. Note that the <i>Host</i> key is currently defined as <b>%1</b>.</p><p>Note that the main menu bar is hidden in seamless mode. You can access it by pressing <b>Host+Home</b>.</p></source> + <translation type="obsolete"><p>La mà quina virtual passarà ara al mode <b>fluid</b>. Podeu tornar arrere al mode finestra prement <b>%1</b>. Tingueu en compte que la <i>tecla d'amfitrió</i> està definida actualment com <b>%2</b>.</p><p>La barra de menú estarà amagada al mode fluid. Podreu accedir a ella prement <b>tecla d'amfitrió+Home</b>.</p></translation> + </message> + <message> + <source><p>The VirtualBox Guest Additions installed in the Guest OS are outdated: the installed version is %1, the expected version is %2. Some features that require Guest Additions (mouse integration, guest display auto-resize) may not work as expected.</p><p>It is recommended to update the Guest Additions to the current version by choosing <b>Install Guest Additions</b> from the <b>Devices</b> menu.</p></source> + <translation><b>El programa VirtualBox Guest Additions instal·lat al sistema client no és a la darrera versió: la versió instal·lada és %1 i la més nova és la %2. Algunes caracterÃstiques que requereixen les Guest Additions (integració del ratolÃ, la funció de mida automà tica de l'escriptori) poden no treballar correctament.</p><p>Es recomana actualitzar la versió de Guest Additions a la versió actual triant <b>Instal·lar Guest Additions</b> des del menú <b>Dispositius</b>.</p></translation> + </message> + <message> + <source><p>The VirtualBox Guest Additions installed in the Guest OS are too old: the installed version is %1, the expected version is %2. Some features that require Guest Additions (mouse integration, guest display auto-resize) will most likely stop working properly.</p><p>Please update the Guest Additions to the current version by choosing <b>Install Guest Additions</b> from the <b>Devices</b> menu.</p></source> + <translation><b>El programa VirtualBox Guest Additions instal·lat al sistema client està antiquat: la versió instal·lada és %1 i la més nova és la %2. Algunes caracterÃstiques que requereixen les Guest Additions (integració del ratolÃ, la funció de mida automà tica de l'escriptori) poden no treballar correctament.</p><p>Es recomana actualitzar la versió de Guest Additions a la versió actual triant <b>Instal·lar Guest Additions</b> des del menú <b>Dispositius</b>.</p></translation> + </message> + <message> + <source><p>The VirtualBox Guest Additions installed in the Guest OS are too recent for this version of VirtualBox: the installed version is %1, the expected version is %2.</p><p>Using a newer version of Additions with an older version of VirtualBox is not supported. Please install the current version of the Guest Additions by choosing <b>Install Guest Additions</b> from the <b>Devices</b> menu.</p></source> + <translation><b>El programa VirtualBox Guest Additions instal·lat al sistema client és més recent que la versió suportada: la versió instal·lada és %1 i la més nova és la %2. No es pot fer servir una versió més nova de les Guest Additions amb una versió més antiga del VirtualBox.</p><p>Es recomana instal·lar la versió de Guest Additions a la versió actual triant <b>Instal·lar Guest Additions</b> des del menú <b>Dispositius</b>.</p></translation> + </message> + <message> + <source><p>You didn't attach a hard disk to the new virtual machine. The machine will not be able to boot unless you attach a hard disk with a guest operating system or some other bootable media to it later using the machine settings dialog or the First Run Wizard.</p><p>Do you wish to continue?</p></source> + <translation><p>No heu afegit cap disc dur a la nova mà quina virtual. La mà quina no podrà iniciar-se fins que no afegiu un disc dur amb un sistema operatiu client o qualsevol altre suport arrencable.</p><p>Voleu continuar?</p></translation> + </message> + <message> + <source><p>You have <b>clicked the mouse</b> inside the Virtual Machine display or pressed the <b>host key</b>. This will cause the Virtual Machine to <b>capture</b> the host mouse pointer (only if the mouse pointer integration is not currently supported by the guest OS) and the keyboard, which will make them unavailable to other applications running on your host machine.</p><p>You can press the <b>host key</b> at any time to <b>uncapture</b> the keyboard and mouse (if it is captured) and return them to normal operation. The currently assigned host key is shown on the status bar at the bottom of the Virtual Machine window, next to the&nbsp;<img src=hostkey_16px.png/>&nbsp;icon. This icon, together with the mouse icon placed nearby, indicate the current keyboard and mouse capture state.</p></source> + <translation type="obsolete"><p>Heu fet <b>clic amb el ratolÃ</b> a dins de la finestra de la Mà quina Virtual o heu premut la <b>tecla d'amfitrió</b>. Això fa que la Mà quina Virtual <b>capture</b> el punter del ratolà (només en cas que la integració del ratolà no estiga suportada pel sistema client) i el teclat, que ara no estaran disponibles per funcionar a la mà quina amfitriona.</p><p>Podeu prémer la <b>tecla d'amfitrió</b> en qualsevol moment per <b>tornar</b> el ratolà i el teclat al mode normal de funcionament. La tecla d'amfitrió assiganada actualment es mostra a la barra d'estat a la part inferior de la finestra, al costat de la icona &nbsp;<img src=hostkey_16px.png/>&nbsp;. Esta icona indica si el teclat i el ratolà estan en estat de captura o no.</p></translation> + </message> + <message> + <source><p>You have the <b>Auto capture keyboard</b> option turned on. This will cause the Virtual Machine to automatically <b>capture</b> the keyboard every time the VM window is activated and make it unavailable to other applications running on your host machine: when the keyboard is captured, all keystrokes (including system ones like Alt-Tab) will be directed to the VM.</p><p>You can press the <b>host key</b> at any time to <b>uncapture</b> the keyboard and mouse (if it is captured) and return them to normal operation. The currently assigned host key is shown on the status bar at the bottom of the Virtual Machine window, next to the&nbsp;<img src=hostkey_16px.png/>&nbsp;icon. This icon, together with the mouse icon placed nearby, indicate the current keyboard and mouse capture state.</p></source> + <translation type="obsolete"><p>L'opció de <b>Captura automà tica del teclat</b> és activa. Això farà que la Mà quina Virtual <b>capture</b> el teclat sempre que la finestra de la mà quina virtual estiga activa i farà que el teclat no estiga disponible per a d'altres aplicacions que s'estiguen executant a l'ordinador amfitrió: quan el teclat està capturat, totes les tecles especials (incloent Alt-Tab) es readrecen a la mà quina virtual.</p><p>Podeu prémer la <b>tecla d'amfitrió</b> en qualsevol moment per <b>tornar</b> el ratolà i el teclat al mode normal de funcionament. La tecla d'amfitrió assiganada actualment es mostra a la barra d'estat a la part inferior de la finestra, al costat de la icona &nbsp;<img src=hostkey_16px.png/>&nbsp;. Esta icona indica si el teclat i el ratolà estan en estat de captura o no.</p></translation> + </message> + <message> + <source>Result&nbsp;Code: </source> + <comment>error info</comment> + <translation>Resultat&nbsp;Codi:</translation> + </message> + <message> + <source>Severity: </source> + <comment>runtime error info</comment> + <translation>Severitat:</translation> + </message> + <message> + <source>There is no virtual machine named <b>%1</b>.</source> + <translation>No hi ha cap mà quina virtual anomenada <b>%1</b>.</translation> + </message> + <message> + <source>VirtualBox - Critical Error</source> + <comment>msg box title</comment> + <translation>VirtualBox - Error crÃtic</translation> + </message> + <message> + <source>VirtualBox - Error</source> + <comment>msg box title</comment> + <translation>VirtualBox - Error</translation> + </message> + <message> + <source>VirtualBox - Information</source> + <comment>msg box title</comment> + <translation>VirtualBox - Informació</translation> + </message> + <message> + <source>VirtualBox - Question</source> + <comment>msg box title</comment> + <translation>VirtualBox - Pregunta</translation> + </message> + <message> + <source>VirtualBox - Warning</source> + <comment>msg box title</comment> + <translation>VirtualBox - AvÃs</translation> + </message> + <message> + <source><p>Failed to save the global VirtualBox settings to <b><nobr>%1</nobr></b>.</p></source> + <translation><p>No s'ha pogut alçar els parà metres globals del VirtualBox a <b><nobr>%1</nobr></b>.</p></translation> + </message> + <message> + <source><p>Failed to load the global GUI configuration from <b><nobr>%1</nobr></b>.</p><p>The application will now terminate.</p></source> + <translation><p>No s'ha pogut carregar la configuració global de la interfÃcie des de <b><nobr>%1</nobr></b>.</p><p>L'aplicació es tancarà .</p></translation> + </message> + <message> + <source><p>Failed to save the global GUI configuration to <b><nobr>%1</nobr></b>.</p><p>The application will now terminate.</p></source> + <translation><p>No s'ha pogut alçar la configuració global de la interfÃcie a <b><nobr>%1</nobr></b>.</p><p>L'aplicació es tancarà .</p></translation> + </message> + <message> + <source>Failed to save the settings of the virtual machine <b>%1</b> to <b><nobr>%2</nobr></b>.</source> + <translation>No s'ha pogut alçar els parà metres de la mà quina virtual <b>%1</b> a <b><nobr>%2</nobr></b>.</translation> + </message> + <message> + <source>Failed to load the settings of the virtual machine <b>%1</b> from <b><nobr>%2</nobr></b>.</source> + <translation>No s'ha pogut carregar els parà metres de la mà quina virtual <b>%1</b> des de <b><nobr>%2</nobr></b>.</translation> + </message> + <message> + <source>Delete</source> + <comment>machine</comment> + <translation>Suprimeix</translation> + </message> + <message> + <source>Unregister</source> + <comment>machine</comment> + <translation>Treu del registre</translation> + </message> + <message> + <source>Discard</source> + <comment>saved state</comment> + <translation>Descarta</translation> + </message> + <message> + <source>Continue</source> + <comment>detach image</comment> + <translation type="obsolete">Continua</translation> + </message> + <message> + <source><p>Do you want to delete this hard disk's image file <nobr><b>%1</b>?</nobr></p><p>If you select <b>Delete</b> then the image file will be permanently deleted after unregistering the hard disk. This operation cannot be undone.</p><p>If you select <b>Unregister</b> then the virtual hard disk will be unregistered and removed from the collection, but the image file will be left on your physical disk.</p></source> + <translation type="obsolete"><p>Voleu suprimir este fitxer d'imatge de disc dur <nobr><b>%1</b>?</nobr></p><p>Si seleccioneu <b>Suprimeix</b>, el fitxer d'imatge s'eliminarà completament una vegada es lleve del registre el disc dur. Esta operació no es pot desfer.</p></translation> + </message> + <message> + <source>Delete</source> + <comment>hard disk</comment> + <translation type="obsolete">Suprimeix</translation> + </message> + <message> + <source>Unregister</source> + <comment>hard disk</comment> + <translation type="obsolete">Lleva del registre</translation> + </message> + <message> + <source><p>There are hard disks attached to SATA ports of this virtual machine. If you disable the SATA controller, all these hard disks will be automatically detached.</p><p>Are you sure that you want to disable the SATA controller?</p></source> + <translation type="obsolete"><p>Hi ha discos durs connectats als ports SATA a esta mà quina virtual. Si deshabiliteu el controlador SATA, tots estos discos es desconnectaran automà ticament.</p><p>Esteu segur que voleu inhabilitar el controlador SATA?</p></translation> + </message> + <message> + <source>Disable</source> + <comment>hard disk</comment> + <translation>Inhabilita</translation> + </message> + <message> + <source>Failed to attach a hard disk image with UUID %1 to device slot %2 on channel %3 of the %4 bus of the machine <b>%5</b>.</source> + <translation type="obsolete">No s'ha pogut connectar la imatge del disc dur amb UUID %1 a la ranura de dispositius %2 al canal %3 del bus %4 de la mà quina <b>%5</b>.</translation> + </message> + <message> + <source>Failed to detach a hard disk image from device slot %1 on channel %2 of the %3 bus of the machine <b>%4</b>.</source> + <translation type="obsolete">No s'ha pogut desconnectar una imatge de disc dur a la ranura de dispositius %1 al canal %2 del bus %3 de la mà quina <b>%4</b>.</translation> + </message> + <message> + <source>Download</source> + <comment>additions</comment> + <translation>Baixa</translation> + </message> + <message> + <source>Mount</source> + <comment>additions</comment> + <translation>Munta</translation> + </message> + <message> + <source><p>The host key is currently defined as <b>%1</b>.</p></source> + <comment>additional message box paragraph</comment> + <translation><p>La tecla d'amfitrió es troba actualment definida com a <b>%1</b>.</p></translation> + </message> + <message> + <source>Capture</source> + <comment>do input capture</comment> + <translation>Captura</translation> + </message> + <message> + <source><p>One or more of the registered virtual hard disks, CD/DVD or floppy media are not currently accessible. As a result, you will not be able to operate virtual machines that use these media until they become accessible later.</p><p>Press <b>Check</b> to open the Virtual Disk Manager window and see what media are inaccessible, or press <b>Ignore</b> to ignore this message.</p></source> + <translation type="obsolete"><p>Un o més dels discos durs virtuals, CD/DVD o disquet no es troben actualment accessibles. Això significa que no podreu treballar amb les mà quines virtuals que els facen servir fins que estiguen accessibles.</p><p>Premeu <b>Comprova</b> per obrir la finestra del Gestor de Disc Virtual i comprovar quins medis es troben inaccessibles, o premeu <b>Ignora</b> per ignorar este missatge.</p></translation> + </message> + <message> + <source>Check</source> + <comment>inaccessible media message box</comment> + <translation>Comprova</translation> + </message> + <message> + <source><p>The following VirtualBox settings files have been automatically converted to the new settings file format version <b>%1</b>.</p><p>However, the results of the conversion were not saved back to disk yet. Please press:</p><ul><li><b>Save</b> to save all auto-converted files now (it will not be possible to use these settings files with an older version of VirtualBox in the future);</li><li><b>Backup</b> to create backup copies of the settings files in the old format before saving them in the new format;</li><li><b>Cancel</b> to not save the auto-converted settings files now.<li></ul><p>Note that if you select <b>Cancel</b>, the auto-converted settings files will be implicitly saved in the new format anyway once you change a setting or start a virtual machine, but <b>no</b> backup copies will be created in this case.</p></source> + <translation type="obsolete"><p>Els següents fitxers de parà metres del VirtualBox s'han convertit automà ticament al nou format <b>%1</b>.</p><p>Tot i aixÃ, els resultats de la conversió encara no s'han alçat al disc. Premeu:</p><ul><li><b>Alça</b> per alçar ara els fitxers auto-convertits (ja no serà possible fer servir estos parà metres amb una versió anterior del VirtualBox);</li><li><b>Còpia de seguretat</b> per crear una còpia de seguretat dels fitxers de parà metres en el format antic abans d'alçar-los en el nou format;</li><li><b>Cancel·la</b> per no alçar ara els fitxers de parà metres auto-convertits.</li></ul><p>Tingueu en compte que si seleccioneu <b>Cancel·la</b>, els fitxers de parà metres auto-convertits s'alçaran implÃcitament en el nou format tot i que una vegada que canvieu algun parà metre o inicieu una mà quina virtual, en canvi en este cas <b>no</b> es faran còpies de seguretat.</p></translation> + </message> + <message> + <source>&Save</source> + <comment>warnAboutAutoConvertedSettings message box</comment> + <translation type="obsolete">De&sa</translation> + </message> + <message> + <source>&Backup</source> + <comment>warnAboutAutoConvertedSettings message box</comment> + <translation type="obsolete">&Còpia de seguretat</translation> + </message> + <message> + <source>Cancel</source> + <comment>warnAboutAutoConvertedSettings message box</comment> + <translation type="obsolete">Cancel·la</translation> + </message> + <message> + <source>Switch</source> + <comment>fullscreen</comment> + <translation>Canvia</translation> + </message> + <message> + <source>Switch</source> + <comment>seamless</comment> + <translation>Canvia</translation> + </message> + <message> + <source><p>Do you really want to reset the virtual machine?</p><p>This will cause any unsaved data in applications running inside it to be lost.</p></source> + <translation><p>Segur que voleu reinicializar la mà quina virtual?</p><p>Quan la mà quina es reinicialitza, les dades no alçades de totes les aplicacions a dins es perdran.</p></translation> + </message> + <message> + <source>Reset</source> + <comment>machine</comment> + <translation>Reinicialitza</translation> + </message> + <message> + <source>Continue</source> + <comment>no hard disk attached</comment> + <translation>Continua</translation> + </message> + <message> + <source>Go Back</source> + <comment>no hard disk attached</comment> + <translation>Vés arrere</translation> + </message> + <message> + <source>Failed to copy file <b><nobr>%1</nobr></b> to <b><nobr>%2</nobr></b> (%3).</source> + <translation>No s'ha pogut copiar el fitxer <b><nobr>%1</nobr></b> a <b><nobr>%2</nobr></b> (%3).</translation> + </message> + <message> + <source><p>There are no unused hard disks available for the newly created attachment.</p><p>Press the <b>Create</b> button to start the <i>New Virtual Disk</i> wizard and create a new hard disk, or press the <b>Select</b> if you wish to open the <i>Virtual Disk Manager</i>.</p></source> + <translation type="obsolete"><p>Hi ha discos durs disponibles que no es fan servir per a la nova adjunció creada.</p><p>Prmeu el botó <b>Crea</b> per iniciar el gestor de <i>Creació de disc durs virtuals</i> i crear un nou disc dur, o premeu el botó <b>Selecciona</b> per obrir el <i>Gestor de Discs Durs</i> i seleccionar què fer.</p></translation> + </message> + <message> + <source>&Create</source> + <comment>hard disk</comment> + <translation type="obsolete">&Crea</translation> + </message> + <message> + <source>Select</source> + <comment>hard disk</comment> + <translation type="obsolete">Selecciona</translation> + </message> + <message> + <source><p>Could not enter seamless mode due to insufficient guest video memory.</p><p>You should configure the virtual machine to have at least <b>%1</b> of video memory.</p></source> + <translation><p>No es pot entrar al mode fluid degut a que no hi ha suficient memòria de vÃdeo.</p><p>Heu de configurar la mà quina virtual per tal que tinga almenys <b>%1</b> de memòria de vÃdeo.</p></translation> + </message> + <message> + <source><p>Could not switch the guest display to fullscreen mode due to insufficient guest video memory.</p><p>You should configure the virtual machine to have at least <b>%1</b> of video memory.</p><p>Press <b>Ignore</b> to switch to fullscreen mode anyway or press <b>Cancel</b> to cancel the operation.</p></source> + <translation><p>No es pot canviar al mode de pantalla completa perquè no hi ha suficient memòria de vÃdeo assignada a la mà quina virtual.</p><p>Haureu d'establir la memòria de vÃdeo com a mÃnim a <b>%1</b>.</p><p>Premeu <b>Ignora</b> per canviar de totes maneres al mode de pantalla completa o premeu <b>Cancel·la</b> per a cancel·lar l'operació.</p></translation> + </message> + <message> + <source><p>Unable to obtain the new version information due to the following network error:</p><p><b>%1</b></p></source> + <translation type="obsolete"><p>No es pot obtindre informació de noves versions degut a un problema amb la xarxa:</p><p><b>%1</b></p></translation> + </message> + <message> + <source>You are already running the most recent version of VirtualBox.</source> + <translation>Ja teniu instal·lada la darrera versió del VirtualBox. Proveu més tard.</translation> + </message> + <message> + <source><p>You have <b>clicked the mouse</b> inside the Virtual Machine display or pressed the <b>host key</b>. This will cause the Virtual Machine to <b>capture</b> the host mouse pointer (only if the mouse pointer integration is not currently supported by the guest OS) and the keyboard, which will make them unavailable to other applications running on your host machine.</p><p>You can press the <b>host key</b> at any time to <b>uncapture</b> the keyboard and mouse (if it is captured) and return them to normal operation. The currently assigned host key is shown on the status bar at the bottom of the Virtual Machine window, next to the&nbsp;<img src=:/hostkey_16px.png/>&nbsp;icon. This icon, together with the mouse icon placed nearby, indicate the current keyboard and mouse capture state.</p></source> + <translation><p>Heu fet <b>clic amb el ratolÃ</b> a dins de la finestra de la mà quina virtual o heu premut la <b>tecla d'amfitrió</b>. Això fa que la mà quina virtual <b>capturi</b> el punter del ratolà (només en cas que la integració del ratolà no estiga suportada pel sistema client) i el teclat, que ara no estaran disponibles per funcionar a la mà quina amfitriona.</p><p>Podeu prémer la <b>tecla d'amfitrió</b> en qualsevol moment per <b>tornar</b> el ratolà i el teclat al mode normal de funcionament. La tecla d'amfitrió assiganada actualment es mostra a la barra d'estat a la part inferior de la finestra, al costat de la icona &nbsp;<img src=hostkey_16px.png/>&nbsp;. Esta icona indica si el teclat i el ratolà estan en estat de captura o no.</p></translation> + </message> + <message> + <source><p>You have the <b>Auto capture keyboard</b> option turned on. This will cause the Virtual Machine to automatically <b>capture</b> the keyboard every time the VM window is activated and make it unavailable to other applications running on your host machine: when the keyboard is captured, all keystrokes (including system ones like Alt-Tab) will be directed to the VM.</p><p>You can press the <b>host key</b> at any time to <b>uncapture</b> the keyboard and mouse (if it is captured) and return them to normal operation. The currently assigned host key is shown on the status bar at the bottom of the Virtual Machine window, next to the&nbsp;<img src=:/hostkey_16px.png/>&nbsp;icon. This icon, together with the mouse icon placed nearby, indicate the current keyboard and mouse capture state.</p></source> + <translation><p>L'opció de <b>captura automà tica del teclat</b> és activa. Això farà que la mà quina virtual <b>capturi</b> el teclat sempre que la finestra de la mà quina virtual estiga activa i farà que el teclat no estiga disponible per a altres aplicacions que s'estiguen executant a l'ordinador amfitrió: quan el teclat està capturat, totes les tecles especials (incloent Alt-Tab) es readrecen a la mà quina virtual.</p><p>Podeu prémer la <b>tecla d'amfitrió</b> en qualsevol moment per <b>tornar</b> el ratolà i el teclat al mode normal de funcionament. La tecla d'amfitrió assiganada actualment es mostra a la barra d'estat a la part inferior de la finestra, al costat de la icona &nbsp;<img src=hostkey_16px.png/>&nbsp;. Esta icona indica si el teclat i el ratolà estan en estat de captura o no.</p></translation> + </message> + <message> + <source><p>The Virtual Machine reports that the guest OS supports <b>mouse pointer integration</b>. This means that you do not need to <i>capture</i> the mouse pointer to be able to use it in your guest OS -- all mouse actions you perform when the mouse pointer is over the Virtual Machine's display are directly sent to the guest OS. If the mouse is currently captured, it will be automatically uncaptured.</p><p>The mouse icon on the status bar will look like&nbsp;<img src=:/mouse_seamless_16px.png/>&nbsp;to inform you that mouse pointer integration is supported by the guest OS and is currently turned on.</p><p><b>Note</b>: Some applications may behave incorrectly in mouse pointer integration mode. You can always disable it for the current session (and enable it again) by selecting the corresponding action from the menu bar.</p></source> + <translation><p>La Mà quina Virtual ha informat que el sistema client suporta <b>integració del punter del ratolÃ</b>. Això significa que no necessiteu <i>capturar</i> el punter del ratolà per poder fer-lo servir al sistema client -- totes les accions que executeu quan el punter del ratolà estiga a sobre de la Mà quina virtual s'enviaran directament al sistema client. Si es captura el ratolÃ, automà ticament es tornarà al mode normal.</p><p>La icona del ratolà a la barra d'estat es mostrarà com&nbsp;<img src=mouse_seamless_16px.png/>&nbsp;per informar-vos que la integració del punter està suportada pel sistema client que està actiu.</p><p><b>Nota</b>: Algunes aplicacions poden comportar-se incorrectament treballant en el mode d'integració del ratolÃ. Sempre podeu inhabilitar-ho a la sessió actual (o habilitar-ho) seleccionat l'opció corresponent a la barra de menú.</p></translation> + </message> + <message> + <source><p>The virtual machine window will be now switched to <b>fullscreen</b> mode. You can go back to windowed mode at any time by pressing <b>%1</b>. Note that the <i>Host</i> key is currently defined as <b>%2</b>.</p><p>Note that the main menu bar is hidden in fullscreen mode. You can access it by pressing <b>Host+Home</b>.</p></source> + <translation><p>La mà quina virtual passarà ara al mode de <b>pantalla completa</b>. Podeu tornar arrere prement <b>%1</b>. Tingueu en compte que la <i>tecla d'amfitrió</i> està definida actualment com <b>%2</b>.</p><p>La barra de menú estarà amagada al mode de pantalla completa. Podreu accedir a ella prement <b>tecla d'amfitrió+Home</b>.</p></translation> + </message> + <message> + <source><p>The virtual machine window will be now switched to <b>Seamless</b> mode. You can go back to windowed mode at any time by pressing <b>%1</b>. Note that the <i>Host</i> key is currently defined as <b>%2</b>.</p><p>Note that the main menu bar is hidden in seamless mode. You can access it by pressing <b>Host+Home</b>.</p></source> + <translation><p>La mà quina virtual passarà ara al mode <b>fluid</b>. Podeu tornar arrere al mode finestra prement <b>%1</b>. Tingueu en compte que la <i>tecla d'amfitrió</i> està definida actualment com <b>%2</b>.</p><p>La barra de menú estarà amagada al mode fluid. Podreu accedir a ella prement <b>tecla d'amfitrió+Home</b>.</p></translation> + </message> + <message> + <source>&Contents...</source> + <translation>&Continguts...</translation> + </message> + <message> + <source>Show the online help contents</source> + <translation>Mostra els continguts d'ajuda en lÃnia</translation> + </message> + <message> + <source>&VirtualBox Web Site...</source> + <translation>Lloc web de &VirtualBox...</translation> + </message> + <message> + <source>Open the browser and go to the VirtualBox product web site</source> + <translation>Obri el navegador i vés al lloc web del producte VirtualBox</translation> + </message> + <message> + <source>&Reset All Warnings</source> + <translation>&Reinicia tots els avisos</translation> + </message> + <message> + <source>Go back to showing all suppressed warnings and messages</source> + <translation>Fa que tots els avisos i missatges suprimits es mostren una altra vegada</translation> + </message> + <message> + <source>R&egister VirtualBox...</source> + <translation>R&egistreu-vos al VirtualBox...</translation> + </message> + <message> + <source>Open VirtualBox registration form</source> + <translation>Obri el formulari de registre del VirtualBox</translation> + </message> + <message> + <source>C&heck for Updates...</source> + <translation>&Comprova si hi ha actualitzacions...</translation> + </message> + <message> + <source>Check for a new VirtualBox version</source> + <translation>Comprova si hi ha una nova versió de VirtualBox</translation> + </message> + <message> + <source>&About VirtualBox...</source> + <translation>&Quant a VirtualBox...</translation> + </message> + <message> + <source>Show a dialog with product information</source> + <translation>Mostra un dià leg amb la informació del producte</translation> + </message> + <message> + <source><p>A new version of VirtualBox has been released! Version <b>%1</b> is available at <a href="http://www.virtualbox.org/">virtualbox.org</a>.</p><p>You can download this version using the link:</p><p><a href=%2>%3</a></p></source> + <translation><b>S'ha publicat una nova versió del VirtualBox!. La versió <b>%1</b> és disponible a <a href="http://www.virtualbox.org/">virtualbox.org</a>.</p><p>Podeu baixar-la directametn des d'este enllaç: </p><p><a href=%2>%3</a></p></translation> + </message> + <message> + <source><p>Are you sure you want to release the %1 <nobr><b>%2</b></nobr>?</p><p>This will detach it from the following virtual machine(s): <b>%3</b>.</p></source> + <translation><p>Esteu segur que voleu alliberar el %1 <nobr><b>%2</b></nobr>?</p><p>Això el desconnectarà de les següents mà quines virtuals: <b>%3</b>.</p> </translation> + </message> + <message> + <source>A file named <b>%1</b> already exists. Are you sure you want to replace it?<br /><br />The file already exists in "%2". Replacing it will overwrite its contents.</source> + <translation type="obsolete">Ja existeix un fitxer anomenat <b>%1</b>. Esteu segur que voleu reemplaçar-lo?<br /><br />El fitxer ja existeix a "%2". Si el reemplaceu se sobreescriuran els continguts.</translation> + </message> + <message> + <source>The following files already exist:<br /><br />%1<br /><br />Are you sure you want to replace them? Replacing them will overwrite their contents.</source> + <translation>Ja existeixen els següents fitxers: <br /><br />%1<br /><br />Esteu segur que voleu reemplaçar-los? Si els reemplaceu se sobreescriuran els continguts.</translation> + </message> + <message> + <source>Failed to remove the file <b>%1</b>.<br /><br />Please try to remove the file yourself and try again.</source> + <translatorcomment>We don't use "&" in Catalan.</translatorcomment> + <translation>No es pot eliminar el fitxer <b>%1</b>.<br /><br />Elimineu el fitxer i proveu novament.</translation> + </message> + <message> + <source>You are running a prerelease version of VirtualBox. This version is not suitable for production use.</source> + <translation>Esteu fent servir una versió en desenvolupament del VirtualBox. Esta versió no és recomanable per a entorns de producció.</translation> + </message> + <message> + <source>Could not access USB on the host system, because neither the USB file system (usbfs) nor the DBus and hal services are currently available. If you wish to use host USB devices inside guest systems, you must correct this and restart VirtualBox.</source> + <translation>No es pot accedir a l'USB al sistema amfitrió perquè ni el servei de sistema de fitxers USB (usbfs) ni el DBus s'hi troben disponibles. Si voleu fer servir els dispositius USB de l'amfitrió a dins dels sistemes clients, heu de solucionar això i tornar a iniciar el VirtualBox.</translation> + </message> + <message> + <source>You are trying to shut down the guest with the ACPI power button. This is currently not possible because the guest does not support software shutdown.</source> + <translation>Esteu tractant de tancar el sistema client amb el botó ACPI. Això no és possible actualment perquè el sistema client no fa servir el subsistema ACPI.</translation> + </message> + <message> + <source><p>VT-x/AMD-V hardware acceleration has been enabled, but is not operational. Your 64-bit guest will fail to detect a 64-bit CPU and will not be able to boot.</p><p>Please ensure that you have enabled VT-x/AMD-V properly in the BIOS of your host computer.</p></source> + <translation><p>S'ha habilitat l'acceleració per maquinari VT-x/AMD-V, però no és operativa. El vostre sistema client de 64 bits fallarà quan detecti una CPU de 64 bits i no podrà iniciar-se.</p><p>Assegureu-vos que heu habilitat VT-x/AMD-V correctament a la BIOS del vostre ordinador.</p></translation> + </message> + <message> + <source>Close VM</source> + <translation>Tanca la mà quina virtual</translation> + </message> + <message> + <source>Continue</source> + <translation>Continua</translation> + </message> + <message> + <source><p>Are you sure you wish to delete the selected snapshot and saved state?</p></source> + <translation type="obsolete"><p>Esteu segur que voleu eliminar la captura seleccionada i l'estat alçat?</p></translation> + </message> + <message> + <source>Discard</source> + <translation type="obsolete">Descarta</translation> + </message> + <message> + <source>Cancel</source> + <translation>Cancel·la</translation> + </message> + <message> + <source>Release</source> + <comment>detach medium</comment> + <translation>Allibera</translation> + </message> + <message> + <source><p>Are you sure you want to remove the %1 <nobr><b>%2</b></nobr> from the list of known media?</p></source> + <translation><p>Esteu segur que voleu eliminar el %1 <nobr><b>%2</b></nobr> de la llista de suports coneguts?</p></translation> + </message> + <message> + <source>Note that as this hard disk is inaccessible its storage unit cannot be deleted right now.</source> + <translation>Tingueu en compte que este disc dur és innaccessible i per tant no es pot esborrar el seu contigut.</translation> + </message> + <message> + <source>The next dialog will let you choose whether you also want to delete the storage unit of this hard disk or keep it for later usage.</source> + <translation>El següent dià leg vos permetrà triar si voleu eliminar també la unitat d'emmagatzematge d'este disc dur o mantindre-la per a més avant.</translation> + </message> + <message> + <source><p>Note that the storage unit of this medium will not be deleted and that it will be possible to add it to the list later again.</p></source> + <translation><p>Tingueu en compte que la unitat d'emmagatzematge d'este medi no s'eliminarà i, a més serà possible afegir-la novament més tard.</p></translation> + </message> + <message> + <source>Remove</source> + <comment>medium</comment> + <translation>Elimina</translation> + </message> + <message> + <source><p>The hard disk storage unit at location <b>%1</b> already exists. You cannot create a new virtual hard disk that uses this location because it can be already used by another virtual hard disk.</p><p>Please specify a different location.</p></source> + <translation><p>L'ubicació de de disc dur d'emmagatzematge <b>%1</b> ja existeix. No podeu crear un disc dur nou virtual que faça servir la mateixa ubicació perquè ja està fent-se servir per un altre disc dur virtual.</p><p>Especifiqueu una ubicació diferent.</p></translation> + </message> + <message> + <source><p>Do you want to delete the storage unit of the hard disk <nobr><b>%1</b></nobr>?</p><p>If you select <b>Delete</b> then the specified storage unit will be permanently deleted. This operation <b>cannot be undone</b>.</p><p>If you select <b>Keep</b> then the hard disk will be only removed from the list of known hard disks, but the storage unit will be left untouched which makes it possible to add this hard disk to the list later again.</p></source> + <translation><p>Voleu eliminar la unitat d'emmagatzematge del disc dur <nobr><b>%1</b></nobr>?</p><p>Si seleccioneu <b>Elimina</b>, la unitat especificada s'eliminarà de forma permanent. Esta operació <b>no pot desfer-se</b>.</p><p>Si seleccioneu <b>Manté</b>, el disc dur s'eliminarà del llistat de disc durs coneguts, però la unitat d'emmagatzematge no s'eliminarà de forma que podreu afegir-la a este disc dur novament més tard.</p></translation> + </message> + <message> + <source>Delete</source> + <comment>hard disk storage</comment> + <translation>Suprimeix</translation> + </message> + <message> + <source>Keep</source> + <comment>hard disk storage</comment> + <translation>Manté</translation> + </message> + <message> + <source>Failed to delete the storage unit of the hard disk <b>%1</b>.</source> + <translation>No s'ha pugt eliminar la unitat del disc dur <b>%1</b>.</translation> + </message> + <message> + <source><p>There are hard disks attached to ports of the additional controller. If you disable the additional controller, all these hard disks will be automatically detached.</p><p>Are you sure you want to disable the additional controller?</p></source> + <translation><p>Existeixen discos durs connectats als ports del controlador addicional. Si desactiveu el controlador addicional, tots estos discos durs es desconnectaran automà ticament.</p><p>Esteu segur que voleu desactivar el controlador addicional?</p></translation> + </message> + <message> + <source><p>There are hard disks attached to ports of the additional controller. If you change the additional controller, all these hard disks will be automatically detached.</p><p>Are you sure you want to change the additional controller?</p></source> + <translation><p>Existeixen discos durs connectats als ports del controlador addicional. Si canvieu el controlador addicional, tots estos discos durs es desconnectaran automà ticament.</p><p>Esteu segur que voleu canviar el controlador addicional?</p></translation> + </message> + <message> + <source>Change</source> + <comment>hard disk</comment> + <translation>Canvia</translation> + </message> + <message> + <source><p>There are no unused hard disks available for the newly created attachment.</p><p>Press the <b>Create</b> button to start the <i>New Virtual Disk</i> wizard and create a new hard disk, or press the <b>Select</b> if you wish to open the <i>Virtual Media Manager</i>.</p></source> + <translation type="obsolete"><p>Hi ha discos durs disponibles que no es fan servir per a la nova adjunció creada.</p><p>Premeu el botó <b>Crea</b> per iniciar el gestor de <i>Creació de disc durs virtuals</i> i crear un nou disc dur, o premeu el botó <b>Selecciona</b> per obrir el <i>Gestor de Discs Durs</i> i seleccionar què fer.</p></translation> + </message> + <message> + <source>Failed to create the hard disk storage <nobr><b>%1</b>.</nobr></source> + <translation>No s'ha pogut crear el disc dur <nobr><b>%1</b>.</nobr></translation> + </message> + <message> + <source>Failed to attach the hard disk <nobr><b>%1</b></nobr> to slot <i>%2</i> of the machine <b>%3</b>.</source> + <translation type="obsolete">No s'ha pogut connectar el disc dur <nobr><b>%1</b></nobr> a la ranura <i>%2</i> de la mà quina <b>%3</b>.</translation> + </message> + <message> + <source>Failed to detach the hard disk <nobr><b>%1</b></nobr> from slot <i>%2</i> of the machine <b>%3</b>.</source> + <translation type="obsolete">No s'ha pogut treure el disc dur <nobr><b>%1</b></nobr> de la ranura <i>%2</i> de la mà quina <b>%3</b>.</translation> + </message> + <message> + <source>Failed to mount the %1 <nobr><b>%2</b></nobr> on the machine <b>%3</b>.</source> + <translation type="obsolete">No s'ha pogut muntar %1 <nobr><b>%2</b></nobr> a la mà quina <b>%3</b>.</translation> + </message> + <message> + <source>Failed to unmount the %1 <nobr><b>%2</b></nobr> from the machine <b>%3</b>.</source> + <translation type="obsolete">No s'ha pogut desmuntar el %1 <nobr><b>%2</b></nobr> de la mà quina <b>%3</b>.</translation> + </message> + <message> + <source>Failed to open the %1 <nobr><b>%2</b></nobr>.</source> + <translation>No s'ha pogut obrir el %1 <nobr><b>%2</b></nobr>.</translation> + </message> + <message> + <source>Failed to close the %1 <nobr><b>%2</b></nobr>.</source> + <translation>No s'ha pogut tancar el %1 <nobr><b>%2</b></nobr>.</translation> + </message> + <message> + <source>Failed to determine the accessibility state of the medium <nobr><b>%1</b></nobr>.</source> + <translation>No s'ha pogut accedir a l'estat del suport <nobr><b>%1</b></nobr>.</translation> + </message> + <message> + <source><p>Do you want to remove the selected host network interface <nobr><b>%1</b>?</nobr></p><p><b>Note:</b> This interface may be in use by one or more network adapters of this or another VM. After it is removed, these adapters will no longer work until you correct their settings by either choosing a different interface name or a different adapter attachment type.</p></source> + <translation type="obsolete"><p>Voleu suprimir la interfÃcie de xarxa <nobr><b>%1</b> seleccionada?</nobr></p><p><b>Nota:</b>Esta interfÃcie potser s'estiga fent servir per un o més adaptadors de xarxa d'esta o altra mà quina virtual. Després de suprimir-los, estos adaptadors no podran treballar fins que corregiu els parà metres triant un nom d'interfÃcie diferent o un tipus diferent d'adaptador.</p></translation> + </message> + <message> + <source>Failed to create the host-only network interface.</source> + <translation>No s'ha pogut crear una interfÃcie de xarxa de només l'amfitrió.</translation> + </message> + <message> + <source><p>Failed to connect to the VirtualBox online registration service due to the following error:</p><p><b>%1</b></p></source> + <translation><p>No s'ha pogut connectar al servei de llegistre en lÃnia del VirtualBox degut al següent error:</p><p><b>%1</b></p></translation> + </message> + <message> + <source><p>Unable to obtain the new version information due to the following error:</p><p><b>%1</b></p></source> + <translation><p>No es pot obtindre informació de noves versions degut al següent problema:</p><p><b>%1</b></p></translation> + </message> + <message> + <source><p>One or more virtual hard disks, CD/DVD or floppy media are not currently accessible. As a result, you will not be able to operate virtual machines that use these media until they become accessible later.</p><p>Press <b>Check</b> to open the Virtual Media Manager window and see what media are inaccessible, or press <b>Ignore</b> to ignore this message.</p></source> + <translation><p>No es pot accedir a un o més dels discos, CD/DVD o disquet virtuals. Com a resultat, no podreu operar amb les mà quines virtuals que els facen servir fins que estiguen accessibles.</p><p>Premeu <b>Comprova</b> per obrir el gestor de discos virtuals i veure a quins suports no s'hi pot accedir, o premeu <b>Ignora</b> per ignorar este missatge.</p></translation> + </message> + <message> + <source><p>Your existing VirtualBox settings files will be automatically converted from the old format to a new format required by the new version of VirtualBox.</p><p>Press <b>OK</b> to start VirtualBox now or press <b>Exit</b> if you want to terminate the VirtualBox application without any further actions.</p></source> + <translation><p>Els fitxers de configuració existents del VirtualBox es convertiran automà ticament des del format antic al nou format necessari per a la nova versió del VirtualBox.</p><p>Premeu <b>D'acord</b> per a iniciar ara el VirtualBox o premeu <b>Ix</b> si voleu tancar el VirtualBox sense realitzar més accions.</p></translation> + </message> + <message> + <source><p>Your existing VirtualBox settings files were automatically converted from the old format to a new format required by the new version of VirtualBox.</p><p>Press <b>OK</b> to start VirtualBox now or press <b>More</b> if you want to get more information about what files were converted and access additional actions.</p><p>Press <b>Exit</b> to terminate the VirtualBox application without saving the results of the conversion to disk.</p></source> + <translation type="obsolete"><p>Els fitxers de configuració actuals del VirtualBox es convertiran des del format antic al nou format necessari per a la nova versió del VirtualBox.</p><p>Premeu <b>D'acord</b> per iniciar el VirtualBox ara o premeu <b>Més</b> si voleu obtindre més informació sobre quins fitxers es convertiran i accedir a accions addicionals.</p><p>Premeu <b>Ix</b> per tancar l'apliació del VirtualBox sense alçar els resultats de la conversió al disc.</p></translation> + </message> + <message> + <source>&More</source> + <comment>warnAboutAutoConvertedSettings message box</comment> + <translation type="obsolete">&Més</translation> + </message> + <message> + <source>E&xit</source> + <comment>warnAboutAutoConvertedSettings message box</comment> + <translation type="obsolete">&Ix</translation> + </message> + <message> + <source><p>Deleting this host-only network will remove the host-only interface this network is based on. Do you want to remove the (host-only network) interface <nobr><b>%1</b>?</nobr></p><p><b>Note:</b> this interface may be in use by one or more virtual network adapters belonging to one of your VMs. After it is removed, these adapters will no longer be usable until you correct their settings by either choosing a different interface name or a different adapter attachment type.</p></source> + <translation><p>Eliminant esta xarxa de només l'amfitrió suposarà l'eliminació de la interfÃcie de només amfitrió en la que està basada. Voleu eliminar esta interfÃcie (de només l'amfitrió) <nobr><b>%1</b>?</nobr></p><p><b>Nota: esta interfÃcie pot estar en ús per un o més adaptadors de xarxa que pertanyin a alguna de les vostres mà quines virtuals. Després d'eliminar-se, estos adaptadors no podran fer-se servir fins que corregiu els parà metres a cadascun triant una interfÃcie diferent o un tipus d'adjunció diferent.</p></translation> + </message> + <message> + <source><p>The following VirtualBox settings files have been automatically converted to the new settings file format version <b>%1</b>.</p><p>However, the results of the conversion were not saved back to disk yet. Please press:</p><ul><li><b>Backup</b> to create backup copies of the settings files in the old format before saving them in the new format;</li><li><b>Overwrite</b> to save all auto-converted files without creating backup copies (it will not be possible to use these settings files with an older version of VirtualBox afterwards);</li>%2</ul><p>It is recommended to always select <b>Backup</b> because in this case it will be possible to go back to the previous version of VirtualBox (if necessary) without losing your current settings. See the VirtualBox Manual for more information about downgrading.</p></source> + <translation type="obsolete"><p>Els següents fitxers de parà metres del VirtualBox s'han convertit automà ticament al nou format <b>%1</b>.</p><p>Tot i aixÃ, els resultats de la conversió encara no s'han alçat al disc. Premeu:</p><ul><li><b>Alça</b> per alçar ara els fitxers auto-convertits (ja no serà possible fer servir estos parà metres amb una versió anterior del VirtualBox);</li><li><b>Còpia de seguretat</b> per crear una còpia de seguretat dels fitxers de parà metres en el format antic abans d'alçar-los en el nou format;</li><li><b>Sobreescriu</b> per alçar tots els fitxers auto-convertitts sense crear còpies de seguretat;</li>%2</ul><p>Es recomana seleccionar en tot moment <b>Còpia de seguretat</b> perquè sempre serà possible tornar a l'estat anterior sense perdre els parà metres de configuració actuals. Mireu el manual del VirtualBox per a més informació sobre desactualització.</p></translation> + </message> + <message> + <source><li><b>Exit</b> to terminate VirtualBox without saving the results of the conversion to disk.</li></source> + <translation type="obsolete"><li><b>Ix</b> tancant el VirtualBox sense alçar els resultats de la conversió del disc.</li></translation> + </message> + <message> + <source>O&verwrite</source> + <comment>warnAboutAutoConvertedSettings message box</comment> + <translation type="obsolete">Sob&reescriu</translation> + </message> + <message> + <source><p>A critical error has occurred while running the virtual machine and the machine execution has been stopped.</p><p>For help, please see the Community section on <a href=http://www.virtualbox.org>http://www.virtualbox.org</a> or your support contract. Please provide the contents of the log file <tt>VBox.log</tt> and the image file <tt>VBox.png</tt>, which you can find in the <nobr><b>%1</b></nobr> directory, as well as a description of what you were doing when this error happened. Note that you can also access the above files by selecting <b>Show Log</b> from the <b>Machine</b> menu of the main VirtualBox window.</p><p>Press <b>OK</b> if you want to power off the machine or press <b>Ignore</b> if you want to leave it as is for debugging. Please note that debugging requires special knowledge and tools, so it is recommended to press <b>OK</b> now.</p></source> + <translation><p>S'ha produït un error crÃtic mentre s'executava la mà quina virtual, que s'ha aturat.</p><p>Per obtindre ajuda, visiteu la secció Community a <a href=http://www.virtualbox.org>http://www.virtualbox.org</a> o al vostre contracte de suport. Afegiu el contingut del fitxer de registre <tt>VBox.log</tt> i el fitxer d'imatge <tt>VBox.png</tt>,que podreu trobar al directori <nobr><b>%1</b></nobr>, i una descripció sobre allò que està veu fent al moment al qual es va produir l'error. Podeu accedir als fitxers especificats mitjançant <b>Mostra registre</b> des del menú de la <b>Mà quina</b> a la finestra principal del VirtualBox.</p>Premeu <b>D'acord</b> si voleu aturar la mà quina o <b>Ignora</b> si voleu deixar-la en procés de depuració. Tingueu en compte que el procés de depuració requereix coneixements avançats i eines especials, per tant és recomanable prémer <b>D'acord</b>.</p></translation> + </message> + <message> + <source>Failed to open appliance.</source> + <translation>No s'ha pogut obrir l'aplicació virtual.</translation> + </message> + <message> + <source>Failed to open/interpret appliance <b>%1</b>.</source> + <translation>No s'ha pogut obrir/interpretar l'aplicació virtual <b>%1</b>.</translation> + </message> + <message> + <source>Failed to import appliance <b>%1</b>.</source> + <translation>No s'ha pogut importar l'aplicació virtual <b>%1</b>.</translation> + </message> + <message> + <source>Failed to create appliance.</source> + <translation>No s'ha pogut crear l'aplicació virtual.</translation> + </message> + <message> + <source>Failed to prepare the export of the appliance <b>%1</b>.</source> + <translation>No s'ha pogut preparar l'exportació de l'aplicació virtual <b>%1</b>.</translation> + </message> + <message> + <source>Failed to create an appliance.</source> + <translation>No s'ha pogut crear una aplicació virtual.</translation> + </message> + <message> + <source>Failed to export appliance <b>%1</b>.</source> + <translation>No s'ha pogut exportar l'aplicació virtual <b>%1</b>.</translation> + </message> + <message> + <source>hard disk</source> + <comment>failed to close ...</comment> + <translation type="obsolete">disc dur</translation> + </message> + <message> + <source>CD/DVD image</source> + <comment>failed to close ...</comment> + <translation type="obsolete">Imatge de CD/DVD</translation> + </message> + <message> + <source>floppy image</source> + <comment>failed to close ...</comment> + <translation type="obsolete">imatge de disquet</translation> + </message> + <message> + <source>A file named <b>%1</b> already exists. Are you sure you want to replace it?<br /><br />Replacing it will overwrite its contents.</source> + <translation>Ja existeix un fitxer amb el nom <b>%1</b>. Esteu segur que voleu reemplaçar-lo?<br /><br />En fer-ho se sobreescriurà el seu contingut.</translation> + </message> + <message> + <source><p>VT-x/AMD-V hardware acceleration has been enabled, but is not operational. Certain guests (e.g. OS/2 and QNX) require this feature.</p><p>Please ensure that you have enabled VT-x/AMD-V properly in the BIOS of your host computer.</p></source> + <translation><p>S'ha activat l'acceleració per maquinari VT-x/AMD-V, però no és operativa. Alguns clients (ex. OS/2 i QNX) requereixen esta caracterÃstica.</p><p>Assegureu-vos que heu activat correctament VT-x/AMD-V a la BIOS del vostre ordinador.</p></translation> + </message> + <message> + <source><p>Invalid e-mail address or password specified.</p></source> + <translation><p>S'ha especificat una adreça de correu o contrasenya invà lids.</p></translation> + </message> + <message> + <source><p>Failed to register the VirtualBox product.</p><p>%1</p></source> + <translation><p>No s'ha pogut registrar el producte VirtualBox.</p><p>%1</p></translation> + </message> + <message> + <source>Failed to check files.</source> + <translation>No s'han pogut comprovar els fitxers.</translation> + </message> + <message> + <source>Failed to remove file.</source> + <translation>No s'ha pogut eliminar el fitxer.</translation> + </message> + <message> + <source>You seem to have the USBFS filesystem mounted at /sys/bus/usb/drivers. We strongly recommend that you change this, as it is a severe mis-configuration of your system which could cause USB devices to fail in unexpected ways.</source> + <translation>Pareix que el sistema de fitxers USBFS està muntat a /sys/bus/usb/drivers. És molt recomanable que canvieu això ja que és una configuració que pot fer que els dispositius USB fallin de maneres imprevisibles.</translation> + </message> + <message> + <source>You are running an EXPERIMENTAL build of VirtualBox. This version is not suitable for production use.</source> + <translation>Esteu executant una versió EXPERIMENTAL del VirtualBox. Esta versió no és recomanable per a entorns de producció.</translation> + </message> + <message> + <source><p>Are you sure you want to restore snapshot <b>%1</b>? This will cause you to lose your current machine state, which cannot be recovered.</p></source> + <translation><p>Segur que voleu restaurar la captura <b>%1</b>? Això suposarà perdre l'estat actual de la mà quina i no podrà ser recuperat.</p></translation> + </message> + <message> + <source>Restore</source> + <translation>Restaura</translation> + </message> + <message> + <source><p>Deleting the snapshot will cause the state information saved in it to be lost, and disk data spread over several image files that VirtualBox has created together with the snapshot will be merged into one file. This can be a lengthy process, and the information in the snapshot cannot be recovered.</p></p>Are you sure you want to delete the selected snapshot <b>%1</b>?</p></source> + <translation><p>Si s'esborra una captura, la informació d'estat alçada a la mateixa es perdrà i les dades del disc, repartides en diversos arxius d'imatges que VirtualBox ha creat juntament amb la captura es fusionaran en un sol fitxer. Això pot ser un procés llarg, i la informació de la captura no es podrà recuperar. </p><p>Segur que voleu eliminar la captura seleccionada <b>%1</b>?</p></translation> + </message> + <message> + <source>Delete</source> + <translation>Suprimeix</translation> + </message> + <message> + <source>Failed to restore the snapshot <b>%1</b> of the virtual machine <b>%2</b>.</source> + <translation>No s'ha pogut restaurar la captura <b>%1</b> de la mà quina virtual <b>%2</b>.</translation> + </message> + <message> + <source>Failed to delete the snapshot <b>%1</b> of the virtual machine <b>%2</b>.</source> + <translation>No s'ha pogut eliminar la captura <b>%1</b> de la mà quina virtual <b>%2</b>.</translation> + </message> + <message> + <source><p>There are no unused media available for the newly created attachment.</p><p>Press the <b>Create</b> button to start the <i>New Virtual Disk</i> wizard and create a new medium, or press the <b>Select</b> if you wish to open the <i>Virtual Media Manager</i>.</p></source> + <translation><p>Hi ha suports disponibles que no es fan servir per a la nova adjunció creada.</p><p>Prmeu el botó <b>Crea</b> per iniciar el gestor de <i>Creació de disc durs virtuals</i> i crear un nou suport, o premeu el botó <b>Selecciona</b> per obrir el <i>Gestor de suports virtuals</i>.</p></translation> + </message> + <message> + <source>&Create</source> + <comment>medium</comment> + <translation>&Crea</translation> + </message> + <message> + <source>&Select</source> + <comment>medium</comment> + <translation>&Selecciona</translation> + </message> + <message> + <source><p>There are no unused media available for the newly created attachment.</p><p>Press the <b>Select</b> if you wish to open the <i>Virtual Media Manager</i>.</p></source> + <translation><p>No hi ha cap suport disponible que no es faça servir per a la nova adjunció.</p><p>Premeu <b>Selecciona</b> si voleu obrir el <i>Gestor de suports virtuals</i>.</p></translation> + </message> + <message> + <source>Failed to attach the %1 to slot <i>%2</i> of the machine <b>%3</b>.</source> + <translation>No es pot connectar %1 de la ranura <i>%2</i> de la mà quina <b>%3</b>.</translation> + </message> + <message> + <source>Failed to detach the %1 from slot <i>%2</i> of the machine <b>%3</b>.</source> + <translation>No es pot desconnectar %1 de la ranura <i>%2</i> de la mà quina <b>%3</b>.</translation> + </message> + <message> + <source>Unable to mount the %1 <nobr><b>%2</b></nobr> on the machine <b>%3</b>.</source> + <translation>No es pot muntar el %1 <nobr><b>%2</b></nobr> a la mà quina <b>%3</b>.</translation> + </message> + <message> + <source> Would you like to force mounting of this medium?</source> + <translation>Voleu forçar el muntatge d'este suport?</translation> + </message> + <message> + <source>Unable to unmount the %1 <nobr><b>%2</b></nobr> from the machine <b>%3</b>.</source> + <translation>No es pot desmuntar el %1 <nobr><b>%2</b></nobr> de la mà quina <b>%3</b>.</translation> + </message> + <message> + <source> Would you like to force unmounting of this medium?</source> + <translation>Voleu forçar el desmuntatge d'este mitjà ?</translation> + </message> + <message> + <source>Force Unmount</source> + <translation>Força el desmuntatge</translation> + </message> + <message> + <source>Failed to eject the disk from the virtual drive. The drive may be locked by the guest operating system. Please check this and try again.</source> + <translation>No s'ha pogut extreure el disc del dispositiu virtual. Probablement estiga bloquejat pel sistema operatiu client. Comproveu-ho i proveu novament.</translation> + </message> + <message> + <source><p>Could not insert the VirtualBox Guest Additions installer CD image into the virtual machine <b>%1</b>, as the machine has no CD/DVD-ROM drives. Please add a drive using the storage page of the virtual machine settings dialog.</p></source> + <translation><p>No es pot inserir la imatge del cd instal·lador de les Guest Additions a la mà quina virtual <b>%1</b> si la mà quina no té dispositius CD/DVD. Afegiu un dispositiu fent servir la pestanya de discos durs als parà metres de la mà quina.</p></translation> + </message> + <message> + <source>E&xit</source> + <comment>warnAboutSettingsAutoConversion message box</comment> + <translation>&Ix</translation> + </message> + <message> + <source><p>The following VirtualBox settings files will be automatically converted from the old format to a new format required by the new version of VirtualBox.</p><p>Press <b>OK</b> to start VirtualBox now or press <b>Exit</b> if you want to terminate the VirtualBox application without any further actions.</p></source> + <translation><p>Els següents fitxers de configuració del VirtualBox es convertiran automà ticament des del vell al nou format que requereix la nova versió del VirtualBox.</p><p>Premeu <b>D'acord</b> per iniciar el VirtualBox ara mateix o premeu <b>Ix</b> si voleu tancar el VirtualBox sense realitzar més accions.</p></translation> + </message> + <message> + <source>hard disk</source> + <comment>failed to mount ...</comment> + <translation>disc dur</translation> + </message> + <message> + <source>CD/DVD</source> + <comment>failed to mount ... host-drive</comment> + <translation>CD/DVD</translation> + </message> + <message> + <source>CD/DVD image</source> + <comment>failed to mount ...</comment> + <translation>imatge de CD/DVD</translation> + </message> + <message> + <source>floppy</source> + <comment>failed to mount ... host-drive</comment> + <translation>disquet</translation> + </message> + <message> + <source>floppy image</source> + <comment>failed to mount ...</comment> + <translation>imatge de disquet</translation> + </message> + <message> + <source>hard disk</source> + <comment>failed to attach ...</comment> + <translation>disc dur</translation> + </message> + <message> + <source>CD/DVD device</source> + <comment>failed to attach ...</comment> + <translation>dispositiu CD/DVD</translation> + </message> + <message> + <source>floppy device</source> + <comment>failed to close ...</comment> + <translation>disquetera</translation> + </message> + <message> + <source><p>Are you sure you want to delete the CD/DVD-ROM device?</p><p>You will not be able to mount any CDs or ISO images or install the Guest Additions without it!</p></source> + <translation><p>Segur que voleu eliminar el dispositiu de CD/DVD?</p><p>No podreu muntar cap CD o imatges iso ni tampoc instal·lar les Guest Additions sense ell.</p></translation> + </message> + <message> + <source>&Remove</source> + <comment>medium</comment> + <translation>&Elimina</translation> + </message> +</context> +<context> + <name>VBoxProgressDialog</name> + <message> + <source>&Cancel</source> + <translation>&Cancel·la</translation> + </message> + <message> + <source>Time remaining: %1</source> + <translation type="obsolete">Temps restant: %1</translation> + </message> + <message> + <source>%1 days, %2 hours remaining</source> + <translation type="obsolete">Resten %1 dies i %2 hores</translation> + </message> + <message> + <source>%1 days, %2 minutes remaining</source> + <translation type="obsolete">Resten %1 dies i %2 minuts</translation> + </message> + <message> + <source>%1 days remaining</source> + <translation type="obsolete">Resten %1 dies</translation> + </message> + <message> + <source>1 day, %1 hours remaining</source> + <translation type="obsolete">Resta 1 dia i %1 hores</translation> + </message> + <message> + <source>1 day, %1 minutes remaining</source> + <translation type="obsolete">Resta 1 dia i %1 minuts</translation> + </message> + <message> + <source>1 day remaining</source> + <translation type="obsolete">Resta 1 dia</translation> + </message> + <message> + <source>%1 hours, %2 minutes remaining</source> + <translation type="obsolete">Resten %1 hores i %2 minuts</translation> + </message> + <message> + <source>1 hour, %1 minutes remaining</source> + <translation type="obsolete">Resta 1 hora i %1 minuts</translation> + </message> + <message> + <source>1 hour remaining</source> + <translation type="obsolete">Resta 1 hora</translation> + </message> + <message> + <source>%1 minutes remaining</source> + <translation type="obsolete">Resten %1 minuts</translation> + </message> + <message> + <source>1 minute, %2 seconds remaining</source> + <translation type="obsolete">Resten 1 minut i %2 segons</translation> + </message> + <message> + <source>1 minute remaining</source> + <translation type="obsolete">Resta 1 minut</translation> + </message> + <message> + <source>%1 seconds remaining</source> + <translation type="obsolete">Resten %1 segons</translation> + </message> + <message> + <source>A few seconds remaining</source> + <translation>Resten alguns segons</translation> + </message> + <message> + <source>Canceling...</source> + <translation>S'està cancel·lant...</translation> + </message> + <message> + <source>Cancel the current operation</source> + <translation>Cancel·la l'operació actual</translation> + </message> + <message> + <source>%1, %2 remaining</source> + <comment>You may wish to translate this more like "Time remaining: %1, %2"</comment> + <translation>Resta %1, %2</translation> + </message> + <message> + <source>%1 remaining</source> + <comment>You may wish to translate this more like "Time remaining: %1"</comment> + <translation>Resta %1</translation> + </message> +</context> +<context> + <name>VBoxRegistrationDlg</name> + <message> + <source>Check this box if you do not want to receive mail from innotek at the e-mail address specified above.</source> + <translation type="obsolete">Marqueu esta casella si no voleu rebre correus d'innotek a l'adreça de correu especificada.</translation> + </message> + <message> + <source>&Confirm</source> + <translation type="obsolete">&Confirma</translation> + </message> + <message> + <source>Connection timed out.</source> + <translation type="obsolete">S'ha superat el temps d'espera.</translation> + </message> + <message> + <source>Could not locate the registration form on the server (response: %1).</source> + <translation type="obsolete">No es pot localitzar el formulari de registre al servidor (resposta: %1).</translation> + </message> + <message> + <source>&E-mail</source> + <translation type="obsolete">Corr&eu</translation> + </message> + <message> + <source>Enter your full name using Latin characters.</source> + <translation>Introduïu el nom complet fent servir carà cters llatins.</translation> + </message> + <message> + <source>Enter your e-mail address. Please use a valid address here.</source> + <translation>Introduïu una adreça de correu và lida.</translation> + </message> + <message> + <source>&Name</source> + <translation type="obsolete">&Nom</translation> + </message> + <message> + <source>&Please do not use this information to contact me</source> + <translation type="obsolete">&No feu servir esta informació per contactar amb mi</translation> + </message> + <message> + <source><p>Please fill out this registration form to let vos know that you use VirtualBox and, optionally, to keep you informed about VirtualBox news and updates.</p><p>Enter your full name using Latin characters and your e-mail address to the fields below. Please note that innotek will use this information only to gather product usage statistics and to send you VirtualBox newsletters. In particular, innotek will never pass your data to third parties. Detailed information about how we use your personal data can be found in the <b>Privacy Policy</b> section of the VirtualBox Manual or on the <a href=http://www.virtualbox.org/wiki/PrivacyPolicy>Privacy Policy</a> page of the VirtualBox web-site.</p></source> + <translation type="obsolete"><p>Ompliu este formulari de registre per fer-nos saber que fas servir el VirtualBox i, opcionalment, per mantindre't informat sobre noves versions i actualitzacions.</p><p>Introduïu als camps següents el vostre nom complet fent servir carà cters llatins i la vostra adreça de correu. Teniu en compte que innotek farà servir esta informació només per recopilar estadÃstiques d'ús del producte i per informar-vos de novetats. Innotek mai no deixarà les vostres dades a terceres parts. La informació detallada de l'ús de les vostres dades podeu trobar-lo a la secció del manual de VirtualBox de <b>PolÃtica de Privacitat</b> o a la secció <a href=http://www.virtualbox.org/wiki/PrivacyPolicy>PolÃtica de privacitat</a> de la pà gina de VirtualBox.</P></translation> + </message> + <message> + <source>VirtualBox Registration Dialog</source> + <translation>Dià leg de registre del VirtualBox</translation> + </message> + <message> + <source>Welcome to the VirtualBox Registration Form!</source> + <translation>Benvingut al formulari de registre del VirtualBox!</translation> + </message> + <message> + <source>Could not perform connection handshake.</source> + <translation>No s'ha pogut dur a terme la conformitat de connexió.</translation> + </message> + <message> + <source><p>Please fill out this registration form to let vos know that you use VirtualBox and, optionally, to keep you informed about VirtualBox news and updates.</p><p>Enter your full name using Latin characters and your e-mail address to the fields below. Sun Microsystems will use this information only to gather product usage statistics and to send you VirtualBox newsletters. In particular, Sun Microsystems will never pass your data to third parties. Detailed information about how we use your personal data can be found in the <b>Privacy Policy</b> section of the VirtualBox Manual or on the <a href=http://www.virtualbox.org/wiki/PrivacyPolicy>Privacy Policy</a> page of the VirtualBox web-site.</p></source> + <translation type="obsolete"><p>Ompliu este formulari de registre per deixar-nos conèixer que feu servir el VirtualBox i, opcionalment, per mantindre-vos informat sobre novetats i actualitzacions.</p><p>Introduïu el vostre nom complet fent servir carà cters llatins i la vostra adreça de correu electrònica als camps següents. Tingueu en compte que Sun Microsystems farà servir esta informació només per estadÃstiques del producte i per enviar-vos notÃcies sobre el VirtualBox. En particular, Sun Microsystems no deixarà les vostres dades a terceres parts. Podeu trobar informació detallada sobre l'ús de les dades personals a la secció <b>PolÃtica de Privacitat</b> (en anglés) del manual de VirtualBox o < l'adreça web <a href=http://www.virtualbox.org/wiki/PrivacyPolicy>PolÃtica de Privacitat</a> (en anglés).</p></translation> + </message> + <message> + <source>Check this box if you do not want to receive mail from Sun Microsystems at the e-mail address specified above.</source> + <translation type="obsolete">Marqueu esta casella si no voleu rebre informació de Sun Microsystems a l'adreça que heu especificat.</translation> + </message> + <message> + <source>C&onfirm</source> + <translation type="obsolete">C&onfirma</translation> + </message> + <message> + <source>Cancel</source> + <translation>Cancel·la</translation> + </message> + <message> + <source>Select Country/Territory</source> + <translation>Seleccioneu un paÃs/territori</translation> + </message> + <message> + <source><p>Please fill out this registration form to let vos know that you use VirtualBox and, optionally, to keep you informed about VirtualBox news and updates.</p><p>Please use Latin characters only to fill in the fields below. Sun Microsystems will use this information only to gather product usage statistics and to send you VirtualBox newsletters. In particular, Sun Microsystems will never pass your data to third parties. Detailed information about how we use your personal data can be found in the <b>Privacy Policy</b> section of the VirtualBox Manual or on the <a href=http://www.virtualbox.org/wiki/PrivacyPolicy>Privacy Policy</a> page of the VirtualBox web-site.</p></source> + <translation><p>Ompliu este formulari de registre per permetre'ns conèixer que feu servir el VirtualBox i, opcionalment, mantindre-vos informat sobre novetats i actualitzacions del VirtualBox.</p><p>Feu servir carà cters llatins per omplir els camps següents. Tingueu en compte que Sun Microsystems farà servir esta informació només per a usos estadÃstics i per enviar-vos notÃcies sobre el VirtualBox. Sun Microsystems mai compartirà les vostres dades amb terceres parts. Més informació detallada sobre l'ús de les vostres dades personals poden trobar-se a la secció de <b>PolÃtica de privacitat</b> al manual de VirtualBox o al<a href=http://www.virtualbox.org/wiki/PrivacyPolicy>Privacy Policy</a> lloc web del VirtualBox.</p></translation> + </message> + <message> + <source>I &already have a Sun Online account:</source> + <translation>Ja tinc un compte a &Sun Online:</translation> + </message> + <message> + <source>&E-mail:</source> + <translation>Corr&eu:</translation> + </message> + <message> + <source>&Password:</source> + <translation>&Contrasenya:</translation> + </message> + <message> + <source>I &would like to create a new Sun Online account:</source> + <translation>Vull &registrar-me creant un nou compte a Sun Online:</translation> + </message> + <message> + <source>&First Name:</source> + <translation>&Nom:</translation> + </message> + <message> + <source>&Last Name:</source> + <translation>&Cognoms:</translation> + </message> + <message> + <source>&Company:</source> + <translation>C&ompanyia:</translation> + </message> + <message> + <source>Co&untry:</source> + <translation>&PaÃs:</translation> + </message> + <message> + <source>E-&mail:</source> + <translation>Corre&u:</translation> + </message> + <message> + <source>P&assword:</source> + <translation>Con&trasenya:</translation> + </message> + <message> + <source>Co&nfirm Password:</source> + <translation>Confirmeu la contrasen&ya:</translation> + </message> + <message> + <source>&Register</source> + <translation>&Registra</translation> + </message> +</context> +<context> + <name>VBoxSFDialog</name> + <message> + <source>Cancel</source> + <translation type="obsolete">Cancel·la</translation> + </message> + <message> + <source>Help</source> + <translation type="obsolete">Ajuda</translation> + </message> + <message> + <source>&OK</source> + <translation type="obsolete">D'ac&ord</translation> + </message> + <message> + <source>Shared Folders</source> + <translation>Carpetes compartides</translation> + </message> +</context> +<context> + <name>VBoxScreenshotViewer</name> + <message> + <source>Screenshot of %1 (%2)</source> + <translation>Captura de pantalla de %1 (%2)</translation> + </message> + <message> + <source>Click to view non-scaled screenshot.</source> + <translation>Cliqueu per veure la captura de pantalla sense escalar.</translation> + </message> + <message> + <source>Click to view scaled screenshot.</source> + <translation>Cliqueu per veure la captura de pantalla escalada.</translation> + </message> +</context> +<context> + <name>VBoxSelectorWnd</name> + <message> + <source>&About VirtualBox...</source> + <translation type="obsolete">&Quant a VirtualBox...</translation> + </message> + <message> + <source>Go back to showing all suppressed warnings and messages</source> + <translation type="obsolete">Fa que tots els avisos i missatges eliminats es tornen a mostrar</translation> + </message> + <message> + <source>Close application</source> + <translation>Tanca l'aplicació</translation> + </message> + <message> + <source>Configure the selected virtual machine</source> + <translation>Configura la mà quina virtual seleccionada</translation> + </message> + <message> + <source>&Contents...</source> + <translation type="obsolete">&Continguts...</translation> + </message> + <message> + <source>Create a new virtual machine</source> + <translation>Crea una mà quina virtual nova</translation> + </message> + <message> + <source>Ctrl+D</source> + <translation type="obsolete">Ctrl+D</translation> + </message> + <message> + <source>Ctrl+G</source> + <translation type="obsolete">Ctrl+G</translation> + </message> + <message> + <source>Ctrl+L</source> + <translation type="obsolete">Ctrl+L</translation> + </message> + <message> + <source>Ctrl+N</source> + <translation type="obsolete">Ctrl+N</translation> + </message> + <message> + <source>Ctrl+Q</source> + <translation type="obsolete">Ctrl+Q</translation> + </message> + <message> + <source>Ctrl+R</source> + <translation type="obsolete">Ctrl+R</translation> + </message> + <message> + <source>Ctrl+S</source> + <translation type="obsolete">Ctrl+S</translation> + </message> + <message> + <source>Delete</source> + <translation type="obsolete">Suprimeix</translation> + </message> + <message> + <source>&Delete</source> + <translation>&Suprimeix</translation> + </message> + <message> + <source>Delete the selected virtual machine</source> + <translation>Suprimeix la mà quina virtual seleccionada</translation> + </message> + <message> + <source>D&escription</source> + <translation>D&escripció</translation> + </message> + <message> + <source>D&escription *</source> + <translation>D&escripció *</translation> + </message> + <message> + <source>&Details</source> + <translation>&Detalls</translation> + </message> + <message> + <source>Discard</source> + <translation type="obsolete">Descarta</translation> + </message> + <message> + <source>D&iscard</source> + <translation>Descar&ta</translation> + </message> + <message> + <source>Discard the saved state of the selected virtual machine</source> + <translation>Descarta l'estat alçat de la mà quina virtual seleccionada</translation> + </message> + <message> + <source>Display the global settings dialog</source> + <translation>Mostra el dià leg de parà metres globals</translation> + </message> + <message> + <source>Display the Virtual Disk Manager dialog</source> + <translation type="obsolete">Mostra el dià leg del gestor de discos virtuals</translation> + </message> + <message> + <source>E&xit</source> + <translation>&Ix</translation> + </message> + <message> + <source>F1</source> + <translation type="obsolete">F1</translation> + </message> + <message> + <source>&File</source> + <translation>&Fitxer</translation> + </message> + <message> + <source><h3>Welcome to VirtualBox!</h3><p>The left part of this window is a list of all virtual machines on your computer. The list is empty now because you haven't created any virtual machines yet.<img src=welcome.png align=right/></p><p>In order to create a new virtual machine, press the <b>New</b> button in the main tool bar located at the top of the window.</p><p>You can press the <b>%1</b> key to get instant help, or visit <a href=http://www.virtualbox.org>www.virtualbox.org</a> for the latest information and news.</p></source> + <translation type="obsolete"><h3>Benvinguts a VirtualBox!</h3><p>A la part esquerra d'esta finestra es mostra un llistat de totes les mà quines virtuals a l'ordinador. Este llistat és buit actualment perquè encara no heu creat cap mà quina virtual.<img src=welcome.png align=right/></p><p>Per crear una nova mà quina virtual, premeu sobre el botó <b>Nova</b> a la barra principal que es troba a la part de dalt d'esta finestra.</p><p>Podeu prémer la tecla <b>%1</b> per obtindre ajuda o bé visitar <a href=http://www.virtualbox.org>www.virtualbox.org</a> per veure altra informació i novetats.</p></translation> + </message> + <message> + <source>&Help</source> + <translation>&Ajuda</translation> + </message> + <message> + <source>innotek VirtualBox</source> + <translation type="obsolete">innotek VirtualBox</translation> + </message> + <message> + <source>&Machine</source> + <translation>&Mà quina</translation> + </message> + <message> + <source>New</source> + <translation type="obsolete">Nova</translation> + </message> + <message> + <source>&New...</source> + <translation>&Nova...</translation> + </message> + <message> + <source>Open the browser and go to the VirtualBox product web site</source> + <translation type="obsolete">Obri el navegador i vés a la pà gina web del producte VirtualBox</translation> + </message> + <message> + <source>Open VirtualBox registration form</source> + <translation type="obsolete">Obri el formulari de registre de VirtualBox</translation> + </message> + <message> + <source>&Preferences...</source> + <comment>global settings</comment> + <translation>&Preferències...</translation> + </message> + <message> + <source>Refresh</source> + <translation type="obsolete">Refresca</translation> + </message> + <message> + <source>&Refresh</source> + <translation type="obsolete">&Refresca</translation> + </message> + <message> + <source>Refresh the accessibility state of the selected virtual machine</source> + <translation>Refresca l'estat d'accessibilitat de la mà quina virtual seleccionada</translation> + </message> + <message> + <source>R&egister VirtualBox...</source> + <translation type="obsolete">R&egistra VirtualBox...</translation> + </message> + <message> + <source>&Reset All Warnings</source> + <translation type="obsolete">&Reinicia Tots els Avisos</translation> + </message> + <message> + <source>Settings</source> + <translation type="obsolete">Parà metres</translation> + </message> + <message> + <source>&Settings...</source> + <translation>Parà metre&s...</translation> + </message> + <message> + <source>S&how</source> + <translation>Mo&stra</translation> + </message> + <message> + <source>Show</source> + <translation type="obsolete">Mostra</translation> + </message> + <message> + <source>Show a dialog with product information</source> + <translation type="obsolete">Mostra un dià leg amb la informació del producte</translation> + </message> + <message> + <source>Show Log...</source> + <translation type="obsolete">Mostra Registre...</translation> + </message> + <message> + <source>Show &Log...</source> + <translation>Mostra el &registre...</translation> + </message> + <message> + <source>Show the log files of the selected virtual machine</source> + <translation>Mostra els fitxers de registre de la mà quina virtual seleccionada</translation> + </message> + <message> + <source>Show the online help contents</source> + <translation type="obsolete">Mostra els continguts d'ajuda en lÃnia</translation> + </message> + <message> + <source>&Snapshots</source> + <translation>&Captures</translation> + </message> + <message> + <source>S&tart</source> + <translation>Ini&cia</translation> + </message> + <message> + <source>Start</source> + <translation type="obsolete">Inicia</translation> + </message> + <message> + <source>Start the selected virtual machine</source> + <translation>Inicia la mà quina virtual seleccionada</translation> + </message> + <message> + <source>Switch to the window of the selected virtual machine</source> + <translation>Canvia a la finestra de la mà quina virtual seleccionada</translation> + </message> + <message> + <source>VirtualBox OSE</source> + <translation>VirtualBox OSE</translation> + </message> + <message> + <source>&VirtualBox Web Site...</source> + <translation type="obsolete">Lloc Web de &VirtualBox...</translation> + </message> + <message> + <source>Virtual &Disk Manager...</source> + <translation type="obsolete">Gestor de &Discs Virtuals...</translation> + </message> + <message> + <source>R&esume</source> + <translation>R&eprèn</translation> + </message> + <message> + <source>Resume</source> + <translation type="obsolete">Reprén</translation> + </message> + <message> + <source>Ctrl+P</source> + <translation type="obsolete">Ctrl+P</translation> + </message> + <message> + <source>Resume the execution of the virtual machine</source> + <translation>Reprén l'execució de la mà quina virtual</translation> + </message> + <message> + <source>&Pause</source> + <translation>&Pausa</translation> + </message> + <message> + <source>Pause</source> + <translation type="obsolete">Pausa</translation> + </message> + <message> + <source>Suspend the execution of the virtual machine</source> + <translation>Suspèn l'execució de la mà quina virtual</translation> + </message> + <message> + <source><h3>Welcome to VirtualBox!</h3><p>The left part of this window is a list of all virtual machines on your computer. The list is empty now because you haven't created any virtual machines yet.<img src=:/welcome.png align=right/></p><p>In order to create a new virtual machine, press the <b>New</b> button in the main tool bar located at the top of the window.</p><p>You can press the <b>%1</b> key to get instant help, or visit <a href=http://www.virtualbox.org>www.virtualbox.org</a> for the latest information and news.</p></source> + <translation><h3>Benvingut a VirtualBox!</h3><p>A la part esquerra d'esta finestra es mostra un llistat de totes les mà quines virtuals a l'ordinador. Este llistat és buit actualment perquè encara no heu creat cap mà quina virtual.<img src=welcome.png align=right/></p><p>Per crear una nova mà quina virtual, premeu sobre el botó <b>Nova</b> a la barra principal que es troba a la part de dalt d'esta finestra.</p><p>Podeu prémer la tecla <b>%1</b> per obtindre ajuda o bé visitar <a href=http://www.virtualbox.org>www.virtualbox.org</a> per veure altra informació i novetats.</p></translation> + </message> + <message> + <source>&Virtual Media Manager...</source> + <translation>Gestor de suports &virtuals...</translation> + </message> + <message> + <source>Sun VirtualBox</source> + <translation>Sun VirtualBox</translation> + </message> + <message> + <source>Display the Virtual Media Manager dialog</source> + <translation>Mostra el dià leg del gestor de suports virtuals</translation> + </message> + <message> + <source>&Import Appliance...</source> + <translation>&Importa una aplicació virtual...</translation> + </message> + <message> + <source>Import an appliance into VirtualBox</source> + <translation>Importa una aplicació virtual al VirtualBox</translation> + </message> + <message> + <source>&Export Appliance...</source> + <translation>&Exporta una aplicació virtual...</translation> + </message> + <message> + <source>Export one or more VirtualBox virtual machines as an appliance</source> + <translation>Exporta una aplicació virtual d'una mà quina virtual del VirtualBox</translation> + </message> + <message> + <source>Re&fresh</source> + <translation>Re&fresca</translation> + </message> + <message> + <source>Log</source> + <comment>icon text</comment> + <translation>Registre</translation> + </message> +</context> +<context> + <name>VBoxSettingsDialog</name> + <message> + <source><i>Select a settings category from the list on the left-hand side and move the mouse over a settings item to get more information</i>.</source> + <translation><i>Seleccioneu una categoria de parà metres en la llista de l'esquerra i deplaceu el ratolà sobre un element de la dreta per obtindre'n més informació<i>.</translation> + </message> + <message> + <source>On the <b>%1</b> page, %2</source> + <translation>A la pà gina <b>%1</b>, %2</translation> + </message> + <message> + <source>Invalid settings detected</source> + <translation>S'han detectat parà metres no và lids</translation> + </message> + <message> + <source>Settings</source> + <translation>Parà metres</translation> + </message> + <message> + <source>Non-optimal settings detected</source> + <translation>No s'han seleccionat els parà metres òptims</translation> + </message> +</context> +<context> + <name>VBoxSharedFoldersSettings</name> + <message> + <source>Add a new shared folder (Ins)</source> + <translation type="obsolete">Afig una nova carpeta compartide (Ins)</translation> + </message> + <message> + <source>Adds a new shared folder definition.</source> + <translation type="obsolete">Afig una nova definició a la carpeta compartida.</translation> + </message> + <message> + <source>Del</source> + <translation type="obsolete">Supr</translation> + </message> + <message> + <source>Edits the selected shared folder definition.</source> + <translation type="obsolete">Edita la definició de la carpeta compartida seleccionada.</translation> + </message> + <message> + <source>Edit the selected shared folder (Space)</source> + <translation type="obsolete">Edita la carpeta compartida seleccionada (Espai)</translation> + </message> + <message> + <source>Ins</source> + <translation type="obsolete">Ins</translation> + </message> + <message> + <source> Machine Folders</source> + <translation type="obsolete">Carpetes de la mà quina virtual</translation> + </message> + <message> + <source>Name</source> + <translation type="obsolete">Nom</translation> + </message> + <message> + <source><nobr>Name:&nbsp;&nbsp;%1</nobr><br><nobr>Path:&nbsp;&nbsp;%2</nobr></source> + <translation type="obsolete"><nobr>Nom:&nbsp;&nbsp;%1</nobr><br><nobr>Ruta:&nbsp;&nbsp;%2</nobr></translation> + </message> + <message> + <source>Path</source> + <translation type="obsolete">Ruta</translation> + </message> + <message> + <source><qt>Lists all shared folders accessible to this machine. +Use +<tt>net use x: \\vboxsvr\share</tt> +to access a shared folder named <i>share</i> from a DOS-like OS, or +<tt>mount -t vboxsf share mount_point</tt> +to access it from a Linux OS. This feature requires Guest Additions.</qt></source> + <translation type="obsolete"><qt>Mostra totes les carpetes accessibles a esta mà quina. +Feu servir: +<tt>net use x: \\vboxsvr\share</tt> +per accedir a la carpeta anomenada <i>share</i> des d'un sistema tipus DOS, o +per accedir a ella des d'un sistema Linux. Esta caracterÃstica requereix Guest Additions.</qt></translation> + </message> + <message> + <source>Removes the selected shared folder definition.</source> + <translation type="obsolete">Suprimeix la definició de la carpeta compartida seleccionada.</translation> + </message> + <message> + <source>Remove the selected shared folder (Del)</source> + <translation type="obsolete">Suprimeix la carpeta compartida seleccionada (Supr)</translation> + </message> + <message> + <source>Shared &Folders</source> + <translation type="obsolete">Carpetes &Compartides</translation> + </message> + <message> + <source>Space</source> + <translation type="obsolete">Espai</translation> + </message> + <message> + <source> Transient Folders</source> + <translation type="obsolete">Carpetes transitòries</translation> + </message> + <message> + <source>VBoxSharedFoldersSettings</source> + <comment>don't translate</comment> + <translation type="obsolete">VBoxSharedFoldersSettings</translation> + </message> + <message> + <source>Access</source> + <translation type="obsolete">Accés</translation> + </message> + <message> + <source>Ctrl+Space</source> + <translation type="obsolete">Ctrl+Espai</translation> + </message> + <message> + <source>Edit the selected shared folder (Ctrl+Space)</source> + <translation type="obsolete">Edita la carpeta compartida seleccionada (Ctrl+Espai)</translation> + </message> + <message> + <source>Full</source> + <translation type="obsolete">Complet</translation> + </message> + <message> + <source>Read-only</source> + <translation type="obsolete">Només lectura</translation> + </message> +</context> +<context> + <name>VBoxSnapshotDetailsDlg</name> + <message> + <source>Cancel</source> + <translation type="obsolete">Cancel·la</translation> + </message> + <message> + <source>&Description</source> + <translation type="obsolete">&Descripció</translation> + </message> + <message> + <source>Details of %1 (%2)</source> + <translation>Detalls de %1 (%2)</translation> + </message> + <message> + <source>F1</source> + <translation type="obsolete">F1</translation> + </message> + <message> + <source>Help</source> + <translation type="obsolete">Ajuda</translation> + </message> + <message> + <source>&Machine Details</source> + <translation type="obsolete">Detalls de la &mà quina</translation> + </message> + <message> + <source>&Name</source> + <translation type="obsolete">&Nom</translation> + </message> + <message> + <source>&OK</source> + <translation type="obsolete">&D'acord</translation> + </message> + <message> + <source> Snapshot Details </source> + <translation type="obsolete">Detalls de Captura</translation> + </message> + <message> + <source>VBoxSnapshotDetailsDlg</source> + <translation type="obsolete">VBoxSnapshotDetailsDlg</translation> + </message> + <message> + <source>Snapshot Details</source> + <translation type="obsolete">Detalls de la captura</translation> + </message> + <message> + <source>Click to enlarge the screenshot.</source> + <translation>Cliqueu per ampliar la captura de pantalla.</translation> + </message> + <message> + <source>&Name:</source> + <translation>&Nom:</translation> + </message> + <message> + <source>Taken:</source> + <translation>Feta el:</translation> + </message> + <message> + <source>&Description:</source> + <translation>&Descripció:</translation> + </message> + <message> + <source>D&etails:</source> + <translation>&Detalls:</translation> + </message> +</context> +<context> + <name>VBoxSnapshotsWgt</name> + <message> + <source>%1 since %2</source> + <comment>Current State (time or date + time)</comment> + <translation>%1 des de %2</translation> + </message> + <message> + <source>Ctrl+Shift+B</source> + <translation type="obsolete">Ctrl+Shift+B</translation> + </message> + <message> + <source>Ctrl+Shift+D</source> + <translation type="obsolete">Ctrl+Shift+D</translation> + </message> + <message> + <source>Ctrl+Shift+R</source> + <translation type="obsolete">Ctrl+Shift+R</translation> + </message> + <message> + <source>Ctrl+Shift+S</source> + <translation type="obsolete">Ctrl+Shift+S</translation> + </message> + <message> + <source> (current, </source> + <comment>Snapshot details</comment> + <translation>(actual,</translation> + </message> + <message> + <source>Current State</source> + <comment>Current State (Unmodified)</comment> + <translation>Estat actual</translation> + </message> + <message> + <source>Current State (changed)</source> + <comment>Current State (Modified)</comment> + <translation>Estat actual (modificat)</translation> + </message> + <message> + <source>curStateActionGroup</source> + <translation type="obsolete">curStateActionGroup</translation> + </message> + <message> + <source>D&iscard Current Snapshot and State</source> + <translation type="obsolete">D&escarta la captura i l'estat actuals</translation> + </message> + <message> + <source>Discard Current Snapshot and State</source> + <translation type="obsolete">Descarta la captura i l'estat actual</translation> + </message> + <message> + <source>Discard Snapshot</source> + <translation type="obsolete">Descarta la captura</translation> + </message> + <message> + <source>&Discard Snapshot</source> + <translation type="obsolete">&Descarta la captura</translation> + </message> + <message> + <source>Discard the current snapshot and revert the machine to the state it had before the snapshot was taken</source> + <translation type="obsolete">Descarta la captura actual i torna la mà quina a l'estat en què es trobava abans que s'haguera fet</translation> + </message> + <message> + <source>Discard the selected snapshot of the virtual machine</source> + <translation type="obsolete">Descarta la captura seleccionada de la mà quina virtual</translation> + </message> + <message> + <source>offline)</source> + <comment>Snapshot details</comment> + <translation>fora de lÃnia)</translation> + </message> + <message> + <source>online)</source> + <comment>Snapshot details</comment> + <translation>en lÃnia)</translation> + </message> + <message> + <source>Restore the virtual machine state from the state stored in the current snapshot</source> + <translation type="obsolete">Restaura l'estat de la mà quina virtual des de l'estat emmagatzemat a la captura actual</translation> + </message> + <message> + <source>Revert to Current Snapshot</source> + <translation type="obsolete">Torna a la captura actual</translation> + </message> + <message> + <source>&Revert to Current Snapshot</source> + <translation type="obsolete">To&rna a la captura actual</translation> + </message> + <message> + <source>Show Details</source> + <translation type="obsolete">Mostra els detalls</translation> + </message> + <message> + <source>S&how Details</source> + <translation>Mostra els &detalls</translation> + </message> + <message> + <source>Show the details of the selected snapshot</source> + <translation>Mostra els detalls de la captura seleccionada</translation> + </message> + <message> + <source>[snapshot]</source> + <translation type="obsolete">[captura]</translation> + </message> + <message> + <source>Snapshot %1</source> + <translation>Captura %1</translation> + </message> + <message> + <source>snapshotActionGroup</source> + <translation type="obsolete">snapshotActionGroup</translation> + </message> + <message> + <source>Space</source> + <translation type="obsolete">Espai</translation> + </message> + <message> + <source>Take a snapshot of the current virtual machine state</source> + <translation>Fes una captura de l'estat actual de la mà quina virtual</translation> + </message> + <message> + <source>Taken at %1</source> + <comment>Snapshot (time)</comment> + <translation>Feta el %1</translation> + </message> + <message> + <source>Taken on %1</source> + <comment>Snapshot (date + time)</comment> + <translation>Feta el %1</translation> + </message> + <message> + <source>Take &Snapshot</source> + <translation>Fe&s una captura</translation> + </message> + <message> + <source>Take Snapshot</source> + <translation type="obsolete">Fes una captura</translation> + </message> + <message> + <source>The current state differs from the state stored in the current snapshot</source> + <translation>L'estat actual difereix de l'estat emmagatzemat a la captura actual</translation> + </message> + <message> + <source>The current state is identical to the state stored in the current snapshot</source> + <translation>L'estat actual és idèntic a l'estat emmagatzemat a la captura actual</translation> + </message> + <message> + <source>VBoxSnapshotsWgt</source> + <translation>VBoxSnapshotsWgt</translation> + </message> + <message> + <source>Ctrl+Space</source> + <translation type="obsolete">Ctrl+Espai</translation> + </message> + <message> + <source> (%1)</source> + <translation> (%1)</translation> + </message> + <message numerus="yes"> + <source> (%n day(s) ago)</source> + <translation type="obsolete"> + <numerusform> (fa %n dia)</numerusform> + <numerusform> (fa %n dies)</numerusform> + <numerusform> (fa %n dies)</numerusform> + </translation> + </message> + <message numerus="yes"> + <source> (%n hour(s) ago)</source> + <translation type="obsolete"> + <numerusform> (fa %n hora)</numerusform> + <numerusform> (fa %n hores)</numerusform> + <numerusform> (fa %n hores)</numerusform> + </translation> + </message> + <message numerus="yes"> + <source> (%n minute(s) ago)</source> + <translation type="obsolete"> + <numerusform> (fa %n minut)</numerusform> + <numerusform> (fa %n minuts)</numerusform> + <numerusform> (fa %n minuts)</numerusform> + </translation> + </message> + <message numerus="yes"> + <source> (%n second(s) ago)</source> + <translation type="obsolete"> + <numerusform> (fa %n segon)</numerusform> + <numerusform> (fa %n segons)</numerusform> + <numerusform> (fa %n segons)</numerusform> + </translation> + </message> + <message> + <source>&Restore Snapshot</source> + <translation>&Restaura la captura</translation> + </message> + <message> + <source>&Delete Snapshot</source> + <translation>&Elimina la captura</translation> + </message> + <message> + <source>Restore the selected snapshot of the virtual machine</source> + <translation>Restaura la captura seleccionada de la mà quina virtual</translation> + </message> + <message> + <source>Delete the selected snapshot of the virtual machine</source> + <translation>Elimina la captura seleccionada de la mà quina virtual</translation> + </message> + <message> + <source> (%1 ago)</source> + <translation> (fa %1)</translation> + </message> +</context> +<context> + <name>VBoxSwitchMenu</name> + <message> + <source>%1 %2</source> + <translation type="obsolete">%1 %2</translation> + </message> + <message> + <source>Disable</source> + <translation>Inhabilita</translation> + </message> + <message> + <source>Enable</source> + <translation>Habilita</translation> + </message> +</context> +<context> + <name>VBoxTakeSnapshotDlg</name> + <message> + <source>Cancel</source> + <translation type="obsolete">Cancel·la</translation> + </message> + <message> + <source>F1</source> + <translation type="obsolete">F1</translation> + </message> + <message> + <source>Help</source> + <translation type="obsolete">Ajuda</translation> + </message> + <message> + <source>&OK</source> + <translation type="obsolete">&D'acord</translation> + </message> + <message> + <source>Snapshot &Description</source> + <translation>&Descripció de la captura</translation> + </message> + <message> + <source>Snapshot &Name</source> + <translation>&TÃtol de la captura</translation> + </message> + <message> + <source>Take Snapshot of Virtual Machine</source> + <translation>Fes una captura de la mà quina virtual</translation> + </message> + <message numerus="yes"> + <source>Warning: You are taking a snapshot of a running machine which has %n immutable image(s) attached to it. As long as you are working from this snapshot the immutable image(s) will not be reset to avoid loss of data.</source> + <translation> + <numerusform>AvÃs: esteu fent una captura d'una mà quina que té %n imatge immutable connectada. Mentre treballeu amb esta captura, la imatge immutable no es reiniciarà per evitar la pèrdua de dades.</numerusform> + <numerusform>AvÃs: esteu fent una captura d'una mà quina que té %n imatge immutables connectades. Mentre treballeu amb esta captura, les imatges immutables no es reiniciaran per evitar la pèrdua de dades.</numerusform> + <numerusform>AvÃs: esteu fent una captura d'una mà quina que té %n imatge immutables connectades. Mentre treballeu amb esta captura, les imatges immutables no es reiniciaran per evitar la pèrdua de dades.</numerusform> + </translation> + </message> +</context> +<context> + <name>VBoxTextEditor</name> + <message> + <source>Edit text</source> + <translation>Edita el text</translation> + </message> + <message> + <source>&Replace...</source> + <translation>&Reemplaça...</translation> + </message> + <message> + <source>Replaces the current text with the content of a file.</source> + <translation>Reemplaça el text actual amb el contingut del fitxer proveït.</translation> + </message> + <message> + <source>Text (*.txt);;All (*.*)</source> + <translation>Text (*.txt);;Tot (*.*)</translation> + </message> + <message> + <source>Select a file to open...</source> + <translation>Seleccioneu un fitxer per obrir...</translation> + </message> +</context> +<context> + <name>VBoxTrayIcon</name> + <message> + <source>Show Selector Window</source> + <translation>Mostra el selector de finestra</translation> + </message> + <message> + <source>Show the selector window assigned to this menu</source> + <translation>Mostra el selector de finestra assignat a este menú</translation> + </message> + <message> + <source>Hide Tray Icon</source> + <translation>Amaga la icona de sistema</translation> + </message> + <message> + <source>Remove this icon from the system tray</source> + <translation>Elimina esta icona de la safata del sistema</translation> + </message> + <message> + <source>&Other Machines...</source> + <comment>tray menu</comment> + <translation>&Altres mà quines...</translation> + </message> +</context> +<context> + <name>VBoxUSBFilterSettings</name> + <message> + <source>&Action</source> + <translation type="obsolete">&Acció</translation> + </message> + <message> + <source>Any</source> + <comment>remote</comment> + <translation type="obsolete">Qualsevol</translation> + </message> + <message> + <source>Displays the filter name.</source> + <translation type="obsolete">Mostra el nom del filtre.</translation> + </message> + <message> + <source>&Manufacturer</source> + <translation type="obsolete">&Fabricant</translation> + </message> + <message> + <source>&Name</source> + <translation type="obsolete">&Nom</translation> + </message> + <message> + <source>No</source> + <comment>remote</comment> + <translation type="obsolete">No</translation> + </message> + <message> + <source>Por&t</source> + <translation type="obsolete">Por&t</translation> + </message> + <message> + <source>Pro&duct</source> + <translation type="obsolete">Pro&ducte</translation> + </message> + <message> + <source>&Product ID</source> + <translation type="obsolete">ID del &producte</translation> + </message> + <message> + <source><qt>Defines an action performed by the host +computer when a matching device is attached: give it up to the host OS +(<i>Ignore</i>) or grab it for later usage by virtual machines +(<i>Hold</i>).</qt></source> + <translation type="obsolete"><qt>Defineix una acció duta a terme per l'amfitrió +quan es conneca un dispositiu: activa-lo al sistema amfitrió +(<i>Ignora</i>) o registra-ho per fer-lo servir després per les mà quines +virtuals (<i>Manté</i>).</qt></translation> + </message> + <message> + <source><qt>Defines the host USB port filter as an +<i>exact match</i> string. An empty string will match any +value.</qt></source> + <translation type="obsolete"><qt>Defineix el filtre del port USB de l'amfitrió com una +cadena de <i>seqüència exacta</i>. Una cadena buida no +tindrà cap valor.</qt></translation> + </message> + <message> + <source><qt>Defines the manufacturer filter as an +<i>exact match</i> string. An empty string will match any +value.</qt></source> + <translation type="obsolete"><qt>Defineix el filtre del fabricant com una +cadena de <i>seqüència exacta</i>. Una cadena buida no +tindrà cap valor.</qt></translation> + </message> + <message> + <source><qt>Defines the product ID filter. The +<i>exact match</i> string format is <tt>XXXX</tt> where +<tt>X</tt> is a hexadecimal digit. An empty string will match any +value.</qt></source> + <translation type="obsolete"><qt>Defineix l'ID del filtre del producte. El +format de la cadena de <i>seqüència exacta</i> és <tt>XXXX</tt> a on +<tt>X</tt> és un dÃgit hexadecimal. Una cadena buida no +tindrà cap valor.</qt></translation> + </message> + <message> + <source><qt>Defines the product name filter as an +<i>exact match</i> string. An empty string will match any +value.</qt></source> + <translation type="obsolete"><qt>Defineix el filtre del nom del producte com una +cadena de <i>seqüència exacta</i>. Una cadena buida no tindrà cap valor.</qt></translation> + </message> + <message> + <source><qt>Defines the revision number filter. The +<i>exact match</i> string format is <tt>IIFF</tt> where +<tt>I</tt> is a decimal digit of the integer part and <tt>F</tt> +is a decimal digit of the fractional part. An empty string will match any +value.</qt></source> + <translation type="obsolete"><qt>Defineix el número de revisió del producte. El +format de la cadena de <i>seqüència exacta</i> és <tt>IIFF</tt> a on +<tt>I</tt> és un dÃgit decimal de la part entera i <tt>F</tt> +és un dÃgit decimal d'una part de fracció. Una cadena buida no +tindrà cap valor.</qt></translation> + </message> + <message> + <source><qt>Defines the serial number filter as an +<i>exact match</i> string. An empty string will match any +value.</qt></source> + <translation type="obsolete"><qt>Defineix el número de sèrie del filtre com una +cadena de <i>seqüència exacta</i>. Una cadena buida no +tindrà cap valor.</qt></translation> + </message> + <message> + <source><qt>Defines the vendor ID filter. The +<i>exact match</i> string format is <tt>XXXX</tt> where +<tt>X</tt> is a hexadecimal digit. An empty string will match any +value.</qt></source> + <translation type="obsolete"><qt>Defineix l'ID del venedor del producte. El +format de la cadena de <i>seqüència exacta</i> és <tt>XXXX</tt> a on +<tt>X</tt> és un dÃgit hexadecimal. Una cadena buida no +tindrà cap valor.</qt></translation> + </message> + <message> + <source><qt>Defines whether this filter applies +to USB devices attached locally to the host computer (<i>No</i>), +to a VRDP client's computer (<i>Yes</i>), +or both (<i>Any</i>).</qt></source> + <translation type="obsolete"><qt>Defineix on s'aplica este filtre +als dispositius USB connectats localment a l'amfitrió (<i>No</i>), +al VRDP de la computadora client (<i>SÃ</i>), +o a ambdòs (<i>Qualsevol</i>).</qt></translation> + </message> + <message> + <source>R&emote</source> + <translation type="obsolete">R&emot</translation> + </message> + <message> + <source>&Revision</source> + <translation type="obsolete">&Revisió</translation> + </message> + <message> + <source>&Serial No.</source> + <translation type="obsolete">Número de &Sèrie.</translation> + </message> + <message> + <source>VBoxUSBFilterSettings</source> + <comment>don't translate</comment> + <translation type="obsolete">VBoxUSBFilterSettings</translation> + </message> + <message> + <source>&Vendor ID</source> + <translation type="obsolete">ID del &venedor</translation> + </message> + <message> + <source>Yes</source> + <comment>remote</comment> + <translation type="obsolete">SÃ</translation> + </message> +</context> +<context> + <name>VBoxUSBMenu</name> + <message> + <source><no devices available></source> + <comment>USB devices</comment> + <translation><no hi ha dispositius disponibles></translation> + </message> + <message> + <source>No supported devices connected to the host PC</source> + <comment>USB device tooltip</comment> + <translation>No hi ha dispositius suportats connectats a l'ordinador amfitrió</translation> + </message> +</context> +<context> + <name>VBoxUpdateDlg</name> + <message> + <source>1 day</source> + <translation>1 dia</translation> + </message> + <message> + <source>2 days</source> + <translation>2 dies</translation> + </message> + <message> + <source>3 days</source> + <translation>3 dies</translation> + </message> + <message> + <source>4 days</source> + <translation>4 dies</translation> + </message> + <message> + <source>5 days</source> + <translation>5 dies</translation> + </message> + <message> + <source>6 days</source> + <translation>6 dies</translation> + </message> + <message> + <source>1 week</source> + <translation>1 setmana</translation> + </message> + <message> + <source>2 weeks</source> + <translation>2 setmanes</translation> + </message> + <message> + <source>3 weeks</source> + <translation>3 setmanes</translation> + </message> + <message> + <source>1 month</source> + <translation>1 mes</translation> + </message> + <message> + <source>Never</source> + <translation>Mai</translation> + </message> + <message> + <source>Connection timed out.</source> + <translation type="obsolete">S'ha excedit el temps d'espera de la connexió.</translation> + </message> + <message> + <source>Could not locate the latest version list on the server (response: %1).</source> + <translation type="obsolete">No es pot localitzar el formulari de registre al servidor (resposta: %1).</translation> + </message> + <message> + <source>Chec&k</source> + <translation>Com&prova</translation> + </message> + <message> + <source>&Close</source> + <translation>Tan&ca</translation> + </message> + <message> + <source>VirtualBox Update Wizard</source> + <translation>Assistent d'acutliatzació del VirtualBox</translation> + </message> + <message> + <source>Check for Updates</source> + <translation>Comprova si hi ha actualitzacions</translation> + </message> + <message> + <source><p>This wizard will connect to the VirtualBox web-site and check if a newer version of VirtualBox is available.</p> +<p>Use the <b>Check</b> button to check for a new version now or the <b>Cancel</b> button if you do not want to perform this check.</p> +<p>You can run this wizard at any time by choosing <b>Check for Updates...</b> from the <b>Help</b> menu.</p></source> + <translation type="obsolete"><p>Este assistent connectarà amb el lloc web del VirtualBox i comprovarà si hi ha una versió més nova de VirtualBox.</p> +<p>Feu servir el botó <b>Comprova</b> per comprovar ara si hi ha noves versions o <b>Cancel·la</b> si no voleu comprovar ara si hi ha noves versions.</p> +<p>Podeu iniciar este assistent en qualsevol moment seleccionant <b>Comprova si hi ha actualitzacions...</b> al menú d'<b>Ajuda</b>.</p></translation> + </message> + <message> + <source>Cancel</source> + <translation>Cancel·la</translation> + </message> + <message> + <source>Summary</source> + <translation>Resum</translation> + </message> + <message> + <source><p>A new version of VirtualBox has been released! Version <b>%1</b> is available at <a href="http://www.virtualbox.org/">virtualbox.org</a>.</p><p>You can download this version using the link:</p><p><a href=%2>%3</a></p></source> + <translation><b>S'ha publicat una nova versió del VirtualBox!. La versió <b>%1</b> és disponible a <a href="http://www.virtualbox.org/">virtualbox.org</a>.</p><p>Podeu baixar-la directametn des d'este enllaç: </p><p><a href=%2>%3</a></p></translation> + </message> + <message> + <source><p>Unable to obtain the new version information due to the following network error:</p><p><b>%1</b></p></source> + <translation><p>No es pot obtindre informació de noves versions degut a un problema amb la xarxa:</p><p><b>%1</b></p></translation> + </message> + <message> + <source>You are already running the most recent version of VirtualBox.</source> + <translation>Ja teniu instal·lada la darrera versió del VirtualBox. Proveu novament més tard.</translation> + </message> + <message> + <source><p>This wizard will connect to the VirtualBox web-site and check if a newer version of VirtualBox is available.</p><p>Use the <b>Check</b> button to check for a new version now or the <b>Cancel</b> button if you do not want to perform this check.</p><p>You can run this wizard at any time by choosing <b>Check for Updates...</b> from the <b>Help</b> menu.</p></source> + <translation><p>Este assistent connectarà amb el lloc web del VirtualBox i comprovarà si hi ha una versió més nova de VirtualBox. Feu servir el botó <b>Comprova</b> per comprovar ara si hi ha noves versions o <b>Cancel·la</b> si no voleu comprovar ara si hi ha noves versions. Podeu iniciar este assistent en qualsevol moment seleccionant <b>Comprova si hi ha actualitzacions...</b> al menú d'<b>Ajuda</b>.</p></translation> + </message> +</context> +<context> + <name>VBoxVMDescriptionPage</name> + <message> + <source>Ctrl+E</source> + <translation type="obsolete">Ctrl+E</translation> + </message> + <message> + <source>Edit</source> + <translation>Edita</translation> + </message> + <message> + <source>Edit (Ctrl+E)</source> + <translation>Edita (Ctrl+E)</translation> + </message> + <message> + <source>No description. Press the Edit button below to add it.</source> + <translation>Sense descripció. Premeu el botó Edita per afegir-ne una.</translation> + </message> +</context> +<context> + <name>VBoxVMDetailsView</name> + <message> + <source>The selected virtual machine is <i>inaccessible</i>. Please inspect the error message shown below and press the <b>Refresh</b> button if you want to repeat the accessibility check:</source> + <translation><i>No es pot accedir</i> a la mà quina virtual seleccionada. Comproveu el missatge d'error que es mostra i premeu el botó <b>Refresca</b> si voleu tornar a comprovar l'accessibilitat:</translation> + </message> +</context> +<context> + <name>VBoxVMFirstRunWzd</name> + <message> + <source>&CD/DVD-ROM Device</source> + <translation>Dispositiu &CD/DVD</translation> + </message> + <message> + <source>CD/DVD-ROM Device</source> + <translation>Dispositiu CD/DVD</translation> + </message> + <message> + <source>First Run Wizard</source> + <translation>Executa l'auxiliar d'inici</translation> + </message> + <message> + <source>Floppy Device</source> + <translation>Disquet</translation> + </message> + <message> + <source>&Floppy Device</source> + <translation>Dis&quet</translation> + </message> + <message> + <source>&Host Drive</source> + <translation type="obsolete">&Dispositiu amfitrió</translation> + </message> + <message> + <source>Host Drive %1</source> + <translation type="obsolete">Dispositiu amfitrió %1</translation> + </message> + <message> + <source>&Image File</source> + <translation type="obsolete">Fitxer d'&imatge</translation> + </message> + <message> + <source>Media Source</source> + <translation>Suport font</translation> + </message> + <message> + <source>Media Type</source> + <translation>Tipus de suport</translation> + </message> + <message> + <source><p>If the above is correct, press the <b>Finish</b> button. Once you press it, the selected media will be mounted on the virtual machine and the machine will start execution.</p></source> + <translation><p>Si el que hi ha a continuació és correcte, premeu el botó <b>Finalitza</b>. Quan el premeu, el dispositiu seleccionat es muntarà a la mà quina virtual.</p></translation> + </message> + <message> + <source><p>If the above is correct, press the <b>Finish</b> button. Once you press it, the selected media will be temporarily mounted on the virtual machine and the machine will start execution.</p><p>Please note that when you close the virtual machine, the specified media will be automatically unmounted and the boot device will be set back to the first hard disk.</p><p>Depending on the type of the setup program, you may need to manually unmount (eject) the media after the setup program reboots the virtual machine, to prevent the installation process from starting again. You can do this by selecting the corresponding <b>Unmount...</b> action in the <b>Devices</b> menu.</p></source> + <translation><p>Si el que hi ha a continuació és correcte, premeu el botó <b>Finalitza</b>. Quan el premeu, el dispositiu seleccionat es muntarà a la mà quina virtual.</p><p>Tingueu en compte que quan tanqueu la mà quina virtual, el dispositiu especificat es desmuntarà automà ticament i el dispositiu d'inici tornarà a ser el primer disc d'arrencada.</p><p>Segons el tipus del programa de configuració, necessitareu desmuntar manualment (expulsar) el dispositiu una vegada que el programa de configuració haja reiniciat la mà quina virtual, per tal de prevenir que s'inicie novament el procés d'instal·lació. Podeu fer axiò seleccionat l'acció corresponent <b>Desmunta...</b> al menú <b>Dispositius.</b></translation> + </message> + <message> + <source><p>Select the media that contains the operating system you want to work with. This media must be bootable, otherwise the operating system will not be able to start.</p></source> + <translation><p>Seleccioneu el suport que conté el sistema operatiu amb el qual voleu treballar. Este suport ha d'ésser arrencable, en altre cas el sistema no podrà iniciar-se.</p></translation> + </message> + <message> + <source><p>Select the media which contains the setup program of the operating system you want to install. This media must be bootable, otherwise the setup program will not be able to start.</p></source> + <translation><p>Seleccioneu el suport que conté el programa de configuració del sistema operatiu amb el qual voleu treballar. Este suport ha d'ésser arrencable, en altre cas el sistema no podrà iniciar-se.</p></translation> + </message> + <message> + <source><p>Select the type of media you would like to use for booting an operating system.</p></source> + <translation><p>Seleccioneu el tipus de suport que voleu fer servir per iniciar un sistema operatiu.</p></translation> + </message> + <message> + <source><p>Select the type of media you would like to use for installation.</p></source> + <translation><p>Seleccioneu el tipus de suport que voleu fer servir per a la instal·lació dels elements mostrats.</p></translation> + </message> + <message> + <source><p>You have selected the following media to boot an operating system from:</p></source> + <translation><p>Heu seleccionat el següent suport per iniciar un sistema operatiu des de:</p></translation> + </message> + <message> + <source><p>You have selected the following media to boot from:</p></source> + <translation><p>Heu seleccionat el següent suport per iniciar des de:</p></translation> + </message> + <message> + <source><p>You have started a newly created virtual machine for the first time. This wizard will help you to perform the steps necessary for booting an operating system of your choice on the virtual machine.</p><p>Note that you will not be able to install an operating system into this virtual machine right now because you did not attach any hard disk to it. If this is not what you want, you can cancel the execution of this wizard, select <b>Settings</b> from the <b>Machine</b> menu of the main VirtualBox window to access the settings dialog of this machine and change the hard disk configuration.</p><p>Use the <b>Next</b> button to go to the next page of the wizard and the <b>Back</b> button to return to the previous page. You can also press <b>Cancel</b> if you want to cancel the execution of this wizard.</p></source> + <translation><p>Heu iniciat un nova mà quina virtual per primera vegada. Este assistent vos ajudarà a dur a terme els passos necessaris per iniciar un sistema operatiu de la vostra elecció a la mà quina virtual.</p><p>Tingueu en compte que no podeu instal·lar un sistema operatiu a dins d'esta mà quina virtual en este moment perquè encara no heu seleccionat un disc. Si això no és el que voleu, podeu cancel·lar l'execució d'este assistent, seleccioneu <b>Parà metres</b> des del menú <b>Mà quina</b> de la finestra principal del VirtualBox per accedir al dià leg de configuració d'este mà quina i canviar la configuració de disc.</p><p>Feu servir el botó <b>Següent</b> per continuar amb la següent pà gina de l'assistent i el botó <b>Arrere</b> per tornar a la pà gina anterior. Podeu prémer també <b>Cancel·la</b> si voleu cancel·lar l'execució d'este assistent.</p></translation> + </message> + <message> + <source><p>You have started a newly created virtual machine for the first time. This wizard will help you to perform the steps necessary for installing an operating system of your choice onto this virtual machine.</p><p>Use the <b>Next</b> button to go to the next page of the wizard and the <b>Back</b> button to return to the previous page. You can also press <b>Cancel</b> if you want to cancel the execution of this wizard.</p></source> + <translation><p>Heu iniciat un nova mà quina virtual per primera vegada. Este assistent vos ajudarà a dur a terme els passos necessaris per iniciar un sistema operatiu de la vostra elecció a la mà quina virtual.</p><p>Feu servir el botó <b>Següent</b> per continuar amb la següent pà gina de l'assistent i el botó <b>Arrere</b> per tornar a la pà gina anterior. Podeu prémer també <b>Cancel·la</b> si voleu cancel·lar l'execució d'este assistent.</p></translation> + </message> + <message> + <source>Select Installation Media</source> + <translation>Selecciona el suport d'instal·lació</translation> + </message> + <message> + <source>Summary</source> + <translation>Resum</translation> + </message> + <message> + <source><table><tr><td>Type:</td><td>%1</td></tr><tr><td>Source:</td><td>%2</td></tr></table></source> + <translation type="obsolete"><table><tr><td>Tipus:</td><td>%1</td></tr><tr><td>Font:</td><td>%2</td></tr></table></translation> + </message> + <message> + <source>VDM</source> + <translation type="obsolete">VDM</translation> + </message> + <message> + <source>Welcome to the First Run Wizard!</source> + <translation>Benvingut a l'auxiliar d'inici!</translation> + </message> + <message> + <source>< &Back</source> + <translation>< &Arrere</translation> + </message> + <message> + <source>&Next ></source> + <translation>&Següent ></translation> + </message> + <message> + <source><html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Arial'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If the above is correct, press the <span style=" font-weight:600;">Finish</span> button. Once you press it, the selected media will be temporarily mounted on the virtual machine and the machine will start execution.</p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Please note that when you close the virtual machine, the specified media will be automatically unmounted and the boot device will be set back to the first hard disk.</p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Depending on the type of the setup program, you may need to manually unmount (eject) the media after the setup program reboots the virtual machine, to prevent the installation process from starting again. You can do this by selecting the corresponding <span style=" font-weight:600;">Unmount...</span> action in the <span style=" font-weight:600;">Devices</span> menu<span style=" font-weight:600;">.</span></p></body></html></source> + <translation type="obsolete"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Arial'; font-size:9pt; font-weight:400; font-style:normal;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Si el que posa amunt és correcte, premeu sobre <span style=" font-weight:600;">Finalitza</span>. Una vegada que premeu el botó, el dispositiu seleccionat es muntarà temporalment a la mà quina virtual i començarà l'execució..</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Tingueu en compte que quan tanqueu la mà quina virtual, el dispositiu s'expulsarà automà ticament.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Segons el tipus de programa de configuració, potser necessitareu expulsar manualment el dispositiu després que la mà quina virtual es torne a iniciar per tal que el procés d'instal·lació s'inicie novament. Podeu fer això seleccionant l'acció corresponent <span style=" font-weight:600;">Expulsa...</span> al menú <span style=" font-weight:600;">Dispositius</span><span style=" font-weight:600;">.</span></p></body></html></translation> + </message> + <message> + <source>&Finish</source> + <translation>&Finalitza</translation> + </message> + <message> + <source>Type</source> + <comment>summary</comment> + <translation>Tipus</translation> + </message> + <message> + <source>Source</source> + <comment>summary</comment> + <translation>Font</translation> + </message> + <message> + <source>Cancel</source> + <translation>Cancel·la</translation> + </message> +</context> +<context> + <name>VBoxVMInformationDlg</name> + <message> + <source>Session Information Dialog</source> + <translation type="obsolete">Dià leg Informatiu de la Sessió</translation> + </message> + <message> + <source>&Close</source> + <translation type="obsolete">Tan&ca</translation> + </message> + <message> + <source>%1 - Session Information</source> + <translation>%1 - Informació de la sessió</translation> + </message> + <message> + <source>&Details</source> + <translation>&Detalls</translation> + </message> + <message> + <source>&Runtime</source> + <translation>&Temps d'execució</translation> + </message> + <message> + <source>DMA Transfers</source> + <translation>Transferències DMA</translation> + </message> + <message> + <source>PIO Transfers</source> + <translation>Transferències PIO</translation> + </message> + <message> + <source>Data Read</source> + <translation>Lectura de dades</translation> + </message> + <message> + <source>Data Written</source> + <translation>Escriptura de dades</translation> + </message> + <message> + <source>Data Transmitted</source> + <translation>Transmissió de dades</translation> + </message> + <message> + <source>Data Received</source> + <translation>Recepció de dades</translation> + </message> + <message> + <source>Enabled</source> + <translation type="obsolete">Activat</translation> + </message> + <message> + <source>Disabled</source> + <translation type="obsolete">Desactivat</translation> + </message> + <message> + <source>Runtime Attributes</source> + <translation>Atributs del temps d'execució</translation> + </message> + <message> + <source>Screen Resolution</source> + <translation>Resolució de pantalla</translation> + </message> + <message> + <source>Hardware Virtualization</source> + <translation type="obsolete">Virtualització per Maquinari</translation> + </message> + <message> + <source>CD/DVD-ROM Statistics</source> + <translation type="obsolete">EstadÃstiques CD/DVD</translation> + </message> + <message> + <source>Network Adapter Statistics</source> + <translation type="obsolete">EstadÃstiques de l'adaptador de xarxa</translation> + </message> + <message> + <source>Adapter 1</source> + <translation type="obsolete">Adaptador 1</translation> + </message> + <message> + <source>Adapter 2</source> + <translation type="obsolete">Adaptador 2</translation> + </message> + <message> + <source>Adapter 3</source> + <translation type="obsolete">Adaptador 3</translation> + </message> + <message> + <source>Adapter 4</source> + <translation type="obsolete">Adaptador 4</translation> + </message> + <message> + <source>Not attached</source> + <translation type="obsolete">No connectat</translation> + </message> + <message> + <source>Hard Disks Statistics</source> + <translation type="obsolete">EstadÃstiques de discos durs</translation> + </message> + <message> + <source>Primary Master</source> + <translation type="obsolete">Primari Mestre</translation> + </message> + <message> + <source>Primary Slave</source> + <translation type="obsolete">Primari Esclau</translation> + </message> + <message> + <source>Secondary Master</source> + <translation type="obsolete">Secundari Mestre</translation> + </message> + <message> + <source>Secondary Slave</source> + <translation type="obsolete">Secundari Esclau</translation> + </message> + <message> + <source>Version %1.%2</source> + <comment>guest additions</comment> + <translation>Versió %1.%2</translation> + </message> + <message> + <source>Not Detected</source> + <comment>guest additions</comment> + <translation>No detectat</translation> + </message> + <message> + <source>Not Detected</source> + <comment>guest os type</comment> + <translation>No detectat</translation> + </message> + <message> + <source>Guest Additions</source> + <translation>Guest Additions</translation> + </message> + <message> + <source>Guest OS Type</source> + <translation>Tipus de sistema client</translation> + </message> + <message> + <source>Hard Disk Statistics</source> + <translation type="obsolete">EstadÃstiques de discos durs</translation> + </message> + <message> + <source>No Hard Disks</source> + <translation type="obsolete">No hi ha cap disc dur</translation> + </message> + <message> + <source>No Network Adapters</source> + <translation>No hi ha cap adaptador de xarxa</translation> + </message> + <message> + <source>Enabled</source> + <comment>nested paging</comment> + <translation>Activat</translation> + </message> + <message> + <source>Disabled</source> + <comment>nested paging</comment> + <translation>Desactivat</translation> + </message> + <message> + <source>Nested Paging</source> + <translation>Paginació imbricada</translation> + </message> + <message> + <source>VBoxVMInformationDlg</source> + <translation>VBoxVMInformationDlg</translation> + </message> + <message> + <source>Not Available</source> + <comment>details report (VRDP server port)</comment> + <translation>No disponible</translation> + </message> + <message> + <source>Storage Statistics</source> + <translation>EstadÃstiques d'emmagatzematge</translation> + </message> + <message> + <source>No Storage Devices</source> + <translation>No hi ha cap dispositiu d'emmagatzematge</translation> + </message> + <message> + <source>Network Statistics</source> + <translation>EstadÃstiques de xarxa</translation> + </message> +</context> +<context> + <name>VBoxVMListBox</name> + <message> + <source>Inaccessible</source> + <translation type="obsolete">No s'hi pot accedir</translation> + </message> + <message> + <source><nobr>%1<br></nobr><nobr>%2 since %3</nobr><br><nobr>Session %4</nobr></source> + <comment>VM tooltip (name, last state change, session state)</comment> + <translation type="obsolete"><nobr>%1<br></nobr><nobr>%2 des de %3</nobr><br><nobr>Sessió %4</nobr></translation> + </message> + <message> + <source><nobr><b>%1</b><br></nobr><nobr>Inaccessible since %2</nobr></source> + <comment>Inaccessible VM tooltip (name, last state change)</comment> + <translation type="obsolete"><nobr><b>%1</b><br></nobr><nobr>Inaccessible des de %2</nobr></translation> + </message> +</context> +<context> + <name>VBoxVMListView</name> + <message> + <source>Inaccessible</source> + <translation>Inaccessible</translation> + </message> + <message> + <source><nobr>%1<br></nobr><nobr>%2 since %3</nobr><br><nobr>Session %4</nobr></source> + <comment>VM tooltip (name, last state change, session state)</comment> + <translation><nobr>%1<br></nobr><nobr>%2 des de %3</nobr><br><nobr>Sessió %4</nobr></translation> + </message> + <message> + <source><nobr><b>%1</b><br></nobr><nobr>Inaccessible since %2</nobr></source> + <comment>Inaccessible VM tooltip (name, last state change)</comment> + <translation><nobr><b>%1</b><br></nobr><nobr>Inaccessible des de %2</nobr></translation> + </message> + <message> + <source>S&how</source> + <translation>Mo&stra</translation> + </message> + <message> + <source>Switch to the window of the selected virtual machine</source> + <translation>Canvia a la finestra de la mà quina virtual seleccionada</translation> + </message> + <message> + <source>S&tart</source> + <translation>Ini&cia</translation> + </message> + <message> + <source>Start the selected virtual machine</source> + <translation>Inicia la mà quina virtual seleccionada</translation> + </message> + <message> + <source>R&esume</source> + <translation>R&eprèn</translation> + </message> + <message> + <source>Resume the execution of the virtual machine</source> + <translation>Reprén l'execució de la mà quina virtual</translation> + </message> + <message> + <source>&Pause</source> + <translation>&Pausa</translation> + </message> + <message> + <source>Suspend the execution of the virtual machine</source> + <translation>Suspèn l'execució de la mà quina virtual</translation> + </message> +</context> +<context> + <name>VBoxVMLogViewer</name> + <message> + <source>%1 - VirtualBox Log Viewer</source> + <translation>%1 - Visualitzador de registre del VirtualBox</translation> + </message> + <message> + <source>Close</source> + <translation>Tanca</translation> + </message> + <message> + <source>F1</source> + <translation type="obsolete">F1</translation> + </message> + <message> + <source>&Find</source> + <translation>&Cerca</translation> + </message> + <message> + <source>Help</source> + <translation type="obsolete">Ajuda</translation> + </message> + <message> + <source>Log Viewer</source> + <translation>Visutalitzador del registre</translation> + </message> + <message> + <source><p>No log files found. Press the <b>Refresh</b> button to rescan the log folder <nobr><b>%1</b></nobr>.</p></source> + <translation><p>No s'ha trobat cap fitxer de registre. Premeu el botó <b>Refresca</b> per tornar a escanejar la carpeta de registre <nobr><b>%1</b></nobr>.</p></translation> + </message> + <message> + <source>&Refresh</source> + <translation>&Refresca</translation> + </message> + <message> + <source>&Save</source> + <translation>De&sa</translation> + </message> + <message> + <source>Save VirtualBox Log As</source> + <translation>Alça el registre de VirtualBox com a</translation> + </message> +</context> +<context> + <name>VBoxVMNetworkSettings</name> + <message> + <source>&Attached to</source> + <translation type="obsolete">&Connectat a</translation> + </message> + <message> + <source>Ca&ble Connected</source> + <translation type="obsolete">Fi&l Connectat</translation> + </message> + <message> + <source>Controls how this virtual adapter is attached to the real network of the Host OS.</source> + <translation type="obsolete">Controla la forma en què este adaptador virtual es connecta a la xarxa real del sistema amfitrió.</translation> + </message> + <message> + <source>Displays the command executed to set up the TAP interface.</source> + <translation type="obsolete">Mostra l'orde executada per engegar l'interfÃcie TAP.</translation> + </message> + <message> + <source>Displays the command executed to terminate the TAP interface.</source> + <translation type="obsolete">Mostra l'orde exexutada per tancar la interfÃcie TAP.</translation> + </message> + <message> + <source>Displays the MAC address of this adapter. It contains exactly 12 characters chosen from {0-9,A-F}. Note that the second character must be an even digit.</source> + <translation type="obsolete">Mostra l'adreça MAC d'este adaptador. Conté exactament 12 carà cters compresos entre {0-9,A-F}. Tingueu en compte que el segon carà cter ha d'éser un dÃgit.</translation> + </message> + <message> + <source>Displays the name of the host interface selected for this adapter.</source> + <translation type="obsolete">Mostra el nom de la interfÃcie seleccionada de l'amfitrió per a este adaptador.</translation> + </message> + <message> + <source>Displays the TAP interface name.</source> + <translation type="obsolete">Mostra el nom de la intefÃcie TAP.</translation> + </message> + <message> + <source>&Enable Network Adapter</source> + <translation type="obsolete">Habilita l'adaptador d&e xarxa</translation> + </message> + <message> + <source>&File Descriptor</source> + <translation type="obsolete">Descriptor del &fitxer</translation> + </message> + <message> + <source>&Generate</source> + <translation type="obsolete">&Genera</translation> + </message> + <message> + <source>Generates a new random MAC address.</source> + <translation type="obsolete">Genera una nova adreça MAC aleatòria.</translation> + </message> + <message> + <source>Host Interface Settings</source> + <translation type="obsolete">Parà metres de la interfÃcie de l'amfitrió</translation> + </message> + <message> + <source>Indicates whether the virtual network cable is plugged in on machine startup or not.</source> + <translation type="obsolete">Indica si el cable de la xarxa virtual està connectat a l'inici de la mà quina virtual o no.</translation> + </message> + <message> + <source>&Interface Name</source> + <translation type="obsolete">Nom de la &interfÃcie</translation> + </message> + <message> + <source>&MAC Address</source> + <translation type="obsolete">Adreça &MAC</translation> + </message> + <message> + <source>Select</source> + <translation type="obsolete">Selecciona</translation> + </message> + <message> + <source>Selects the setup application.</source> + <translation type="obsolete">Selecciona l'aplicació de configuració.</translation> + </message> + <message> + <source>Selects the terminate application.</source> + <translation type="obsolete">Selecciona l'aplicació de finalització.</translation> + </message> + <message> + <source>Select TAP setup application</source> + <translation type="obsolete">Selecciona l'aplicació de configuració de TAP</translation> + </message> + <message> + <source>Select TAP terminate application</source> + <translation type="obsolete">Selecciona l'aplicació de finalització de TAP</translation> + </message> + <message> + <source>&Setup Application</source> + <translation type="obsolete">&Configura l'aplicació</translation> + </message> + <message> + <source>&Terminate Application</source> + <translation type="obsolete">Finali&tza l'aplicació</translation> + </message> + <message> + <source>VBoxVMNetworkSettings</source> + <translation type="obsolete">VBoxVMNetworkSettings</translation> + </message> + <message> + <source>When checked, plugs this virtual network adapter into the virtual machine.</source> + <translation type="obsolete">Quan estiga marcat, s'activarà este adaptador de xarxa virtual a dins de la mà quina virtual.</translation> + </message> + <message> + <source>&Network Name</source> + <translation type="obsolete">&Nom de la Xarxa</translation> + </message> + <message> + <source>Adapter &Type</source> + <translation type="obsolete">&Tipus d'Adaptador</translation> + </message> + <message> + <source>Selects the type of the virtual network adapter. Depending on this value, VirtualBox will provide different network hardware to the virtual machine.</source> + <translation type="obsolete">Selecciona el tipus d'adaptador de xarxa virtual. Segons el valor, VirtualBox proveirà diferent maquinari de xarxa per a la mà quina virtual.</translation> + </message> + <message> + <source>Displays the name of the internal network selected for this adapter.</source> + <translation type="obsolete">Mostra el nom de la xarxa interna seleccionada per a este adaptador.</translation> + </message> +</context> +<context> + <name>VBoxVMParallelPortSettings</name> + <message> + <source>VBoxVMParallelPortSettings</source> + <translation type="obsolete">VBoxVMParal·lelPortParà metres</translation> + </message> + <message> + <source>&Enable Parallel Port</source> + <translation type="obsolete">Habilita Port Paral·l&el</translation> + </message> + <message> + <source>When checked, enables the given parallel port of the virtual machine.</source> + <translation type="obsolete">Quan estiga marcat, s'habilitarà el port paral·lel de la mà quina virtual.</translation> + </message> + <message> + <source>Port &Number</source> + <translation type="obsolete">&Número de Port</translation> + </message> + <message> + <source>Displays the parallel port number. You can choose one of the standard parallel ports or select <b>User-defined</b> and specify port parameters manually.</source> + <translation type="obsolete">Mostra el número del port parà l·lel. Podeu triar un dels ports paral·lels està ndards o seleccionar <b>Definit per l'usuari</b> i especificar els parà metres manualment.</translation> + </message> + <message> + <source>&IRQ</source> + <translation type="obsolete">&IRQ</translation> + </message> + <message> + <source>Displays the IRQ number of this parallel port. Valid values are integer numbers in range from <tt>0</tt> to <tt>255</tt>. Values greater than <tt>15</tt> may only be used if the <b>IO APIC</b> is enabled for this virtual machine.</source> + <translation type="obsolete">Mostra el número IRQ per a este port paral·lel. Valors và lids són nombres enters en un rang des de <tt>0</tt> fins <tt>255</tt>. Valors més grans que <tt>15</tt> es faran servir si <b>IO APIC</b> es troba habilitat a esta mà quina virtual.</translation> + </message> + <message> + <source>I/O Po&rt</source> + <translation type="obsolete">Po&rt E/S</translation> + </message> + <message> + <source>Displays the base I/O port address of this parallel port. This should be a whole number between <tt>0</tt> and <tt>0xFFFF</tt>.</source> + <translation type="obsolete">Mostra l'adreça base del port E/S per a este port paral·lel. Valors và lids són nombres enters en un rang des de <tt>0</tt> fins <tt>0xFFFF</tt>.</translation> + </message> + <message> + <source>Port &Path</source> + <translation type="obsolete">Ruta del &Port</translation> + </message> + <message> + <source>Displays the host parallel device name.</source> + <translation type="obsolete">Mostra el nom del dispositiu paral·lel del sistema client.</translation> + </message> +</context> +<context> + <name>VBoxVMSerialPortSettings</name> + <message> + <source>Controls the working mode of this serial port. If you select <b>Disconnected</b>, the guest OS will detect the serial port but will not be able to operate it.</source> + <translation type="obsolete">Controla el mode de treball d'este port sèrie. Si seleccioneu <b>Desconnectat</b>, el sistema client detectarà el port sèrie però no podrà operar amb ell.</translation> + </message> + <message> + <source>&Create Pipe</source> + <translation type="obsolete">&Crea Conducte</translation> + </message> + <message> + <source>Displays the base I/O port address of this serial port. This should be a whole number between <tt>0</tt> and <tt>0xFFFF</tt>.</source> + <translation type="obsolete">Mostra l'adreça base del port d'E/S d'este port sèrie. Valors và lids són nombres enters del rang des de <tt>0</tt> fins <tt>0xFFFF</tt>.</translation> + </message> + <message> + <source>Displays the IRQ number of this serial port. Valid values are integer numbers in range from <tt>0</tt> to <tt>255</tt>. Values greater than <tt>15</tt> may only be used if the <b>IO APIC</b> is enabled for this virtual machine.</source> + <translation type="obsolete">Mostra el número IRQ d'este port sèrie. Valors và lids són nombres enters del rang des de <tt>0</tt> fins <tt>255</tt>. Valors més grans que <tt>15</tt> només s'han de fer servir només si l'<b>IO APIC</b> és actiu per a esta mà quina virtual.</translation> + </message> + <message> + <source>Displays the path to the serial port's pipe on the host when the port is working in <b>Host Pipe</b> mode, or the host serial device name when the port is working in <b>Host Device</b> mode.</source> + <translation type="obsolete">Mostra la ruta al conducte del port sèrie a l'amfitrió quan el port treballa en el mode <b>Conducte Amfitrió</b>, o al dispositiu sèrie de l'amfitrió quan el port treballa en el mode <b>Dispositiu Amfitrió</b>.</translation> + </message> + <message> + <source>Displays the serial port number. You can choose one of the standard serial ports or select <b>User-defined</b> and specify port parameters manually.</source> + <translation type="obsolete">Mostra el número del port sèrie. Podeu triar un dels ports sèrie està ndards o bé seleccionar <b>Definit per l'usuari</b> i especificar els parà metres manualment.</translation> + </message> + <message> + <source>&Enable Serial Port</source> + <translation type="obsolete">Habilita &el Port Sèrie</translation> + </message> + <message> + <source>If checked, the pipe specified in the <b>Port Path</b> field will be created by the virtual machine when it starts. Otherwise, the virtual machine will assume that the pipe exists and try to use it.</source> + <translation type="obsolete">Si està marcat, el conducte especificat al camp <b>Ruta del Port</b> es crearà per la mà quina virtual quan s'inicie. En altre cas, la mà quina virtual provarà de fer servir el conducte existent.</translation> + </message> + <message> + <source>I/O Po&rt</source> + <translation type="obsolete">Po&rt E/S</translation> + </message> + <message> + <source>&IRQ</source> + <translation type="obsolete">&IRQ</translation> + </message> + <message> + <source>Port &Mode</source> + <translation type="obsolete">&Mode del port</translation> + </message> + <message> + <source>Port &Number</source> + <translation type="obsolete">&Número de Port</translation> + </message> + <message> + <source>Port &Path</source> + <translation type="obsolete">Ruta del &port</translation> + </message> + <message> + <source>VBoxVMSerialPortSettings</source> + <translation type="obsolete">VBoxVMSerialPortSettings</translation> + </message> + <message> + <source>When checked, enables the given serial port of the virtual machine.</source> + <translation type="obsolete">Quan estiga marcat, s'habilitarà el port sèrie a la mà quina virtual.</translation> + </message> +</context> +<context> + <name>VBoxVMSettingsAudio</name> + <message> + <source>When checked, a virtual PCI audio card will be plugged into the virtual machine and will communicate with the host audio system using the specified driver.</source> + <translation>Quan estiga marcat, la tarjeta de so PCI virtual es connectarà a dins de la mà quina virtual la qual farà servir un controlador especÃfic per comunicar-se amb la tarjeta de so de l'amfitrió.</translation> + </message> + <message> + <source>Enable &Audio</source> + <translation>H&abilita l'à udio</translation> + </message> + <message> + <source>Host Audio &Driver:</source> + <translation>Controla&dor d'à udio de l'amfitrió:</translation> + </message> + <message> + <source>Controls the audio output driver. The <b>Null Audio Driver</b> makes the guest see an audio card, however every access to it will be ignored.</source> + <translation>Gestiona el controlador d'eixida de so. El <b>controlador d'à udio Nul</b> fa que el client veja una tarjeta de so, però l'accés a ella s'ignorarà .</translation> + </message> + <message> + <source>Audio &Controller:</source> + <translation>&Controlador d'à udio:</translation> + </message> + <message> + <source>Selects the type of the virtual sound card. Depending on this value, VirtualBox will provide different audio hardware to the virtual machine.</source> + <translation>Selecciona el tipus de la targeta de so virtual. Segons este valor, VirtualBox proveirà diferents dispositius de maquinari de so per al sistema client.</translation> + </message> +</context> +<context> + <name>VBoxVMSettingsCD</name> + <message> + <source>Host CD/DVD drive is not selected</source> + <translation type="obsolete">No s'ha seleccionat cap controlador de CD/DVD a l'amfitrió</translation> + </message> + <message> + <source>CD/DVD image file is not selected</source> + <translation type="obsolete">No s'ha seleccionat cap imatge de CD/DVD</translation> + </message> + <message> + <source>When checked, mounts the specified media to the CD/DVD drive of the virtual machine. Note that the CD/DVD drive is always connected to the Secondary Master IDE controller of the machine.</source> + <translation type="obsolete">Quan estiga marcat, es muntarà el suport especificat al controlador CD/DVD de la mà quina virtual. Tingueu en compte que el controlador CD/DVD sempre està connectat al controlador secundari mestre IDE de la mà quina.</translation> + </message> + <message> + <source>&Mount CD/DVD Drive</source> + <translation type="obsolete">&Munta la unitat CD/DVD</translation> + </message> + <message> + <source>Mounts the specified CD/DVD drive to the virtual CD/DVD drive.</source> + <translation type="obsolete">Munta el CD/DVD especificat al dispositiu virtual de CD/DVD.</translation> + </message> + <message> + <source>Host CD/DVD &Drive</source> + <translation type="obsolete">Controla&dor de CD/DVD de l'amfitrió</translation> + </message> + <message> + <source>Lists host CD/DVD drives available to mount to the virtual machine.</source> + <translation type="obsolete">Mostra els dispositius de CD/DVD disponibles per muntar a la mà quina virtual.</translation> + </message> + <message> + <source>When checked, allows the guest to send ATAPI commands directly to the host drive which makes it possible to use CD/DVD writers connected to the host inside the VM. Note that writing audio CD inside the VM is not yet supported.</source> + <translation type="obsolete">Quan estiga marcat, es permetrà al client enviar ordes ATAPI directament al controlador amfitrió, cosa que permetrà fer servir lectors de CD/DVD de l'amfitrió a dins de la mà quina virtual. Tingueu en compte que gravar CD's d'à udio a dins de la mà quina virtual encara no està suportat.</translation> + </message> + <message> + <source>Enable &Passthrough</source> + <translation type="obsolete">&Habilita Passthrough</translation> + </message> + <message> + <source>Mounts the specified CD/DVD image to the virtual CD/DVD drive.</source> + <translation type="obsolete">Munta la imatge de CD/DVD especificat al dispositiu virtual de CD/DVD.</translation> + </message> + <message> + <source>&ISO Image File</source> + <translation type="obsolete">Fitxer d'imatge &ISO</translation> + </message> + <message> + <source>Displays the image file to mount to the virtual CD/DVD drive and allows to quickly select a different image.</source> + <translation type="obsolete">Mostra el fitxer d'imatge que es muntarà al dispositiu virtual de CD/DVD i permet seleccionar de forma rà pida una imatge diferent.</translation> + </message> + <message> + <source>Invokes the Virtual Disk Manager to select a CD/DVD image to mount.</source> + <translation type="obsolete">Invoca el Gestor de Disc Durs Virtuals per seleccionar una imatge CD/DVD a muntar.</translation> + </message> + <message> + <source>Invokes the Virtual Media Manager to select a CD/DVD image to mount.</source> + <translation type="obsolete">Invoca el gestor de discos durs virtuals per seleccionar una imatge CD/DVD a muntar.</translation> + </message> +</context> +<context> + <name>VBoxVMSettingsDisplay</name> + <message> + <source>you have assigned less than <b>%1</b> of video memory which is the minimum amount required to switch the virtual machine to fullscreen or seamless mode.</source> + <translation>heu assignat menys de l'<b>%1</b> per a la memòria de vÃdeo, que és el mÃnim necessari per arrencar el sistema client en mode de pantalla completa o fluid.</translation> + </message> + <message> + <source><qt>%1&nbsp;MB</qt></source> + <translation><qt>%1&nbsp;MB</qt></translation> + </message> + <message> + <source>&Video</source> + <translation>&VÃdeo</translation> + </message> + <message> + <source>Video &Memory:</source> + <translation>&Memòria de vÃdeo:</translation> + </message> + <message> + <source>Controls the amount of video memory provided to the virtual machine.</source> + <translation>Controla la quantitat de memòria de vÃdeo amb què es proveeix a la mà quina virtual.</translation> + </message> + <message> + <source>MB</source> + <translation>MB</translation> + </message> + <message> + <source>Extended Features:</source> + <translation>CaracterÃstiques avançades:</translation> + </message> + <message> + <source>When checked, the virtual machine will be given access to the 3D graphics capabilities available on the host.</source> + <translation>Quan estiga marcat, la mà quina virtual permetrà l'accés als grà fics 3D disponibles a l'amfitrió.</translation> + </message> + <message> + <source>Enable &3D Acceleration</source> + <translation>Activa l'acceleració &3D</translation> + </message> + <message> + <source>&Remote Display</source> + <translation>Pantalla &remota</translation> + </message> + <message> + <source>When checked, the VM will act as a Remote Desktop Protocol (RDP) server, allowing remote clients to connect and operate the VM (when it is running) using a standard RDP client.</source> + <translation>Quan estiga marcat, la mà quina virtual actuarà com un servidor RDP (protocol d'escriptori remot), de forma que es permetrà a clients remots connectar-se i operar amb la mà quina virtual (quan estiga en execució) fent servir un client està ndard RDP.</translation> + </message> + <message> + <source>&Enable Server</source> + <translation>&Habilita el servidor</translation> + </message> + <message> + <source>Server &Port:</source> + <translation>Port del &servidor:</translation> + </message> + <message> + <source>Displays the VRDP Server port number. You may specify <tt>0</tt> (zero) to reset the port to the default value.</source> + <translation type="obsolete">Mostra el nombre del port del servidor VRDP. Heu d'especificar <tt>0</tt> (cero) per reiniciar el port al valor per defecte.</translation> + </message> + <message> + <source>Authentication &Method:</source> + <translation>&Mètode d'autenticació:</translation> + </message> + <message> + <source>Defines the VRDP authentication method.</source> + <translation>Defineix el mode d'autenticació del VRDP.</translation> + </message> + <message> + <source>Authentication &Timeout:</source> + <translation>&Temps d'autenticació:</translation> + </message> + <message> + <source>Specifies the timeout for guest authentication, in milliseconds.</source> + <translation>Especifica el temps d'autenticació del client, en milisegons.</translation> + </message> + <message> + <source>you have assigned less than <b>%1</b> of video memory which is the minimum amount required for HD Video to be played efficiently.</source> + <translation>heu assignat menys de <b>%1</b> per a la memòria de vÃdeo, que és la mÃnima quantitat que es requereix per reproduir VÃdeo HD de forma eficient.</translation> + </message> + <message> + <source>When checked, the virtual machine will be given access to the Video Acceleration capabilities available on the host.</source> + <translation>Quan estiga marcat, la mà quina virtual tindrà suport a les capacitatats d'acceleració de vÃdeo disponibles a l'amfitrió.</translation> + </message> + <message> + <source>Enable &2D Video Acceleration</source> + <translation>Activa l'acceleracio &2D</translation> + </message> + <message> + <source>The VRDP Server port number. You may specify <tt>0</tt> (zero), to select port 3389, the standard port for RDP.</source> + <translation>El número de port de servidor VRDP. Heu d'especificar <tt>0</tt> (cero) per a seleccionar el port 3389, el port està ndard per a RDP.</translation> + </message> +</context> +<context> + <name>VBoxVMSettingsDlg</name> + <message> + <source><</source> + <translation type="obsolete"><</translation> + </message> + <message> + <source>=</source> + <translation type="obsolete">=</translation> + </message> + <message> + <source>></source> + <translation type="obsolete">></translation> + </message> + <message> + <source>0</source> + <translation type="obsolete">0</translation> + </message> + <message> + <source>1</source> + <translation type="obsolete">1</translation> + </message> + <message> + <source>%1 on the <b>%2</b> page.</source> + <translation type="obsolete">%1 a la <b>%2</b> pà gina.</translation> + </message> + <message> + <source>2</source> + <translation type="obsolete">2</translation> + </message> + <message> + <source>3</source> + <translation type="obsolete">3</translation> + </message> + <message> + <source>4</source> + <translation type="obsolete">4</translation> + </message> + <message> + <source>5</source> + <translation type="obsolete">5</translation> + </message> + <message> + <source>6</source> + <translation type="obsolete">6</translation> + </message> + <message> + <source>7</source> + <translation type="obsolete">7</translation> + </message> + <message> + <source>8</source> + <translation type="obsolete">8</translation> + </message> + <message> + <source>9</source> + <translation type="obsolete">9</translation> + </message> + <message> + <source>Accepts (saves) changes and closes the dialog.</source> + <translation type="obsolete">Accepta (alça) els canvis i tanca el dià leg.</translation> + </message> + <message> + <source>Adapter %1</source> + <comment>network</comment> + <translation type="obsolete">Adaptador %1</translation> + </message> + <message> + <source>Add</source> + <translation type="obsolete">Afig</translation> + </message> + <message> + <source>Add Empty (Ins)</source> + <translation type="obsolete">Afig Buti (Ins)</translation> + </message> + <message> + <source>Add From (Alt+Ins)</source> + <translation type="obsolete">Afegeis des de (Alt+Ins)</translation> + </message> + <message> + <source>Adds a new host interface.</source> + <translation type="obsolete">Afig una nova interfÃcie amfitriona.</translation> + </message> + <message> + <source>Adds a new USB filter with all fields initially set to empty strings. Note that such a filter will match any attached USB device.</source> + <translation type="obsolete">Afig un nou filtre USB amb tots els camps inicialitzats a cadenes buides. Tingueu en compte que cada filtre ha de coincidir amb el dispositiu USB connectat.</translation> + </message> + <message> + <source>Adds a new USB filter with all fields set to the values of the selected USB device attached to the host PC.</source> + <translation type="obsolete">Afig un nou filtre USB amb tots els camps definits als valors del dispositiu USB seleccionat que es troba connectat al PC amfitrió.</translation> + </message> + <message> + <source>&Advanced</source> + <translation type="obsolete">&Avançat</translation> + </message> + <message> + <source>Alt+Ins</source> + <translation type="obsolete">Alt+Ins</translation> + </message> + <message> + <source>#audio</source> + <translation type="obsolete">#à udio</translation> + </message> + <message> + <source> Audio </source> + <translation type="obsolete">Àudio</translation> + </message> + <message> + <source>Authentication &Method </source> + <translation type="obsolete">&Mètode d'autenticació</translation> + </message> + <message> + <source>Authentication &Timeout </source> + <translation type="obsolete">&Temps d'autenticació excedit</translation> + </message> + <message> + <source>Base &Memory Size</source> + <translation type="obsolete">Mida de la &memòria RAM</translation> + </message> + <message> + <source>&Basic</source> + <translation type="obsolete">&Bà sic</translation> + </message> + <message> + <source>Boo&t Order</source> + <translation type="obsolete">&Orde d'inici</translation> + </message> + <message> + <source>Cancel</source> + <translation type="obsolete">Cancel·la</translation> + </message> + <message> + <source>Cancels changes and closes the dialog.</source> + <translation type="obsolete">Cancel·la els canvis i tanca el dià lig.</translation> + </message> + <message> + <source>Category</source> + <translation type="obsolete">Categoria</translation> + </message> + <message> + <source>CD/DVD image file is not selected</source> + <translation type="obsolete">No s'ha seleccionat cap imatge de CD/DVD</translation> + </message> + <message> + <source> CD/DVD-ROM </source> + <translation type="obsolete">CD/DVD-ROM</translation> + </message> + <message> + <source>Controls the amount of memory provided to the virtual machine. If you assign too much, the machine might not start.</source> + <translation type="obsolete">Controla la quantitat de memòria amb què es proveeix a la mà quina virtual. Si n'assigneu massa, pot ser que la mà quina no s'inicie.</translation> + </message> + <message> + <source>Controls the amount of video memory provided to the virtual machine.</source> + <translation type="obsolete">Controla la quantitat de memòria de vÃdeo amb què es proveeix a la mà quina virtual.</translation> + </message> + <message> + <source>Ctrl+Down</source> + <translation type="obsolete">Ctrl+Avall</translation> + </message> + <message> + <source>Ctrl+Up</source> + <translation type="obsolete">Ctrl+Amunt</translation> + </message> + <message> + <source>Selects which clipboard data will be copied between the guest and the host OS. This feature requires Guest Additions to be installed in the guest OS.</source> + <translation type="obsolete">Defineix el mode de compartició del porta-retalls entre el client i l'amfitrió. Tingueu en compte que esta caracterÃstica requereix tindre instal·lades les Guest Additions al sistema client.</translation> + </message> + <message> + <source>Defines the VRDP authentication method.</source> + <translation type="obsolete">Defineix el mode d'autenticació del VRDP.</translation> + </message> + <message> + <source>Del</source> + <translation type="obsolete">Supr</translation> + </message> + <message> + <source>&Description</source> + <translation type="obsolete">&Descripció</translation> + </message> + <message> + <source>Displays the description of the virtual machine. The description field is useful for commenting on configuration details of the installed guest OS.</source> + <translation type="obsolete">Mostra la descripció de la mà quina virtual. El camp de descripció és útil per comentar els detalls de configuració del sistema client instal·lat.</translation> + </message> + <message> + <source>Displays the dialog help.</source> + <translation type="obsolete">Mostra el dià leg d'ajuda.</translation> + </message> + <message> + <source>Displays the image file to mount to the virtual CD/DVD drive and allows to quickly select a different image.</source> + <translation type="obsolete">Mostra el fitxer d'imatge que es muntarà al dispositiu virtual de CD/DVD i permet seleccionar de forma rà pida una imatge diferent.</translation> + </message> + <message> + <source>Displays the image file to mount to the virtual Floppy drive and allows to quickly select a different image.</source> + <translation type="obsolete">Mostra el fitxer d'imatge que es muntarà al disquet virtual i permet seleccionar de forma rà pida una imatge diferent.</translation> + </message> + <message> + <source>Displays the name of the virtual machine.</source> + <translation type="obsolete">Mostra el nom de la mà quina virtual.</translation> + </message> + <message> + <source>Displays the operating system type that you plan to install into this virtual machine (called a guest operating system).</source> + <translation type="obsolete">Mostra el tipus de sistema operatiu que voleu instal·lar a dins d'esta mà quina virtual (anomenat sistema operatiu client).</translation> + </message> + <message> + <source>Displays the path where snapshots of this virtual machine will be stored. Be aware that snapshots can take quite a lot of disk space.</source> + <translation type="obsolete">Mostra la ruta on les captures d'esta mà quina virtual s'alçaran. Tingueu en compte que les captures poden ocupar prou quantitat d'espai al disc dur.</translation> + </message> + <message> + <source>Displays the virtual hard disk to attach to this IDE slot and allows to quickly select a different hard disk.</source> + <translation type="obsolete">Mostra el disc dur virtual per connectar esta ranura IDE i permet seleccionar rà pidament un disc dur diferent.</translation> + </message> + <message> + <source>Duplicate port number selected </source> + <translation type="obsolete">S'ha seleccionat un número de port duplicat</translation> + </message> + <message> + <source>Duplicate port path entered </source> + <translation type="obsolete">S'ha introduït una ruta de port duplicada</translation> + </message> + <message> + <source>Enable A&CPI</source> + <translation type="obsolete">Habilita A&CPI</translation> + </message> + <message> + <source>&Enable Audio</source> + <translation type="obsolete">H&abilita l'à udio</translation> + </message> + <message> + <source>Enable IO A&PIC</source> + <translation type="obsolete">Habilita IO A&PIC</translation> + </message> + <message> + <source>&Enable Passthrough</source> + <translation type="obsolete">&Habilita Passthrough</translation> + </message> + <message> + <source>Enable &USB Controller</source> + <translation type="obsolete">Habilita el controlador &USB</translation> + </message> + <message> + <source>&Enable VRDP Server</source> + <translation type="obsolete">Habilita &el servidor VRDP</translation> + </message> + <message> + <source>Enable &VT-x/AMD-V</source> + <translation type="obsolete">Habilita &VT-x/AMD-V </translation> + </message> + <message> + <source>Extended Features</source> + <translation type="obsolete">CaracterÃstiques avançades</translation> + </message> + <message> + <source>F1</source> + <translation type="obsolete">F1</translation> + </message> + <message> + <source> Floppy </source> + <translation type="obsolete">Disquet</translation> + </message> + <message> + <source>Floppy image file is not selected</source> + <translation type="obsolete">No s'ha seleccionat cap imatge de disquet</translation> + </message> + <message> + <source> General </source> + <translation type="obsolete">General</translation> + </message> + <message> + <source> Hard Disks </source> + <translation type="obsolete">Discos durs</translation> + </message> + <message> + <source>Help</source> + <translation type="obsolete">Ajuda</translation> + </message> + <message> + <source>Host Audio &Driver</source> + <translation type="obsolete">Controla&dor d'à udio de l'amfitrió</translation> + </message> + <message> + <source>Host CD/DVD &Drive</source> + <translation type="obsolete">Controla&dor de CD/DVD de l'amfitrió</translation> + </message> + <message> + <source>Host Floppy &Drive</source> + <translation type="obsolete">&Disquet de l'amfitrió</translation> + </message> + <message> + <source>Host &Interfaces</source> + <translation type="obsolete">&InterfÃcies de l'amfitrió</translation> + </message> + <message> + <source>[id]</source> + <translation type="obsolete">[id]</translation> + </message> + <message> + <source>&Identification</source> + <translation type="obsolete">&Identificació</translation> + </message> + <message> + <source>If checked, any change to mounted CD/DVD or Floppy media performed during machine execution will be saved in the settings file in order to preserve the configuration of mounted media between runs.</source> + <translation type="obsolete">Si està marcat, qualsevol canvi al CD/DVD o disquet muntat s'alçarà al fitxer de configuració per tal de preservar la configuració dels suports muntats entre cada execució de la mà quina virtual.</translation> + </message> + <message> + <source>&Image File</source> + <translation type="obsolete">Fitxer d'&imatge</translation> + </message> + <message> + <source>Incorrect host network interface is selected</source> + <translation type="obsolete">S'ha seleccionat una interfÃcie de xarxa de l'amfitrió incorrecta</translation> + </message> + <message> + <source>Ins</source> + <translation type="obsolete">Ins</translation> + </message> + <message> + <source>Invalid settings detected</source> + <translation type="obsolete">S'han detectat parà metres incorrectes</translation> + </message> + <message> + <source>Invokes the Virtual Disk Manager to create a new or select an existing virtual hard disk to attach.</source> + <translation type="obsolete">Invoca el Gestor de Disc Durs Virtuals per crear un de nou o seleccionar un disc dur existent per connectar.</translation> + </message> + <message> + <source>Invokes the Virtual Disk Manager to select a CD/DVD image to mount.</source> + <translation type="obsolete">Invoca el Gestor de Disc Durs Virtuals per seleccionar una imatge CD/DVD a muntar.</translation> + </message> + <message> + <source>Invokes the Virtual Disk Manager to select a Floppy image to mount.</source> + <translation type="obsolete">Invoca el Gestor de discos durs virtuals per seleccionar una imatge de disquet a muntar.</translation> + </message> + <message> + <source><i>Select a settings category from the list on the left-hand side and move the mouse over a settings item to get more information<i>.</source> + <translation type="obsolete"><i>Seleccioneu una categoria de configuració de la llista de l'esquerra i moveu el ratolà sobre l'Ãtem de parà metres per obtindre més informació</i>.</translation> + </message> + <message> + <source>&ISO Image File</source> + <translation type="obsolete">Fitxer d'imatge &ISO</translation> + </message> + <message> + <source>[link]</source> + <translation type="obsolete">[enllaç]</translation> + </message> + <message> + <source>Lists all available host interfaces.</source> + <translation type="obsolete">Mostra totes les interfÃcies de l'amfitrió disponibles.</translation> + </message> + <message> + <source>Lists all USB filters of this machine. The checkbox to the left defines whether the particular filter is enabled or not.</source> + <translation type="obsolete">Mostra tots els filtres USB d'esta mà quina. La casella de selecció de l'esquerra defineix si un filtre concret és habilitat o no.</translation> + </message> + <message> + <source>Lists host CD/DVD drives available to mount to the virtual machine.</source> + <translation type="obsolete">Mostra els dispositius de CD/DVD disponibles per muntar a la mà quina virtual.</translation> + </message> + <message> + <source>Lists host Floppy drives available to mount to the virtual machine.</source> + <translation type="obsolete">Mostra els dispositius de disquet disponibles per muntar a la mà quina virtual.</translation> + </message> + <message> + <source>MB</source> + <translation type="obsolete">MB</translation> + </message> + <message> + <source>&Mount CD/DVD Drive</source> + <translation type="obsolete">&Munta la unitat CD/DVD</translation> + </message> + <message> + <source>&Mount Floppy Drive</source> + <translation type="obsolete">&Munta el disquet</translation> + </message> + <message> + <source>Mounts the specified CD/DVD drive to the virtual CD/DVD drive.</source> + <translation type="obsolete">Munta el CD/DVD especificat al dispositiu virtual de CD/DVD.</translation> + </message> + <message> + <source>Mounts the specified CD/DVD image to the virtual CD/DVD drive.</source> + <translation type="obsolete">Munta la imatge de CD/DVD especificat al dispositiu virtual de CD/DVD.</translation> + </message> + <message> + <source>Mounts the specified Floppy image to the virtual Floppy drive.</source> + <translation type="obsolete">Munta el disquet especificat al dispositiu de disquet virtual.</translation> + </message> + <message> + <source>Mounts the specified host Floppy drive to the virtual Floppy drive.</source> + <translation type="obsolete">Munta el disquet especificat de l'amfitrió al dispositiu de disquet virtual.</translation> + </message> + <message> + <source>Move Down (Ctrl+Down)</source> + <translation type="obsolete">Mou avall (Ctrl+Avall)</translation> + </message> + <message> + <source>Moves the selected USB filter down.</source> + <translation type="obsolete">Mou el filtre USB seleccionat avall.</translation> + </message> + <message> + <source>Moves the selected USB filter up.</source> + <translation type="obsolete">Mou el filtre USB seleccionat amunt.</translation> + </message> + <message> + <source>Move Up (Ctrl+Up)</source> + <translation type="obsolete">Mou amunt (Ctrl+Amunt)</translation> + </message> + <message> + <source>[name]</source> + <translation type="obsolete">[nom]</translation> + </message> + <message> + <source>&Name</source> + <translation type="obsolete">&Nom</translation> + </message> + <message> + <source> Network </source> + <translation type="obsolete">Xarxa</translation> + </message> + <message> + <source>New Filter %1</source> + <comment>usb</comment> + <translation type="obsolete">Filtre nou %1</translation> + </message> + <message> + <source><No suitable interfaces></source> + <translation type="obsolete"><No hi ha cap interfÃcie funcional></translation> + </message> + <message> + <source><not attached></source> + <comment>hard disk</comment> + <translation type="obsolete"><no connectat></translation> + </message> + <message> + <source><not selected></source> + <translation type="obsolete"><no seleccionat></translation> + </message> + <message> + <source>&OK</source> + <translation type="obsolete">D'ac&ord</translation> + </message> + <message> + <source>OS &Type</source> + <translation type="obsolete">&Tipus de SO</translation> + </message> + <message> + <source>O&ther</source> + <translation type="obsolete">Al&tre</translation> + </message> + <message> + <source>Other &Settings</source> + <translation type="obsolete">Altre&s Parà metres</translation> + </message> + <message> + <source><p>Do you want to remove the selected host network interface <nobr><b>%1</b>?</nobr></p><p><b>Note:</b> This interface may be in use by one or more network adapters of this or another VM. After it is removed, these adapters will no longer work until you correct their settings by either choosing a different interface name or a different adapter attachment type.</p></source> + <translation type="obsolete"><p>Voleu suprimir la interfÃcie de xarxa <nobr><b>%1</b> seleccionada?</nobr></p><p><b>Nota:</b>Esta interfÃcie potser s'estiga fent servir per un o més adaptadors de xarxa d'esta o altra mà quina virtual. Després de suprimir-los, estos adaptadors no podran treballar fins que corregiu els parà metres triant un nom d'interfÃcie diferent o un tipus diferent d'adaptador.</p></translation> + </message> + <message> + <source>Port %1</source> + <comment>serial ports</comment> + <translation type="obsolete">Port %1</translation> + </message> + <message> + <source>&Primary Master</source> + <translation type="obsolete">&Primari Mestre</translation> + </message> + <message> + <source>Primary Master hard disk is not selected</source> + <translation type="obsolete">No s'ha seleccionat cap disc Primari Mestre</translation> + </message> + <message> + <source>P&rimary Slave</source> + <translation type="obsolete">P&rimari Esclau</translation> + </message> + <message> + <source>Primary Slave hard disk is already attached to a different slot</source> + <translation type="obsolete">El disc Primar Esclau ja està assignat a una ranura diferent</translation> + </message> + <message> + <source>Primary Slave hard disk is not selected</source> + <translation type="obsolete">No s'ha seleccionat el disc Primari Esclau</translation> + </message> + <message> + <source><qt>%1&nbsp;MB</qt></source> + <translation type="obsolete"><qt>%1&nbsp;Mb</qt></translation> + </message> + <message> + <source><qt>Controls the audio output driver. The <b>Null Audio Driver</b> +makes the guest see an audio card, however every access to it will be ignored.</qt></source> + <translation type="obsolete"><qt>Gestiona el controlador d'eixida de so. El <b>controlador d'à udio Nul</b> +fa que el client veja una tarjeta de so, però l'accés a ella s'ignorarà .</qt></translation> + </message> + <message> + <source><qt>Displays the VRDP Server port number. You may specify <tt>0</tt> (zero) to reset the port to the default value.</qt></source> + <translation type="obsolete"><qt>Mostra el nombre del port del Servidor VRDP. heu d'especificar <tt>0</tt> (cero) per reiniciar el port al valor per defecte.</qt></translation> + </message> + <message> + <source><qt>When checked, the virtual machine will support +the Advanced Configuration and Power Management Interface (ACPI). <b>Note:</b> don't disable +this feature after having installed a Windows guest operating system!</qt></source> + <translation type="obsolete"><qt>Quan estiga marcat, la mà quina virtual suportarà la Configuració Avançada i la InterfÃcie de Gestió de l'Energia (ACPI). <b>Nota:</b> no inhabiliteu esta caracterÃstica després d'haver instal·lat un Windows al sistema operatiu client!</qt></translation> + </message> + <message> + <source><qt>When checked, the virtual machine will support +the Input Output APIC (IO APIC), which may slightly decrease performance. <b>Note:</b> don't disable +this feature after having installed a Windows guest operating system!</qt></source> + <translation type="obsolete"><qt>Quan estiga marcat, la mà quina virtual suportarà +l'Entrada Eixida APIC (ES APIC), que pot disminuir el rendiment de la mà quina virtual. <b>Nota:</b> no inhabiliteu +esta caracterÃstica després d'haver instal·lat un Windows al sistema operatiu client!</qt></translation> + </message> + <message> + <source>&Remember Media Mounted at Runtime</source> + <translation type="obsolete">&Recorda els suports muntats en temps d'execució</translation> + </message> + <message> + <source> Remote Display </source> + <translation type="obsolete">Pantalla remota</translation> + </message> + <message> + <source>Remove</source> + <translation type="obsolete">Suprimeix</translation> + </message> + <message> + <source>Remove (Del)</source> + <translation type="obsolete">Suprimeix (Supr)</translation> + </message> + <message> + <source>Removes the selected host interface.</source> + <translation type="obsolete">Suprimeix la interfÃcie amfitriona seleccionada.</translation> + </message> + <message> + <source>Removes the selected USB filter.</source> + <translation type="obsolete">Suprimeix el filtre USB seleccionat.</translation> + </message> + <message> + <source>Reset</source> + <translation type="obsolete">Reinicialitza</translation> + </message> + <message> + <source>Resets the snapshot folder path to the default value. The actual default path will be displayed after accepting the changes and opening this dialog again.</source> + <translation type="obsolete">Reinicia la ruta de la carpeta de captures al valor per defecte. La ruta actual per defecte es mostrarà acceptant els canvis i obrint novament este dià leg.</translation> + </message> + <message> + <source>&Secondary (IDE 1) Slave</source> + <translation type="obsolete">&Secundari (IDE 1) Esclau</translation> + </message> + <message> + <source>Secondary Slave hard disk is already attached to a different slot</source> + <translation type="obsolete">El disc Secundari Esclau ja està connectat a una ranura diferent</translation> + </message> + <message> + <source>Secondary Slave hard disk is not selected</source> + <translation type="obsolete">No s'ha seleccionat cap disc Secondari Esclau</translation> + </message> + <message> + <source>Select</source> + <translation type="obsolete">Selecciona</translation> + </message> + <message> + <source>Selects the snapshot folder path.</source> + <translation type="obsolete">Selecciona la ruta de la carpeta de captures.</translation> + </message> + <message> + <source>#serialPorts</source> + <translation type="obsolete">#Portssèrie</translation> + </message> + <message> + <source> Serial Ports </source> + <translation type="obsolete">Ports Sèrie</translation> + </message> + <message> + <source>&Server Port </source> + <translation type="obsolete">Port del &Servidor</translation> + </message> + <message> + <source> - Settings</source> + <translation type="obsolete">- Parà metres</translation> + </message> + <message> + <source>&Shared Clipboard</source> + <translation type="obsolete">Porta-retall&s compartit</translation> + </message> + <message> + <source> Shared Folders </source> + <translation type="obsolete">Carpetes Compartides</translation> + </message> + <message> + <source>S&napshot Folder</source> + <translation type="obsolete">Carpeta de capture&s</translation> + </message> + <message> + <source>Specifies the timeout for guest authentication, in milliseconds.</source> + <translation type="obsolete">Especifica el temps d'espera per a la autenticació el client, en milisegons.</translation> + </message> + <message> + <source> USB </source> + <translation type="obsolete">USB</translation> + </message> + <message> + <source>USB Device &Filters</source> + <translation type="obsolete">&Filtres de dispositiu USB</translation> + </message> + <message> + <source>VBoxVMSettingsDlg</source> + <translation type="obsolete">VBoxVMSettingsDlg</translation> + </message> + <message> + <source>&Video Memory Size</source> + <translation type="obsolete">Mida de la memòria de &vÃdeo</translation> + </message> + <message> + <source>VirtualBox Host Interface %1</source> + <translation type="obsolete">InterfÃcie amfitriona %1 del VirtualBox</translation> + </message> + <message> + <source>When checked, allows the guest to send ATAPI commands directly to the host drive which makes it possible to use CD/DVD writers connected to the host inside the VM. Note that writing audio CD inside the VM is not yet supported.</source> + <translation type="obsolete">Quan estiga marcat, es permetrà al client enviar ordes ATAPI directament al controlador amfitrió, cosa que permet fer servir lectores de CD/DVD de l'amfitrió a dins de la mà quina virtual. Tingueu en compte que gravar CD's d'à udio a dins de la mà quina virtual encara no és suportat.</translation> + </message> + <message> + <source>When checked, attaches the specified virtual hard disk to the Master slot of the Primary IDE controller.</source> + <translation type="obsolete">Quan estiga marcat, es connectarà el disc virtual especificat a la ranura Mestre del controlador IDE primari.</translation> + </message> + <message> + <source>When checked, attaches the specified virtual hard disk to the Slave slot of the Primary IDE controller.</source> + <translation type="obsolete">Quan estiga marcat, es connectarà el disc virtual especificat a la ranura Esclau del controlador IDE primari.</translation> + </message> + <message> + <source>When checked, attaches the specified virtual hard disk to the Slave slot of the Secondary IDE controller.</source> + <translation type="obsolete">Quan estiga marcat, es connectarà el disc virtual especificat a la ranura Esclau del controlador IDE secundari.</translation> + </message> + <message> + <source>When checked, enables the virtual USB controller of this machine.</source> + <translation type="obsolete">Quan estiga es marcat, habilitarà el controlador virtual USB d'esta mà quina.</translation> + </message> + <message> + <source>When checked, mounts the specified media to the CD/DVD drive of the virtual machine. Note that the CD/DVD drive is always connected to the Secondary Master IDE controller of the machine.</source> + <translation type="obsolete">Quan estiga marcat, es muntarà el suport especificat al controlador CD/DVD de la mà quina virtual. Tingueu en compte que el controlador CD/DVD sempre està connectat al controlador Secundari Mestre IDE de la mà quina.</translation> + </message> + <message> + <source>When checked, mounts the specified media to the Floppy drive of the virtual machine.</source> + <translation type="obsolete">Quant estiga marcat, es muntarà el suport especificat al dispositiu de disquet de la mà quina virtual.</translation> + </message> + <message> + <source>When checked, the virtual machine will try to make use of the host CPU's hardware virtualization extensions such as Intel VT-x and AMD-V. The grayed checkbox state means that this setting is determined by the value of the global setting.</source> + <translation type="obsolete">Quan estiga marcat, la mà quina virtual provarà de fer servir les extensions de virtualització per maquinari de la CPU de l'amfitrió com Intel VT-x i AMD-V. L'estat grayed de la casella de selecció indica que este parà metre està determinat pel valor del parà metre global.</translation> + </message> + <message> + <source>When checked, a virtual PCI audio card will be plugged into the virtual machine and will communicate with the host audio system using the specified driver.</source> + <translation type="obsolete">Quan estiga marcat, la tarjeta de so PCI virtual es connectarà a dins de la mà quina virtual, la qual farà servir un controlador especÃfic per comunicar-se amb la tarjeta de so de l'amfitrió.</translation> + </message> + <message> + <source>When checked, the VM will act as a Remote Desktop Protocol (RDP) server, allowing remote clients to connect and operate the VM (when it is running) using a standard RDP client.</source> + <translation type="obsolete">Quan estiga marcat, la mà quina virtual actuarà com un servidor Remote Desktop Protocol (RDP), permetent als clients remots connectar la mà quina virtual (quan estiga executant-se) fent servir l'està ndard client RDP.</translation> + </message> + <message> + <source>00</source> + <translation type="obsolete">00</translation> + </message> + <message> + <source>01</source> + <translation type="obsolete">01</translation> + </message> + <message> + <source>02</source> + <translation type="obsolete">02</translation> + </message> + <message> + <source>03</source> + <translation type="obsolete">03</translation> + </message> + <message> + <source>04</source> + <translation type="obsolete">04</translation> + </message> + <message> + <source>05</source> + <translation type="obsolete">05</translation> + </message> + <message> + <source>08</source> + <translation type="obsolete">08</translation> + </message> + <message> + <source>10</source> + <translation type="obsolete">10</translation> + </message> + <message> + <source>09</source> + <translation type="obsolete">09</translation> + </message> + <message> + <source>06</source> + <translation type="obsolete">06</translation> + </message> + <message> + <source> Parallel Ports </source> + <translation type="obsolete">Ports Paral·lels</translation> + </message> + <message> + <source>07</source> + <translation type="obsolete">07</translation> + </message> + <message> + <source>#parallelPorts</source> + <translation type="obsolete">#Porsparal·lels</translation> + </message> + <message> + <source>Enable PA&E/NX</source> + <translation type="obsolete">Habilita PA&E/NX</translation> + </message> + <message> + <source><qt>When + checked, the Physical + Address Extension + (PAE) feature of the + host CPU will be + exposed to the virtual + machine.</qt> + </source> + <translation type="obsolete"><qt>Quan +estigui marcat, la +caracterÃstica d'Extensió +d'Adreça FÃsica (PAE) +de la CPU del sistema +client s'exposarà a la +mà quina virtual.</qt></translation> + </message> + <message> + <source>&IDE Controller Type</source> + <translation type="obsolete">T&ipus de controlador IDE</translation> + </message> + <message> + <source>Defines the type of the virtual IDE controller. Depending on this value, VirtualBox will provide different virtual IDE hardware devices to the guest OS.</source> + <translation type="obsolete">Defineix el tipus del controlador virtual IDE. Segons este valor, VirtualBox proveirà diferents dispositius de maquinari IDE virtual per al sistema client.</translation> + </message> + <message> + <source>Audio &Controller</source> + <translation type="obsolete">&Controlador d'à udio</translation> + </message> + <message> + <source>Selects the type of the virtual sound card. Depending on this value, VirtualBox will provide different audio hardware to the virtual machine.</source> + <translation type="obsolete">Selecciona el tipus de la targeta de so virtual. Segons este valor, VirtualBox proveirà diferents dispositius de maquinari de so per al sistema client.</translation> + </message> + <message> + <source>Enable USB &2.0 Controller</source> + <translation type="obsolete">Habilita el controlador USB &2.0</translation> + </message> + <message> + <source>When checked, enables the virtual USB EHCI controller of this machine. The USB EHCI controller provides USB 2.0 support.</source> + <translation type="obsolete">Quan estiga marcat, s'habilitarà el controlador virtual USB EHCI per a esta mà quina. El controlador USB EHCI proveeix de suport USB 2.0.</translation> + </message> + <message> + <source> + <qt>Lists all USB filters of + this machine. The checkbox to the + left defines whether the + particular filter is enabled or + not. Use the context menu or + buttons to the right to add or + remove USB filters.</qt> + </source> + <translation type="obsolete"> +<qt>Llista tots els filtres USB +d'esta mà quina. La casella de +seleccióde la dreta defineix què +filtre concret està activat o no. Feu +servir el menú de context o +els botons de la dreta per +afegir o eliminar filtres USB.</qt></translation> + </message> + <message> + <source>Add Empty Filter</source> + <translation type="obsolete">&Afig un filtre buit</translation> + </message> + <message> + <source>&Add Empty Filter</source> + <translation type="obsolete">&Afig un filtre buit</translation> + </message> + <message> + <source> + <qt>Adds a new USB filter with all fields initially set to + empty strings. Note that such a filter will match any attached USB + device.</qt> + </source> + <translation type="obsolete"><qt>Afig un nou filtre USB amb tots els camps fixats com +a cadenes buides. Tingueu en compte que els filtres coincidiran +amb qualsevol dispositiu USB connectat.</qt></translation> + </message> + <message> + <source>Add Filter From Device</source> + <translation type="obsolete">Afig un filtre des d'un dispositiu</translation> + </message> + <message> + <source>A&dd Filter From Device</source> + <translation type="obsolete">Afig un filtre des d'un &dispositiu</translation> + </message> + <message> + <source><qt>Adds a new USB filter with all fields set to the + values of the selected USB device attached to the host + PC.</qt> + </source> + <translation type="obsolete"><qt>Afig un nou filtre USB amb tots els camps +fixats als valors del dispositu USB seleccionat connectat +al sistema amfitrió.</qt></translation> + </message> + <message> + <source>Remove Filter</source> + <translation type="obsolete">Elimina el filtre</translation> + </message> + <message> + <source>&Remove Filter</source> + <translation type="obsolete">Elimina el filt&re</translation> + </message> + <message> + <source> + <qt>Removes the highlighted USB filter.</qt> + </source> + <translation type="obsolete"><qt>Elimina el filtre USB remarcat.</qt></translation> + </message> + <message> + <source>Move Filter Up</source> + <translation type="obsolete">Mou el filtre amunt</translation> + </message> + <message> + <source>&Move Filter Up</source> + <translation type="obsolete">&Mou el filtre amunt</translation> + </message> + <message> + <source> + <qt>Moves the highlighted USB filter up.</qt> + </source> + <translation type="obsolete"><qt>Mou el filtre USB remarcat amunt.</qt></translation> + </message> + <message> + <source>Move Filter Down</source> + <translation type="obsolete">Mou el filtre avall</translation> + </message> + <message> + <source>M&ove Filter Down</source> + <translation type="obsolete">M&ou el filtre avall</translation> + </message> + <message> + <source> + <qt>Moves the highlighted USB filter down.</qt> + </source> + <translation type="obsolete"><qt>Mou el filtre USB remarcat avall.</qt></translation> + </message> + <message> + <source>Internal network name is not set</source> + <translation type="obsolete">No s'ha especificat un nom de xarxa intern</translation> + </message> + <message> + <source>Port path not specified </source> + <translation type="obsolete">No s'ha especificat una ruta al port</translation> + </message> + <message> + <source>Port %1</source> + <comment>parallel ports</comment> + <translation type="obsolete">Port %1</translation> + </message> + <message> + <source>USBActionGroup</source> + <translation type="obsolete">USBAccióGrup</translation> + </message> + <message> + <source>General</source> + <translation>General</translation> + </message> + <message> + <source>Storage</source> + <translation>Emmagatzematge</translation> + </message> + <message> + <source>Hard Disks</source> + <translation>Discos durs</translation> + </message> + <message> + <source>CD/DVD-ROM</source> + <translation>CD/DVD</translation> + </message> + <message> + <source>Floppy</source> + <translation>Disquet</translation> + </message> + <message> + <source>Audio</source> + <translation>Àudio</translation> + </message> + <message> + <source>Network</source> + <translation>Xarxa</translation> + </message> + <message> + <source>Ports</source> + <translation>Ports</translation> + </message> + <message> + <source>Serial Ports</source> + <translation>Ports en sèrie</translation> + </message> + <message> + <source>Parallel Ports</source> + <translation>Ports paral·lels</translation> + </message> + <message> + <source>USB</source> + <translation>USB</translation> + </message> + <message> + <source>Shared Folders</source> + <translation>Carpetes compartides</translation> + </message> + <message> + <source>Remote Display</source> + <translation type="obsolete">Pantalla remota</translation> + </message> + <message> + <source>%1 - %2</source> + <translation>%1 - %2</translation> + </message> + <message> + <source>On the <b>%1</b> page, %2</source> + <translation type="obsolete">A la <b>%1</b> pà gina, %2</translation> + </message> + <message> + <source>System</source> + <translation>Sistema</translation> + </message> + <message> + <source>Display</source> + <translation>Pantalla</translation> + </message> + <message> + <source>you have selected a 64-bit guest OS type for this VM. As such guests require hardware virtualization (VT-x/AMD-V), this feature will be enabled automatically.</source> + <translation>heu seleccionat un tipus de sistema client de 64 bits. Amb estos tipus de clients es requereix maquinari de virtualització (VT-x/AMD-V), esta caracterÃstica s'activarà automà ticament.</translation> + </message> + <message> + <source>you have selected a 64-bit guest OS type for this VM. VirtualBox does not currently support more than one virtual CPU for 64-bit guests executed on 32-bit hosts.</source> + <translation>heu seleccionat un tipus de sistema client de 64 bits. VirtualBox no suporta actualment més d'una CPU virtual per a clients de 64 bits executats en amfitrions de 32 bits.</translation> + </message> + <message> + <source>you have 2D Video Acceleration enabled. As 2D Video Acceleration is supported for Windows guests only, this feature will be disabled.</source> + <translation>l'acceleració 2D està activada. Com que l'acceleració 2D només està suportada per clients Windows, es desactivarà este parà metre.</translation> + </message> +</context> +<context> + <name>VBoxVMSettingsFD</name> + <message> + <source>Host floppy drive is not selected</source> + <translation type="obsolete">No s'ha seleccionat cap disquet a l'amfitrió</translation> + </message> + <message> + <source>Floppy image file is not selected</source> + <translation type="obsolete">No s'ha seleccionat cap imatge de disquet</translation> + </message> + <message> + <source>When checked, mounts the specified media to the Floppy drive of the virtual machine.</source> + <translation type="obsolete">Quant estiga marcat, muntarà el suport especificat al dispositiu de disquet de la mà quina virtual.</translation> + </message> + <message> + <source>&Mount Floppy Drive</source> + <translation type="obsolete">&Munta el disquet</translation> + </message> + <message> + <source>Mounts the specified host Floppy drive to the virtual Floppy drive.</source> + <translation type="obsolete">Munta el disquet especificat de l'amfitrió al dispositiu de disquet virtual.</translation> + </message> + <message> + <source>Host Floppy &Drive</source> + <translation type="obsolete">&Disquet de l'amfitrió</translation> + </message> + <message> + <source>Lists host Floppy drives available to mount to the virtual machine.</source> + <translation type="obsolete">Mostra els dispositius de disquet disponibles per muntar a la mà quina virtual.</translation> + </message> + <message> + <source>Mounts the specified Floppy image to the virtual Floppy drive.</source> + <translation type="obsolete">Munta el disquet especificat al dispositiu de disquet virtual.</translation> + </message> + <message> + <source>&Image File</source> + <translation type="obsolete">Fitxer d'&imatge</translation> + </message> + <message> + <source>Displays the image file to mount to the virtual Floppy drive and allows to quickly select a different image.</source> + <translation type="obsolete">Mostra el fitxer d'imatge que es muntarà al disquet virtual i permet seleccionar de forma rà pida una imatge diferent.</translation> + </message> + <message> + <source>Invokes the Virtual Disk Manager to select a Floppy image to mount.</source> + <translation type="obsolete">Invoca el Gestor de discos durs virtuals per seleccionar una imatge de disquet a muntar.</translation> + </message> + <message> + <source>Invokes the Virtual Media Manager to select a Floppy image to mount.</source> + <translation type="obsolete">Invoca el gestor de discos durs virtuals per seleccionar una imatge de disquet a muntar.</translation> + </message> +</context> +<context> + <name>VBoxVMSettingsGeneral</name> + <message> + <source>you have assigned more than <b>%1%</b> of your computer's memory (<b>%2</b>) to the virtual machine. Not enough memory is left for your host operating system. Please select a smaller amount.</source> + <translation type="obsolete">heu assignat més d'un <b>%1%</b> de la memòria del vostre ordinador (<b>%2</b>) a la mà quina virtual. No heu deixat suficient memòria al sistema amfitrió. Seleccineu un percentatge menor.</translation> + </message> + <message> + <source>you have assigned more than <b>%1%</b> of your computer's memory (<b>%2</b>) to the virtual machine. There might not be enough memory left for your host operating system. Continue at your own risk.</source> + <translation type="obsolete">heu assignat més d'un <b>%1%</b> de la memòria del vostre ordinador (<b>%2</b>) a la mà quina virtual. No heu deixat suficient memòria al sistema amfitrió. Contineu pel vostre compte (no recomanable).</translation> + </message> + <message> + <source>there is a 64 bits guest OS type assigned for this VM, which requires virtualization feature (VT-x/AMD-V) to be enabled too, else your guest will fail to detect a 64 bits CPU and will not be able to boot, so this feature will be enabled automatically when you'll accept VM Settings by pressing OK button.</source> + <translation type="obsolete">existeix un sistema client de 64 bits assignat a esta mà quina virtual que requereix tindre habilitada la caracterÃstica de virtualització (VT-x/AMD-V). El vostre sistema client fallarà al detectar una CPU de 64 bits i no podrà iniciar-se, per la qual cosa esta caracterÃstica s'habilitarà per defecte quan accepteu els parà metres de la mà quina virtual prement el botó D'acord.</translation> + </message> + <message> + <source><qt>%1&nbsp;MB</qt></source> + <translation type="obsolete"><qt>%1&nbsp;MB</qt></translation> + </message> + <message> + <source>Displays the path where snapshots of this virtual machine will be stored. Be aware that snapshots can take quite a lot of disk space.</source> + <translation>Mostra la ruta on les captures d'esta mà quina virtual s'alçaran. Tingueu en compte que les captures poden ocupar prou quantitat d'espai al disc dur.</translation> + </message> + <message> + <source>&Basic</source> + <translation>&Bà sic</translation> + </message> + <message> + <source>Identification</source> + <translation type="obsolete">Identificació</translation> + </message> + <message> + <source>&Name:</source> + <translation>&Nom:</translation> + </message> + <message> + <source>Displays the name of the virtual machine.</source> + <translation>Mostra el nom de la mà quina virtual.</translation> + </message> + <message> + <source>OS &Type:</source> + <translation type="obsolete">&Tipus de SO:</translation> + </message> + <message> + <source>Displays the operating system type that you plan to install into this virtual machine (called a guest operating system).</source> + <translation type="obsolete">Mostra el tipus de sistema operatiu que voleu instal·lar a dins d'esta mà quina virtual (anomenat sistema operatiu client).</translation> + </message> + <message> + <source>Base &Memory Size</source> + <translation type="obsolete">Mida de la &memòria base</translation> + </message> + <message> + <source>Controls the amount of memory provided to the virtual machine. If you assign too much, the machine might not start.</source> + <translation type="obsolete">Controla la quantitat de memòria amb què es proveeix a la mà quina virtual. Si n'assigneu massa, pot ser que la mà quina no s'inicie.</translation> + </message> + <message> + <source><</source> + <translation type="obsolete"><</translation> + </message> + <message> + <source>></source> + <translation type="obsolete">></translation> + </message> + <message> + <source>MB</source> + <translation type="obsolete">MB</translation> + </message> + <message> + <source>&Video Memory Size</source> + <translation type="obsolete">Mida de la memòria de &vÃdeo</translation> + </message> + <message> + <source>Controls the amount of video memory provided to the virtual machine.</source> + <translation type="obsolete">Controla la quantitat de memòria de vÃdeo amb què es proveeix a la mà quina virtual.</translation> + </message> + <message> + <source>&Advanced</source> + <translation>&Avançat</translation> + </message> + <message> + <source>Boo&t Order:</source> + <translation type="obsolete">&Orde d'inici:</translation> + </message> + <message> + <source>Defines the boot device order. Use the checkboxes on the left to enable or disable individual boot devices. Move items up and down to change the device order.</source> + <translation type="obsolete">Defineix l'orde dels dispositius d'arrencada. Useu les caselles de selecció a l'esquerra per activar o desactivar els dispositius d'arrencada individuals. Moveu els elements amunt i avall per a canviar l'orde dels dispositius.</translation> + </message> + <message> + <source>[device]</source> + <translation type="obsolete">[dispositiu]</translation> + </message> + <message> + <source>Move Up (Ctrl-Up)</source> + <translation type="obsolete">Mou amunt (Ctrl+Fletxa amunt)</translation> + </message> + <message> + <source>Moves the selected boot device up.</source> + <translation type="obsolete">Mou amunt el dispositiu d'arrecada seleccionat.</translation> + </message> + <message> + <source>Move Down (Ctrl-Down)</source> + <translation type="obsolete">Mou avall (Ctrl+Fletxa avall)</translation> + </message> + <message> + <source>Moves the selected boot device down.</source> + <translation type="obsolete">Mou avall el dispositiu d'arrencada seleccionat.</translation> + </message> + <message> + <source>Extended Features:</source> + <translation type="obsolete">CaracterÃstiques avançades:</translation> + </message> + <message> + <source>When checked, the virtual machine will support the Advanced Configuration and Power Management Interface (ACPI). <b>Note:</b> don't disable this feature after having installed a Windows guest operating system!</source> + <translation type="obsolete">Quan estiga marcat, la mà quina virtual suportarà la configuració avançada i la interfÃcie de gestió de l'energia (ACPI). <b>Nota:</b> no inhabiliteu esta caracterÃstica després d'haver instal·lat un Windows al sistema operatiu client!</translation> + </message> + <message> + <source>Enable A&CPI</source> + <translation type="obsolete">Habilita A&CPI</translation> + </message> + <message> + <source>When checked, the virtual machine will support the Input Output APIC (IO APIC), which may slightly decrease performance. <b>Note:</b> don't disable this feature after having installed a Windows guest operating system!</source> + <translation type="obsolete">Quan estiga marcat, la mà quina virtual suportarà l'entrada/eixida APIC (ES APIC), que pot reduir el rendiment de la mà quina virtual. <b>Nota:</b> no inhabiliteu esta caracterÃstica després d'haver instal·lat un Windows al sistema operatiu client!</translation> + </message> + <message> + <source>Enable IO A&PIC</source> + <translation type="obsolete">Habilita IO A&PIC</translation> + </message> + <message> + <source>When checked, the virtual machine will try to make use of the host CPU's hardware virtualization extensions such as Intel VT-x and AMD-V.</source> + <translation type="obsolete">Quan estiga marcat, l'aplicació tractarà de fer ús del processador de l'amfitrió per habilitar extensions com Intel VT-x i AMD-V.</translation> + </message> + <message> + <source>Enable &VT-x/AMD-V</source> + <translation type="obsolete">Activa &VT-x/AMD-V</translation> + </message> + <message> + <source>When checked, the virtual machine will try to make use of the nested paging extension of Intel VT-x and AMD-V.</source> + <translation type="obsolete">Quan estiga marcat, la mà quina virtual provarà de fer ús de l'extensió de paginació imbricada d'intel VT-x i AMD-V.</translation> + </message> + <message> + <source>Enable Nested Pa&ging</source> + <translation type="obsolete">Activa la pa&ginació imbricada</translation> + </message> + <message> + <source>When checked, the Physical Address Extension (PAE) feature of the host CPU will be exposed to the virtual machine.</source> + <translation type="obsolete">Quan estiga marcat, la caracterÃstica d'extensió d'adreça fÃsica (PAE) del processador de l'amfitrió s'exposarà a la mà quina virtual.</translation> + </message> + <message> + <source>Enable PA&E/NX</source> + <translation type="obsolete">Habilita PA&E/NX</translation> + </message> + <message> + <source>&Shared Clipboard:</source> + <translation>Porta-retall&s compartit:</translation> + </message> + <message> + <source>Selects which clipboard data will be copied between the guest and the host OS. This feature requires Guest Additions to be installed in the guest OS.</source> + <translation>Defineix el mode de compartició del porta-retalls entre el client i l'amfitrió. Tingueu en compte que esta caracterÃstica requereix tindre instal·lades les Guest Additions al sistema client.</translation> + </message> + <message> + <source>Defines the type of the virtual IDE controller. Depending on this value, VirtualBox will provide different virtual IDE hardware devices to the guest OS.</source> + <translation type="obsolete">Defineix el tipus del controlador virtual IDE. Segons este valor, VirtualBox proveirà diferents dispositius de maquinari IDE virtual per al sistema client.</translation> + </message> + <message> + <source>&IDE Controller Type:</source> + <translation type="obsolete">T&ipus de controlador IDE:</translation> + </message> + <message> + <source>S&napshot Folder:</source> + <translation>Carpeta de capture&s:</translation> + </message> + <message> + <source>&Description</source> + <translation>&Descripció</translation> + </message> + <message> + <source>Displays the description of the virtual machine. The description field is useful for commenting on configuration details of the installed guest OS.</source> + <translation>Mostra la descripció de la mà quina virtual. El camp de descripció és útil per comentar els detalls de configuració del sistema client instal·lat.</translation> + </message> + <message> + <source>&Other</source> + <translation type="obsolete">Al&tre</translation> + </message> + <message> + <source>If checked, any change to mounted CD/DVD or Floppy media performed during machine execution will be saved in the settings file in order to preserve the configuration of mounted media between runs.</source> + <translation>Si està marcat, qualsevol canvi al CD/DVD o disquet muntat s'alçarà al fitxer de configuració per tal de preservar la configuració dels suports muntats entre cada execució de la mà quina virtual.</translation> + </message> + <message> + <source>&Remember Mounted Media</source> + <translation type="obsolete">&Recorda els suports muntats</translation> + </message> + <message> + <source>Runtime:</source> + <translation type="obsolete">Temps d'execució:</translation> + </message> + <message> + <source>you have assigned more than <b>75%</b> of your computer's memory (<b>%1</b>) to the virtual machine. Not enough memory is left for your host operating system. Please select a smaller amount.</source> + <translation type="obsolete">heu assignat més del <b>75%</b> de la memòria del vostre ordinador (<b>%1</b>) per a la mà quina virtual. D'esta manera no es deixa la suficient memòria per al sistema amfitrió. Seleccioneu una quantitat de memòria inferior.</translation> + </message> + <message> + <source>you have assigned more than <b>50%</b> of your computer's memory (<b>%1</b>) to the virtual machine. There might not be enough memory left for your host operating system. Continue at your own risk.</source> + <translation type="obsolete">heu assignat més del <b>50%</b> de la memòria del vostre ordinador (<b>%1</b>) per a la mà quina virtual. D'esta manera no es deixa la suficient memòria per al sistema amfitrió. Contineu pel vostre compte (no recomanable).</translation> + </message> + <message> + <source>you have assigned less than <b>%1</b> of video memory which is the minimum amount required to switch the virtual machine to fullscreen or seamless mode.</source> + <translation type="obsolete">heu assignat menys de l'<b>%1</b> per a la memòria de vÃdeo, que és el mÃnim necessari per arrencar el sistema client en mode de pantalla completa o fluid.</translation> + </message> + <message> + <source>When checked, the virtual machine will be given access to the 3D graphics capabilities available on the host.</source> + <translation type="obsolete">Quan estiga marcat, la mà quina virtual permetrà l'accés als grà fics 3D disponibles a l'amfitrió.</translation> + </message> + <message> + <source>Enable &3D Acceleration</source> + <translation type="obsolete">Activa l'acceleració &3D</translation> + </message> + <message> + <source>Removable Media:</source> + <translation>Suports extraïbles:</translation> + </message> + <message> + <source>&Remember Runtime Changes</source> + <translation>&Recorda els canvis en execució</translation> + </message> + <message> + <source>Mini ToolBar:</source> + <translation>Barra d'eines mini:</translation> + </message> + <message> + <source>If checked, show the Mini ToolBar in Fullscreen and Seamless modes.</source> + <translation>Si està marcat, mostra la barra d'eines mini als modes fluid i de pantalla completa.</translation> + </message> + <message> + <source>Show In &Fullscreen/Seamless</source> + <translation>Mostra en pantalla completa/&fluid</translation> + </message> + <message> + <source>If checked, show the Mini ToolBar at the top of the screen, rather than in its default position at the bottom of the screen.</source> + <translation>Si està marcat, mostra una barra d'eines petita a la part de dalt de la pantalla en lloc d'a la posició per defecte a la part de sota.</translation> + </message> + <message> + <source>Show At &Top Of Screen</source> + <translation>Mostra a la par&t de dalt de la pantalla</translation> + </message> +</context> +<context> + <name>VBoxVMSettingsHD</name> + <message> + <source>No hard disk is selected for <i>%1</i></source> + <translation type="obsolete">No s'ha seleccionat cap disc dur per <i>%1</i></translation> + </message> + <message> + <source><i>%1</i> uses the hard disk that is already attached to <i>%2</i></source> + <translation type="obsolete"><i>%1</i> fa servir el disc dur que es troba connectat a <i>%2</i></translation> + </message> + <message> + <source>&Add Attachment</source> + <translation type="obsolete">&Afig una adjunció</translation> + </message> + <message> + <source>&Remove Attachment</source> + <translation type="obsolete">&Elimina una adjució</translation> + </message> + <message> + <source>&Select Hard Disk</source> + <translation type="obsolete">&Seleccioneu un disc dur</translation> + </message> + <message> + <source>Adds a new hard disk attachment.</source> + <translation type="obsolete">Afig una nova adjunció de disc dur.</translation> + </message> + <message> + <source>Removes the highlighted hard disk attachment.</source> + <translation type="obsolete">Elimina l'adjunció de disc dur remarcada.</translation> + </message> + <message> + <source>Invokes the Virtual Disk Manager to select a hard disk to attach to the currently highlighted slot.</source> + <translation type="obsolete">Invoca el Gestor de Disc Durs Virtuals per crear un de nou o seleccionar un disc dur existent per connectar.</translation> + </message> + <message> + <source>When checked, enables the virtual SATA controller of this machine. Note that you cannot attach hard disks to SATA ports when the virtual SATA controller is disabled.</source> + <translation type="obsolete">Quan estiga marcat, s'habilitarà el controlador virtual SATA per a esta mà quina. Tingueu en compte que no podeu connectar discos durs a ports SATA quan el controlador SATA no és actiu.</translation> + </message> + <message> + <source>&Enable SATA Controller</source> + <translation type="obsolete">Habilita &el controlador SATA</translation> + </message> + <message> + <source>When checked, enables an additional virtual controller (either SATA or SCSI) of this machine.</source> + <translation type="obsolete">Quan estiga marcat, habilitarà un controlador virtual addicional (SATA o SCSI) per a esta mà quina.</translation> + </message> + <message> + <source>&Enable Additional Controller</source> + <translation type="obsolete">&Activa el controlador addicional</translation> + </message> + <message> + <source>&Attachments</source> + <translation type="obsolete">&Adjuncions</translation> + </message> + <message> + <source>Lists all hard disks attached to this machine. Use a mouse click or the <tt>Space</tt> key on the highlighted item to activate the drop-down list and choose the desired value. Use the context menu or buttons to the right to add or remove hard disk attachments.</source> + <translation type="obsolete">Mostra els discos durs connectats a esta mà quina. Feu servir el clic de ratolà o la tecla <tt>espai</tt> a l'Ãtem remarcat per activar la llista deslplegable i seleccionar el valor desitjat. Feu servir el menú de context o els botons de la dreta per afegir o suprimir discos durs connectats.</translation> + </message> + <message> + <source>Invokes the Virtual Media Manager to select a hard disk to attach to the currently highlighted slot.</source> + <translation type="obsolete">Invoca el gestor de suports virtuals per crear un de nou o seleccionar un disc dur existent per connectar-lo a la ranura remarcada.</translation> + </message> + <message> + <source>If checked, shows the differencing hard disks that are attached to slots rather than their base hard disks (shown for indirect attachments) and allows explicit attaching of differencing hard disks. Check this only if you need a complex hard disk setup.</source> + <translation>Si està marcat, mostrarà de forma diferenciada els discos durs connectats a les ranures en lloc d'als discos durs base (mostrat en cas d'adjuncions indirectes), a més permetrà connectar altres discos durs explÃcitament. Marqueu això només si necessiteu una configuració complexa del disc dur.</translation> + </message> + <message> + <source>&Show Differencing Hard Disks</source> + <translation type="obsolete">Mo&stra els discos durs diferenciats</translation> + </message> + <message> + <source>IDE &Controller Type</source> + <translation type="obsolete">Tipus de &controlador IDE</translation> + </message> + <message> + <source>Defines the type of the virtual IDE controller. Depending on this value, VirtualBox will provide different virtual IDE hardware devices to the guest OS.</source> + <translation type="obsolete">Defineix el tipus del controlador virtual IDE. Segons este valor, VirtualBox proveirà diferents dispositius de maquinari IDE virtual per al sistema client.</translation> + </message> + <message> + <source><nobr><b>%1</b></nobr><br><nobr>Bus:&nbsp;&nbsp;%2</nobr><br><nobr>Type:&nbsp;&nbsp;%3</nobr></source> + <translation><nobr><b>%1</b></nobr><br><nobr>Bus:&nbsp;&nbsp;%2</nobr><br><nobr>Tipus:&nbsp;&nbsp;%3</nobr></translation> + </message> + <message> + <source><nobr>Expand/Collapse&nbsp;Item</nobr></source> + <translation><nobr>Expandeix/redueix&nbsp;element</nobr></translation> + </message> + <message> + <source><nobr>Add&nbsp;Hard&nbsp;Disk</nobr></source> + <translation><nobr>Afig&nbsp;disc&nbsp;dur</nobr></translation> + </message> + <message> + <source><nobr>Add&nbsp;CD/DVD&nbsp;Device</nobr></source> + <translation><nobr>Afig&nbsp;dispositiu&nbsp;CD/DVD</nobr></translation> + </message> + <message> + <source><nobr>Add&nbsp;Floppy&nbsp;Device</nobr></source> + <translation><nobr>Afig&nbsp;disquetera</nobr></translation> + </message> + <message> + <source>No hard disk is selected for <i>%1</i>.</source> + <translation>No hi ha cap disc dur seleccionat per a <i>%1</i>.</translation> + </message> + <message> + <source><i>%1</i> uses a medium that is already attached to <i>%2</i>.</source> + <translation><i>%1</i> utilitza un suport que ja està connectat a <i>%2</i>.</translation> + </message> + <message> + <source>Add Controller</source> + <translation>Afig mòdul</translation> + </message> + <message> + <source>Add IDE Controller</source> + <translation>Afig mòdul IDE</translation> + </message> + <message> + <source>Add SATA Controller</source> + <translation>Afig mòdul SATA</translation> + </message> + <message> + <source>Add SCSI Controller</source> + <translation>Afig mòdul SCSI</translation> + </message> + <message> + <source>Add Floppy Controller</source> + <translation>Afig mòdul de disquetera</translation> + </message> + <message> + <source>Remove Controller</source> + <translation>Suprimeix el mòdul</translation> + </message> + <message> + <source>Add Attachment</source> + <translation>Afig una adjunció</translation> + </message> + <message> + <source>Add Hard Disk</source> + <translation>Afig disc dur</translation> + </message> + <message> + <source>Add CD/DVD Device</source> + <translation>Afig dispositiu CD/DVD</translation> + </message> + <message> + <source>Add Floppy Device</source> + <translation>Afig disquetera</translation> + </message> + <message> + <source>Remove Attachment</source> + <translation>Elimina l'adjunció</translation> + </message> + <message> + <source>Adds a new controller to the end of the Storage Tree.</source> + <translation>Afig un nou controlador al final de l'Arbre d'emmagatzematge.</translation> + </message> + <message> + <source>Removes the controller highlighted in the Storage Tree.</source> + <translation>Elimina el controlador realçat de l'Arbre d'emmagatzematge.</translation> + </message> + <message> + <source>Adds a new attachment to the Storage Tree using currently selected controller as parent.</source> + <translation>Afig una nova adjunció a l'Arbre d'emmagatzematge fent servir el controlador seleccionat actualment com a pare.</translation> + </message> + <message> + <source>Removes the attachment highlighted in the Storage Tree.</source> + <translation>Elimina l'adjunció realçada a l'Arbre d'emmagatzematge.</translation> + </message> + <message> + <source>IDE Controller</source> + <translation>Mòdul IDE</translation> + </message> + <message> + <source>SATA Controller</source> + <translation>Mòdul SATA</translation> + </message> + <message> + <source>SCSI Controller</source> + <translation>Mòdul SCSI</translation> + </message> + <message> + <source>Floppy Controller</source> + <translation>Mòdul de disquet</translation> + </message> + <message> + <source>Hard &Disk:</source> + <translation>&Disc dur:</translation> + </message> + <message> + <source>&CD/DVD Device:</source> + <translation>Dispositiu &CD/DVD:</translation> + </message> + <message> + <source>&Floppy Device:</source> + <translation>&Disquetera:</translation> + </message> + <message> + <source>&Storage Tree</source> + <translation>&Arbre d'emmagatzematge</translation> + </message> + <message> + <source>Contains all storage controllers for this machine and the virtual images and host drives attached to them.</source> + <translation>Conté tots els controladors per a esta mà quina i les imatges virtual i controladors d'amfitrió connectats a elles.</translation> + </message> + <message> + <source>Information</source> + <translation>Informació</translation> + </message> + <message> + <source>The Storage Tree can contain several controllers of different types. This machine currently has no controllers.</source> + <translation>L'Arbre d'emmagatzematge pot contindre molts controladors de diferents tipus. Esta mà quina encara no té cap controlador.</translation> + </message> + <message> + <source>Attributes</source> + <translation>Atributs</translation> + </message> + <message> + <source>&Name:</source> + <translation>&Nom:</translation> + </message> + <message> + <source>Changes the name of the storage controller currently selected in the Storage Tree.</source> + <translation>Canvia el nom del controlador d'emmagatzematge actualment seleccionat a l'Arbre d'emmagatzematge.</translation> + </message> + <message> + <source>&Type:</source> + <translation>&Tipus:</translation> + </message> + <message> + <source>Selects the sub-type of the storage controller currently selected in the Storage Tree.</source> + <translation>Selecciona el sub-tipus del controlador d'emmagatzematge actualment seleccionat a l'Arbre d'emmagatzematge.</translation> + </message> + <message> + <source>S&lot:</source> + <translation>&Ranura:</translation> + </message> + <message> + <source>Selects the slot on the storage controller used by this attachment. The available slots depend on the type of the controller and other attachments on it.</source> + <translation>Selecciona la ranura al controlador d'emmagatzematge utilitzada per esta adjunció. Les ranures disponibles depenen del tipus del controlador i de les altres adjuncions.</translation> + </message> + <message> + <source>Selects the virtual disk image or the host drive used by this attachment.</source> + <translation>Selecciona la imatge de disc virtual o el controlador de l'amfitrió que fa servir per esta adjunció.</translation> + </message> + <message> + <source>Opens the Virtual Media Manager to select a virtual image for this attachment.</source> + <translation>Obri el Gestor de suports virtuals per a seleccionar una imatge virtual per a esta adjunció.</translation> + </message> + <message> + <source>Open Virtual Media Manager</source> + <translation>Obri el Gestor de suports virtuals</translation> + </message> + <message> + <source>D&ifferencing Disks</source> + <translation>D&iscs diferenciats</translation> + </message> + <message> + <source>When checked, allows the guest to send ATAPI commands directly to the host-drive which makes it possible to use CD/DVD writers connected to the host inside the VM. Note that writing audio CD inside the VM is not yet supported.</source> + <translation>Quan estiga marc, permet a la mà quina client enviar ordes ATAPI directament al controlador amfitrió que fa possible fer servir les gravadores de CD/DVD connectades a l'amfitrio a dins de la mà quina virtual. Tingueu en compte que la gravació de CD's d'à udio encara no està suportada.</translation> + </message> + <message> + <source>&Passthrough</source> + <translation>&Passthrough</translation> + </message> + <message> + <source>Virtual Size:</source> + <translation>Mida virtual:</translation> + </message> + <message> + <source>Actual Size:</source> + <translation>Mida real:</translation> + </message> + <message> + <source>Size:</source> + <translation>Mida:</translation> + </message> + <message> + <source>Location:</source> + <translation>Ubicació:</translation> + </message> + <message> + <source>Type (Format):</source> + <translation>Tipus (format):</translation> + </message> + <message> + <source>Attached To:</source> + <translation>Connectat a:</translation> + </message> +</context> +<context> + <name>VBoxVMSettingsNetwork</name> + <message> + <source>no bridged network adapter is selected</source> + <translation>no hi ha cap adaptador de xarxa en pont seleccionat</translation> + </message> + <message> + <source>no internal network name is specified</source> + <translation>no hi ha cap nom de xarxa interna especificat</translation> + </message> + <message> + <source>no host-only network adapter is selected</source> + <translation>no s'ha seleccionat cap adaptador de només l'amfitrió</translation> + </message> + <message> + <source>Not selected</source> + <comment>network adapter name</comment> + <translation>No seleccionat</translation> + </message> + <message> + <source>Adapter</source> + <comment>network</comment> + <translation type="obsolete">Adaptador</translation> + </message> + <message> + <source>Not selected</source> + <comment>adapter</comment> + <translation type="obsolete">No seleccionat</translation> + </message> + <message> + <source>Network</source> + <comment>internal</comment> + <translation type="obsolete">Xarxa</translation> + </message> + <message> + <source>Not selected</source> + <comment>network</comment> + <translation type="obsolete">No seleccionat</translation> + </message> + <message> + <source>MAC Address</source> + <translation type="obsolete">Adreça MAC</translation> + </message> + <message> + <source>Not selected</source> + <comment>address</comment> + <translation type="obsolete">No seleccionat</translation> + </message> + <message> + <source>Cable</source> + <translation type="obsolete">Cable</translation> + </message> + <message> + <source>Connected</source> + <comment>cable</comment> + <translation type="obsolete">Connectat</translation> + </message> + <message> + <source>Not connected</source> + <comment>cable</comment> + <translation type="obsolete">No connectat</translation> + </message> + <message> + <source>Select TAP setup application</source> + <translation type="obsolete">Selecciona l'aplicació de configuració de TAP</translation> + </message> + <message> + <source>Select TAP terminate application</source> + <translation type="obsolete">Selecciona l'aplicació de finalització de TAP</translation> + </message> + <message> + <source>When checked, plugs this virtual network adapter into the virtual machine.</source> + <translation>Quan estiga marcat, s'activarà este adaptador de xarxa virtual a dins de la mà quina virtual.</translation> + </message> + <message> + <source>&Enable Network Adapter</source> + <translation>Habilita l'adaptador d&e xarxa</translation> + </message> + <message> + <source>A&dapter Type:</source> + <translation type="obsolete">&Tipus d'Adaptador:</translation> + </message> + <message> + <source>Adapter &Type:</source> + <translation>&Tipus d'adaptador:</translation> + </message> + <message> + <source>Selects the type of the virtual network adapter. Depending on this value, VirtualBox will provide different network hardware to the virtual machine.</source> + <translation>Selecciona el tipus d'adaptador de xarxa virtual. Segons el valor, el VirtualBox proveirà diferent maquinari de xarxa per a la mà quina virtual.</translation> + </message> + <message> + <source>&Attached to:</source> + <translation>Connect&at a:</translation> + </message> + <message> + <source>Controls how this virtual adapter is attached to the real network of the Host OS.</source> + <translation>Controla la forma en què este adaptador virtual es connecta a la xarxa real del sistema amfitrió.</translation> + </message> + <message> + <source>Open additional options dialog for current attachment type.</source> + <translation type="obsolete">Obri el dià leg d'opcions addicionals per a l'actual tipus d'adjunció.</translation> + </message> + <message> + <source>&Name:</source> + <translation>&Nom:</translation> + </message> + <message> + <source>Selects the name of the network adapter for <b>Bridged Adapter</b> or <b>Host-only Adapter</b> attachments and the name of the network <b>Internal Network</b> attachments.</source> + <translation>Selecciona el nom de l'adaptador de xarxa si el tipus d'adjunció és equivalent a <b>Adaptador en pont</b> o <b>Adaptador de només l'amfitrió</b> i el nom de la xarxa interna si el tipus d'adjunció és equivalent a <b>Xarxa interna</b>.</translation> + </message> + <message> + <source>Open extended settings dialog for current attachment type.</source> + <translation type="obsolete">Obri el dià leg de configuració ampliat per a l'actual tipus d'adjunció.</translation> + </message> + <message> + <source>&Network Name:</source> + <translation type="obsolete">&Nom de la Xarxa:</translation> + </message> + <message> + <source>Displays the name of the internal network selected for this adapter.</source> + <translation type="obsolete">Mostra el nom de la xarxa interna seleccionada per a este adaptador.</translation> + </message> + <message> + <source>&MAC Address:</source> + <translation type="obsolete">Adreça &MAC:</translation> + </message> + <message> + <source>Displays the MAC address of this adapter. It contains exactly 12 characters chosen from {0-9,A-F}. Note that the second character must be an even digit.</source> + <translation>Mostra l'adreça MAC d'este adaptador. Conté exactament 12 carà cters compresos entre {0-9,A-F}. Tingueu en compte que el segon carà cter ha d'éser un dÃgit.</translation> + </message> + <message> + <source>Generates a new random MAC address.</source> + <translation>Genera una nova adreça MAC aleatòria.</translation> + </message> + <message> + <source>&Generate</source> + <translation type="obsolete">&Genera</translation> + </message> + <message> + <source>Indicates whether the virtual network cable is plugged in on machine startup or not.</source> + <translation>Indica si el cable de la xarxa virtual està connectat a l'inici de la mà quina virtual o no.</translation> + </message> + <message> + <source>Ca&ble Connected</source> + <translation type="obsolete">Fi&l Connectat</translation> + </message> + <message> + <source>&Interface Name:</source> + <translation type="obsolete">Nom de la &interfÃcie:</translation> + </message> + <message> + <source>Displays the TAP interface name.</source> + <translation type="obsolete">Mostra el nom de la intefÃcie TAP.</translation> + </message> + <message> + <source>&Setup Application:</source> + <translation type="obsolete">&Configura l'aplicació:</translation> + </message> + <message> + <source>Displays the command executed to set up the TAP interface.</source> + <translation type="obsolete">Mostra l'orde executada per engegar l'interfÃcie TAP.</translation> + </message> + <message> + <source>Selects the setup application.</source> + <translation type="obsolete">Selecciona l'aplicació de configuració.</translation> + </message> + <message> + <source>&Terminate Application:</source> + <translation type="obsolete">Finali&tza l'aplicació:</translation> + </message> + <message> + <source>Displays the command executed to terminate the TAP interface.</source> + <translation type="obsolete">Mostra l'orde exexutada per tancar la interfÃcie TAP.</translation> + </message> + <message> + <source>Selects the terminate application.</source> + <translation type="obsolete">Selecciona l'aplicació de finalització.</translation> + </message> + <message> + <source>Host Interface Settings</source> + <translation type="obsolete">Parà metres de la interfÃcie de l'amfitrió</translation> + </message> + <message> + <source>A&dvanced</source> + <translation>&Avançat</translation> + </message> + <message> + <source>Shows or hides additional network adapter options.</source> + <translation>Mostra o amaga les opcions addicionals de l'adaptador de xarxa.</translation> + </message> + <message> + <source>&Mac Address:</source> + <translation>Adreça &Mac:</translation> + </message> + <message> + <source>&Cable connected</source> + <translation>&Cable connectat</translation> + </message> +</context> +<context> + <name>VBoxVMSettingsNetworkDetails</name> + <message> + <source>no bridged network adapter is selected</source> + <translation type="obsolete">no hi ha cap adaptador de xarxa en pont seleccionat</translation> + </message> + <message> + <source>no internal network name is specified</source> + <translation type="obsolete">no hi ha cap nom de xarxa interna especificat</translation> + </message> + <message> + <source>no host-only adapter is selected</source> + <translation type="obsolete">no hi ha seleccionat cap adaptador de xarxa de només l'amfitrió</translation> + </message> + <message> + <source>Basic Details</source> + <translation type="obsolete">Detalls bà sics</translation> + </message> + <message> + <source>Bridged Network Details</source> + <translation type="obsolete">Detalls de la xarxa en pont</translation> + </message> + <message> + <source>Internal Network Details</source> + <translation type="obsolete">Detalls de la xarxa interna</translation> + </message> + <message> + <source>Host-only Network Details</source> + <translation type="obsolete">Detalls de la xarxa de només l'amfitrió</translation> + </message> + <message> + <source>Not selected</source> + <translation type="obsolete">No seleccionat</translation> + </message> + <message> + <source>Host Settings</source> + <translation type="obsolete">Parà metres de l'amfitrió</translation> + </message> + <message> + <source>&Bridged Network Adapter:</source> + <translation type="obsolete">Adaptador de xarxa en &pont:</translation> + </message> + <message> + <source>Displays the name of the host network adapter selected for bridged networking.</source> + <translation type="obsolete">Mostra el nom de l'adaptador de xarxa seleccionat de l'amfitrió per a la xarxa en pont.</translation> + </message> + <message> + <source>Internal &Network:</source> + <translation type="obsolete">Xarxa i&nterna:</translation> + </message> + <message> + <source>Displays the name of the internal network selected for this adapter.</source> + <translation type="obsolete">Mostra el nom de la xarxa interna seleccionada per a este adaptador.</translation> + </message> + <message> + <source>Host-only &Network Adapter:</source> + <translation type="obsolete">Adaptador de xarxa de &només l'amfitrió:</translation> + </message> + <message> + <source>Displays the name of the VirtualBox network adapter selected for host-only networking.</source> + <translation type="obsolete">Mostra el nom de l'adaptador de xarxa VirtualBox seleccionat per a la xarxa de només l'amfitrió.</translation> + </message> + <message> + <source>Guest Settings</source> + <translation type="obsolete">Parà metres del client</translation> + </message> + <message> + <source>Additional Options</source> + <translation type="obsolete">Opcions addicionals</translation> + </message> + <message> + <source>Guest &MAC Address:</source> + <translation type="obsolete">Adreça &MAC del client:</translation> + </message> + <message> + <source>Displays the MAC address of this adapter. It contains exactly 12 characters chosen from {0-9,A-F}. Note that the second character must be an even digit.</source> + <translation type="obsolete">Mostra l'adreça MAC d'este adaptador. Conté exactament 12 carà cters compresos entre {0-9,A-F}. Tingueu en compte que el segon carà cter ha d'ésser un dÃgit.</translation> + </message> + <message> + <source>Generates a new random MAC address.</source> + <translation type="obsolete">Genera una nova adreça MAC aleatòria.</translation> + </message> + <message> + <source>&Cable connected</source> + <translation type="obsolete">&Cable connectat</translation> + </message> + <message> + <source>Indicates whether the virtual network cable is plugged in on machine startup or not.</source> + <translation type="obsolete">Indica si el cable de la xarxa virtual està connectat a l'inici de la mà quina virtual o no.</translation> + </message> +</context> +<context> + <name>VBoxVMSettingsNetworkPage</name> + <message> + <source>No host network interface is selected</source> + <translation type="obsolete">No s'ha seleccionat cap interfÃcie de xarxa</translation> + </message> + <message> + <source>Internal network name is not set</source> + <translation type="obsolete">No s'ha especificat un nom de xarxa intern</translation> + </message> +</context> +<context> + <name>VBoxVMSettingsParallel</name> + <message> + <source>Port %1</source> + <comment>parallel ports</comment> + <translation>Port %1</translation> + </message> + <message> + <source>When checked, enables the given parallel port of the virtual machine.</source> + <translation>Quan estiga marcat, s'habilitarà el port paral·lel de la mà quina virtual.</translation> + </message> + <message> + <source>&Enable Parallel Port</source> + <translation>Habilita el port paral·l&el</translation> + </message> + <message> + <source>Port &Number:</source> + <translation>&Número del port:</translation> + </message> + <message> + <source>Displays the parallel port number. You can choose one of the standard parallel ports or select <b>User-defined</b> and specify port parameters manually.</source> + <translation>Mostra el número del port parà l·lel. Podeu triar un dels ports paral·lels està ndards o seleccionar <b>Definit per l'usuari</b> i especificar els parà metres manualment.</translation> + </message> + <message> + <source>&IRQ:</source> + <translation>&IRQ:</translation> + </message> + <message> + <source>Displays the IRQ number of this parallel port. Valid values are integer numbers in range from <tt>0</tt> to <tt>255</tt>. Values greater than <tt>15</tt> may only be used if the <b>IO APIC</b> is enabled for this virtual machine.</source> + <translation type="obsolete">Mostra el número IRQ per a este port paral·lel. Valors và lids són nombres enters en un rang des de <tt>0</tt> fins <tt>255</tt>. Valors més grans que <tt>15</tt> es faran servir si <b>IO APIC</b> es troba habilitat a esta mà quina virtual.</translation> + </message> + <message> + <source>I/O Po&rt:</source> + <translation>Po&rt E/S:</translation> + </message> + <message> + <source>Displays the base I/O port address of this parallel port. This should be a whole number between <tt>0</tt> and <tt>0xFFFF</tt>.</source> + <translation type="obsolete">Mostra l'adreça base del port E/S per a este port paral·lel. Valors và lids són nombres enters en un rang des de <tt>0</tt> fins <tt>0xFFFF</tt>.</translation> + </message> + <message> + <source>Port &Path:</source> + <translation>Ruta del &port:</translation> + </message> + <message> + <source>Displays the host parallel device name.</source> + <translation>Mostra el nom del dispositiu paral·lel del sistema client.</translation> + </message> + <message> + <source>Displays the IRQ number of this parallel port. This should be a whole number between <tt>0</tt> and <tt>255</tt>. Values greater than <tt>15</tt> may only be used if the <b>IO APIC</b> setting is enabled for this virtual machine.</source> + <translation>Mostra el número IRQ d'este port paral·lel. Això hauria de ser un nombre enter entre <tt>0</tt> i <tt>255</tt>. Valors superiors a <tt>15</tt> només s'haurien de fer servir si el parà metre <b>IO APIC</b> és actiu per a esta mà quina virtual.</translation> + </message> + <message> + <source>Displays the base I/O port address of this parallel port. Valid values are integer numbers in range from <tt>0</tt> to <tt>0xFFFF</tt>.</source> + <translation>Mostra l'adreça base del port E/S d'este port paral·lel. Valors và lids són nombres enters amb un rang entre <tt>0</tt> i <tt>0xFFFF</tt>.</translation> + </message> +</context> +<context> + <name>VBoxVMSettingsParallelPage</name> + <message> + <source>Duplicate port number selected </source> + <translation>S'ha seleccionat un número de port duplicat</translation> + </message> + <message> + <source>Port path not specified </source> + <translation>No s'ha especificat una ruta al port</translation> + </message> + <message> + <source>Duplicate port path entered </source> + <translation>S'ha introduït una ruta de port duplicada</translation> + </message> +</context> +<context> + <name>VBoxVMSettingsSF</name> + <message> + <source>&Add New Shared Folder</source> + <translation type="obsolete">&Afig una nova carpeta compartida</translation> + </message> + <message> + <source>&Edit Selected Shared Folder</source> + <translation type="obsolete">&Edita la carpeta compartida seleccionada</translation> + </message> + <message> + <source>&Remove Selected Shared Folder</source> + <translation type="obsolete">Elimina la ca&rpeta compartida seleccionada</translation> + </message> + <message> + <source>Adds a new shared folder definition.</source> + <translation>Afig una nova definició a la carpeta compartida.</translation> + </message> + <message> + <source>Edits the selected shared folder definition.</source> + <translation>Edita la definició de la carpeta compartida seleccionada.</translation> + </message> + <message> + <source>Removes the selected shared folder definition.</source> + <translation>Suprimeix la definició de la carpeta compartida seleccionada.</translation> + </message> + <message> + <source> Machine Folders</source> + <translation>Carpetes de la mà quina virtual</translation> + </message> + <message> + <source> Transient Folders</source> + <translation>Carpetes transitòries</translation> + </message> + <message> + <source>Full</source> + <translation>Complet</translation> + </message> + <message> + <source>Read-only</source> + <translation>Només lectura</translation> + </message> + <message> + <source>Lists all shared folders accessible to this machine. Use 'net use x: \\vboxsvr\share' to access a shared folder named <i>share</i> from a DOS-like OS, or 'mount -t vboxsf share mount_point' to access it from a Linux OS. This feature requires Guest Additions.</source> + <translation>Mostra totes les carpetes accessibles a esta mà quina. Feu servir: 'net use x: \\vboxsvr\share' per accedir a la carpeta anomenada <i>share</i> des d'un sistema tipus DOS, o 'mount -t vboxsf share mount_point' per accedir a ella des d'un sistema Linux. Esta caracterÃstica requereix les Guest Additions.</translation> + </message> + <message> + <source>Name</source> + <translation>Nom</translation> + </message> + <message> + <source>Path</source> + <translation>Ruta</translation> + </message> + <message> + <source>Access</source> + <translation>Accés</translation> + </message> + <message> + <source> Global Folders</source> + <translation> Carpetes globals</translation> + </message> + <message> + <source>&Add Shared Folder</source> + <translation>&Afig una carpeta compartida</translation> + </message> + <message> + <source>&Edit Shared Folder</source> + <translation>&Edita la carpeta compartida</translation> + </message> + <message> + <source>&Remove Shared Folder</source> + <translation>Elimina la ca&peta compartida</translation> + </message> + <message> + <source>&Folders List</source> + <translation>Llista de &carpetes</translation> + </message> +</context> +<context> + <name>VBoxVMSettingsSFDetails</name> + <message> + <source>Add Share</source> + <translation>Afig una compartició</translation> + </message> + <message> + <source>Edit Share</source> + <translation>Edita la compartició</translation> + </message> + <message> + <source>Dialog</source> + <translation>Dià leg</translation> + </message> + <message> + <source>Folder Path:</source> + <translation>Ruta cap a la carpeta:</translation> + </message> + <message> + <source>Folder Name:</source> + <translation>Nom de la carpeta:</translation> + </message> + <message> + <source>Displays the name of the shared folder (as it will be seen by the guest OS).</source> + <translation>Mostra el nom de la carpeta compartida (tal com es veu des del sistema operatiu client).</translation> + </message> + <message> + <source>When checked, the guest OS will not be able to write to the specified shared folder.</source> + <translation>Quan estiga marcat, el sistema operatiu client no podrà escriure a la carpeta compartida especificada.</translation> + </message> + <message> + <source>&Read-only</source> + <translation>&Només lectura</translation> + </message> + <message> + <source>&Make Permanent</source> + <translation>&Fes permanent</translation> + </message> +</context> +<context> + <name>VBoxVMSettingsSerial</name> + <message> + <source>Port %1</source> + <comment>serial ports</comment> + <translation>Port %1</translation> + </message> + <message> + <source>When checked, enables the given serial port of the virtual machine.</source> + <translation>Quan estiga marcat, s'habilitarà el port sèrie a la mà quina virtual.</translation> + </message> + <message> + <source>&Enable Serial Port</source> + <translation>&Habilita el port sèrie</translation> + </message> + <message> + <source>Port &Number:</source> + <translation>&Número de Port:</translation> + </message> + <message> + <source>Displays the serial port number. You can choose one of the standard serial ports or select <b>User-defined</b> and specify port parameters manually.</source> + <translation>Mostra el número del port sèrie. Podeu triar un dels ports sèrie està ndards o bé seleccionar <b>Definit per l'usuari</b> i especificar els parà metres manualment.</translation> + </message> + <message> + <source>&IRQ:</source> + <translation>&IRQ:</translation> + </message> + <message> + <source>Displays the IRQ number of this serial port. Valid values are integer numbers in range from <tt>0</tt> to <tt>255</tt>. Values greater than <tt>15</tt> may only be used if the <b>IO APIC</b> is enabled for this virtual machine.</source> + <translation type="obsolete">Mostra el número IRQ d'este port sèrie. Valors và lids són nombres enters del rang des de <tt>0</tt> fins <tt>255</tt>. Valors més grans que <tt>15</tt> només s'han de fer servir només si l'<b>IO APIC</b> és actiu per a esta mà quina virtual.</translation> + </message> + <message> + <source>I/O Po&rt:</source> + <translation>Po&rt E/S:</translation> + </message> + <message> + <source>Displays the base I/O port address of this serial port. This should be a whole number between <tt>0</tt> and <tt>0xFFFF</tt>.</source> + <translation type="obsolete">Mostra l'adreça base del port d'E/S d'este port sèrie. Valors và lids són nombres enters del rang des de <tt>0</tt> fins <tt>0xFFFF</tt>.</translation> + </message> + <message> + <source>Port &Mode:</source> + <translation>&Mode del port:</translation> + </message> + <message> + <source>Controls the working mode of this serial port. If you select <b>Disconnected</b>, the guest OS will detect the serial port but will not be able to operate it.</source> + <translation>Controla el mode de treball d'este port sèrie. Si seleccioneu <b>Desconnectat</b>, el sistema client detectarà el port sèrie però no podrà operar amb ell.</translation> + </message> + <message> + <source>If checked, the pipe specified in the <b>Port Path</b> field will be created by the virtual machine when it starts. Otherwise, the virtual machine will assume that the pipe exists and try to use it.</source> + <translation>Si està marcat, el conducte especificat al camp <b>Ruta del port</b> es crearà per la mà quina virtual quan s'inicie. En altre cas, la mà quina virtual provarà de fer servir el conducte existent.</translation> + </message> + <message> + <source>&Create Pipe</source> + <translation>&Crea un conducte</translation> + </message> + <message> + <source>Port &Path:</source> + <translation type="obsolete">Ruta del &port:</translation> + </message> + <message> + <source>Displays the path to the serial port's pipe on the host when the port is working in <b>Host Pipe</b> mode, or the host serial device name when the port is working in <b>Host Device</b> mode.</source> + <translation>Mostra la ruta al conducte del port sèrie a l'amfitrió quan el port treballa en el mode <b>Conducte amfitrió</b>, o al dispositiu sèrie de l'amfitrió quan el port treballa en el mode <b>Dispositiu Amfitrió</b>.</translation> + </message> + <message> + <source>Port/File &Path:</source> + <translation>Ruta al &port/fitxer:</translation> + </message> + <message> + <source>Displays the IRQ number of this serial port. This should be a whole number between <tt>0</tt> and <tt>255</tt>. Values greater than <tt>15</tt> may only be used if the <b>IO APIC</b> setting is enabled for this virtual machine.</source> + <translation>Mostra el número IRQ d'este port en sèrie. Això hauria de ser un nombre enter entre: <tt>0</tt> i <tt>255</tt>. Valors superiors a <tt>15</tt> només s'haurien de fer servir si el parà metre <b>IO APIC</b> està habilitat per a esta mà quina virtual.</translation> + </message> + <message> + <source>Displays the base I/O port address of this serial port. Valid values are integer numbers in range from <tt>0</tt> to <tt>0xFFFF</tt>.</source> + <translation>Mostra l'adreça base d'E/S d'este port en sèrie. Valors và lids són nombres enter amb un rang entre <tt>0</tt> i <tt>0xFFFF</tt>.</translation> + </message> +</context> +<context> + <name>VBoxVMSettingsSerialPage</name> + <message> + <source>Duplicate port number selected </source> + <translation>S'ha seleccionat un número de port duplicat</translation> + </message> + <message> + <source>Port path not specified </source> + <translation>No s'ha especificat una ruta al port</translation> + </message> + <message> + <source>Duplicate port path entered </source> + <translation>S'ha introduït una ruta de port duplicada</translation> + </message> +</context> +<context> + <name>VBoxVMSettingsSystem</name> + <message> + <source>you have assigned more than <b>%1%</b> of your computer's memory (<b>%2</b>) to the virtual machine. Not enough memory is left for your host operating system. Please select a smaller amount.</source> + <translation>heu assignat més d'un <b>%1%</b> de la memòria del vostre ordinador (<b>%2</b>) a la mà quina virtual. No heu deixat suficient memòria al sistema amfitrió. Seleccineu un percentatge menor.</translation> + </message> + <message> + <source>you have assigned more than <b>%1%</b> of your computer's memory (<b>%2</b>) to the virtual machine. There might not be enough memory left for your host operating system. Continue at your own risk.</source> + <translation>heu assignat més d'un <b>%1%</b> de la memòria del vostre ordinador (<b>%2</b>) a la mà quina virtual. No heu deixat suficient memòria al sistema amfitrió. Contineu pel vostre compte (no recomanable).</translation> + </message> + <message> + <source>for performance reasons, the number of virtual CPUs attached to the virtual machine may not be more than twice the number of physical CPUs on the host (<b>%1</b>). Please reduce the number of virtual CPUs.</source> + <translation>per raons d'eficiència, el nombre de CPUs virtuals assignades a la mà quina virtual no pot ser més del doble del nombre de CPUs fÃsiques al sistema amfitrió (<b>%1</b>). Reduïu el nombre de CPUs virtuals.</translation> + </message> + <message> + <source>you have assigned more virtual CPUs to the virtual machine than the number of physical CPUs on your host system (<b>%1</b>). This is likely to degrade the performance of your virtual machine. Please consider reducing the number of virtual CPUs.</source> + <translation>heu assignat més CPUs virtuals a esta mà quina virtual que el nombre de CPUs fÃsiques al sistema amfitrió (<b>%1</b>). Això rebaixarà l'eficiència de la mà quina virtual. Considereu reduir el nombre de CPUs virtuals.</translation> + </message> + <message> + <source>you have assigned more than one virtual CPU to this VM. This will not work unless the IO-APIC feature is also enabled. This will be done automatically when you accept the VM Settings by pressing the OK button.</source> + <translation>hi ha més d'una CPU virtual assignada a esta mà quina virtual, la qual requereix tindre la caracterÃstica IO-APIC també activada, i l'SMP no podrà treballar, per la qual cosa esta caracterÃstica s'activarà automà ticament quan accepteu els parà metres de la mà quina virtual prement el botó D'acord.</translation> + </message> + <message> + <source>you have assigned more than one virtual CPU to this VM. This will not work unless hardware virtualization (VT-x/AMD-V) is also enabled. This will be done automatically when you accept the VM Settings by pressing the OK button.</source> + <translation>hi ha més d'una CPU virtual assignada a esta mà quina virtual, la qual requereix tindre la caracterÃstica de virtualització VT-x/AMD-V també activada, i l'SMP no podrà treballar, per la qual cosa esta caracterÃstica s'activarà automà ticament quan accepteu els parà metres de la mà quina virtual prement el botó D'acord.</translation> + </message> + <message> + <source><qt>%1&nbsp;MB</qt></source> + <translation><qt>%1&nbsp;MB</qt></translation> + </message> + <message> + <source><qt>%1&nbsp;CPU</qt></source> + <comment>%1 is 1 for now</comment> + <translation><qt>%1&nbsp;CPU</qt></translation> + </message> + <message> + <source><qt>%1&nbsp;CPUs</qt></source> + <comment>%1 is 32 for now</comment> + <translation type="obsolete"><qt>%1&nbsp;CPUs</qt></translation> + </message> + <message> + <source>&Motherboard</source> + <translation>Placa &mare</translation> + </message> + <message> + <source>Base &Memory:</source> + <translation>&Memòria base:</translation> + </message> + <message> + <source>Controls the amount of memory provided to the virtual machine. If you assign too much, the machine might not start.</source> + <translation>Controla la quantitat de memòria amb què es proveeix a la mà quina virtual. Si n'assigneu massa, pot ser que la mà quina no s'inicie.</translation> + </message> + <message> + <source>MB</source> + <translation>MB</translation> + </message> + <message> + <source>&Boot Order:</source> + <translation>&Orde d'inici:</translation> + </message> + <message> + <source>Defines the boot device order. Use the checkboxes on the left to enable or disable individual boot devices. Move items up and down to change the device order.</source> + <translation>Definiu l'orde dels dispositius d'arrencada. Useu les caselles de selecció a l'esquerra per activar o desactivar els dispositius d'arrencada individuals. Moveu els elements amunt i avall per a canviar l'orde dels dispositius.</translation> + </message> + <message> + <source>Move Down (Ctrl-Down)</source> + <translation>Mou avall (Ctrl+Fletxa avall)</translation> + </message> + <message> + <source>Moves the selected boot device down.</source> + <translation>Mou avall el dispositiu d'arrencada seleccionat.</translation> + </message> + <message> + <source>Move Up (Ctrl-Up)</source> + <translation>Mou amunt (Ctrl+Fletxa amunt)</translation> + </message> + <message> + <source>Moves the selected boot device up.</source> + <translation>Mou amunt el dispositiu d'arrecada seleccionat.</translation> + </message> + <message> + <source>Extended Features:</source> + <translation>CaracterÃstiques avançades:</translation> + </message> + <message> + <source>When checked, the virtual machine will support the Advanced Configuration and Power Management Interface (ACPI). <b>Note:</b> don't disable this feature after having installed a Windows guest operating system!</source> + <translation type="obsolete">Quan estiga marcat, la mà quina virtual suportarà la configuració avançada i la interfÃcie de gestió de l'energia (ACPI). <b>Nota:</b> no inhabiliteu esta caracterÃstica després d'haver instal·lat un Windows al sistema operatiu client!</translation> + </message> + <message> + <source>Enable &ACPI</source> + <translation type="obsolete">Habilita &ACPI</translation> + </message> + <message> + <source>When checked, the virtual machine will support the Input Output APIC (IO APIC), which may slightly decrease performance. <b>Note:</b> don't disable this feature after having installed a Windows guest operating system!</source> + <translation>Quan estiga marcat, la mà quina virtual suportarà l'entrada/eixida APIC (ES APIC), que pot reduir el rendiment de la mà quina virtual. <b>Nota:</b> no inhabiliteu esta caracterÃstica després d'haver instal·lat un Windows al sistema operatiu client!</translation> + </message> + <message> + <source>Enable &IO APIC</source> + <translation>Habilita &IO APIC</translation> + </message> + <message> + <source>&Processor</source> + <translation>&Processador</translation> + </message> + <message> + <source>&Processor(s):</source> + <translation>&Processador(s):</translation> + </message> + <message> + <source>Controls the number of virtual CPUs in the virtual machine.</source> + <translation>Controla el nombre de CPUs virtuals a la mà quina virtual.</translation> + </message> + <message> + <source>When checked, the Physical Address Extension (PAE) feature of the host CPU will be exposed to the virtual machine.</source> + <translation>Quan estiga marcat, la caracterÃstica d'extensió d'adreça fÃsica (PAE) del processador de l'amfitrió s'exposarà a la mà quina virtual.</translation> + </message> + <message> + <source>Enable PA&E/NX</source> + <translation>Habilita PA&E/NX</translation> + </message> + <message> + <source>Acce&leration</source> + <translation>Acce&l·leració</translation> + </message> + <message> + <source>Hardware Virtualization:</source> + <translation>Virtualització de maquinari:</translation> + </message> + <message> + <source>When checked, the virtual machine will try to make use of the host CPU's hardware virtualization extensions such as Intel VT-x and AMD-V.</source> + <translation>Quan estiga marcat, l'aplicació tractarà de fer ús del processador de l'amfitrió per habilitar extensions com Intel VT-x i AMD-V.</translation> + </message> + <message> + <source>Enable &VT-x/AMD-V</source> + <translation>Activa &VT-x/AMD-V</translation> + </message> + <message> + <source>When checked, the virtual machine will try to make use of the nested paging extension of Intel VT-x and AMD-V.</source> + <translation>Quan estiga marcat, la mà quina virtual provarà de fer ús de l'extensió de paginació imbricada d'intel VT-x i AMD-V.</translation> + </message> + <message> + <source>Enable Nested Pa&ging</source> + <translation>Activa la pa&ginació imbricada</translation> + </message> + <message> + <source><qt>%1&nbsp;CPUs</qt></source> + <comment>%1 is host cpu count * 2 for now</comment> + <translation><qt>%1&nbsp;CPUs</qt></translation> + </message> + <message> + <source>When checked, the guest will support the Extended Firmware Interface (EFI), which is required to boot certain guest OSes. Non-EFI aware OSes will not be able to boot if this option is activated.</source> + <translation>Quan estiga marcat, el client tindrà suport per al Extended Firmware Interface (EFI), requerida per a iniciar alguns sistemes operatius. El sistemes que no facen servir EFI no podran iniciar-se si esta opció és activa.</translation> + </message> + <message> + <source>Enable &EFI (special OSes only)</source> + <translation>Activa &EFI (només SO especials)</translation> + </message> +</context> +<context> + <name>VBoxVMSettingsUSB</name> + <message> + <source>&Add Empty Filter</source> + <translation>&Afig un filtre buit</translation> + </message> + <message> + <source>A&dd Filter From Device</source> + <translation>Afig un filtre des d'un &dispositiu</translation> + </message> + <message> + <source>&Edit Filter</source> + <translation>&Edita el filtre</translation> + </message> + <message> + <source>&Remove Filter</source> + <translation>Elimina el filt&re</translation> + </message> + <message> + <source>&Move Filter Up</source> + <translation>&Mou el filtre amunt</translation> + </message> + <message> + <source>M&ove Filter Down</source> + <translation>M&ou el filtre avall</translation> + </message> + <message> + <source>Adds a new USB filter with all fields initially set to empty strings. Note that such a filter will match any attached USB device.</source> + <translation>Afig un filtre d'USB nou amb tots els camps definits inicialment com a cadenes buides. Tingueu en compte que un filtre com este concordarà amb qualsevol dispositiu USB connectat.</translation> + </message> + <message> + <source>Adds a new USB filter with all fields set to the values of the selected USB device attached to the host PC.</source> + <translation>Afig un filtre d'USB nou amb tots els camps definits amb els valors del dispositiu USB seleccionat dels que estan connectats a l'ordinador amfitrió.</translation> + </message> + <message> + <source>Edits the selected USB filter.</source> + <translation>Edita el filtre d'USB seleccionat.</translation> + </message> + <message> + <source>Removes the selected USB filter.</source> + <translation>Elimina el filtre d'USB seleccionat.</translation> + </message> + <message> + <source>Moves the selected USB filter up.</source> + <translation>Mou amunt el filtre d'USB seleccionat.</translation> + </message> + <message> + <source>Moves the selected USB filter down.</source> + <translation>Mou avall el filtre d'USB seleccionat.</translation> + </message> + <message> + <source>New Filter %1</source> + <comment>usb</comment> + <translation>Filtre nou %1</translation> + </message> + <message> + <source>When checked, enables the virtual USB controller of this machine.</source> + <translation>Quan estiga marcat, s'habilitarà el controlador virtual USB d'esta mà quina.</translation> + </message> + <message> + <source>Enable &USB Controller</source> + <translation>Habilita el controlador &USB</translation> + </message> + <message> + <source>When checked, enables the virtual USB EHCI controller of this machine. The USB EHCI controller provides USB 2.0 support.</source> + <translation>Quan estiga marcat, s'habilitarà el controlador virtual USB EHCI per a esta mà quina. El controlador USB EHCI proveeix de suport USB 2.0.</translation> + </message> + <message> + <source>Enable USB 2.0 (E&HCI) Controller</source> + <translation>Habilita el controlador USB &2.0 (E&HCI)</translation> + </message> + <message> + <source>USB Device &Filters</source> + <translation>&Filtres de dispositiu USB</translation> + </message> + <message> + <source>Lists all USB filters of this machine. The checkbox to the left defines whether the particular filter is enabled or not. Use the context menu or buttons to the right to add or remove USB filters.</source> + <translation>Mostra tots els filtres USB d'esta mà quina. La casella de selecció de l'esquerra defeneix si un filtre concret és actiu o no. Feu servir el menú de context o els botons de la dreta per afegir o eliminar filtres USB.</translation> + </message> + <message> + <source>[filter]</source> + <translation>[filtre]</translation> + </message> +</context> +<context> + <name>VBoxVMSettingsUSBFilterDetails</name> + <message> + <source>Any</source> + <comment>remote</comment> + <translation>Qualsevol</translation> + </message> + <message> + <source>Yes</source> + <comment>remote</comment> + <translation>SÃ</translation> + </message> + <message> + <source>No</source> + <comment>remote</comment> + <translation>No</translation> + </message> + <message> + <source>&Name:</source> + <translation>&Nom:</translation> + </message> + <message> + <source>Displays the filter name.</source> + <translation>Mostra el nom del filtre.</translation> + </message> + <message> + <source>&Vendor ID:</source> + <translation>ID del &venedor:</translation> + </message> + <message> + <source>Defines the vendor ID filter. The <i>exact match</i> string format is <tt>XXXX</tt> where <tt>X</tt> is a hexadecimal digit. An empty string will match any value.</source> + <translation>Defineix l'ID del venedor del producte. El format de la cadena de <i>seqüència exacta</i> és <tt>XXXX</tt> a on <tt>X</tt> és un dÃgit hexadecimal. Una cadena buida no tindrà cap valor.</translation> + </message> + <message> + <source>&Product ID:</source> + <translation>ID del &producte:</translation> + </message> + <message> + <source>Defines the product ID filter. The <i>exact match</i> string format is <tt>XXXX</tt> where <tt>X</tt> is a hexadecimal digit. An empty string will match any value.</source> + <translation>Defineix el filtre ID del producte. El format de la cadena de <i>seqüència exacta</i> és <tt>XXXX</tt> a on <tt>X</tt> és un dÃgit hexadecimal. Una cadena buida no tindrà cap valor.</translation> + </message> + <message> + <source>&Revision:</source> + <translation>&Revisió:</translation> + </message> + <message> + <source>Defines the revision number filter. The <i>exact match</i> string format is <tt>IIFF</tt> where <tt>I</tt> is a decimal digit of the integer part and <tt>F</tt> is a decimal digit of the fractional part. An empty string will match any value.</source> + <translation>Defineix el número de revisió del filtre. El format de la cadena de <i>seqüència exacta</i> és <tt>IIFF</tt> a on <tt>I</tt> és un dÃgit decimal de la part entera i <tt>F</tt> és un dÃgit decimal d'una part de fracció. Una cadena buida no tindrà cap valor.</translation> + </message> + <message> + <source>&Manufacturer:</source> + <translation>&Fabricant:</translation> + </message> + <message> + <source>Defines the manufacturer filter as an <i>exact match</i> string. An empty string will match any value.</source> + <translation>Defineix el filtre del fabricant com una cadena de <i>seqüència exacta</i>. Una cadena buida no tindrà cap valor.</translation> + </message> + <message> + <source>Pro&duct:</source> + <translation>Pro&ducte:</translation> + </message> + <message> + <source>Defines the product name filter as an <i>exact match</i> string. An empty string will match any value.</source> + <translation>Defineix el filtre de nom del producte com una cadena de <i>seqüència exacta</i>. Una cadena buida no tindrà cap valor.</translation> + </message> + <message> + <source>&Serial No.:</source> + <translation>Número de &sèrie:</translation> + </message> + <message> + <source>Defines the serial number filter as an <i>exact match</i> string. An empty string will match any value.</source> + <translation>Defineix el filtre del número de sèrie com una cadena de <i>seqüència exacta</i>. Una cadena buida no tindrà cap valor.</translation> + </message> + <message> + <source>Por&t:</source> + <translation>Por&t:</translation> + </message> + <message> + <source>Defines the host USB port filter as an <i>exact match</i> string. An empty string will match any value.</source> + <translation>Defineix el filtre de l'USB de l'amfitrió com una cadena de <i>seqüència exacta</i>. Una cadena buida no tindrà cap valor.</translation> + </message> + <message> + <source>R&emote:</source> + <translation>R&emot:</translation> + </message> + <message> + <source>Defines whether this filter applies to USB devices attached locally to the host computer (<i>No</i>), to a VRDP client's computer (<i>Yes</i>), or both (<i>Any</i>).</source> + <translation>Defineix on s'aplica este filtre als dispositius USB connectats localment a l'amfitrió (<i>No</i>), al VRDP de la computadora client (<i>SÃ</i>), o a ambdós (<i>Qualsevol</i>).</translation> + </message> + <message> + <source>&Action:</source> + <translation>&Acció:</translation> + </message> + <message> + <source>Defines an action performed by the host computer when a matching device is attached: give it up to the host OS (<i>Ignore</i>) or grab it for later usage by virtual machines (<i>Hold</i>).</source> + <translation>Defineix una acció duta a terme per l'amfitrió quan es conneca un dispositiu: activa-lo al sistema amfitrió (<i>Ignora</i>) o registra-ho per fer-lo servir després per les mà quines virtuals (<i>Manté</i>).</translation> + </message> + <message> + <source>USB Filter Details</source> + <translation>Detalls del filtre USB</translation> + </message> +</context> +<context> + <name>VBoxVMSettingsVRDP</name> + <message> + <source>When checked, the VM will act as a Remote Desktop Protocol (RDP) server, allowing remote clients to connect and operate the VM (when it is running) using a standard RDP client.</source> + <translation type="obsolete">Quan estiga marcat, la mà quina virtual actuarà com un servidor protocol d'escriptori remot (RDP), permetent als clients remots connectar-se a la mà quina virtual (quan estiga executant-se) fent servir l'està ndard client RDP.</translation> + </message> + <message> + <source>&Enable VRDP Server</source> + <translation type="obsolete">Habilita &el servidor VRDP</translation> + </message> + <message> + <source>Server &Port:</source> + <translation type="obsolete">Port del &servidor:</translation> + </message> + <message> + <source>Displays the VRDP Server port number. You may specify <tt>0</tt> (zero) to reset the port to the default value.</source> + <translation type="obsolete">Mostra el nombre del port del servidor VRDP. Heu d'especificar <tt>0</tt> (cero) per reiniciar el port al valor per defecte.</translation> + </message> + <message> + <source>Authentication &Method:</source> + <translation type="obsolete">&Mètode d'autenticació:</translation> + </message> + <message> + <source>Defines the VRDP authentication method.</source> + <translation type="obsolete">Defineix el mode d'autenticació del VRDP.</translation> + </message> + <message> + <source>Authentication &Timeout:</source> + <translation type="obsolete">&Temps d'autenticació:</translation> + </message> + <message> + <source>Specifies the timeout for guest authentication, in milliseconds.</source> + <translation type="obsolete">Especifica el temps d'espera per a la autenticació del client, en milisegons.</translation> + </message> +</context> +</TS> diff --git a/src/VBox/Frontends/VirtualBox/nls/VirtualBox_da.ts b/src/VBox/Frontends/VirtualBox/nls/VirtualBox_da.ts index b02e79a87..6735fa8cf 100644 --- a/src/VBox/Frontends/VirtualBox/nls/VirtualBox_da.ts +++ b/src/VBox/Frontends/VirtualBox/nls/VirtualBox_da.ts @@ -1380,7 +1380,7 @@ p, li { white-space: pre-wrap; } </message> <message> <source>&Auto show Dock && Menubar in fullscreen</source> - <translation type="unfinished"></translation> + <translation>&Automatisk visning af Dok && Menubjælke i fuldskærm</translation> </message> </context> <context> @@ -2788,49 +2788,49 @@ p, li { white-space: pre-wrap; } </message> <message numerus="yes"> <source>%n year(s)</source> - <translation type="unfinished"> - <numerusform></numerusform> - <numerusform></numerusform> + <translation> + <numerusform>%n Ã¥r</numerusform> + <numerusform>%n Ã¥r</numerusform> </translation> </message> <message numerus="yes"> <source>%n month(s)</source> - <translation type="unfinished"> - <numerusform></numerusform> - <numerusform></numerusform> + <translation> + <numerusform>%n mÃ¥ned</numerusform> + <numerusform>%n mÃ¥neder</numerusform> </translation> </message> <message numerus="yes"> <source>%n day(s)</source> - <translation type="unfinished"> - <numerusform></numerusform> - <numerusform></numerusform> + <translation> + <numerusform>%n dag</numerusform> + <numerusform>%n dage</numerusform> </translation> </message> <message numerus="yes"> <source>%n hour(s)</source> - <translation type="unfinished"> - <numerusform></numerusform> - <numerusform></numerusform> + <translation> + <numerusform>%n time</numerusform> + <numerusform>%n timer</numerusform> </translation> </message> <message numerus="yes"> <source>%n minute(s)</source> - <translation type="unfinished"> - <numerusform></numerusform> - <numerusform></numerusform> + <translation> + <numerusform>%n minut</numerusform> + <numerusform>%n minutter</numerusform> </translation> </message> <message numerus="yes"> <source>%n second(s)</source> - <translation type="unfinished"> - <numerusform></numerusform> - <numerusform></numerusform> + <translation> + <numerusform>%n sekund</numerusform> + <numerusform>%n sekunder</numerusform> </translation> </message> <message> <source>(CD/DVD)</source> - <translation type="unfinished"></translation> + <translation>(CD/DVD)</translation> </message> </context> <context> @@ -4372,12 +4372,12 @@ p, li { white-space: pre-wrap; } </message> <message> <source><p>Are you sure you want to delete the CD/DVD-ROM device?</p><p>You will not be able to mount any CDs or ISO images or install the Guest Additions without it!</p></source> - <translation type="unfinished"></translation> + <translation><p>Er du sikker pÃ¥ at du vil fjerne CD/DVD-drevet?</p><p>Du vil ikke kunne montere CD/ISO-aftryk eller installere Gæstetilføjelserne uden det!</p></translation> </message> <message> <source>&Remove</source> <comment>medium</comment> - <translation type="unfinished"></translation> + <translation>&Fje&rn</translation> </message> </context> <context> @@ -4457,12 +4457,12 @@ p, li { white-space: pre-wrap; } <message> <source>%1, %2 remaining</source> <comment>You may wish to translate this more like "Time remaining: %1, %2"</comment> - <translation type="unfinished"></translation> + <translation>%1, %2 tilbage</translation> </message> <message> <source>%1 remaining</source> <comment>You may wish to translate this more like "Time remaining: %1"</comment> - <translation type="unfinished"></translation> + <translation>%1 tilbage</translation> </message> </context> <context> @@ -4963,7 +4963,7 @@ p, li { white-space: pre-wrap; } </message> <message> <source> (%1 ago)</source> - <translation type="unfinished"></translation> + <translation> (%1 siden)</translation> </message> </context> <context> @@ -4993,9 +4993,9 @@ p, li { white-space: pre-wrap; } </message> <message numerus="yes"> <source>Warning: You are taking a snapshot of a running machine which has %n immutable image(s) attached to it. As long as you are working from this snapshot the immutable image(s) will not be reset to avoid loss of data.</source> - <translation type="unfinished"> - <numerusform></numerusform> - <numerusform></numerusform> + <translation> + <numerusform>Advarsel: Du tager et øjebliksbillede af en kørende maskine, som har %n skrivebeskyttet aftryk tilsluttet. SÃ¥ længe du arbejder pÃ¥ dette øjebliksbillede vil det skrivebeskyttede aftryk ikke blive nulstillet for at undgÃ¥ tab af data.</numerusform> + <numerusform>Advarsel: Du tager et øjebliksbillede af en kørende maskine, som har %n skrivebeskyttede aftryk tilsluttet. SÃ¥ længe du arbejder pÃ¥ dette øjebliksbillede vil de skrivebeskyttede aftryk ikke blive nulstillet for at undgÃ¥ tab af data.</numerusform> </translation> </message> </context> diff --git a/src/VBox/Frontends/VirtualBox/nls/VirtualBox_de.ts b/src/VBox/Frontends/VirtualBox/nls/VirtualBox_de.ts index d0c0471b3..a4a5c337e 100644 --- a/src/VBox/Frontends/VirtualBox/nls/VirtualBox_de.ts +++ b/src/VBox/Frontends/VirtualBox/nls/VirtualBox_de.ts @@ -4513,7 +4513,7 @@ p, li { white-space: pre-wrap; } </message> <message> <source> (%1 ago)</source> - <translation>(vor %1)</translation> + <translation> (vor %1)</translation> </message> </context> <context> diff --git a/src/VBox/Frontends/VirtualBox/nls/VirtualBox_es.ts b/src/VBox/Frontends/VirtualBox/nls/VirtualBox_es.ts index 2a2c4caa3..9ddb05ff3 100644 --- a/src/VBox/Frontends/VirtualBox/nls/VirtualBox_es.ts +++ b/src/VBox/Frontends/VirtualBox/nls/VirtualBox_es.ts @@ -125,7 +125,7 @@ </message> <message> <source>Kernel driver not accessible</source> - <translation>Controlador del kernel no accesibleble</translation> + <translation>Controlador del kernel no accesible</translation> </message> <message> <source>Unknown error %2 during initialization of the Runtime</source> @@ -595,19 +595,19 @@ Versión %1</translation> </message> <message> <source>Downloading the VirtualBox Guest Additions CD image from <nobr><b>%1</b>...</nobr></source> - <translation>Descargando la imagen de CD de las adiciones del huésped desde <nobr><b>%1</b>...</nobr></translation> + <translation>Descargando la imagen de CD de las «Guest Additions» desde <nobr><b>%1</b>...</nobr></translation> </message> <message> <source>Cancel the VirtualBox Guest Additions CD image download</source> - <translation>Cancelar la descarga de la imagen de CD de las adiciones del huésped</translation> + <translation>Cancelar la descarga de la imagen de CD de las «Guest Additions»</translation> </message> <message> <source><p>Failed to save the downloaded file as <nobr><b>%1</b>.</nobr></p></source> - <translation><p>No se puedo salvar el archivo descargado como <nobr><b>%1</b>.</nobr></p></translation> + <translation><p>No se puedo guardar el archivo descargado como <nobr><b>%1</b>.</nobr></p></translation> </message> <message> <source>Select folder to save Guest Additions image to</source> - <translation>Seleccione la carpeta donde guardar la imagen de adiciones del huésped</translation> + <translation>Seleccione la carpeta donde guardar la imagen de las «Guest Additions»</translation> </message> </context> <context> @@ -808,7 +808,7 @@ Versión %1</translation> </message> <message> <source><p>Saves the current execution state of the virtual machine to the physical hard disk of the host PC.</p><p>Next time this machine is started, it will be restored from the saved state and continue execution from the same place you saved it at, which will let you continue your work immediately.</p><p>Note that saving the machine state may take a long time, depending on the guest operating system type and the amount of memory you assigned to the virtual machine.</p></source> - <translation><p>Salva el estado actual de ejecución de la máquina virtual al disco duro fÃsico del PC anfitrión.</p><p>La próxima vez que la máquina sea inicializada, será restuarada al estado guardado y continuará la ejecución en el mismo punto donde la guardó. Lo que le permitirá continuar con su trabajo inmediatamente.</p><p>Tenga en cuenta que guardar el estádo de la máquina puede tomar tiempo largo, dependiendo el tipo de sistema operativo huésped y la cantidad e memoria que se le asignó a la máquina virtual.</p></translation> + <translation><p>Guarda el estado actual de ejecución de la máquina virtual al disco duro fÃsico del PC anfitrión.</p><p>La próxima vez que la máquina sea inicializada, será restuarada al estado guardado y continuará la ejecución en el mismo punto donde la guardó. Lo que le permitirá continuar con su trabajo inmediatamente.</p><p>Tenga en cuenta que guardar el estádo de la máquina puede tomar bastante tiempo, dependiendo el tipo de sistema operativo huésped y la cantidad de memoria que se le asignó a la máquina virtual.</p></translation> </message> <message> <source><p>Sends the ACPI Power Button press event to the virtual machine.</p><p>Normally, the guest operating system running inside the virtual machine will detect this event and perform a clean shutdown procedure. This is a recommended way to turn off the virtual machine because all applications running inside it will get a chance to save their data and state.</p><p>If the machine doesn't respond to this action then the guest operating system may be misconfigured or doesn't understand ACPI Power Button events at all. In this case you should select the <b>Power off the machine</b> action to stop virtual machine execution.</p></source> @@ -816,7 +816,7 @@ Versión %1</translation> </message> <message> <source><p>Turns off the virtual machine.</p><p>Note that this action will stop machine execution immediately so that the guest operating system running inside it will not be able to perform a clean shutdown procedure which may result in <i>data loss</i> inside the virtual machine. Selecting this action is recommended only if the virtual machine does not respond to the <b>Send the shutdown signal</b> action.</p></source> - <translation><p>Apága la máquina virtual.</p><p>Tenga en cuenta que está acción parará la ejecución de la máquina virtual inmediatamente. Esto puede ocasionar que el sistema operativo huésped no pueda efectuar un apagado limpio y haya <i>pérdida de datos</i> dentro de la máquina virtual. Sólo se recomienda usar esta opción cuando la máquina virtual no respode a la acción <b>Enviar señal de apagado</b>.</p></translation> + <translation><p>Apaga la máquina virtual.</p><p>Tenga en cuenta que está acción parará la ejecución de la máquina virtual inmediatamente. Esto puede ocasionar que el sistema operativo huésped no pueda efectuar un apagado limpio y haya <i>pérdida de datos</i> dentro de la máquina virtual. Sólo se recomienda usar esta opción cuando la máquina virtual no respode a la acción <b>Enviar señal de apagado</b>.</p></translation> </message> <message> <source>Restore the machine state stored in the current snapshot</source> @@ -876,7 +876,7 @@ Versión %1</translation> </message> <message> <source>Automatically resize the guest display when the window is resized (requires Guest Additions)</source> - <translation>Redimensiona la pantalla del huésped cuando se redimensiona la ventana (requiere instalar las aplicaciones «Guest Additions»)</translation> + <translation>Redimensiona la pantalla del huésped cuando se redimensiona la ventana (requiere instalar las «Guest Additions»)</translation> </message> <message> <source>&Adjust Window Size</source> @@ -993,11 +993,11 @@ Versión %1</translation> </message> <message> <source>&Install Guest Additions...</source> - <translation>&Instalar aplicaciones «Guest Additions»...</translation> + <translation>&Instalar «Guest Additions»...</translation> </message> <message> <source>Mount the Guest Additions installation image</source> - <translation>Montar la imagen de las aplicaciones «Guest Additions»</translation> + <translation>Montar la imagen de las «Guest Additions»</translation> </message> <message> <source>&Statistics...</source> @@ -1397,11 +1397,11 @@ Versión %1</translation> </message> <message> <source>Indicates whether the guest display auto-resize function is On (<img src=:/auto_resize_on_16px.png/>) or Off (<img src=:/auto_resize_off_16px.png/>). Note that this function requires Guest Additions to be installed in the guest OS.</source> - <translation>Indica si la función de autodimensionar está habilitada (<img src=:/auto_resize_on_16px.png/>) or inhabilitada (<img src=:/auto_resize_off_16px.png/>). Esta función requiere instalar las aplicaciones «Guest Additions» en el SO huésped.</translation> + <translation>Indica si la función de autodimensionar está habilitada (<img src=:/auto_resize_on_16px.png/>) or inhabilitada (<img src=:/auto_resize_off_16px.png/>). Esta función requiere instalar las «Guest Additions» en el SO huésped.</translation> </message> <message> <source>Indicates whether the host mouse pointer is captured by the guest OS:<br><nobr><img src=:/mouse_disabled_16px.png/>&nbsp;&nbsp;pointer is not captured</nobr><br><nobr><img src=:/mouse_16px.png/>&nbsp;&nbsp;pointer is captured</nobr><br><nobr><img src=:/mouse_seamless_16px.png/>&nbsp;&nbsp;mouse integration (MI) is On</nobr><br><nobr><img src=:/mouse_can_seamless_16px.png/>&nbsp;&nbsp;MI is Off, pointer is captured</nobr><br><nobr><img src=:/mouse_can_seamless_uncaptured_16px.png/>&nbsp;&nbsp;MI is Off, pointer is not captured</nobr><br>Note that the mouse integration feature requires Guest Additions to be installed in the guest OS.</source> - <translation>Indica si el puntero del ratón es capturado por el SO huésped:<br><nobr><img src=:/mouse_disabled_16px.png/>&nbsp;&nbsp;puntero no es capturado</nobr><br><nobr><img src=:/mouse_16px.png/>&nbsp;&nbsp;puntero es capturado</nobr><br><nobr><img src=:/mouse_seamless_16px.png/>&nbsp;&nbsp;Int. del ratón habilitada</nobr><br><nobr><img src=:/mouse_can_seamless_16px.png/>&nbsp;&nbsp;Int. ratón deshabilitada, el ratón es capturado</nobr><br><nobr><img src=:/mouse_can_seamless_uncaptured_16px.png/>&nbsp;&nbsp;Int. ratón deshabilitada, el ratón no es capturado</nobr><br> La integración del ratón requiere instalar las aplicaciones «Guest Additions» en el SO huésped.</translation> + <translation>Indica si el puntero del ratón es capturado por el SO huésped:<br><nobr><img src=:/mouse_disabled_16px.png/>&nbsp;&nbsp;puntero no es capturado</nobr><br><nobr><img src=:/mouse_16px.png/>&nbsp;&nbsp;puntero es capturado</nobr><br><nobr><img src=:/mouse_seamless_16px.png/>&nbsp;&nbsp;Int. del ratón habilitada</nobr><br><nobr><img src=:/mouse_can_seamless_16px.png/>&nbsp;&nbsp;Int. ratón deshabilitada, el ratón es capturado</nobr><br><nobr><img src=:/mouse_can_seamless_uncaptured_16px.png/>&nbsp;&nbsp;Int. ratón deshabilitada, el ratón no es capturado</nobr><br> La integración del ratón requiere instalar las «Guest Additions» en el SO huésped.</translation> </message> <message> <source>Indicates whether the keyboard is captured by the guest OS (<img src=:/hostkey_captured_16px.png/>) or not (<img src=:/hostkey_16px.png/>).</source> @@ -1463,7 +1463,7 @@ Versión %1</translation> </message> <message> <source>Unmount Floppy Device</source> - <translation>Desmontar dispositvo de disquete</translation> + <translation>Desmontar dispositivo de disquete</translation> </message> <message> <source>No CD/DVD Devices Attached</source> @@ -1898,11 +1898,11 @@ Versión %1</translation> </message> <message> <source>Appliance Export Wizard</source> - <translation>Asistente de Exportación de Servicio Virtualizado</translation> + <translation>Asistente de exportación de servicio virtualizado</translation> </message> <message> <source>Welcome to the Appliance Export Wizard!</source> - <translation>¡Bienvenido al Asistente de Exportación de Servicio Virtualizado!</translation> + <translation>¡Bienvenido al asistente de exportación de servicio virtualizado!</translation> </message> <message> <source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> @@ -1934,11 +1934,11 @@ p, li { white-space: pre-wrap; } </message> <message> <source>Appliance Export Settings</source> - <translation>Configuración de Exportación de Servicios Virtualizados</translation> + <translation>Configuración de exportación de servicios virtualizados</translation> </message> <message> <source>Here you can change additional configuration values of the selected virtual machines. You can modify most of the properties shown by double-clicking on the items.</source> - <translation>Aqui puede cambiar los valores de configuración adicionales para la máquina virtual seleccionada. Puede modificar de las propiedades desplegadas haciendo doble clic sobre ellas.</translation> + <translation>Aquà puede cambiar los valores de configuración adicionales para la máquina virtual seleccionada. Puede modificar las propiedades desplegadas haciendo doble clic sobre ellas.</translation> </message> <message> <source>Restore Defaults</source> @@ -2170,7 +2170,7 @@ p, li { white-space: pre-wrap; } </message> <message> <source>&Auto Capture Keyboard</source> - <translation>&Auto capturar teclado</translation> + <translation>&Autocapturar teclado</translation> </message> </context> <context> @@ -2599,7 +2599,7 @@ p, li { white-space: pre-wrap; } <message> <source>Nested Paging</source> <comment>details report</comment> - <translation>Paginación anidadada</translation> + <translation>Paginación anidada</translation> </message> <message> <source>Not Attached</source> @@ -3682,7 +3682,7 @@ p, li { white-space: pre-wrap; } </message> <message> <source>You can create media images using the virtual media manager.</source> - <translation>Puede crear imágenes de medios usando el Administrador de Medios Virtuales.</translation> + <translation>Puede crear imágenes de medios usando el Administrador de medios virtuales.</translation> </message> <message> <source>Attaching this hard disk will be performed indirectly using a newly created differencing hard disk.</source> @@ -3692,7 +3692,7 @@ p, li { white-space: pre-wrap; } <message> <source>Some of the media in this hard disk chain are inaccessible. Please use the Virtual Media Manager in <b>Show Differencing Hard Disks</b> mode to inspect these media.</source> <comment>medium</comment> - <translation>Algunos medios en esta cadena de disco duro son inaccesibles. Use el Administrador de Medios Virtuales en el modo <b>Mostrar discos duros diferenciados</b> para inspeccionar estos medios.</translation> + <translation>Algunos medios en esta cadena de disco duro son inaccesibles. Use el Administrador de medios virtuales en el modo <b>Mostrar discos duros diferenciados</b> para inspeccionar estos medios.</translation> </message> <message> <source>This base hard disk is indirectly attached using the following differencing hard disk:</source> @@ -4338,11 +4338,11 @@ volver al idioma por omisión del sistema.</qt> </message> <message> <source>Appliance Import Wizard</source> - <translation>Asistente de Importación de Servicio Virtualizado</translation> + <translation>Asistente de importación de servicio virtualizado</translation> </message> <message> <source>Welcome to the Appliance Import Wizard!</source> - <translation>¡Bienvenido al Asistente de Importación de Servicio Virtualizado!</translation> + <translation>¡Bienvenido al asistente de importación de servicio virtualizado!</translation> </message> <message> <source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> @@ -4374,7 +4374,7 @@ p, li { white-space: pre-wrap; } </message> <message> <source>Appliance Import Settings</source> - <translation>Configuración de Importación de Servicios Virtualizados</translation> + <translation>Configuración de importación de servicios virtualizados</translation> </message> <message> <source>These are the virtual machines contained in the appliance and the suggested settings of the imported VirtualBox machines. You can change many of the properties shown by double-clicking on the items and disable others using the check boxes below.</source> @@ -4617,7 +4617,7 @@ p, li { white-space: pre-wrap; } </message> <message> <source>Virtual Media Manager</source> - <translation>Administrador de Medios Virtuales</translation> + <translation>Administrador de medios virtuales</translation> </message> <message> <source>Hard &Disks</source> @@ -4671,7 +4671,7 @@ p, li { white-space: pre-wrap; } </message> <message> <source>Exit Full Screen or Seamless Mode</source> - <translation>Salir del modo a pantalla competa o fluÃdo</translation> + <translation>Salir del modo a pantalla completa o fluÃdo</translation> </message> <message> <source>Close VM</source> @@ -4724,7 +4724,7 @@ p, li { white-space: pre-wrap; } <name>VBoxNewHDWzd</name> <message> <source>Create New Virtual Disk</source> - <translation>Crear disco virtual nuevo</translation> + <translation>Crear nuevo disco virtual</translation> </message> <message> <source><p>This wizard will help you to create a new virtual hard disk image for your virtual machine.</p> @@ -4736,7 +4736,7 @@ y <b>Atrás</b> para regresar a la anterior.</p></translation> </message> <message> <source>Welcome to the Create New Virtual Disk Wizard!</source> - <translation>¡Bienvenido al Asistente para la Creación de un Nuevo Disco Virtual!</translation> + <translation>¡Bienvenido al asistente para la creación de un nuevo disco virtual!</translation> </message> <message> <source><p>Select the type of virtual hard disk image you want to create.</p> @@ -4909,7 +4909,7 @@ dependiendo del tamaño de la imagen y el rendimiento de su disco duro.</p> </message> <message> <source><p>This wizard will help you to create a new virtual hard disk for your virtual machine.</p><p>Use the <b>Next</b> button to go to the next page of the wizard and the <b>Back</b> button to return to the previous page.</p></source> - <translation><p>Este asistente le guiará para crear una nueva imagen de disco virtual para su máquina virtual.</p><p>Use el botón <b>Siguiente</b> para ir a la siguiente página del assitente y <b>Atrás</b> para regresar a la anterior.</p></translation> + <translation><p>Este asistente le ayudará a crear una nueva imagen de disco virtual para su máquina virtual.</p><p>Use el botón <b>Siguiente</b> para ir a la siguiente página del asistente y <b>Atrás</b> para regresar a la anterior.</p></translation> </message> <message> <source>Hard Disk Storage Type</source> @@ -4960,7 +4960,7 @@ dependiendo del tamaño de la imagen y el rendimiento de su disco duro.</p> <name>VBoxNewVMWzd</name> <message> <source>Create New Virtual Machine</source> - <translation>Crear Nueva Máquina Virtual</translation> + <translation>Crear nueva máquina virtual</translation> </message> <message> <source><p>This wizard will guide you through the steps that are necessary to create @@ -4974,7 +4974,7 @@ y <b>Atrás</b> para regresar a la anterior.</p></translation> </message> <message> <source>Welcome to the New Virtual Machine Wizard!</source> - <translation>¡Bienvenido al Asistente para la Creación de una Nueva Máquina Virtual!</translation> + <translation>¡Bienvenido al asistente para la creación de una nueva máquina virtual!</translation> </message> <message> <source><p>Enter a name for the new virtual machine and select the type of the guest operating @@ -5119,7 +5119,7 @@ este paso y luego conectar los Discos Duros desde el diálogo de Configuración </message> <message> <source><p>This wizard will guide you through the steps that are necessary to create a new virtual machine for VirtualBox.</p><p>Use the <b>Next</b> button to go the next page of the wizard and the <b>Back</b> button to return to the previous page.</p></source> - <translation><p>Este asistente le guiará en los pasos necesarios para crear una nueva máquina virtual para VirtualBox.</p><p>Use el botón <b>Siguiente</b> para ir a la siguiente página del asistente y <b>Atrás</b> para regresar a la anterior.</p></translation> + <translation><p>Este asistente le guiará en los pasos necesarios para crear una nueva máquina virtual en VirtualBox.</p><p>Use el botón <b>Siguiente</b> para ir a la siguiente página del asistente y <b>Atrás</b> para regresar a la anterior.</p></translation> </message> <message> <source>< &Back</source> @@ -5184,7 +5184,7 @@ este paso y luego conectar los Discos Duros desde el diálogo de Configuración </message> <message> <source><p>Select a hard disk image to be used as the boot hard disk of the virtual machine. You can either create a new hard disk using the <b>New</b> button or select an existing hard disk image from the drop-down list or by pressing the <b>Existing</b> button (to invoke the Virtual Media Manager dialog).</p><p>If you need a more complicated hard disk setup, you can also skip this step and attach hard disks later using the VM Settings dialog.</p></source> - <translation><p>Seleccione la imagen de disco duro que será usada como disco de arranque. Puede crear un disco duro nuevo presionando en <b>Nuevo</b> o puede seleccionar un disco duro existente desde la lista desplegable o presionando el botón <b>Existentes</b> (invoca el Administrador de Medios Virtuales).</p><p>Si necesita una configuración más complicada de discos duros puede saltarse este paso y luego conectar los discos duros desde el diálogo de configuración de la máquina virtual.</p></translation> + <translation><p>Seleccione la imagen de disco duro que será usada como disco de arranque. Puede crear un disco duro nuevo presionando en <b>Nuevo</b> o puede seleccionar un disco duro existente desde la lista desplegable o presionando el botón <b>Existentes</b> (invoca el Administrador de medios virtuales).</p><p>Si necesita una configuración más complicada de discos duros puede saltarse este paso y luego conectar los discos duros desde el diálogo de configuración de la máquina virtual.</p></translation> </message> <message> <source>Boot Hard &Disk (Primary Master)</source> @@ -5574,15 +5574,15 @@ este paso y luego conectar los Discos Duros desde el diálogo de Configuración </message> <message> <source><p>The VirtualBox Guest Additions installed in the Guest OS are too old: the installed version is %1, the expected version is %2. Some features that require Guest Additions (mouse integration, guest display auto-resize) will most likely stop working properly.</p><p>Please update the Guest Additions to the current version by choosing <b>Install Guest Additions</b> from the <b>Devices</b> menu.</p></source> - <translation><p>Las aplicaciones «Guest Additions» instaladas en el SO huésped son muy viejas: la versión instalada es %1. La versión esperada es %2. Algunas funcionalidades que requieren adiciones del huésped (integración del ratón, autoredimensionamiento de la pantalla huésped) probablemente dejarán de funcionar apropiadamente.</p><p>Actualice las aplicaciones «Guest Additions» a la versión más reciente eligiendo <b>Instalar aplicaciones «Guest Additions»<b> desde el menú <b>Dispositivos</b>.</p></translation> + <translation><p>Las «Guest Additions» instaladas en el SO huésped son muy viejas: la versión instalada es %1. La versión esperada es %2. Algunas funcionalidades que requieren adiciones del huésped (integración del ratón, autoredimensionamiento de la pantalla huésped) probablemente dejarán de funcionar apropiadamente.</p><p>Actualice las «Guest Additions» a la versión más reciente eligiendo <b>Instalar «Guest Additions»<b> desde el menú <b>Dispositivos</b>.</p></translation> </message> <message> <source><p>The VirtualBox Guest Additions installed in the Guest OS are outdated: the installed version is %1, the expected version is %2. Some features that require Guest Additions (mouse integration, guest display auto-resize) may not work as expected.</p><p>It is recommended to update the Guest Additions to the current version by choosing <b>Install Guest Additions</b> from the <b>Devices</b> menu.</p></source> - <translation><p>Las aplicaciones «Guest Additions» instaladas en el SO huésped son muy viejas: la versión instalada es %1. La versión esperada es %2. Algunas funcionalidades que requieren adiciones del huésped (integración del ratón, autoredimensionamiento de la pantalla huésped) podrÃan dejarán de funcionar apropiadamente.</p><p>Se recomienda actualizar las aplicaciones «Guest Additions» a la versión más reciente eligiendo <b>Instalar aplicaciones «Guest Additions»<b> desde el menú <b>Dispositivos</b>.</p></translation> + <translation><p>Las «Guest Additions» instaladas en el SO huésped son muy viejas: la versión instalada es %1. La versión esperada es %2. Algunas funcionalidades que requieren adiciones del huésped (integración del ratón, autoredimensionamiento de la pantalla huésped) podrÃan dejarán de funcionar apropiadamente.</p><p>Se recomienda actualizar las «Guest Additions» a la versión más reciente eligiendo <b>Instalar «Guest Additions»<b> desde el menú <b>Dispositivos</b>.</p></translation> </message> <message> <source><p>The VirtualBox Guest Additions installed in the Guest OS are too recent for this version of VirtualBox: the installed version is %1, the expected version is %2.</p><p>Using a newer version of Additions with an older version of VirtualBox is not supported. Please install the current version of the Guest Additions by choosing <b>Install Guest Additions</b> from the <b>Devices</b> menu.</p></source> - <translation><p>Las aplicaciones «Guest Additions» instaladas en el SO huésped son demasiado nuevas para esta versión de VirtualBox: la versión instalada es %1. La versión esperada es %2.</p><p>Utilizar una versión más nueva de las aplicaciones «Guest Additions» con una versión más vieja de VirtualBox no está soportado. Instale la versión de las aplicaciones «Guest Additions» correspondiete a esta versión de VirtualBox eligiendo <b>Instalar aplicaciones «Guest Additions»<b> desde el menú <b>Dispositivos</b>.</p></translation> + <translation><p>Las «Guest Additions» instaladas en el SO huésped son demasiado nuevas para esta versión de VirtualBox: la versión instalada es %1. La versión esperada es %2.</p><p>Utilizar una versión más nueva de las «Guest Additions» con una versión más vieja de VirtualBox no está soportado. Instale la versión de las «Guest Additions» correspondiete a esta versión de VirtualBox eligiendo <b>Instalar «Guest Additions»<b> desde el menú <b>Dispositivos</b>.</p></translation> </message> <message> <source>Failed to change the snapshot folder path of the virtual machine <b>%1<b> to <nobr><b>%2</b></nobr>.</source> @@ -5598,19 +5598,19 @@ este paso y luego conectar los Discos Duros desde el diálogo de Configuración </message> <message> <source><p>Could not find the VirtualBox Guest Additions CD image file <nobr><b>%1</b></nobr> or <nobr><b>%2</b>.</nobr></p><p>Do you wish to download this CD image from the Internet?</p></source> - <translation><p>No se pudo encontrar la imagen de CD las aplicaciones «Guest Additions» de VirtualBox <nobr><b>%1</b></nobr> o <nobr><b>%2</b>.</nobr></p><p>¿Desea descargar la imagen de este CD desde internet?</p></translation> + <translation><p>No se pudo encontrar la imagen de CD las «Guest Additions» de VirtualBox <nobr><b>%1</b></nobr> o <nobr><b>%2</b>.</nobr></p><p>¿Desea descargar la imagen de este CD desde internet?</p></translation> </message> <message> <source><p>Failed to download the VirtualBox Guest Additions CD image from <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p></source> - <translation><p>Fallo al descargar la imagen de CD de las aplicaciones «Guest Additions» de VirtualBox desde <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p></translation> + <translation><p>Fallo al descargar la imagen de CD de las «Guest Additions» de VirtualBox desde <nobr><a href="%1">%2</a>.</nobr></p><p>%3</p></translation> </message> <message> <source><p>Are you sure you want to download the VirtualBox Guest Additions CD image from <nobr><a href="%1">%2</a></nobr> (size %3 bytes)?</p></source> - <translation><p>¿Está seguro de que desea descargar la imagen de CD de las aplicaciones «Guest Additions» de VirtualBox desde <nobr><a href="%1">%2</a></nobr> (tamaño %3 bytes)?</p></translation> + <translation><p>¿Está seguro de que desea descargar la imagen de CD de las «Guest Additions» de VirtualBox desde <nobr><a href="%1">%2</a></nobr> (tamaño %3 bytes)?</p></translation> </message> <message> <source><p>The VirtualBox Guest Additions CD image has been successfully downloaded from <nobr><a href="%1">%2</a></nobr> and saved locally as <nobr><b>%3</b>.</nobr></p><p>Do you wish to register this CD image and mount it on the virtual CD/DVD drive?</p></source> - <translation><p>La imagen de CD de las aplicaciones «Guest Additions» de VirtualBox fue descargada con éxito desde <nobr><a href="%1">%2</a></nobr> y guardada localmente como <nobr><b>%3</b>.</nobr></p><p>¿Desea registrar esta imágen de CD y montarla in la unidad de CD/DVD virtual?</p></translation> + <translation><p>La imagen de CD de las «Guest Additions» de VirtualBox fue descargada con éxito desde <nobr><a href="%1">%2</a></nobr> y guardada localmente como <nobr><b>%3</b>.</nobr></p><p>¿Desea registrar esta imágen de CD y montarla in la unidad de CD/DVD virtual?</p></translation> </message> <message> <source><p>The virtual machine window will be now switched to <b>fullscreen</b> mode. You can go back to windowed mode at any time by pressing <b>%1</b>. Note that the <i>Host</i> key is currently defined as <b>%1</b>.</p><p>Note that the main menu bar is hidden in fullscreen mode. You can access it by pressing <b>Host+Home</b>.</p></source> @@ -6054,7 +6054,7 @@ este paso y luego conectar los Discos Duros desde el diálogo de Configuración </message> <message> <source><p>One or more virtual hard disks, CD/DVD or floppy media are not currently accessible. As a result, you will not be able to operate virtual machines that use these media until they become accessible later.</p><p>Press <b>Check</b> to open the Virtual Media Manager window and see what media are inaccessible, or press <b>Ignore</b> to ignore this message.</p></source> - <translation><p>Uno o más discos virtuales, CD/DVD o medio de disquete no está accesible. Como resultado, no se pueden operar las máquinas virtuales que usen estos medios hasta que estén accesibles.</p><p>Presione <b>Comprobar</b> para abrir la ventana del Administrador de Medios Virtuales y ver que medios está inaccesibles, o presione <b>Ignorar</b> para ignorar este mensaje.</p></translation> + <translation><p>Uno o más discos virtuales, CD/DVD o medio de disquete no está accesible. Como resultado, no se pueden operar las máquinas virtuales que usen estos medios hasta que estén accesibles.</p><p>Presione <b>Comprobar</b> para abrir la ventana del Administrador de medios virtuales y ver que medios están inaccesibles o presione <b>Ignorar</b> para ignorar este mensaje.</p></translation> </message> <message> <source><p>Your existing VirtualBox settings files will be automatically converted from the old format to a new format required by the new version of VirtualBox.</p><p>Press <b>OK</b> to start VirtualBox now or press <b>Exit</b> if you want to terminate the VirtualBox application without any further actions.</p></source> @@ -6140,7 +6140,7 @@ este paso y luego conectar los Discos Duros desde el diálogo de Configuración </message> <message> <source><p>Are you sure you want to restore snapshot <b>%1</b>? This will cause you to lose your current machine state, which cannot be recovered.</p></source> - <translation><p>¿Está seguro que desea restaurar la instantánea <b>%1</b>? Esto causará que pierda el estado actual de la máquina, el cual no puede ser recuperado.</p></translation> + <translation><p>¿Está seguro que desea restaurar la instantánea <b>%1</b>? Esto causa que se pierda el estado actual de la máquina, el cual no podrá ser recuperado.</p></translation> </message> <message> <source>Restore</source> @@ -6164,7 +6164,7 @@ este paso y luego conectar los Discos Duros desde el diálogo de Configuración </message> <message> <source><p>There are no unused media available for the newly created attachment.</p><p>Press the <b>Create</b> button to start the <i>New Virtual Disk</i> wizard and create a new medium, or press the <b>Select</b> if you wish to open the <i>Virtual Media Manager</i>.</p></source> - <translation><p>No hay medios sin utilizar para la conexión recién creada.</p><p>Presione el botón <b>Crear</b> para inciar el asistente <i>Nuevo disco virtual</i> y crear un nuevo medio, o presione <b>Seleccionar</b> si desea abrir el <i>Administrador de Medios Virtuales</i>.</p></translation> + <translation><p>No hay medios sin utilizar para la conexión recién creada.</p><p>Presione el botón <b>Crear</b> para inciar el asistente <i>Nuevo disco virtual</i> y crear un nuevo medio o presione <b>Seleccionar</b> si desea abrir el <i>Administrador de medios virtuales</i>.</p></translation> </message> <message> <source>&Create</source> @@ -6178,7 +6178,7 @@ este paso y luego conectar los Discos Duros desde el diálogo de Configuración </message> <message> <source><p>There are no unused media available for the newly created attachment.</p><p>Press the <b>Select</b> if you wish to open the <i>Virtual Media Manager</i>.</p></source> - <translation><p>No hay medios sin utilizar para la conexión recién creada.</p><p> Presione <b>Seleccionar</b> si desea abrir el <i>Administrador de Medios Virtuales</i>.</p></translation> + <translation><p>No hay medios sin utilizar para la conexión recién creada.</p><p> Presione <b>Seleccionar</b> si desea abrir el <i>Administrador de medios virtuales</i>.</p></translation> </message> <message> <source>Failed to attach the %1 to slot <i>%2</i> of the machine <b>%3</b>.</source> @@ -6214,7 +6214,7 @@ este paso y luego conectar los Discos Duros desde el diálogo de Configuración </message> <message> <source><p>Could not insert the VirtualBox Guest Additions installer CD image into the virtual machine <b>%1</b>, as the machine has no CD/DVD-ROM drives. Please add a drive using the storage page of the virtual machine settings dialog.</p></source> - <translation><p>No se puede insertar la imagen de CD de las aplicaciones «Guest Additions» en la máquina virtual <b>%1</b>, ya que la máquina no posee unidad de CD/DVD-ROM. Agregue una unidad en la sección de almacenamieto de la configuración de la máquina virtual.</p></translation> + <translation><p>No se puede insertar la imagen de CD de las «Guest Additions» en la máquina virtual <b>%1</b>, ya que la máquina no posee unidad de CD/DVD-ROM. Agregue una unidad en la sección de almacenamieto de la configuración de la máquina virtual.</p></translation> </message> <message> <source>E&xit</source> @@ -6267,7 +6267,7 @@ este paso y luego conectar los Discos Duros desde el diálogo de Configuración </message> <message> <source><p>Are you sure you want to delete the CD/DVD-ROM device?</p><p>You will not be able to mount any CDs or ISO images or install the Guest Additions without it!</p></source> - <translation><p>¿Está seguro de que quiere eliminar el dispositivo CD/DVD-ROM?</p><p>No podrá montar ningún CD o imagen ISO ni instalar las aplicaciones «Guest Additions»</p></translation> + <translation><p>¿Está seguro de que quiere eliminar el dispositivo CD/DVD-ROM?</p><p>No podrá montar ningún CD o imagen ISO ni instalar las «Guest Additions»</p></translation> </message> <message> <source>&Remove</source> @@ -6734,7 +6734,7 @@ este paso y luego conectar los Discos Duros desde el diálogo de Configuración </message> <message> <source>Show &Log...</source> - <translation>Mostrar &Historial de Eventos...</translation> + <translation>Mostrar &historial de eventos...</translation> </message> <message> <source>Show Log...</source> @@ -6746,7 +6746,7 @@ este paso y luego conectar los Discos Duros desde el diálogo de Configuración </message> <message> <source>Show the log files of the selected virtual machine</source> - <translation>Mostrar el Historial de Eventos de la máquina virtual seleccionada</translation> + <translation>Mostrar el historial de eventos de la máquina virtual seleccionada</translation> </message> <message> <source>R&egister VirtualBox...</source> @@ -6790,7 +6790,7 @@ este paso y luego conectar los Discos Duros desde el diálogo de Configuración </message> <message> <source>&Virtual Media Manager...</source> - <translation>&Administrador de Medios Virtuales...</translation> + <translation>&Administrador de medios virtuales...</translation> </message> <message> <source>Sun VirtualBox</source> @@ -6798,7 +6798,7 @@ este paso y luego conectar los Discos Duros desde el diálogo de Configuración </message> <message> <source>Display the Virtual Media Manager dialog</source> - <translation>Mostrar el diálogo Administrador de Medios Virtuales</translation> + <translation>Mostrar el diálogo Administrador de medios virtuales</translation> </message> <message> <source>&Import Appliance...</source> @@ -7903,7 +7903,7 @@ p, li { white-space: pre-wrap; } </message> <message> <source>Guest Additions</source> - <translation>Aplicaciones «Guest Additions»</translation> + <translation>«Guest Additions»</translation> </message> <message> <source>Guest OS Type</source> @@ -8027,7 +8027,7 @@ p, li { white-space: pre-wrap; } <name>VBoxVMLogViewer</name> <message> <source>Log Viewer</source> - <translation>Visor de Historial de Eventos</translation> + <translation>Visor de historial de eventos</translation> </message> <message> <source>&Save</source> @@ -8055,7 +8055,7 @@ p, li { white-space: pre-wrap; } </message> <message> <source>%1 - VirtualBox Log Viewer</source> - <translation>%1 - Visor de Historial de Eventos</translation> + <translation>%1 - Visor de historial de eventos</translation> </message> <message> <source><p>No log files found. Press the <b>Refresh</b> button to rescan the log folder <nobr><b>%1</b></nobr>.</p></source> @@ -9608,7 +9608,7 @@ makes the guest see an audio card, however every access to it will be ignored.&l </message> <message> <source>Selects which clipboard data will be copied between the guest and the host OS. This feature requires Guest Additions to be installed in the guest OS.</source> - <translation>Define el modo de compartición del portapapeles entre el SO anfitrión y el huésped. Tenga en cuenta que esta opción requiere instalar las aplicaciones «Guest Additions» en el SO huésped.</translation> + <translation>Define el modo de compartición del portapapeles entre el SO anfitrión y el huésped. Tenga en cuenta que esta opción requiere instalar las «Guest Additions» en el SO huésped.</translation> </message> <message> <source>Defines the type of the virtual IDE controller. Depending on this value, VirtualBox will provide different virtual IDE hardware devices to the guest OS.</source> @@ -9628,7 +9628,7 @@ makes the guest see an audio card, however every access to it will be ignored.&l </message> <message> <source>If checked, any change to mounted CD/DVD or Floppy media performed during machine execution will be saved in the settings file in order to preserve the configuration of mounted media between runs.</source> - <translation>Seleccionado, cualquier cambio en el montaje de los medios de CD/DVD y disquete durante la ejecución de la máquina serán salvados en el archivo de configuración. Esto preservará la configuración de los medios entre las ejecuciones de las máquinas virtuales.</translation> + <translation>Seleccionado, cualquier cambio en el montaje de los medios de CD/DVD y disquete durante la ejecución de la máquina serán guardados en el archivo de configuración. Esto preservará la configuración de los medios entre las ejecuciones de las máquinas virtuales.</translation> </message> <message> <source>Removable Media:</source> @@ -9648,7 +9648,7 @@ makes the guest see an audio card, however every access to it will be ignored.&l </message> <message> <source>Show In &Fullscreen/Seamless</source> - <translation>Mostrar a pantalla &completa/fluÃdo</translation> + <translation>Mostrar a pantalla &completa y fluÃdo</translation> </message> <message> <source>If checked, show the Mini ToolBar at the top of the screen, rather than in its default position at the bottom of the screen.</source> @@ -9895,15 +9895,15 @@ makes the guest see an audio card, however every access to it will be ignored.&l </message> <message> <source>Opens the Virtual Media Manager to select a virtual image for this attachment.</source> - <translation>Abre el administrador de medios virtuales para seleccionar la imágen para esta conexión.</translation> + <translation>Abre el Administrador de medios virtuales para seleccionar la imágen de esta conexión.</translation> </message> <message> <source>Open Virtual Media Manager</source> - <translation>Abrir administrador de medios virtuales</translation> + <translation>Abrir Administrador de medios virtuales</translation> </message> <message> <source>D&ifferencing Disks</source> - <translation>D&iferenciando discos</translation> + <translation>Discos di&ferenciados</translation> </message> <message> <source>When checked, allows the guest to send ATAPI commands directly to the host-drive which makes it possible to use CD/DVD writers connected to the host inside the VM. Note that writing audio CD inside the VM is not yet supported.</source> @@ -10229,7 +10229,7 @@ makes the guest see an audio card, however every access to it will be ignored.&l </message> <message> <source>Lists all shared folders accessible to this machine. Use 'net use x: \\vboxsvr\share' to access a shared folder named <i>share</i> from a DOS-like OS, or 'mount -t vboxsf share mount_point' to access it from a Linux OS. This feature requires Guest Additions.</source> - <translation>Lista todas las carpetas compartidas accesibles por esta máquina. Use 'net use x: \\vboxsvr\share' para acceder a una carpeta compartida llamada <i>share</i> desde un SO similar a DOS o 'mount -t vboxsf share mount_point' para acceder desde un SO Linux. Esta caracterÃstica requiere las aplicaciones «Guest Additions».</translation> + <translation>Lista todas las carpetas compartidas accesibles por esta máquina. Use 'net use x: \\vboxsvr\share' para acceder a una carpeta compartida llamada <i>share</i> desde un SO similar a DOS o 'mount -t vboxsf share mount_point' para acceder desde un SO Linux. Esta caracterÃstica requiere las «Guest Additions».</translation> </message> <message> <source>Name</source> diff --git a/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ja.ts b/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ja.ts index e004318b9..789a36692 100644 --- a/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ja.ts +++ b/src/VBox/Frontends/VirtualBox/nls/VirtualBox_ja.ts @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.0" language="ja"> +<!DOCTYPE TS><TS version="1.1" language="ja"> +<defaultcodec></defaultcodec> <context> <name>@@@</name> <message> @@ -37,14 +37,17 @@ <context> <name>AttachmentsModel</name> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="2656"/> <source>Double-click to add a new attachment</source> <translation type="obsolete">ダブルクリックã§æ–°è¦ã®å‰²ã‚Šå½“ã¦ã‚’è¿½åŠ </translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="2656"/> <source>Hard Disk</source> <translation type="obsolete">ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="2656"/> <source>Slot</source> <translation type="obsolete">スãƒãƒƒãƒˆ</translation> </message> @@ -52,18 +55,22 @@ <context> <name>BootItemsList</name> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="2656"/> <source>Move Up (Ctrl-Up)</source> <translation type="obsolete">上ã«ç§»å‹•(Ctrl-Up)</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="2656"/> <source>Move Down (Ctrl-Down)</source> <translation type="obsolete">下ã«ç§»å‹•(Ctrl-Down)</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="2656"/> <source>Moves the selected boot device up.</source> <translation type="obsolete">é¸æŠžã—ãŸèµ·å‹•ãƒ‡ãƒã‚¤ã‚¹ã‚’上ã«ç§»å‹•ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="2656"/> <source>Moves the selected boot device down.</source> <translation type="obsolete">é¸æŠžã—ãŸèµ·å‹•ãƒ‡ãƒã‚¤ã‚¹ã‚’下ã«ç§»å‹•ã—ã¾ã™ã€‚</translation> </message> @@ -71,6 +78,7 @@ <context> <name>BootItemsTable</name> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="2656"/> <source>Defines the boot device order. Use the checkboxes on the left to enable or disable individual boot devices. Move items up and down to change the device order.</source> <translation type="obsolete">起動デãƒã‚¤ã‚¹ã®å„ªå…ˆé †åºã‚’指定ã—ã¾ã™ã€‚ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ã‚’使ã„å„デãƒã‚¤ã‚¹ã‚’有効ã¾ãŸã¯ç„¡åŠ¹ã«ã§ãã¾ã™ã€‚é …ç›®ã‚’ä¸Šã¾ãŸã¯ä¸‹ã«ç§»å‹•ã—ã¦ãƒ‡ãƒã‚¤ã‚¹ã®é †åºã‚’変更ã—ã¦ãã ã•ã„。</translation> </message> @@ -78,14 +86,17 @@ <context> <name>HDItemsModel</name> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="2656"/> <source>Double-click to add a new attachment</source> <translation type="obsolete">ダブルクリックã§æ–°è¦ã®å‰²ã‚Šå½“ã¦ã‚’è¿½åŠ </translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="2656"/> <source>Hard Disk</source> <translation type="obsolete">ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="2656"/> <source>Slot</source> <translation type="obsolete">スãƒãƒƒãƒˆ</translation> </message> @@ -118,6 +129,7 @@ <translation>VirtualBoxã‚’å†ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã—ã¦ãã ã•ã„。</translation> </message> <message> + <location filename="../src/main.cpp" line="105"/> <source>This error means that the kernel driver was either not able to allocate enough memory or that some mapping operation failed.<br/><br/>There are known problems with Linux 2.6.29. If you are running such a kernel, please edit /usr/src/vboxdrv-*/Makefile and enable <i>VBOX_USE_INSERT_PAGE = 1</i>. After that, re-compile the kernel module by executing<br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>as root.</source> <translation type="obsolete">ã“ã®ã‚¨ãƒ©ãƒ¼ã¯ã€ã‚«ãƒ¼ãƒãƒ« ドライãƒã«å分ãªãƒ¡ãƒ¢ãƒªã‚’割り当ã¦ã§ããªã„ã‹ã€ã¾ãŸã¯ãƒžãƒƒãƒ”ングæ“作ã«å¤±æ•—ã—ãŸã“ã¨ã‚’æ„味ã—ã¾ã™ã€‚<br/><br/>ã“ã‚Œã¯Linux 2.6.29ã®æ—¢çŸ¥ã®å•é¡Œã§ã™ã€‚ã“ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ã‚«ãƒ¼ãƒãƒ«ã‚’使用ã™ã‚‹ãªã‚‰ã°ã€/usr/src/vboxdrv-*/Makefileを編集ã—ã€<i>VBOX_USE_INSERT_PAGE = 1</i>を有効ã«ã—ã¦ãã ã•ã„。ãã®å¾Œã€root権é™ã§<br/><br/> <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>を実行ã—ã¦ã‚«ãƒ¼ãƒãƒ« モジュールをå†ã‚³ãƒ³ãƒ‘イルã—ã¦ãã ã•ã„。</translation> </message> @@ -188,7 +200,6 @@ <translation>ディレクトリをé¸æŠž</translation> </message> <message> - <location filename="../src/extensions/QIFileDialog.cpp" line="450"/> <location filename="../src/extensions/QIFileDialog.cpp" line="689"/> <source>Select a file</source> <translation>ファイルをé¸æŠž</translation> @@ -197,6 +208,7 @@ <context> <name>QIHelpButton</name> <message> + <location filename="../src/extensions/QIFileDialog.cpp" line="689"/> <source>&Help</source> <translation type="obsolete">ヘルプ(&H)</translation> </message> @@ -214,55 +226,46 @@ <translation>å³</translation> </message> <message> - <location filename="../src/extensions/QIHotKeyEdit.cpp" line="306"/> <location filename="../src/extensions/QIHotKeyEdit.cpp" line="360"/> <source>Left Shift</source> <translation>å·¦ Shift</translation> </message> <message> - <location filename="../src/extensions/QIHotKeyEdit.cpp" line="307"/> <location filename="../src/extensions/QIHotKeyEdit.cpp" line="361"/> <source>Right Shift</source> <translation>å³ Shift</translation> </message> <message> - <location filename="../src/extensions/QIHotKeyEdit.cpp" line="308"/> <location filename="../src/extensions/QIHotKeyEdit.cpp" line="362"/> <source>Left Ctrl</source> <translation>å·¦ Ctrl</translation> </message> <message> - <location filename="../src/extensions/QIHotKeyEdit.cpp" line="309"/> <location filename="../src/extensions/QIHotKeyEdit.cpp" line="363"/> <source>Right Ctrl</source> <translation>å³ Ctrl</translation> </message> <message> - <location filename="../src/extensions/QIHotKeyEdit.cpp" line="310"/> <location filename="../src/extensions/QIHotKeyEdit.cpp" line="364"/> <source>Left Alt</source> <translation>å·¦ Alt</translation> </message> <message> - <location filename="../src/extensions/QIHotKeyEdit.cpp" line="311"/> <location filename="../src/extensions/QIHotKeyEdit.cpp" line="365"/> <source>Right Alt</source> <translation>å³ Alt</translation> </message> <message> - <location filename="../src/extensions/QIHotKeyEdit.cpp" line="312"/> <location filename="../src/extensions/QIHotKeyEdit.cpp" line="366"/> <source>Left WinKey</source> <translation>å·¦ Windowsã‚ー</translation> </message> <message> - <location filename="../src/extensions/QIHotKeyEdit.cpp" line="313"/> <location filename="../src/extensions/QIHotKeyEdit.cpp" line="367"/> <source>Right WinKey</source> <translation>å³ Windowsã‚ー</translation> </message> <message> - <location filename="../src/extensions/QIHotKeyEdit.cpp" line="314"/> <location filename="../src/extensions/QIHotKeyEdit.cpp" line="368"/> <source>Menu key</source> <translation>メニューã‚ー</translation> @@ -273,22 +276,16 @@ <translation>Alt Gr</translation> </message> <message> - <location filename="../src/extensions/QIHotKeyEdit.cpp" line="315"/> <location filename="../src/extensions/QIHotKeyEdit.cpp" line="370"/> <source>Caps Lock</source> <translation>Caps Lock</translation> </message> <message> - <location filename="../src/extensions/QIHotKeyEdit.cpp" line="316"/> <location filename="../src/extensions/QIHotKeyEdit.cpp" line="371"/> <source>Scroll Lock</source> <translation>Scroll Lock</translation> </message> <message> - <location filename="../src/extensions/QIHotKeyEdit.cpp" line="422"/> - <location filename="../src/extensions/QIHotKeyEdit.cpp" line="430"/> - <location filename="../src/extensions/QIHotKeyEdit.cpp" line="443"/> - <location filename="../src/extensions/QIHotKeyEdit.cpp" line="485"/> <location filename="../src/extensions/QIHotKeyEdit.cpp" line="602"/> <source><key_%1></source> <translation><ã‚ー %1></translation> @@ -463,6 +460,7 @@ <context> <name>QILabelPrivate</name> <message> + <location filename="../src/extensions/QILabel.cpp" line="204"/> <source>&Copy</source> <translation type="obsolete">コピー(&C)</translation> </message> @@ -508,6 +506,7 @@ <context> <name>QIRichLabel</name> <message> + <location filename="../src/extensions/QIMessageBox.cpp" line="393"/> <source>Copy to clipboard</source> <translation type="obsolete">クリップボードã«ã‚³ãƒ”ー</translation> </message> @@ -545,11 +544,13 @@ <translation>VirtualBox ã«ã¤ã„ã¦</translation> </message> <message> + <location filename="../src/VBoxAboutDlg.cpp" line="64"/> <source><qt>VirtualBox Graphical User Interface Version %1<br> %2</qt></source> <translation type="obsolete"><qt>VirtualBox グラフィカルユーザーインターフェース ãƒãƒ¼ã‚¸ãƒ§ãƒ³ %1<br>%2</qt></translation> </message> <message> + <location filename="../src/VBoxAboutDlg.cpp" line="64"/> <source><qt>VirtualBox Graphical User Interface Version %1<br>%2</qt></source> <translation type="obsolete"><qt>VirtualBox グラフィカルユーザーインターフェース ãƒãƒ¼ã‚¸ãƒ§ãƒ³ %1<br>%2</qt></translation> </message> @@ -567,10 +568,12 @@ <context> <name>VBoxAboutNonOSEDlg</name> <message> + <location filename="../src/VBoxAboutDlg.cpp" line="69"/> <source>VirtualBox - About</source> <translation type="obsolete">VirtualBox ã«ã¤ã„ã¦</translation> </message> <message> + <location filename="../src/VBoxAboutDlg.cpp" line="69"/> <source>VirtualBox Graphical User Interface Version %1</source> <translation type="obsolete">VirtualBox グラフィカルユーザーインターフェース ãƒãƒ¼ã‚¸ãƒ§ãƒ³ %1</translation> @@ -579,22 +582,27 @@ Version %1</source> <context> <name>VBoxAddNIDialog</name> <message> + <location filename="../src/VBoxAboutDlg.cpp" line="69"/> <source>Add Host Interface</source> <translation type="obsolete">ホスト インターフェースã®è¿½åŠ </translation> </message> <message> + <location filename="../src/VBoxAboutDlg.cpp" line="69"/> <source>Interface Name</source> <translation type="obsolete">インターフェースå</translation> </message> <message> + <location filename="../src/VBoxAboutDlg.cpp" line="69"/> <source>Descriptive name of the new network interface</source> <translation type="obsolete">æ–°è¦ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ インターフェースå</translation> </message> <message> + <location filename="../src/VBoxAboutDlg.cpp" line="69"/> <source>&OK</source> <translation type="obsolete">OK(&O)</translation> </message> <message> + <location filename="../src/VBoxAboutDlg.cpp" line="69"/> <source>Cancel</source> <translation type="obsolete">ã‚ャンセル</translation> </message> @@ -602,54 +610,67 @@ Version %1</source> <context> <name>VBoxAddSFDialog</name> <message> + <location filename="../src/VBoxAboutDlg.cpp" line="69"/> <source>Add Share</source> <translation type="obsolete">共有フォルダã®è¿½åŠ </translation> </message> <message> + <location filename="../src/VBoxAboutDlg.cpp" line="69"/> <source>Edit Share</source> <translation type="obsolete">è¨å®šã®ç·¨é›†</translation> </message> <message> + <location filename="../src/VBoxAboutDlg.cpp" line="69"/> <source>Select a folder to share</source> <translation type="obsolete">é¸æŠžã—ãŸãƒ•ã‚©ãƒ«ãƒ€ã‚’共有</translation> </message> <message> + <location filename="../src/VBoxAboutDlg.cpp" line="69"/> <source>Folder Path</source> <translation type="obsolete">フォルダã®ãƒ‘ス</translation> </message> <message> + <location filename="../src/VBoxAboutDlg.cpp" line="69"/> <source>Folder Name</source> <translation type="obsolete">フォルダå</translation> </message> <message> + <location filename="../src/VBoxAboutDlg.cpp" line="69"/> <source>Displays the path to an existing folder on the host PC.</source> <translation type="obsolete">ホストPC上ã®æ—¢å˜ã®ãƒ•ã‚©ãƒ«ãƒ€ã®ãƒ‘スを表示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxAboutDlg.cpp" line="69"/> <source>Displays the name of the shared folder (as it will be seen by the guest OS).</source> <translation type="obsolete">ゲストOSã§ä½¿ç”¨ã•ã‚Œã‚‹å…±æœ‰ãƒ•ã‚©ãƒ«ãƒ€åを表示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxAboutDlg.cpp" line="69"/> <source>Opens the dialog to select a folder.</source> <translation type="obsolete">フォルダé¸æŠžãƒ€ã‚¤ã‚¢ãƒã‚°ã‚’é–‹ãã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxAboutDlg.cpp" line="69"/> <source>Cancel</source> <translation type="obsolete">ã‚ャンセル</translation> </message> <message> + <location filename="../src/VBoxAboutDlg.cpp" line="69"/> <source>&OK</source> <translation type="obsolete">OK(&O)</translation> </message> <message> + <location filename="../src/VBoxAboutDlg.cpp" line="69"/> <source>&Make Permanent</source> <translation type="obsolete">永続化ã™ã‚‹(&M)</translation> </message> <message> + <location filename="../src/VBoxAboutDlg.cpp" line="69"/> <source>&Read-only</source> <translation type="obsolete">èªã¿è¾¼ã¿å°‚用(&R)</translation> </message> <message> + <location filename="../src/VBoxAboutDlg.cpp" line="69"/> <source>When checked, the guest OS will not be able to write to the specified shared folder.</source> <translation type="obsolete">ゲストOSã‹ã‚‰æŒ‡å®šã•ã‚ŒãŸå…±æœ‰ãƒ•ã‚©ãƒ«ãƒ€ã¸ã®æ›¸ãè¾¼ã¿ã‚’ç¦æ¢ã—ã¾ã™ã€‚</translation> </message> @@ -720,7 +741,6 @@ Version %1</source> <translation>ãƒãƒ¼ã‚¸ãƒ§ãƒ³</translation> </message> <message> - <location filename="../src/widgets/VBoxApplianceEditorWgt.cpp" line="186"/> <location filename="../src/widgets/VBoxApplianceEditorWgt.cpp" line="791"/> <source>Description</source> <translation>説明</translation> @@ -796,7 +816,6 @@ Version %1</source> <translation>ä¸æ˜Žãªãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢é …ç›®</translation> </message> <message> - <location filename="../src/widgets/VBoxApplianceEditorWgt.cpp" line="221"/> <location filename="../src/widgets/VBoxApplianceEditorWgt.cpp" line="400"/> <source>MB</source> <translation>MB</translation> @@ -814,7 +833,7 @@ Version %1</source> <message> <location filename="../src/widgets/VBoxApplianceEditorWgt.ui" line="62"/> <source>Warnings:</source> - <translation>è¦å‘Š:</translation> + <translation>è¦å‘Šï¼š</translation> </message> </context> <context> @@ -840,30 +859,37 @@ Version %1</source> <translation>仮想マシンã®é›»æºã‚ªãƒ•(&P)</translation> </message> <message> + <location filename="../src/VBoxCloseVMDlg.ui" line="159"/> <source>&Revert to the current snapshot</source> <translation type="obsolete">最新ã®ã‚¹ãƒŠãƒƒãƒ—ショットã®çŠ¶æ…‹ã«æˆ»ã™(&R)</translation> </message> <message> + <location filename="../src/VBoxCloseVMDlg.ui" line="159"/> <source>Revert the machine state to the state stored in the current snapshot</source> <translation type="obsolete">仮想マシンã®çŠ¶æ…‹ã‚’最新ã®ã‚¹ãƒŠãƒƒãƒ—ショットã«ä¿å˜ã•ã‚Œã¦ã„る状態ã«æˆ»ã™</translation> </message> <message> + <location filename="../src/VBoxCloseVMDlg.ui" line="159"/> <source>Help</source> <translation type="obsolete">ヘルプ</translation> </message> <message> + <location filename="../src/VBoxCloseVMDlg.ui" line="159"/> <source>F1</source> <translation type="obsolete">F1</translation> </message> <message> + <location filename="../src/VBoxCloseVMDlg.ui" line="159"/> <source>&OK</source> <translation type="obsolete">OK(&O)</translation> </message> <message> + <location filename="../src/VBoxCloseVMDlg.ui" line="159"/> <source>Cancel</source> <translation type="obsolete">ã‚ャンセル</translation> </message> <message> + <location filename="../src/VBoxCloseVMDlg.ui" line="159"/> <source><p>Saves the current execution state of the virtual machine to the physical hard disk of the host PC.</p> <p>Next time this machine is started, it will be restored from the saved state and continue execution from the same place you saved it at, which will let you continue your work immediately.</p> <p>Note that saving the machine state may take a long time, depending on the guest operating system type and the amount of memory you assigned to the virtual machine.</p></source> @@ -878,6 +904,7 @@ Version %1</source> <translation>シャットダウン シグナルé€ä¿¡(&E)</translation> </message> <message> + <location filename="../src/VBoxCloseVMDlg.ui" line="133"/> <source><p>Sends the ACPI Power Button press event to the virtual machine.</p> <p>Normally, the guest operating system running inside the virtual machine will detect this event and perform a clean shutdown procedure. This is a recommended way to turn off the virtual machine because all applications running inside it will get a chance to save their data and state.</p> <p>If the machine doesn't respond to this action then the guest operating system may be misconfigured or doesn't understand ACPI Power Button events at all. In this case you should select the <b>Power off the machine</b> action to stop virtual machine execution.</p></source> @@ -886,6 +913,7 @@ Version %1</source> <p>仮想マシンãŒã“ã®å‹•ä½œã«åå¿œã—ãªã„ãªã‚‰ã°ã€ã‚²ã‚¹ãƒˆOSã®æ§‹æˆã«èª¤ã‚ŠãŒã‚ã‚‹ã‹ã€é›»æºãƒœã‚¿ãƒ³ オフã®ACPIイベントã«å¯¾å¿œã—ã¦ã„ã¾ã›ã‚“。ã“ã®å ´åˆã€ä»®æƒ³ãƒžã‚·ãƒ³ã®å®Ÿè¡Œã‚’åœæ¢ã™ã‚‹ã«ã¯<b>[仮想マシンã®é›»æºã‚ªãƒ•]</b>ã‚’é¸æŠžã—ã¾ã™ã€‚</p></translation> </message> <message> + <location filename="../src/VBoxCloseVMDlg.ui" line="133"/> <source><p>Turns off the virtual machine.</p> <p>Note that this action will stop machine execution immediately so that the guest operating system running inside it will not be able to perform a clean shutdown procedure which may result in <i>data loss</i> inside the virtual machine. Selecting this action is recommended only if the virtual machine does not respond to the <b>Send the shutdown signal</b> action.</p></source> <translation type="obsolete"><p>仮想マシンã®é›»æºã‚’切りã¾ã™ã€‚</p> @@ -1002,7 +1030,6 @@ Version %1</source> <translation>仮想マシンをリセットã™ã‚‹</translation> </message> <message> - <location filename="../src/VBoxConsoleWnd.cpp" line="1679"/> <location filename="../src/VBoxConsoleWnd.cpp" line="1681"/> <source>ACPI S&hutdown</source> <translation>ACPI シャットダウン(&H)</translation> @@ -1033,34 +1060,42 @@ Version %1</source> <translation>仮想マシンã®ã‚¹ãƒŠãƒƒãƒ—ショットを作æˆã™ã‚‹</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1667"/> <source>&Floppy Image...</source> <translation type="obsolete">フãƒãƒƒãƒ”ーイメージ(&F)...</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1667"/> <source>Mount a floppy image file</source> <translation type="obsolete">フãƒãƒƒãƒ”ーイメージファイルをマウントã™ã‚‹</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1667"/> <source>Unmount F&loppy</source> <translation type="obsolete">フãƒãƒƒãƒ”ーã®ãƒžã‚¦ãƒ³ãƒˆè§£é™¤(&L)</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1667"/> <source>Unmount the currently mounted floppy media</source> <translation type="obsolete">マウントä¸ã®ãƒ•ãƒãƒƒãƒ”ーメディアをマウント解除ã™ã‚‹</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1667"/> <source>&CD/DVD-ROM Image...</source> <translation type="obsolete">CD/DVD-ROMイメージ(&C)...</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1667"/> <source>Mount a CD/DVD-ROM image file</source> <translation type="obsolete">CD/DVD-ROMイメージファイルをマウントã™ã‚‹</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1667"/> <source>Unmount C&D/DVD-ROM</source> <translation type="obsolete">CD/DVD-ROMã®ãƒžã‚¦ãƒ³ãƒˆè§£é™¤(&D)</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1667"/> <source>Unmount the currently mounted CD/DVD-ROM media</source> <translation type="obsolete">マウントä¸ã®CD/DVDメディアをマウント解除ã™ã‚‹</translation> </message> @@ -1071,6 +1106,7 @@ Version %1</source> <translation>リモートデスクトップ(RDP)サーãƒãƒ¼</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1702"/> <source>Remote Dis&play</source> <translation type="obsolete">リモートディスプレイ(&P)</translation> </message> @@ -1100,34 +1136,42 @@ Version %1</source> <translation>Guest Additions インストールイメージをマウントã™ã‚‹</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1706"/> <source>&VirtualBox Web Site...</source> <translation type="obsolete">VirtualBox Webサイト(&V)...</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1706"/> <source>Open the browser and go to the VirtualBox product web site</source> <translation type="obsolete">Webブラウザã§VirtualBox製å“ã®Webサイトを開ã</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1706"/> <source>&About VirtualBox...</source> <translation type="obsolete">VirtualBox ã«ã¤ã„ã¦(&A)...</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1706"/> <source>Show a dialog with product information</source> <translation type="obsolete">製å“æƒ…å ±ãƒ€ã‚¤ã‚¢ãƒã‚°ã‚’表示ã™ã‚‹</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1706"/> <source>&Reset All Warnings</source> <translation type="obsolete">ã™ã¹ã¦ã®è¦å‘Šã‚’リセット(&R)</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1706"/> <source>Go back to showing all suppressed warnings and messages</source> <translation type="obsolete">ã™ã¹ã¦ã®æŠ‘æ¢ã•ã‚ŒãŸè¦å‘Šã¨ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’å†åº¦è¡¨ç¤ºã•ã›ã‚‹</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1706"/> <source>Mount &Floppy</source> <translation type="obsolete">フãƒãƒƒãƒ”ーã®ãƒžã‚¦ãƒ³ãƒˆ(&F)</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1706"/> <source>Mount &CD/DVD-ROM</source> <translation type="obsolete">CD/DVD-ROMã®ãƒžã‚¦ãƒ³ãƒˆ(&C)</translation> </message> @@ -1152,16 +1196,19 @@ Version %1</source> <translation>ヘルプ(&H)</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1736"/> <source>Indicates whether the guest display auto-resize function is On (<img src=auto_resize_on_16px.png/>) or Off (<img src=auto_resize_off_16px.png/>). Note that this function requires Guest Additions to be installed in the guest OS.</source> <translation type="obsolete">ゲストOSã®ç”»é¢ã®è‡ªå‹•ãƒªã‚µã‚¤ã‚ºæ©Ÿèƒ½ãŒæœ‰åŠ¹ãªã¨ã(<img src=auto_resize_on_16px.png/>)ã‚’ã€ç„¡åŠ¹ãªã¨ã(<img src=auto_resize_off_16px.png/>)を表示ã—ã¾ã™ã€‚注:本機能ã®åˆ©ç”¨ã«ã¯ã‚²ã‚¹ãƒˆOSã« Guest Additions ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ãŒå¿…è¦ã§ã™ã€‚ </translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1736"/> <source>Indicates whether the host mouse pointer is captured by the guest OS:<br><nobr><img src=mouse_disabled_16px.png/>&nbsp;&nbsp;pointer is not captured</nobr><br><nobr><img src=mouse_16px.png/>&nbsp;&nbsp;pointer is captured</nobr><br><nobr><img src=mouse_seamless_16px.png/>&nbsp;&nbsp;mouse integration (MI) is On</nobr><br><nobr><img src=mouse_can_seamless_16px.png/>&nbsp;&nbsp;MI is Off, pointer is captured</nobr><br><nobr><img src=mouse_can_seamless_uncaptured_16px.png/>&nbsp;&nbsp;MI is Off, pointer is not captured</nobr><br>Note that the mouse integration feature requires Guest Additions to be installed in the guest OS.</source> <translation type="obsolete">ホスト マウスãƒã‚¤ãƒ³ã‚¿ã®ã‚ャプãƒãƒ£çŠ¶æ…‹ã‚’表示:<br><nobr><img src=mouse_disabled_16px.png/>&nbsp;&nbsp;ã‚ャプãƒãƒ£ã•ã‚Œã¦ã„ã¾ã›ã‚“</nobr><br><nobr><img src=mouse_16px.png/>&nbsp;&nbsp;ã‚ャプãƒãƒ£ã•ã‚Œã¦ã„ã¾ã™</nobr><br><nobr><img src=mouse_seamless_16px.png/>&nbsp;&nbsp;マウス統åˆã¯æœ‰åŠ¹ã§ã™</nobr><br><nobr><img src=mouse_can_seamless_16px.png/>&nbsp;&nbsp;マウス統åˆã¯ç„¡åŠ¹ã€ã‚ャプãƒãƒ£ã•ã‚Œã¦ã„ã¾ã™</nobr><br><nobr><img src=mouse_can_seamless_uncaptured_16px.png/>&nbsp;&nbsp;マウス統åˆã¯ç„¡åŠ¹ã€ã‚ャプãƒãƒ£ã•ã‚Œã¦ã„ã¾ã›ã‚“</nobr><br> 注:マウス統åˆæ©Ÿèƒ½ã®åˆ©ç”¨ã«ã¯ã‚²ã‚¹ãƒˆOSã« Guest Additions ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ãŒå¿…è¦ã§ã™ã€‚ </translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1736"/> <source>Shows the currently assigned Host key.<br>This key, when pressed alone, toggles the the keyboard and mouse capture state. It can also be used in combination with other keys to quickly perform actions from the main menu.</source> <translation type="obsolete">ç¾åœ¨å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„るホストã‚ーを表示ã—ã¾ã™ã€‚<br>ホストã‚ーをå˜ç‹¬ã§æŠ¼ã™ã¨ã€ã‚ーボートã¨ãƒžã‚¦ã‚¹ã®åˆ¶å¾¡ãŒåˆ‡ã‚Šæ›¿ã‚ã‚Šã¾ã™ã€‚ã¾ãŸã€ä»–ã®ã‚ーã¨åˆã‚ã›ã¦ã‚ーボード ショートカットã®æ“作ã«ä½¿ç”¨ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚</translation> </message> @@ -1216,39 +1263,45 @@ Version %1</source> <translation>スナップショット %1</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="2037"/> <source>Host Drive </source> <translation type="obsolete">ホスト ドライブ</translation> </message> <message> - <location filename="../src/VBoxConsoleWnd.cpp" line="1724"/> <location filename="../src/VBoxConsoleWnd.cpp" line="1727"/> <source>&Machine</source> <translation>仮想マシン(&M)</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1727"/> <source>&Network Adapters</source> <translation type="obsolete">ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ アダプタ(&N)</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1727"/> <source>Adapter %1</source> <comment>network</comment> <translation type="obsolete">アダプタ %1</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1727"/> <source>Mount the selected physical drive of the host PC</source> <comment>Floppy tip</comment> <translation type="obsolete">é¸æŠžã•ã‚ŒãŸãƒ›ã‚¹ãƒˆPCã®ç‰©ç†ãƒ‰ãƒ©ã‚¤ãƒ–をマウントã™ã‚‹</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1727"/> <source>Mount the selected physical drive of the host PC</source> <comment>CD/DVD tip</comment> <translation type="obsolete">é¸æŠžã•ã‚ŒãŸãƒ›ã‚¹ãƒˆPCã®ç‰©ç†ãƒ‰ãƒ©ã‚¤ãƒ–をマウントã™ã‚‹</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1727"/> <source>Disconnect the cable from the selected virtual network adapter</source> <translation type="obsolete">é¸æŠžã•ã‚ŒãŸä»®æƒ³ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ アダプタã‹ã‚‰ã‚±ãƒ¼ãƒ–ルを切æ–ã™ã‚‹</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1727"/> <source>Connect the cable to the selected virtual network adapter</source> <translation type="obsolete">é¸æŠžã•ã‚ŒãŸä»®æƒ³ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ アダプタã«ã‚±ãƒ¼ãƒ–ルを接続ã™ã‚‹</translation> </message> @@ -1263,50 +1316,60 @@ Version %1</source> <translation>シームレスモードã«åˆ‡ã‚Šæ›¿ãˆã‚‹</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1647"/> <source>Indicates whether the keyboard is captured by the guest OS (<img src=hostkey_captured_16px.png/>) or not (<img src=hostkey_16px.png/>).</source> <translation type="obsolete">ã‚ーボードãŒã‚²ã‚¹ãƒˆOSã«ã‚ャプãƒãƒ£ã•ã‚Œã¦ã„ã‚‹ã¨ã(<img src=hostkey_captured_16px.png/>)ã‚’ã€ç„¡åŠ¹ãªã¨ã(<img src=hostkey_16px.png/>)を表示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1647"/> <source><qt><nobr>Indicates the activity of the floppy media:</nobr>%1</qt></source> <comment>Floppy tooltip</comment> <translation type="obsolete"><qt><nobr>フãƒãƒƒãƒ”ーメディアã®çŠ¶æ…‹ã‚’表示:</nobr>%1</qt></translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1647"/> <source><br><nobr><b>Host Drive</b>: %1</nobr></source> <comment>Floppy tooltip</comment> <translation type="obsolete"><br><nobr><b>ホスト ドライブ</b>: %1</nobr></translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1647"/> <source><br><nobr><b>Image</b>: %1</nobr></source> <comment>Floppy tooltip</comment> <translation type="obsolete"><br><nobr><b>イメージ</b>: %1</nobr></translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1647"/> <source><br><nobr><b>No media mounted</b></nobr></source> <comment>Floppy tooltip</comment> <translation type="obsolete"><br><nobr><b>メディアãŒãƒžã‚¦ãƒ³ãƒˆã•ã‚Œã¦ã„ãªã„</b></nobr></translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1647"/> <source><qt><nobr>Indicates the activity of the CD/DVD-ROM media:</nobr>%1</qt></source> <comment>DVD-ROM tooltip</comment> <translation type="obsolete"><qt><nobr>CD/DVD-ROMメディアã®çŠ¶æ…‹ã‚’表示:</nobr>%1</qt></translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1647"/> <source><br><nobr><b>Host Drive</b>: %1</nobr></source> <comment>DVD-ROM tooltip</comment> <translation type="obsolete"><br><nobr><b>ホスト ドライブ</b>: %1</nobr></translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1647"/> <source><br><nobr><b>Image</b>: %1</nobr></source> <comment>DVD-ROM tooltip</comment> <translation type="obsolete"><br><nobr><b>イメージ</b>: %1</nobr></translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1647"/> <source><br><nobr><b>No media mounted</b></nobr></source> <comment>DVD-ROM tooltip</comment> <translation type="obsolete"><br><nobr><b>メディアãŒãƒžã‚¦ãƒ³ãƒˆã•ã‚Œã¦ã„ãªã„</b></nobr></translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="1647"/> <source><qt><nobr>Indicates activity on the the virtual hard disks:</nobr>%1</qt></source> <comment>HDD tooltip</comment> <translation type="obsolete"><qt><nobr>仮想ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã®çŠ¶æ…‹ã‚’表示:</nobr>%1</qt></translation> @@ -1318,6 +1381,7 @@ Version %1</source> <translation><br><nobr><b>ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ãŒå‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ãªã„</b></nobr></translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="2952"/> <source><qt><nobr>Indicates the activity of the network interfaces:</nobr>%1</qt></source> <comment>Network adapters tooltip</comment> <translation type="obsolete"><qt><nobr>ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ インターフェースã®çŠ¶æ…‹ã‚’表示:</nobr>%1</qt></translation> @@ -1347,6 +1411,7 @@ Version %1</source> <translation><br><nobr><b>ã™ã¹ã¦ã®ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ アダプタãŒç„¡åŠ¹</b></nobr></translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3054"/> <source><qt><nobr>Indicates the activity of the attached USB devices:</nobr>%1</qt></source> <comment>USB device tooltip</comment> <translation type="obsolete"><qt><nobr>USB デãƒã‚¤ã‚¹ã®çŠ¶æ…‹ã‚’表示:</nobr>%1</qt></translation> @@ -1364,10 +1429,12 @@ Version %1</source> <translation><br><nobr><b>USB コントãƒãƒ¼ãƒ©ãŒç„¡åŠ¹</b></nobr></translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3083"/> <source>Indicates whether the Remote Display (VRDP Server) is enabled (<img src=vrdp_16px.png/>) or not (<img src=vrdp_disabled_16px.png/>).</source> <translation type="obsolete">リモートディスプレイ(VRDPサーãƒ)機能ãŒæœ‰åŠ¹ãªã¨ã(<img src=vrdp_16px.png/>) ã‚’ã€ç„¡åŠ¹ãªã¨ã (<img src=vrdp_disabled_16px.png/>)を表示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3083"/> <source><qt><nobr>Indicates the activity of the machineof the machine'sapos;s shared folders: shared folders:</nobr>%1</qt></source> <comment>Shared folders tooltip</comment> <translation type="obsolete"><qt><nobr>共有フォルダã®çŠ¶æ…‹ã‚’表示:</nobr>%1</qt></translation> @@ -1376,21 +1443,25 @@ Version %1</source> <location filename="../src/VBoxConsoleWnd.cpp" line="3149"/> <source><br><nobr><b>No shared folders</b></nobr></source> <comment>Shared folders tooltip</comment> - <translation><br><nobr><b>共有フォルダ無ã—</b></nobr></translation> + <translation><br><nobr><b>共有フォルダãªã—</b></nobr></translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3149"/> <source>&Contents...</source> <translation type="obsolete">ヘルプを表示(&C)...</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3149"/> <source>Show the online help contents</source> <translation type="obsolete">オンラインヘルプを表示</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3149"/> <source>R&egister VirtualBox...</source> <translation type="obsolete">VirtualBox を登録(&E)...</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3149"/> <source>Open VirtualBox registration form</source> <translation type="obsolete">VirtualBox 登録フォームを開ã</translation> </message> @@ -1576,289 +1647,358 @@ Version %1</source> <context> <name>VBoxDiskImageManagerDlg</name> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Name</source> <translation type="obsolete">åå‰</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Virtual Size</source> <translation type="obsolete">仮想的ãªã‚µã‚¤ã‚º</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Actual Size</source> <translation type="obsolete">実際ã®ã‚µã‚¤ã‚º</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Size</source> <translation type="obsolete">サイズ</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Virtual Disk Manager</source> <translation type="obsolete">仮想ディスクマãƒãƒ¼ã‚¸ãƒ£</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>&Hard Disks</source> <translation type="obsolete">ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯(&H)</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>&CD/DVD Images</source> <translation type="obsolete">CD/DVDイメージ(&C)</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>&Floppy Images</source> <translation type="obsolete">フãƒãƒƒãƒ”ーイメージ(&F)</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Help</source> <translation type="obsolete">ヘルプ</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>F1</source> <translation type="obsolete">F1</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Invoke dialog's help</source> <translation type="obsolete">ダイアãƒã‚°ã®ãƒ˜ãƒ«ãƒ—を表示</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>&OK</source> <translation type="obsolete">OK(&O)</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Accept dialog</source> <translation type="obsolete">ダイアãƒã‚°ã«åŒæ„</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Cancel</source> <translation type="obsolete">ã‚ャンセル</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Cancel dialog</source> <translation type="obsolete">ダイアãƒã‚°ã‚’ã‚ャンセル</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>--</source> <comment>no info</comment> <translation type="obsolete">--</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>&New...</source> <translation type="obsolete">æ–°è¦(&N)...</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>&Add...</source> <translation type="obsolete">è¿½åŠ (&A)...</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>R&emove</source> <translation type="obsolete">除去(&E)</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Re&lease</source> <translation type="obsolete">解放(&L)</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Re&fresh</source> <translation type="obsolete">最新ã®æƒ…å ±ã«æ›´æ–°(&F)</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>New</source> <translation type="obsolete">æ–°è¦</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Add</source> <translation type="obsolete">è¿½åŠ </translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Remove</source> <translation type="obsolete">除去</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Release</source> <translation type="obsolete">解放</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Refresh</source> <translation type="obsolete">最新ã®æƒ…å ±ã«æ›´æ–°</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Ctrl+N</source> <translation type="obsolete">Ctrl+N</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Ctrl+A</source> <translation type="obsolete">Ctrl+A</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Ctrl+D</source> <translation type="obsolete">Ctrl+D</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Ctrl+L</source> <translation type="obsolete">Ctrl+L</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Ctrl+R</source> <translation type="obsolete">Ctrl+R</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>&Actions</source> <translation type="obsolete">動作</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Location</source> <translation type="obsolete">å ´æ‰€</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Disk Type</source> <translation type="obsolete">ディスク タイプ</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Storage Type</source> <translation type="obsolete">ストレージ タイプ</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Attached to</source> <translation type="obsolete">割り当ã¦</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Snapshot</source> <translation type="obsolete">スナップショット</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Checking accessibility</source> <translation type="obsolete">アクセスå¯å¦ã‚’確èª</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source><nobr><b>%1</b></nobr><br>Checking accessibility...</source> <comment>HDD</comment> <translation type="obsolete"><nobr><b>%1</b></nobr><br>アクセスå¯å¦ã‚’確èªä¸...</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source><nobr><b>%1</b></nobr><br><nobr>Disk type:&nbsp;&nbsp;%2</nobr><br><nobr>Storage type:&nbsp;&nbsp;%3</nobr></source> <translation type="obsolete"><nobr><b>%1</b></nobr><br><nobr>ディスク タイプ:&nbsp;&nbsp;%2</nobr><br><nobr>ストレージ タイプ:&nbsp;&nbsp;%3</nobr></translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source><br><nobr>Attached to:&nbsp;&nbsp;%1</nobr></source> <comment>HDD</comment> <translation type="obsolete"><br><nobr>割り当ã¦:&nbsp;&nbsp;%1</nobr></translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source><br><nobr>Snapshot:&nbsp;&nbsp;%5</nobr></source> <comment>HDD</comment> <translation type="obsolete"><br><nobr>スナップショット:&nbsp;&nbsp;%5</nobr></translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source><nobr><b>%1</b></nobr><br>Error checking media accessibility</source> <comment>HDD</comment> <translation type="obsolete"><nobr><b>%1</b></nobr><br>メディアã®ã‚¢ã‚¯ã‚»ã‚¹å¯å¦ç¢ºèªã§ã‚¨ãƒ©ãƒ¼</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source><nobr><b>%1</b></nobr><br>%2</source> <comment>HDD</comment> <translation type="obsolete"><nobr><b>%1</b></nobr><br>%2</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source><nobr><b>%1</b></nobr><br>Checking accessibility...</source> <comment>CD/DVD/Floppy</comment> <translation type="obsolete"><nobr><b>%1</b></nobr><br>アクセスå¯å¦ã‚’確èªä¸...</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source><nobr><b>%1</b></nobr></source> <comment>CD/DVD/Floppy</comment> <translation type="obsolete"><nobr><b>%1</b></nobr></translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source><br><nobr>Attached to:&nbsp;&nbsp;%1</nobr></source> <comment>CD/DVD/Floppy</comment> <translation type="obsolete"><br><nobr>割り当ã¦:&nbsp;&nbsp;%1</nobr></translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source><nobr><b>%1</b></nobr><br>Error checking media accessibility</source> <comment>CD/DVD/Floppy</comment> <translation type="obsolete"><nobr><b>%1</b></nobr><br>メディアã®ã‚¢ã‚¯ã‚»ã‚¹å¯å¦ç¢ºèªã§ã‚¨ãƒ©ãƒ¼</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source><nobr><b>%1</b></nobr><br>%2</source> <translation type="obsolete"><nobr><b>%1</b></nobr><br>%2</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>The image file is not accessible</source> <comment>CD/DVD/Floppy</comment> <translation type="obsolete">イメージファイルã«ã‚¢ã‚¯ã‚»ã‚¹ã§ããªã„</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>&Select</source> <translation type="obsolete">é¸æŠž(&S)</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>All hard disk images (*.vdi; *.vmdk);;Virtual Disk images (*.vdi);;VMDK images (*.vmdk);;All files (*)</source> <translation type="obsolete">ã™ã¹ã¦ã®ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚¤ãƒ¡ãƒ¼ã‚¸ãƒ•ã‚¡ã‚¤ãƒ«(*.vdi; *.vmdk);;仮想ディスクイメージ(*.vdi);;VMDKイメージ(*.vmdk);;ã™ã¹ã¦ã®ãƒ•ã‚¡ã‚¤ãƒ« (*)</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Select a hard disk image file</source> <translation type="obsolete">ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚¤ãƒ¡ãƒ¼ã‚¸ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠž</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Select a CD/DVD-ROM disk image file</source> <translation type="obsolete">CD/DVD-ROMディスクイメージファイルをé¸æŠž</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Select a floppy disk image file</source> <translation type="obsolete">フãƒãƒƒãƒ”ーディスクイメージファイルをé¸æŠž</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Create a new virtual hard disk</source> <translation type="obsolete">æ–°è¦ä»®æƒ³ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã®ä½œæˆ</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Add (register) an existing image file</source> <translation type="obsolete">æ—¢å˜ã®ãƒ¡ãƒ‡ã‚£ã‚¢ ãƒ•ã‚¡ã‚¤ãƒ«ã‚’è¿½åŠ (登録)ã™ã‚‹</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Remove (unregister) the selected media</source> <translation type="obsolete">é¸æŠžã—ãŸãƒ¡ãƒ‡ã‚£ã‚¢ã‚’å–り除ã(登録解除)</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Release the selected media by detaching it from the machine</source> <translation type="obsolete">é¸æŠžã—ãŸãƒ¡ãƒ‡ã‚£ã‚¢ã‚’仮想マシンã‹ã‚‰å‰²ã‚Šå½“ã¦è§£é™¤ã—ã¦è§£æ”¾ã™ã‚‹</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Refresh the media list</source> <translation type="obsolete">メディアリストを最新ã®æƒ…å ±ã«æ›´æ–°</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>CD/DVD-ROM images (*.iso);;All files (*)</source> <translation type="obsolete">CD/DVD-ROMイメージ(*.iso);;ã™ã¹ã¦ã®ãƒ•ã‚¡ã‚¤ãƒ«(*)</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Floppy images (*.img);;All files (*)</source> <translation type="obsolete">フãƒãƒƒãƒ”ーイメージ(*.img);;ã™ã¹ã¦ã®ãƒ•ã‚¡ã‚¤ãƒ«(*)</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>All hard disk images (*.vdi *.vmdk *.vhd);;Virtual Disk images (*.vdi);;VMDK images (*.vmdk);;VHD images (*.vhd);;All files (*)</source> <translation type="obsolete">ã™ã¹ã¦ã®ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚¤ãƒ¡ãƒ¼ã‚¸ãƒ•ã‚¡ã‚¤ãƒ«(*.vdi *.vmdk *.vhd);;仮想ディスクイメージ(*.vdi);;VMDKイメージ(*.vmdk);;VHDイメージ(*.vhd);;ã™ã¹ã¦ã®ãƒ•ã‚¡ã‚¤ãƒ« (*)</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Hard &Disks</source> <translation type="obsolete">ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯(&D)</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source><nobr>Location:</nobr></source> <translation type="obsolete"><nobr>å ´æ‰€:</nobr></translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source><nobr>Disk Type:</nobr></source> <translation type="obsolete"><nobr>ディスク タイプ:</nobr></translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source><nobr>&nbsp;&nbsp;Storage Type:</nobr></source> <translation type="obsolete"><nobr>&nbsp;&nbsp;ストレージ タイプ:</nobr></translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source><nobr>Attached to:</nobr></source> <translation type="obsolete"><nobr>割り当ã¦å…ˆ:</nobr></translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source><nobr>&nbsp;&nbsp;Snapshot:</nobr></source> <translation type="obsolete"><nobr>&nbsp;&nbsp;スナップショット:</nobr></translation> </message> @@ -1866,30 +2006,37 @@ Version %1</source> <context> <name>VBoxDownloaderWgt</name> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Cancel</source> <translation type="obsolete">ã‚ャンセル</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Downloading the VirtualBox Guest Additions CD image from <nobr><b>%1</b>...</nobr></source> <translation type="obsolete">VirtualBox Guest Additions CDイメージを<nobr><b>%1</b>ã‹ã‚‰ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰...</nobr></translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Cancel the VirtualBox Guest Additions CD image download</source> <translation type="obsolete">VirtualBox Guest Additions CDイメージã®ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ã‚’ã‚ャンセル</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Could not locate the file on the server (response: %1).</source> <translation type="obsolete">サーãƒãƒ¼ä¸Šã«ãƒ•ã‚¡ã‚¤ãƒ«ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ(å¿œç”: %1)。</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source><p>Failed to save the downloaded file as <nobr><b>%1</b>.</nobr></p></source> <translation type="obsolete"><p>ダウンãƒãƒ¼ãƒ‰ã—ãŸãƒ•ã‚¡ã‚¤ãƒ«(<nobr><b>%1</b></nobr>)ã®ä¿å˜ã«å¤±æ•—ã—ã¾ã—ãŸã€‚</p></translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Select folder to save Guest Additions image to</source> <translation type="obsolete">Guest Additionsイメージをä¿å˜ã™ã‚‹ãƒ•ã‚©ãƒ«ãƒ€ã‚’é¸æŠž</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3111"/> <source>Connection timed out.</source> <translation type="obsolete">接続ãŒã‚¿ã‚¤ãƒ アウトã«ãªã‚Šã¾ã—ãŸã€‚</translation> </message> @@ -1951,31 +2098,21 @@ p, li { white-space: pre-wrap; } <translation><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">ã“ã®ã‚¦ã‚£ã‚¶ãƒ¼ãƒ‰ã¯ã€ä»®æƒ³ã‚¢ãƒ—ライアンスをエクスãƒãƒ¼ãƒˆã™ã‚‹æ‰‹é †ã‚’案内ã—ã¾ã™ã€‚</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">ウィザードã®æ¬¡ã®ãƒšãƒ¼ã‚¸ã«é€²ã‚€ã«ã¯<span style=" font-weight:600;">[次ã¸]</span>ボタンをã€å‰ã®ãƒšãƒ¼ã‚¸ã«æˆ»ã‚‹ã«ã¯<span style=" font-weight:600;">[戻る]</span>ボタンを使用ã—ã¦ãã ã•ã„。</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">エクスãƒãƒ¼ãƒˆã™ã‚‹ä»®æƒ³ãƒžã‚·ãƒ³ã‚’é¸æŠžã—ã¦ãã ã•ã„。 1ã¤ä»¥ä¸Šã®ä»®æƒ³ãƒžã‚·ãƒ³ã‚’é¸æŠžã§ãã¾ã™ã€‚ エクスãƒãƒ¼ãƒˆã™ã‚‹å‰ã«ã€ãれらã®ä»®æƒ³ãƒžã‚·ãƒ³ã‚’オフã«ã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。</p></body></html></translation> </message> <message> - <location filename="../src/wizards/exportappliance/VBoxExportApplianceWzd.ui" line="151"/> - <location filename="../src/wizards/exportappliance/VBoxExportApplianceWzd.ui" line="318"/> - <location filename="../src/wizards/exportappliance/VBoxExportApplianceWzd.ui" line="494"/> <location filename="../src/wizards/exportappliance/VBoxExportApplianceWzd.ui" line="722"/> <source>< &Back</source> <translation>< 戻る(&B)</translation> </message> <message> - <location filename="../src/wizards/exportappliance/VBoxExportApplianceWzd.ui" line="158"/> - <location filename="../src/wizards/exportappliance/VBoxExportApplianceWzd.ui" line="325"/> <location filename="../src/wizards/exportappliance/VBoxExportApplianceWzd.ui" line="501"/> <source>&Next ></source> <translation>次ã¸(&N) ></translation> </message> <message> - <location filename="../src/wizards/exportappliance/VBoxExportApplianceWzd.ui" line="181"/> - <location filename="../src/wizards/exportappliance/VBoxExportApplianceWzd.ui" line="348"/> - <location filename="../src/wizards/exportappliance/VBoxExportApplianceWzd.ui" line="524"/> <location filename="../src/wizards/exportappliance/VBoxExportApplianceWzd.ui" line="752"/> <source>Cancel</source> <translation>ã‚ャンセル</translation> </message> <message> - <location filename="../src/wizards/exportappliance/VBoxExportApplianceWzd.ui" line="202"/> - <location filename="../src/wizards/exportappliance/VBoxExportApplianceWzd.ui" line="369"/> <location filename="../src/wizards/exportappliance/VBoxExportApplianceWzd.ui" line="545"/> <source>Appliance Export Settings</source> <translation>仮想アプライアンスã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆè¨å®š</translation> @@ -1991,6 +2128,7 @@ p, li { white-space: pre-wrap; } <translation>デフォルト値ã«æˆ»ã™</translation> </message> <message> + <location filename="../src/wizards/exportappliance/VBoxExportApplianceWzd.ui" line="298"/> <source>Please specify a filename into which the appliance information will be written. Currently VirtualBox supports the Open Virtualization Format (OVF).</source> <translation type="obsolete">ä»®æƒ³ã‚¢ãƒ—ãƒ©ã‚¤ã‚¢ãƒ³ã‚¹æƒ…å ±ãŒæ›¸ã‹ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«åを指定ã—ã¦ãã ã•ã„。 VirtualBoxã¯Open Virtualization Format(OVF)をサãƒãƒ¼ãƒˆã—ã¾ã™ã€‚</translation> </message> @@ -2189,6 +2327,7 @@ p, li { white-space: pre-wrap; } <context> <name>VBoxGLSettingsGeneral</name> <message> + <location filename="../src/settings/VBoxSettingsDialogSpecific.cpp" line="180"/> <source>Displays the path to the default VDI folder. This folder is used, if not explicitly specified otherwise, when adding existing or creating new virtual hard disks.</source> <translation type="obsolete">デフォルトã®VDIフォルダã®ãƒ‘スを表示ã—ã¾ã™ã€‚æ–°è¦ä»®æƒ³ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã®ä½œæˆæ™‚ã«ä¿å˜å…ˆã‚’明示的ã«æŒ‡å®šã—ãªã„å ´åˆã€ã“ã®ãƒ•ã‚©ãƒ«ãƒ€ãŒä½¿ç”¨ã•ã‚Œã¾ã™ã€‚</translation> </message> @@ -2245,7 +2384,7 @@ p, li { white-space: pre-wrap; } <message> <location filename="../src/settings/global/VBoxGLSettingsGeneral.ui" line="159"/> <source>&Auto show Dock && Menubar in fullscreen</source> - <translation type="unfinished"></translation> + <translation>フルスクリーンモード時ã«ãƒ‰ãƒƒã‚¯ã¨ãƒ¡ãƒ‹ãƒ¥ãƒ¼ãƒãƒ¼ã‚’自動的ã«è¡¨ç¤º(&A)</translation> </message> </context> <context> @@ -2274,7 +2413,6 @@ p, li { white-space: pre-wrap; } <context> <name>VBoxGLSettingsLanguage</name> <message> - <location filename="../src/settings/global/VBoxGLSettingsLanguage.cpp" line="90"/> <location filename="../src/settings/global/VBoxGLSettingsLanguage.cpp" line="91"/> <source> (built-in)</source> <comment>Language</comment> @@ -2405,8 +2543,6 @@ p, li { white-space: pre-wrap; } <translation>IPv4 アドレス</translation> </message> <message> - <location filename="../src/settings/global/VBoxGLSettingsNetwork.cpp" line="202"/> - <location filename="../src/settings/global/VBoxGLSettingsNetwork.cpp" line="212"/> <location filename="../src/settings/global/VBoxGLSettingsNetwork.cpp" line="231"/> <source>Not set</source> <comment>address</comment> @@ -2418,7 +2554,6 @@ p, li { white-space: pre-wrap; } <translation>IPv4 ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ マスク</translation> </message> <message> - <location filename="../src/settings/global/VBoxGLSettingsNetwork.cpp" line="205"/> <location filename="../src/settings/global/VBoxGLSettingsNetwork.cpp" line="234"/> <source>Not set</source> <comment>mask</comment> @@ -2473,7 +2608,6 @@ p, li { white-space: pre-wrap; } <translation>下é™</translation> </message> <message> - <location filename="../src/settings/global/VBoxGLSettingsNetwork.cpp" line="237"/> <location filename="../src/settings/global/VBoxGLSettingsNetwork.cpp" line="240"/> <source>Not set</source> <comment>bound</comment> @@ -2500,7 +2634,6 @@ p, li { white-space: pre-wrap; } <translation>ホストオンリー ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚’編集(&E)</translation> </message> <message> - <location filename="../src/settings/global/VBoxGLSettingsNetwork.cpp" line="403"/> <location filename="../src/settings/global/VBoxGLSettingsNetwork.cpp" line="448"/> <source>Performing</source> <comment>creating/removing host-only network</comment> @@ -2706,6 +2839,7 @@ p, li { white-space: pre-wrap; } <context> <name>VBoxGlobal</name> <message> + <location filename="../src/settings/global/VBoxGLSettingsUpdate.ui" line="188"/> <source>Differencing</source> <comment>hard disk</comment> <translation type="obsolete">差分</translation> @@ -2753,6 +2887,7 @@ p, li { white-space: pre-wrap; } <translation>メインメモリ</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="1658"/> <source><nobr>%3 MB</nobr></source> <comment>details report</comment> <translation type="obsolete"><nobr>%3 MB</nobr></translation> @@ -2770,6 +2905,7 @@ p, li { white-space: pre-wrap; } <translation>ビデオメモリ</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="1697"/> <source><nobr>%4 MB</nobr></source> <comment>details report</comment> <translation type="obsolete"><nobr>%4 MB</nobr></translation> @@ -2793,11 +2929,13 @@ p, li { white-space: pre-wrap; } <translation>IO APIC</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="1667"/> <source>Not Attached</source> <comment>details report (HDDs)</comment> <translation type="obsolete">割り当ã¦ã‚‰ã‚Œã¦ã„ã¾ã›ã‚“</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="1667"/> <source>Hard Disks</source> <comment>details report</comment> <translation type="obsolete">ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯</translation> @@ -2827,41 +2965,49 @@ p, li { white-space: pre-wrap; } <translation>無効</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="1640"/> <source>Not mounted</source> <comment>details report (floppy)</comment> <translation type="obsolete">マウントã•ã‚Œã¦ã„ã¾ã›ã‚“</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="1640"/> <source>Image</source> <comment>details report (floppy)</comment> <translation type="obsolete">イメージ</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="1640"/> <source>Host Drive</source> <comment>details report (floppy)</comment> <translation type="obsolete">ホスト ドライブ</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="1640"/> <source>Floppy</source> <comment>details report</comment> <translation type="obsolete">フãƒãƒƒãƒ”ー</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="1640"/> <source>Not mounted</source> <comment>details report (DVD)</comment> <translation type="obsolete">マウントã•ã‚Œã¦ã„ã¾ã›ã‚“</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="1640"/> <source>Image</source> <comment>details report (DVD)</comment> <translation type="obsolete">イメージ</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="1640"/> <source>Host Drive</source> <comment>details report (DVD)</comment> <translation type="obsolete">ホスト ドライブ</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="1640"/> <source>CD/DVD-ROM</source> <comment>details report</comment> <translation type="obsolete">CD/DVD-ROM</translation> @@ -2879,7 +3025,6 @@ p, li { white-space: pre-wrap; } <translation>オーディオ</translation> </message> <message> - <location filename="../src/VBoxVMInformationDlg.cpp" line="644"/> <location filename="../src/globals/VBoxGlobal.cpp" line="1842"/> <source>Adapter %1</source> <comment>details report (network)</comment> @@ -2916,26 +3061,31 @@ p, li { white-space: pre-wrap; } <translation>無効</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="1971"/> <source>VRDP Server Port</source> <comment>details report (VRDP)</comment> <translation type="obsolete">VRDPサーãƒãƒ¼ ãƒãƒ¼ãƒˆ</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="1971"/> <source>%1</source> <comment>details report (VRDP)</comment> <translation type="obsolete">%1</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="1971"/> <source>Disabled</source> <comment>details report (VRDP)</comment> <translation type="obsolete">無効</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="1971"/> <source>Remote Display</source> <comment>details report</comment> <translation type="obsolete">リモートディスプレイ</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="1971"/> <source>Opening URLs is not implemented yet.</source> <translation type="obsolete">"URLã‚’é–‹ã"ã¯ã¾ã 実装ã•ã‚Œã¦ã„ã¾ã›ã‚“。</translation> </message> @@ -2994,6 +3144,7 @@ p, li { white-space: pre-wrap; } <translation>復元ä¸</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="2678"/> <source>Discarding</source> <comment>MachineState</comment> <translation type="obsolete">ç ´æ£„ä¸</translation> @@ -3071,16 +3222,19 @@ p, li { white-space: pre-wrap; } <translation>ライトスルー</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="2721"/> <source>Virtual Disk Image</source> <comment>DiskStorageType</comment> <translation type="obsolete">仮想ディスクイメージ</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="2721"/> <source>iSCSI</source> <comment>DiskStorageType</comment> <translation type="obsolete">iSCSI</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="2721"/> <source>VMDK Image</source> <comment>DiskStorageType</comment> <translation type="obsolete">VMDKイメージ</translation> @@ -3164,6 +3318,7 @@ p, li { white-space: pre-wrap; } <translation>NAT</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="2778"/> <source>Host Interface</source> <comment>NetworkAttachmentType</comment> <translation type="obsolete">ホスト インターフェース</translation> @@ -3211,11 +3366,13 @@ p, li { white-space: pre-wrap; } <translation>ã‚ャプãƒãƒ£</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="2821"/> <source><i>Checking...</i></source> <comment>hard disk</comment> <translation type="obsolete"><i>確èªä¸...</i></translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="2821"/> <source><i>Inaccessible</i></source> <comment>hard disk</comment> <translation type="obsolete"><i>アクセスä¸å¯</i></translation> @@ -3245,10 +3402,12 @@ p, li { white-space: pre-wrap; } <translation>åŒæ–¹å‘</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="2793"/> <source>Select a directory</source> <translation type="obsolete">ディレクトリをé¸æŠž</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="2793"/> <source>Select a file</source> <translation type="obsolete">ファイルをé¸æŠž</translation> </message> @@ -3283,6 +3442,7 @@ p, li { white-space: pre-wrap; } <translation>共有フォルダ</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="1990"/> <source>%1</source> <comment>details report (shadef folders)</comment> <translation type="obsolete">%1</translation> @@ -3300,6 +3460,7 @@ p, li { white-space: pre-wrap; } <translation>共有フォルダ</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="2001"/> <source>Stuck</source> <comment>MachineState</comment> <translation type="obsolete">スタック</translation> @@ -3329,13 +3490,12 @@ p, li { white-space: pre-wrap; } <translation>ユーザー定義</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="2823"/> <source>Custom Hard Disk</source> <comment>DiskStorageType</comment> <translation type="obsolete">カスタムãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯</translation> </message> <message> - <location filename="../src/VBoxConsoleWnd.cpp" line="3170"/> - <location filename="../src/VBoxVMInformationDlg.cpp" line="483"/> <location filename="../src/globals/VBoxGlobal.cpp" line="1670"/> <source>VT-x/AMD-V</source> <comment>details report</comment> @@ -3348,16 +3508,12 @@ p, li { white-space: pre-wrap; } <translation>PAE/NX</translation> </message> <message> - <location filename="../src/VBoxConsoleWnd.cpp" line="3157"/> - <location filename="../src/VBoxVMInformationDlg.cpp" line="452"/> <location filename="../src/globals/VBoxGlobal.cpp" line="1650"/> <source>Enabled</source> <comment>details report (VT-x/AMD-V)</comment> <translation>有効</translation> </message> <message> - <location filename="../src/VBoxConsoleWnd.cpp" line="3158"/> - <location filename="../src/VBoxVMInformationDlg.cpp" line="453"/> <location filename="../src/globals/VBoxGlobal.cpp" line="1651"/> <source>Disabled</source> <comment>details report (VT-x/AMD-V)</comment> @@ -3460,6 +3616,7 @@ p, li { white-space: pre-wrap; } <translation>ãƒãƒ¼ãƒˆ %1</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="2705"/> <source>VHD Image</source> <comment>DiskStorageType</comment> <translation type="obsolete">VHDイメージ</translation> @@ -3507,11 +3664,13 @@ p, li { white-space: pre-wrap; } <translation>Intel PRO/1000 MT Desktop (82540EM)</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="2765"/> <source>PIIX3</source> <comment>IDEControllerType</comment> <translation type="obsolete">PIIX3</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="2765"/> <source>PIIX4</source> <comment>IDEControllerType</comment> <translation type="obsolete">PIIX4</translation> @@ -3571,11 +3730,13 @@ p, li { white-space: pre-wrap; } <translation><nobr>状態: %1</nobr></translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="1557"/> <source>host interface, %1</source> <comment>details report (network)</comment> <translation type="obsolete">ホスト インターフェース, %1</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="1557"/> <source>internal network, '%1'</source> <comment>details report (network)</comment> <translation type="obsolete">内部ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯, '%1'</translation> @@ -3587,31 +3748,37 @@ p, li { white-space: pre-wrap; } <translation>アダプタ %1</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.cpp" line="231"/> <source><br><nobr>Type&nbsp;(Format):&nbsp;&nbsp;%2&nbsp;(%3)</nobr></source> <comment>hard disk</comment> <translation type="obsolete"><br><nobr>タイプ&nbsp;(å½¢å¼):&nbsp;&nbsp;%2&nbsp;(%3)</nobr></translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.cpp" line="231"/> <source><br><nobr>Attached to:&nbsp;&nbsp;%1</nobr></source> <comment>medium</comment> <translation type="obsolete"><br><nobr>割り当ã¦:&nbsp;&nbsp;%1</nobr></translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.cpp" line="231"/> <source><i>Not&nbsp;Attached</i></source> <comment>medium</comment> <translation type="obsolete"><i>未割り当ã¦</i></translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.cpp" line="231"/> <source><br><i>Checking accessibility...</i></source> <comment>medium</comment> <translation type="obsolete"><br><i>アクセスå¯å¦ã‚’確èªä¸...</i></translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.cpp" line="231"/> <source><hr>Failed to check media accessibility.<br>%1.</source> <comment>medium</comment> <translation type="obsolete"><hr>メディアã®ã‚¢ã‚¯ã‚»ã‚¹å¯å¦ã®ç¢ºèªã«å¤±æ•—ã—ã¾ã—ãŸã€‚<br>%1.</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.cpp" line="231"/> <source><hr><img src=%1/>&nbsp;Attaching this hard disk will be performed indirectly using a newly created differencing hard disk.</source> <comment>medium</comment> <translation type="obsolete"><hr><img src=%1/>&nbsp;ã“ã®ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã®å‰²ã‚Šå½“ã¦ã¯ã€æ–°è¦ä½œæˆã•ã‚ŒãŸå·®åˆ†ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã®ä½¿ç”¨ã«ã‚ˆã‚Šã€é–“接的ã«å®Ÿè¡Œã•ã‚Œã¾ã™ã€‚</translation> @@ -3629,10 +3796,12 @@ p, li { white-space: pre-wrap; } <translation>アクセスã§ãã¾ã›ã‚“</translation> </message> <message> + <location filename="../src/VBoxMedium.cpp" line="446"/> <source><hr>Some of the media in this hard disk chain are inaccessible. Please use the Virtual Media Manager in <b>Show Differencing Hard Disks</b> mode to inspect these media.</source> <translation type="obsolete"><hr>ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ ãƒã‚§ãƒ¼ãƒ³ä¸ã®ã„ãã¤ã‹ã®ãƒ¡ãƒ‡ã‚£ã‚¢ã«ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã›ã‚“。仮想メディアマãƒãƒ¼ã‚¸ãƒ£ã®<b>[別ã®ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚’表示ã™ã‚‹]</b>を使用ã—ã¦ã€ã“れらã®ãƒ¡ãƒ‡ã‚£ã‚¢ã‚’確èªã—ã¦ãã ã•ã„。</translation> </message> <message> + <location filename="../src/VBoxMedium.cpp" line="446"/> <source>%1<hr>This base hard disk is indirectly attached using the following differencing hard disk:<br>%2%3</source> <translation type="obsolete">%1<hr>ã“ã®ãƒ™ãƒ¼ã‚¹ ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã¯ä»¥ä¸‹ã®å·®åˆ†ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚’使用ã—ã¦é–“接的ã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¾ã™:<br>%2%3</translation> </message> @@ -3667,27 +3836,25 @@ p, li { white-space: pre-wrap; } <translation>差分</translation> </message> <message> - <location filename="../src/VBoxVMInformationDlg.cpp" line="484"/> <location filename="../src/globals/VBoxGlobal.cpp" line="1671"/> <source>Nested Paging</source> <comment>details report</comment> <translation>ãƒã‚¹ãƒ†ãƒƒãƒ‰ãƒšãƒ¼ã‚¸ãƒ³ã‚°</translation> </message> <message> - <location filename="../src/VBoxVMInformationDlg.cpp" line="455"/> <location filename="../src/globals/VBoxGlobal.cpp" line="1655"/> <source>Enabled</source> <comment>details report (Nested Paging)</comment> <translation>有効</translation> </message> <message> - <location filename="../src/VBoxVMInformationDlg.cpp" line="456"/> <location filename="../src/globals/VBoxGlobal.cpp" line="1656"/> <source>Disabled</source> <comment>details report (Nested Paging)</comment> <translation>無効</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="1656"/> <source>Bridged network, %1</source> <comment>details report (network)</comment> <translation type="obsolete">ブリッジ ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯, '%1'</translation> @@ -3699,6 +3866,7 @@ p, li { white-space: pre-wrap; } <translation>内部ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯, '%1'</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="1833"/> <source>Host-only network, '%1'</source> <comment>details report (network)</comment> <translation type="obsolete">ホストオンリー ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯, '%1'</translation> @@ -3710,11 +3878,13 @@ p, li { white-space: pre-wrap; } <translation>SCSI</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="2700"/> <source>Bridged Network</source> <comment>NetworkAttachmentType</comment> <translation type="obsolete">ブリッジ ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="2700"/> <source>Host-only Network</source> <comment>NetworkAttachmentType</comment> <translation type="obsolete">ホストオンリー ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯</translation> @@ -3786,14 +3956,12 @@ p, li { white-space: pre-wrap; } <translation>ホストオンリー アダプタ</translation> </message> <message> - <location filename="../src/globals/VBoxGlobal.cpp" line="1659"/> <location filename="../src/globals/VBoxGlobal.cpp" line="1698"/> <source><nobr>%1 MB</nobr></source> <comment>details report</comment> <translation><nobr>%1 MB</nobr></translation> </message> <message> - <location filename="../src/VBoxConsoleWnd.cpp" line="3176"/> <location filename="../src/globals/VBoxGlobal.cpp" line="1661"/> <source>Processor(s)</source> <comment>details report</comment> @@ -3812,7 +3980,6 @@ p, li { white-space: pre-wrap; } <translation>システム</translation> </message> <message> - <location filename="../src/VBoxVMInformationDlg.cpp" line="487"/> <location filename="../src/globals/VBoxGlobal.cpp" line="1721"/> <source>Remote Display Server Port</source> <comment>details report (VRDP Server)</comment> @@ -3863,7 +4030,7 @@ p, li { white-space: pre-wrap; } <message> <location filename="../src/globals/VBoxGlobal.cpp" line="1758"/> <source>(CD/DVD)</source> - <translation type="unfinished"></translation> + <translation>(CD/DVD)</translation> </message> <message> <location filename="../src/globals/VBoxGlobal.cpp" line="1775"/> @@ -3890,7 +4057,6 @@ p, li { white-space: pre-wrap; } <translation>瞑想ä¸(システムエラー)</translation> </message> <message> - <location filename="../src/globals/VBoxGlobal.cpp" line="2673"/> <location filename="../src/globals/VBoxGlobal.cpp" line="2680"/> <source>Teleporting</source> <comment>MachineState</comment> @@ -4077,43 +4243,43 @@ p, li { white-space: pre-wrap; } <message numerus="yes"> <location filename="../src/globals/VBoxGlobal.h" line="361"/> <source>%n year(s)</source> - <translation type="unfinished"> - <numerusform></numerusform> + <translation> + <numerusform>%n å¹´</numerusform> </translation> </message> <message numerus="yes"> <location filename="../src/globals/VBoxGlobal.h" line="366"/> <source>%n month(s)</source> - <translation type="unfinished"> - <numerusform></numerusform> + <translation> + <numerusform>%n 月</numerusform> </translation> </message> <message numerus="yes"> <location filename="../src/globals/VBoxGlobal.h" line="371"/> <source>%n day(s)</source> - <translation type="unfinished"> - <numerusform></numerusform> + <translation> + <numerusform>%n æ—¥</numerusform> </translation> </message> <message numerus="yes"> <location filename="../src/globals/VBoxGlobal.h" line="376"/> <source>%n hour(s)</source> - <translation type="unfinished"> - <numerusform></numerusform> + <translation> + <numerusform>%n 時間</numerusform> </translation> </message> <message numerus="yes"> <location filename="../src/globals/VBoxGlobal.h" line="381"/> <source>%n minute(s)</source> - <translation type="unfinished"> - <numerusform></numerusform> + <translation> + <numerusform>%n 分</numerusform> </translation> </message> <message numerus="yes"> <location filename="../src/globals/VBoxGlobal.h" line="386"/> <source>%n second(s)</source> - <translation type="unfinished"> - <numerusform></numerusform> + <translation> + <numerusform>%n 秒</numerusform> </translation> </message> </context> @@ -4138,186 +4304,231 @@ p, li { white-space: pre-wrap; } <context> <name>VBoxGlobalSettingsDlg</name> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Category</source> <translation type="obsolete">カテゴリ</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>[id]</source> <translation type="obsolete">[id]</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>[link]</source> <translation type="obsolete">[link]</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>[name]</source> <translation type="obsolete">[name]</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source><i>Select a settings category from the list on the left-hand side and move the mouse over a settings item to get more information<i>.</source> <translation type="obsolete"><i>å·¦å´ã®ãƒªã‚¹ãƒˆã‹ã‚‰è¨å®šã®ã‚«ãƒ†ã‚´ãƒªã‚’é¸æŠžã—ã€è¨å®šé …目をマウスオーãƒãƒ¼ã—ã¦è©³ç´°ãªæƒ…å ±ã‚’å‚ç…§ã—ã¦ãã ã•ã„<i>。</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source> General </source> <translation type="obsolete">一般</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>0</source> <translation type="obsolete">0</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source> Input </source> <translation type="obsolete">入力</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>1</source> <translation type="obsolete">1</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source> USB </source> <translation type="obsolete"> USB </translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>2</source> <translation type="obsolete">2</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Default &Folders</source> <translation type="obsolete">デフォルト フォルダ(&F)</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Machines</source> <translation type="obsolete">仮想マシン</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>VDI files</source> <translation type="obsolete">VDIファイル</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Select</source> <translation type="obsolete">é¸æŠž</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>&Keyboard</source> <translation type="obsolete">ã‚ーボード(&K)</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>&Host Key</source> <translation type="obsolete">ホストã‚ー(&H)</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>&Auto capture keyboard</source> <translation type="obsolete">ã‚ーボードã®è‡ªå‹•ã‚ャプãƒãƒ£(&A)</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>&USB Device Filters</source> <translation type="obsolete">USB デãƒã‚¤ã‚¹ フィルタ(&U)</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Ins</source> <translation type="obsolete">Ins</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Alt+Ins</source> <translation type="obsolete">Alt+Ins</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Del</source> <translation type="obsolete">Del</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Ctrl+Up</source> <translation type="obsolete">Ctrl+Up</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Ctrl+Down</source> <translation type="obsolete">Ctrl+Down</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Help</source> <translation type="obsolete">ヘルプ</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>F1</source> <translation type="obsolete">F1</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Displays the dialog help.</source> <translation type="obsolete">ダイアãƒã‚°ã®ãƒ˜ãƒ«ãƒ—を表示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Invalid settings detected</source> <translation type="obsolete">無効ãªè¨å®šãŒè¦‹ã¤ã‹ã‚Šã¾ã—ãŸ</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>&OK</source> <translation type="obsolete">OK(&O)</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Accepts (saves) changes and closes the dialog.</source> <translation type="obsolete">変更をä¿å˜ã—ã¦ãƒ€ã‚¤ã‚¢ãƒã‚°ã‚’é–‰ã˜ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Cancel</source> <translation type="obsolete">ã‚ャンセル</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Cancels changes and closes the dialog.</source> <translation type="obsolete">å¤‰æ›´ã‚’ç ´æ£„ã—ã¦ãƒ€ã‚¤ã‚¢ãƒã‚°ã‚’é–‰ã˜ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>VirtualBox Preferences</source> <translation type="obsolete">VirtualBox 環境è¨å®š</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Displays the key used as a Host Key in the VM window. Activate the entry field and press a new Host Key. Note that alphanumeric, cursor movement and editing keys cannot be used.</source> <translation type="obsolete">仮想マシンã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§ãƒ›ã‚¹ãƒˆã‚ーã¨ã—ã¦ä½¿ç”¨ã™ã‚‹ã‚ーを表示ã—ã¾ã™ã€‚変更ã™ã‚‹ã«ã¯å…¥åŠ›ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã‚’アクティブã«ã—ã¦æ–°ã—ã„ホストã‚ーを押ã—ã¦ãã ã•ã„。注:英数å—ã€ã‚«ãƒ¼ã‚½ãƒ«ã‚ーã€ç·¨é›†ã‚ーã¯ãƒ›ã‚¹ãƒˆã‚ーã¨ã—ã¦ä½¿ç”¨ã§ãã¾ã›ã‚“。</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>New Filter %1</source> <comment>usb</comment> <translation type="obsolete">æ–°è¦ãƒ•ã‚£ãƒ«ã‚¿ %1</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Language</source> <translation type="obsolete">言語</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source> Language </source> <translation type="obsolete">言語</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>3</source> <translation type="obsolete">3</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>&Interface Language</source> <translation type="obsolete">インターフェース言語(&I)</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Author(s):</source> <translation type="obsolete">作者:</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Language:</source> <translation type="obsolete">言語:</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source> (built-in)</source> <comment>Language</comment> <translation type="obsolete">(内蔵)</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source><unavailable></source> <comment>Language</comment> <translation type="obsolete"><利用ä¸å¯></translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source><unknown></source> <comment>Author(s)</comment> <translation type="obsolete"><ä¸æ˜Ž></translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source> <qt>Lists all available user interface languages. The effective language is written in <b>bold</b>. Select <i>Default</i> to reset @@ -4327,67 +4538,83 @@ to the system default language.</qt> システムã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆè¨€èªžã«æˆ»ã™ã«ã¯<i>デフォルト</i>ã‚’é¸æŠžã—ã¦ãã ã•ã„。</qt></translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Default</source> <comment>Language</comment> <translation type="obsolete">デフォルト</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Displays the path to the default VDI folder. This folder is used, if not explicitly specified otherwise, when adding existing or creating new virtual hard disks.</source> <translation type="obsolete">デフォルトã®VDIフォルダã®ãƒ‘スを表示ã—ã¾ã™ã€‚æ–°è¦ä»®æƒ³ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã®ä½œæˆæ™‚ã«ä¿å˜å…ˆã‚’明示的ã«æŒ‡å®šã—ãªã„å ´åˆã€ã“ã®ãƒ•ã‚©ãƒ«ãƒ€ãŒä½¿ç”¨ã•ã‚Œã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Resets the virtual machine folder path to the default value. The actual default path will be displayed after accepting the changes and opening this dialog again.</source> <translation type="obsolete">仮想マシン フォルダã®ãƒ‘スをデフォルト値ã«æˆ»ã—ã¾ã™ã€‚変更後ã€å†åº¦ã“ã®ãƒ€ã‚¤ã‚¢ãƒã‚°ã‚’é–‹ãã¨ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã®ãƒ‘スãŒè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Resets the VDI folder path to the default value. The actual default path will be displayed after accepting the changes and opening this dialog again.</source> <translation type="obsolete">VDIフォルダã®ãƒ‘スをデフォルト値ã«æˆ»ã—ã¾ã™ã€‚変更後ã€å†åº¦ã“ã®ãƒ€ã‚¤ã‚¢ãƒã‚°ã‚’é–‹ãã¨ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆ パスãŒè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Displays the path to the default virtual machine folder. This folder is used, if not explicitly specified otherwise, when creating new virtual machines.</source> <translation type="obsolete">デフォルトã®ä»®æƒ³ãƒžã‚·ãƒ³ フォルダã®ãƒ‘スを表示ã—ã¾ã™ã€‚æ–°è¦ä»®æƒ³ãƒžã‚·ãƒ³ã®ä½œæˆæ™‚ã«ä¿å˜å…ˆã‚’明示的ã«æŒ‡å®šã—ãªã„å ´åˆã€ã“ã®ãƒ•ã‚©ãƒ«ãƒ€ãŒä½¿ç”¨ã•ã‚Œã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Opens a dialog to select the default VDI folder.</source> <translation type="obsolete">ダイアãƒã‚°ã‚’é–‹ã„ã¦ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã®VDIフォルダをé¸æŠžã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Opens a dialog to select the default virtual machine folder.</source> <translation type="obsolete">ダイアãƒã‚°ã‚’é–‹ã„ã¦ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã®ä»®æƒ³ãƒžã‚·ãƒ³ フォルダをé¸æŠžã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>When checked, the keyboard is automatically captured every time the VM window is activated. When the keyboard is captured, all keystrokes (including system ones like Alt-Tab) are directed to the VM.</source> <translation type="obsolete">仮想マシンã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ãŒã‚¢ã‚¯ãƒ†ã‚£ãƒ–ã®ã¨ãã€ã‚ーボードを自動的ã«ã‚ャプãƒãƒ£ã—ã¾ã™ã€‚ã‚ーボードãŒã‚ャプãƒãƒ£ã•ã‚Œã‚‹ã¨ã€ã™ã¹ã¦ã®ã‚ーストãƒãƒ¼ã‚¯(Alt-Tabãªã©ã‚’å«ã‚€)ãŒä»®æƒ³ãƒžã‚·ãƒ³ã«é€ã‚‰ã‚Œã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>V&RDP Authentication Library</source> <translation type="obsolete">VRDPèªè¨¼ãƒ©ã‚¤ãƒ–ラリ(&R)</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Displays the path to the library that provides authentication for Remote Display (VRDP) clients.</source> <translation type="obsolete">リモートディスプレイ(VRDP)クライアントã«èªè¨¼ã‚’æä¾›ã™ã‚‹ãƒ©ã‚¤ãƒ–ラリã®ãƒ‘スを表示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Opens a dialog to select the VRDP authentication library file.</source> <translation type="obsolete">VRDPèªè¨¼ãƒ©ã‚¤ãƒ–ラリ ファイルã®é¸æŠžãƒ€ã‚¤ã‚¢ãƒã‚°ã‚’é–‹ãã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Resets the authentication library file to the default value. The actual default library file will be displayed after accepting the changes and opening this dialog again.</source> <translation type="obsolete">èªè¨¼ãƒ©ã‚¤ãƒ–ラリ ファイルã®å€¤ã‚’デフォルト値ã«ãƒªã‚»ãƒƒãƒˆã—ã¾ã™ã€‚変更をé©ç”¨ã—ã€å†åº¦ã“ã®ãƒ€ã‚¤ã‚¢ãƒã‚°ã‚’é–‹ãã¨ç¾åœ¨ã®èªè¨¼ãƒ©ã‚¤ãƒ–ラリ ファイルãŒè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>&Extended Features</source> <translation type="obsolete">拡張機能(&E)</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Enable &VT-x/AMD-V</source> <translation type="obsolete">VT-x/AMD-Vを有効化(&V)</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Defines whether virtual machines should try to make use of the host CPU's hardware virtualization extensions such as Intel VT-x and AMD-V by default or not.</source> <translation type="obsolete">仮想マシンãŒãƒ›ã‚¹ãƒˆCPUã®Intel VT-xã‚„AMD-Vãªã©ã®ä»®æƒ³åŒ–支æ´æ©Ÿèƒ½ã‚’デフォルトã§ä½¿ç”¨ã™ã‚‹ã‹ã©ã†ã‹ã‚’指定ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source> <qt>Lists all global USB filters. The checkbox to the left @@ -4402,14 +4629,17 @@ to the system default language.</qt> USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニューã‹å³å´ã®ãƒœã‚¿ãƒ³ã‚’使用ã—ã¦ãã ã•ã„。</qt></translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Add Empty Filter</source> <translation type="obsolete">空ã®ãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ </translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>&Add Empty Filter</source> <translation type="obsolete">空ã®ãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ (&A)</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source> <qt>Adds a new USB filter with all fields initially set to empty strings. Note that such a filter will match any attached USB @@ -4418,14 +4648,17 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation type="obsolete"><qt>ã™ã¹ã¦ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ãŒç©ºã®æ–°è¦USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã—ã¾ã™ã€‚注:ã“ã®ãƒ•ã‚£ãƒ«ã‚¿ã¯ã™ã¹ã¦ã®æŽ¥ç¶šã•ã‚ŒãŸUSB デãƒã‚¤ã‚¹ã«é©åˆã—ã¾ã™ã€‚</qt></translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Add Filter From Device</source> <translation type="obsolete">デãƒã‚¤ã‚¹ã‹ã‚‰ãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ </translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>A&dd Filter From Device</source> <translation type="obsolete">デãƒã‚¤ã‚¹ã‹ã‚‰ãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã™ã‚‹(&D)</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source><qt>Adds a new USB filter with all fields set to the values of the selected USB device attached to the host PC.</qt> @@ -4433,42 +4666,51 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation type="obsolete"><qt>é¸æŠžã—ãŸãƒ›ã‚¹ãƒˆPCã®USB デãƒã‚¤ã‚¹ã®å€¤ã‚’ã™ã¹ã¦ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã«è¨å®šã—ãŸæ–°è¦USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã—ã¾ã™ã€‚</qt></translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Remove Filter</source> <translation type="obsolete">フィルタを除去</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>&Remove Filter</source> <translation type="obsolete">フィルタを除去ã™ã‚‹(&R)</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source> <qt>Removes the highlighted USB filter.</qt> </source> <translation type="obsolete"><qt>ãƒã‚¤ãƒ©ã‚¤ãƒˆè¡¨ç¤ºã•ã‚ŒãŸãƒ•ã‚£ãƒ«ã‚¿ã‚’除去ã—ã¾ã™ã€‚</qt></translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Move Filter Up</source> <translation type="obsolete">フィルタを上ã«ç§»å‹•</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>&Move Filter Up</source> <translation type="obsolete">フィルタを上ã«ç§»å‹•ã™ã‚‹(&M)</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source> <qt>Moves the highlighted USB filter up.</qt> </source> <translation type="obsolete"><qt>ãƒã‚¤ãƒ©ã‚¤ãƒˆè¡¨ç¤ºã•ã‚ŒãŸãƒ•ã‚£ãƒ«ã‚¿ã‚’上ã«ç§»å‹•ã—ã¾ã™ã€‚</qt></translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Move Filter Down</source> <translation type="obsolete">フィルタを下ã«ç§»å‹•</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>M&ove Filter Down</source> <translation type="obsolete">フィルタを下ã«ç§»å‹•(&O)</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source> <qt>Moves the highlighted USB filter down.</qt> </source> @@ -4478,26 +4720,32 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<context> <name>VBoxHardDiskSettings</name> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Slot</source> <translation type="obsolete">スãƒãƒƒãƒˆ</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Hard Disk</source> <translation type="obsolete">ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>VBoxHardDiskSettings</source> <translation type="obsolete">VBoxHardDiskSettings</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>&Hard Disks</source> <translation type="obsolete">ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯(&H)</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>&Enable SATA Controller</source> <translation type="obsolete">SATA コントãƒãƒ¼ãƒ©ã‚’有効化(&E)</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source> <qt>When checked, enables the virtual SATA controller of this machine. Note that you cannot @@ -4507,10 +4755,12 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation type="obsolete"><qt>ã“ã®ä»®æƒ³ãƒžã‚·ãƒ³ã®ä»®æƒ³SATA コントãƒãƒ¼ãƒ©ã‚’有効ã«ã—ã¾ã™ã€‚注:仮想コントãƒãƒ¼ãƒ©ãŒç„¡åŠ¹ãªã¨ãã€ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚’SATAãƒãƒ¼ãƒˆã«å–り付ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。</qt></translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Hard Disks &Attachments</source> <translation type="obsolete">ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã®å‰²ã‚Šå½“ã¦(&A)</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source> <qt>Lists all hard disks attached to this machine. Use a mouse double-click or the @@ -4527,54 +4777,66 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Add Attachment</source> <translation type="obsolete">割り当ã¦ã®è¿½åŠ </translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>&Add Attachment</source> <translation type="obsolete">割り当ã¦ã‚’è¿½åŠ ã™ã‚‹(&A)</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Ins</source> <translation type="obsolete">Ins</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source> <qt>Adds a new hard disk attachment.</qt> </source> <translation type="obsolete"><qt>æ–°è¦ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã®å‰²ã‚Šå½“ã¦ã‚’è¿½åŠ ã—ã¾ã™ã€‚</qt></translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Remove Attachment</source> <translation type="obsolete">割り当ã¦ã‚’除去</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>&Remove Attachment</source> <translation type="obsolete">割り当ã¦ã‚’除去ã™ã‚‹(&R)</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Delete</source> <translation type="obsolete">削除</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source> <qt>Removes the highlighted hard disk attachment.</qt> </source> <translation type="obsolete"><qt>ãƒã‚¤ãƒ©ã‚¤ãƒˆè¡¨ç¤ºã•ã‚ŒãŸãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã®å‰²ã‚Šå½“ã¦ã‚’除去ã—ã¾ã™ã€‚</qt></translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Select Hard Disk</source> <translation type="obsolete">ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚’é¸æŠž</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>&Select Hard Disk</source> <translation type="obsolete">ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚’é¸æŠžã™ã‚‹(&S)</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Ctrl+Space</source> <translation type="obsolete">Ctrl+スペース</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source> <qt>Invokes the Virtual Disk Manager to select a hard disk to attach to the currently highlighted slot.</qt> @@ -4582,14 +4844,17 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation type="obsolete"><qt>仮想ディスクマãƒãƒ¼ã‚¸ãƒ£ã‚’èµ·å‹•ã—ã€ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚’ç¾åœ¨ãƒã‚¤ãƒ©ã‚¤ãƒˆè¡¨ç¤ºã•ã‚ŒãŸã‚¹ãƒãƒƒãƒˆã«å‰²ã‚Šå½“ã¦ã¾ã™ã€‚</qt></translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source><i>%1</i> uses the hard disk that is already attached to <i>%2</i></source> <translation type="obsolete"><i>%1</i>ã¯ã™ã§ã«<i>%2</i>ã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ã‚‹</translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>Double-click to add a new attachment</source> <translation type="obsolete">ダブルクリックã§æ–°è¦ã®å‰²ã‚Šå½“ã¦ã‚’è¿½åŠ </translation> </message> <message> + <location filename="../src/VBoxGlobalSettings.cpp" line="256"/> <source>No hard disk is selected for <i>%1</i></source> <translation type="obsolete"> <i>%1</i>ã®ãŸã‚ã®ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ãŒé¸æŠžã•ã‚Œã¦ã„ãªã„</translation> </message> @@ -4649,7 +4914,6 @@ p, li { white-space: pre-wrap; } <translation><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">ã“ã®ã‚¦ã‚£ã‚¶ãƒ¼ãƒ‰ã¯ã€ä»®æƒ³ã‚¢ãƒ—ライアンスをインãƒãƒ¼ãƒˆã™ã‚‹æ‰‹é †ã‚’案内ã—ã¾ã™ã€‚ </p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">ウィザードã®æ¬¡ã®ãƒšãƒ¼ã‚¸ã«é€²ã‚€ã«ã¯<span style=" font-weight:600;">[次ã¸]</span>ボタンをã€å‰ã®ãƒšãƒ¼ã‚¸ã«æˆ»ã‚‹ã«ã¯<span style=" font-weight:600;">[戻る]</span>ボタンを使用ã—ã¦ãã ã•ã„。</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">インãƒãƒ¼ãƒˆã™ã‚‹ã«ã¯ã€æœ€åˆã«ä»®æƒ³ã‚¢ãƒ—ãƒ©ã‚¤ã‚¢ãƒ³ã‚¹æƒ…å ±ãŒæ›¸ã‹ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠžã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。 VirtualBoxã¯Open Virtualization Format(OVF)をサãƒãƒ¼ãƒˆã—ã¾ã™ã€‚続ã„ã¦ã€ä»¥ä¸‹ã‹ã‚‰ã‚¤ãƒ³ãƒãƒ¼ãƒˆã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠžã—ã¦ãã ã•ã„:</p></body></html></translation> </message> <message> - <location filename="../src/wizards/importappliance/VBoxImportApplianceWzd.ui" line="164"/> <location filename="../src/wizards/importappliance/VBoxImportApplianceWzd.ui" line="331"/> <source>< &Back</source> <translation>< 戻る(&B)</translation> @@ -4660,7 +4924,6 @@ p, li { white-space: pre-wrap; } <translation>次ã¸(&N) ></translation> </message> <message> - <location filename="../src/wizards/importappliance/VBoxImportApplianceWzd.ui" line="194"/> <location filename="../src/wizards/importappliance/VBoxImportApplianceWzd.ui" line="361"/> <source>Cancel</source> <translation>ã‚ャンセル</translation> @@ -4811,18 +5074,22 @@ p, li { white-space: pre-wrap; } <context> <name>VBoxMediaComboBox</name> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="436"/> <source><no hard disk></source> <translation type="obsolete"><ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ãªã—></translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="436"/> <source>No hard disk</source> <translation type="obsolete">ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ãªã—</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="436"/> <source>No media available. Use the Virtual Media Manager to add media of the corresponding type.</source> <translation type="obsolete">利用å¯èƒ½ãªãƒ¡ãƒ‡ã‚£ã‚¢ãŒã‚ã‚Šã¾ã›ã‚“。 仮想メディアマãƒãƒ¼ã‚¸ãƒ£ã‚’使用ã—ã¦ã€å¯¾å¿œã™ã‚‹ã‚¿ã‚¤ãƒ—ã®ãƒ¡ãƒ‡ã‚£ã‚¢ã‚’è¿½åŠ ã—ã¦ãã ã•ã„。</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="436"/> <source><no media></source> <translation type="obsolete"><メディアãªã—></translation> </message> @@ -4885,24 +5152,16 @@ p, li { white-space: pre-wrap; } <translation>メディアリストを最新ã®æƒ…å ±ã«æ›´æ–°</translation> </message> <message> - <location filename="../src/VBoxMediaManagerDlg.ui" line="105"/> - <location filename="../src/VBoxMediaManagerDlg.ui" line="210"/> - <location filename="../src/VBoxMediaManagerDlg.ui" line="301"/> - <location filename="../src/VBoxMediaManagerDlg.cpp" line="593"/> - <location filename="../src/VBoxMediaManagerDlg.cpp" line="597"/> <location filename="../src/VBoxMediaManagerDlg.cpp" line="600"/> <source>Location</source> <translation>å ´æ‰€</translation> </message> <message> - <location filename="../src/VBoxMediaManagerDlg.ui" line="122"/> <location filename="../src/VBoxMediaManagerDlg.cpp" line="594"/> <source>Type (Format)</source> <translation>タイプ(å½¢å¼)</translation> </message> <message> - <location filename="../src/VBoxMediaManagerDlg.ui" line="139"/> - <location filename="../src/VBoxMediaManagerDlg.ui" line="227"/> <location filename="../src/VBoxMediaManagerDlg.ui" line="318"/> <source>Attached to</source> <translation>割り当ã¦</translation> @@ -4974,8 +5233,6 @@ p, li { white-space: pre-wrap; } <translation>ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯(&D)</translation> </message> <message> - <location filename="../src/VBoxMediaManagerDlg.ui" line="72"/> - <location filename="../src/VBoxMediaManagerDlg.ui" line="182"/> <location filename="../src/VBoxMediaManagerDlg.ui" line="270"/> <source>Name</source> <translation>åå‰</translation> @@ -4996,7 +5253,6 @@ p, li { white-space: pre-wrap; } <translation>CD/DVDイメージ(&C)</translation> </message> <message> - <location filename="../src/VBoxMediaManagerDlg.ui" line="187"/> <location filename="../src/VBoxMediaManagerDlg.ui" line="275"/> <source>Size</source> <translation>サイズ</translation> @@ -5046,34 +5302,42 @@ p, li { white-space: pre-wrap; } <context> <name>VBoxNIList</name> <message> + <location filename="../src/widgets/VBoxMiniToolBar.cpp" line="102"/> <source>VirtualBox Host Interface %1</source> <translation type="obsolete">VirtualBox ホスト インターフェース %1</translation> </message> <message> + <location filename="../src/widgets/VBoxMiniToolBar.cpp" line="102"/> <source><p>Do you want to remove the selected host network interface <nobr><b>%1</b>?</nobr></p><p><b>Note:</b> This interface may be in use by one or more network adapters of this or another VM. After it is removed, these adapters will no longer work until you correct their settings by either choosing a different interface name or a different adapter attachment type.</p></source> - <translation type="obsolete"><p>é¸æŠžã—ãŸãƒ›ã‚¹ãƒˆ インターフェース ;<nobr><b>"%1"</b>を除去ã—ã¾ã™ã‹?</nobr></p><p><b>注:</b> ã“ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ãƒ¼ã‚¹ã¯è¤‡æ•°ã®ä»®æƒ³ãƒžã‚·ãƒ³ã®1ã¤ä»¥ä¸Šã®ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ アタプタã§ä½¿ç”¨ä¸ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。除去ã™ã‚‹ã¨ã€ä»–ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ãƒ¼ã‚¹åã‚’é¸ã¶ã‹ã€åˆ¥ã®å‰²ã‚Šå½“ã¦æ–¹æ³•ã‚’æ£ã—ãè¨å®šã™ã‚‹ã¾ã§ãれらã®ã‚¢ãƒ€ãƒ—ã‚¿ã¯å‹•ä½œã—ã¾ã›ã‚“。</p></translation> + <translation type="obsolete"><p>é¸æŠžã—ãŸãƒ›ã‚¹ãƒˆ インターフェース ;<nobr><b>"%1"</b>を除去ã—ã¾ã™ã‹ï¼Ÿ</nobr></p><p><b>注:</b> ã“ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ãƒ¼ã‚¹ã¯è¤‡æ•°ã®ä»®æƒ³ãƒžã‚·ãƒ³ã®1ã¤ä»¥ä¸Šã®ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ アタプタã§ä½¿ç”¨ä¸ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。除去ã™ã‚‹ã¨ã€ä»–ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ãƒ¼ã‚¹åã‚’é¸ã¶ã‹ã€åˆ¥ã®å‰²ã‚Šå½“ã¦æ–¹æ³•ã‚’æ£ã—ãè¨å®šã™ã‚‹ã¾ã§ãれらã®ã‚¢ãƒ€ãƒ—ã‚¿ã¯å‹•ä½œã—ã¾ã›ã‚“。</p></translation> </message> <message> + <location filename="../src/widgets/VBoxMiniToolBar.cpp" line="102"/> <source>Host &Interfaces</source> <translation type="obsolete">ホスト インターフェース(&I)</translation> </message> <message> + <location filename="../src/widgets/VBoxMiniToolBar.cpp" line="102"/> <source>Lists all available host interfaces.</source> <translation type="obsolete">利用å¯èƒ½ãªãƒ›ã‚¹ãƒˆ インターフェースをリスト表示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/widgets/VBoxMiniToolBar.cpp" line="102"/> <source>A&dd New Host Interface</source> <translation type="obsolete">æ–°è¦ãƒ›ã‚¹ãƒˆ インターフェースã®è¿½åŠ (&D)</translation> </message> <message> + <location filename="../src/widgets/VBoxMiniToolBar.cpp" line="102"/> <source>&Remove Selected Host Interface</source> <translation type="obsolete">é¸æŠžã—ãŸãƒ›ã‚¹ãƒˆ インターフェースã®é™¤åŽ»(&R)</translation> </message> <message> + <location filename="../src/widgets/VBoxMiniToolBar.cpp" line="102"/> <source>Adds a new host interface.</source> <translation type="obsolete">æ–°è¦ãƒ›ã‚¹ãƒˆ ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ãƒ¼ã‚¹ã‚’è¿½åŠ ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/widgets/VBoxMiniToolBar.cpp" line="102"/> <source>Removes the selected host interface.</source> <translation type="obsolete">é¸æŠžã—ãŸãƒ›ã‚¹ãƒˆ インターフェースを除去ã—ã¾ã™ã€‚</translation> </message> @@ -5094,6 +5358,7 @@ p, li { white-space: pre-wrap; } <translation>æ–°è¦ä»®æƒ³ãƒ‡ã‚£ã‚¹ã‚¯ã®ä½œæˆ</translation> </message> <message> + <location filename="../src/wizards/newhd/VBoxNewHDWzd.ui" line="30"/> <source><p>This wizard will help you to create a new virtual hard disk image for your virtual machine.</p> <p>Use the <b>Next</b> button to go to the next page of the wizard and the <b>Back</b> button to return to the previous page.</p></source> @@ -5106,41 +5371,50 @@ and the <b>Back</b> button to return to the previous page.</p> <translation>よã†ã“ãæ–°è¦ä»®æƒ³ãƒ‡ã‚£ã‚¹ã‚¯ä½œæˆã‚¦ã‚£ã‚¶ãƒ¼ãƒ‰ã¸ï¼</translation> </message> <message> + <location filename="../src/wizards/newhd/VBoxNewHDWzd.ui" line="63"/> <source>Image Type</source> <translation type="obsolete">イメージã®ã‚¿ã‚¤ãƒ—</translation> </message> <message> + <location filename="../src/wizards/newhd/VBoxNewHDWzd.ui" line="63"/> <source>&Dynamically expanding image</source> <translation type="obsolete">å¯å¤‰ã‚µã‚¤ã‚ºã®ã‚¤ãƒ¡ãƒ¼ã‚¸(&D)</translation> </message> <message> + <location filename="../src/wizards/newhd/VBoxNewHDWzd.ui" line="63"/> <source>&Fixed-size image</source> <translation type="obsolete">固定サイズã®ã‚¤ãƒ¡ãƒ¼ã‚¸(&F)</translation> </message> <message> + <location filename="../src/wizards/newhd/VBoxNewHDWzd.ui" line="63"/> <source>Virtual Disk Image Type</source> <translation type="obsolete">仮想ディスクイメージã®ã‚¿ã‚¤ãƒ—</translation> </message> <message> + <location filename="../src/wizards/newhd/VBoxNewHDWzd.ui" line="63"/> <source><p>Press the <b>Select</b> button to select the location and name of the file to store the virtual hard disk image or type a file name in the entry field.</p></source> <translation type="obsolete"><p><b>[é¸æŠž]</b>ボタンをクリックã—ã€ãƒ•ã‚¡ã‚¤ãƒ«ã®å ´æ‰€ã¨åå‰ã‚’é¸æŠžã—ã¦ä»®æƒ³ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚¤ãƒ¡ãƒ¼ã‚¸ã‚’ä¿å˜ã™ã‚‹ã‹ã€å…¥åŠ›ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã«ãƒ•ã‚¡ã‚¤ãƒ«åを入力ã—ã¦ãã ã•ã„ 。</p></translation> </message> <message> + <location filename="../src/wizards/newhd/VBoxNewHDWzd.ui" line="63"/> <source>&Image File Name</source> <translation type="obsolete">イメージファイルå(&I)</translation> </message> <message> + <location filename="../src/wizards/newhd/VBoxNewHDWzd.ui" line="63"/> <source>Select</source> <translation type="obsolete">é¸æŠž</translation> </message> <message> + <location filename="../src/wizards/newhd/VBoxNewHDWzd.ui" line="63"/> <source><p>Select the size of the virtual hard disk image in megabytes. This size will be reported to the Guest OS as the size of the virtual hard disk.</p></source> <translation type="obsolete"><p>仮想ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã®ã‚µã‚¤ã‚ºã‚’é¸æŠžã—ã¦ãã ã•ã„。 ã“ã®ã‚µã‚¤ã‚ºã¯ä»®æƒ³ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã®ã‚µã‚¤ã‚ºã¨ã—ã¦ã‚²ã‚¹ãƒˆOSã«å ±å‘Šã•ã‚Œã¾ã™ã€‚</p></translation> </message> <message> + <location filename="../src/wizards/newhd/VBoxNewHDWzd.ui" line="63"/> <source>Image &Size</source> <translation type="obsolete">イメージã®ã‚µã‚¤ã‚º(&S)</translation> </message> @@ -5150,10 +5424,12 @@ as the size of the virtual hard disk.</p></source> <translation>仮想ディスクã®å ´æ‰€ã¨ã‚µã‚¤ã‚º</translation> </message> <message> + <location filename="../src/wizards/newhd/VBoxNewHDWzd.ui" line="435"/> <source>You are going to create a new virtual hard disk image with the following parameters:</source> <translation type="obsolete">æ–°è¦ä»®æƒ³ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚¤ãƒ¡ãƒ¼ã‚¸ã¯ä»¥ä¸‹ã®è¨å®šã§ä½œæˆã•ã‚Œã¾ã™:</translation> </message> <message> + <location filename="../src/wizards/newhd/VBoxNewHDWzd.ui" line="435"/> <source>If the above settings are correct, press the <b>Finish</b> button. Once you press it, a new hard disk image will be created. </source> @@ -5170,6 +5446,7 @@ as the size of the virtual hard disk.</p></source> <translation><nobr>%1 ãƒã‚¤ãƒˆ</nobr></translation> </message> <message> + <location filename="../src/wizards/newhd/VBoxNewHDWzd.cpp" line="364"/> <source><table><tr><td>Type:</td><td>%1</td></tr><tr><td>Location:</td><td>%2</td></tr><tr><td>Size:</td><td>%3&nbsp;(%4&nbsp;Bytes)</td></tr></table></source> <translation type="obsolete"><table><tr><td>タイプ:</td><td>%1</td></tr><tr><td>å ´æ‰€:</td><td>%2</td></tr><tr><td>サイズ:</td><td>%3&nbsp;(%4&nbsp;ãƒã‚¤ãƒˆ)</td></tr></table></translation> </message> @@ -5184,6 +5461,7 @@ as the size of the virtual hard disk.</p></source> <translation>æ–°è¦ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠžã—ã¦ãã ã•ã„</translation> </message> <message> + <location filename="../src/wizards/newhd/VBoxNewHDWzd.cpp" line="272"/> <source><p>Select the type of virtual hard disk image you want to create.</p> <p>A <b>dynamically expanding image</b> initially occupies a very small amount of space on your physical hard disk. It will grow dynamically (up to @@ -5198,37 +5476,37 @@ time depending on the image size and the write performance of your harddisk.< 固定サイズã®ã‚¤ãƒ¡ãƒ¼ã‚¸ã®ä½œæˆã¯ã€ã‚¤ãƒ¡ãƒ¼ã‚¸ã®ã‚µã‚¤ã‚ºã¨ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã®æ›¸ãè¾¼ã¿æ€§èƒ½ã«ä¾å˜ã—ã¦é•·ã„時間ãŒã‹ã‹ã‚‹ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。</p></translation> </message> <message> + <location filename="../src/wizards/newhd/VBoxNewHDWzd.cpp" line="272"/> <source><p>This wizard will help you to create a new virtual hard disk image for your virtual machine.</p><p>Use the <b>Next</b> button to go to the next page of the wizard and the <b>Back</b> button to return to the previous page.</p></source> <translation type="obsolete"><p>ã“ã®ã‚¦ã‚£ã‚¶ãƒ¼ãƒ‰ã¯ä»®æƒ³ãƒžã‚·ãƒ³ç”¨ã®æ–°è¦ä»®æƒ³ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚¤ãƒ¡ãƒ¼ã‚¸ä½œæˆã‚’手助ã‘ã—ã¾ã™ã€‚</p><p>ウィザードã®æ¬¡ã®ãƒšãƒ¼ã‚¸ã«é€²ã‚€ã«ã¯<b>[次ã¸]</b>ボタンをã€å‰ã®ãƒšãƒ¼ã‚¸ã«æˆ»ã‚‹ã«ã¯<b>[戻る]</b>ボタンを使用ã—ã¦ãã ã•ã„。</p></translation> </message> <message> - <location filename="../src/wizards/newhd/VBoxNewHDWzd.ui" line="176"/> - <location filename="../src/wizards/newhd/VBoxNewHDWzd.ui" line="384"/> - <location filename="../src/wizards/newhd/VBoxNewHDWzd.ui" line="684"/> <location filename="../src/wizards/newhd/VBoxNewHDWzd.ui" line="898"/> <source>< &Back</source> <translation>< 戻る(&B)</translation> </message> <message> - <location filename="../src/wizards/newhd/VBoxNewHDWzd.ui" line="183"/> - <location filename="../src/wizards/newhd/VBoxNewHDWzd.ui" line="391"/> <location filename="../src/wizards/newhd/VBoxNewHDWzd.ui" line="691"/> <source>&Next ></source> <translation>次ã¸(&N) ></translation> </message> <message> + <location filename="../src/wizards/newhd/VBoxNewHDWzd.ui" line="691"/> <source><p>Select the type of virtual hard disk image you want to create.</p><p>A <b>dynamically expanding image</b> initially occupies a very small amount of space on your physical hard disk. It will grow dynamically (up to the size specified) as the Guest OS claims disk space.</p><p>A <b>fixed-size image</b> does not grow. It is stored in a file of approximately the same size as the size of the virtual hard disk. The creation of a fixed-size image may take a long time depending on the image size and the write performance of your harddisk.</p></source> <translation type="obsolete"><p>作æˆã™ã‚‹ä»®æƒ³ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚¤ãƒ¡ãƒ¼ã‚¸ã®ã‚¿ã‚¤ãƒ—ã‚’é¸æŠžã—ã¦ãã ã•ã„。</p><p><b>å¯å¤‰ã‚µã‚¤ã‚ºã®ã‚¤ãƒ¡ãƒ¼ã‚¸</b>ã¯ã€æœ€åˆã«ç‰©ç†çš„ãªãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ä¸Šã®ã”ãå°ã•ãªå®¹é‡ã—ã‹ä½¿ç”¨ã—ã¾ã›ã‚“。ゲストOSãŒè¦æ±‚ã™ã‚‹ãƒ‡ã‚£ã‚¹ã‚¯å®¹é‡ã«å¿œã˜ã¦ã‚µã‚¤ã‚ºãŒå‹•çš„ã«å¢—åŠ (指定ã•ã‚ŒãŸã‚µã‚¤ã‚ºã¾ã§)ã—ã¾ã™ã€‚</p><p><b>固定サイズã®ã‚¤ãƒ¡ãƒ¼ã‚¸</b>ã®å®¹é‡ã¯å¢—åŠ ã—ã¾ã›ã‚“。仮想ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã®ã‚µã‚¤ã‚ºã¨ã»ã¼åŒã˜ã‚µã‚¤ã‚ºã®ãƒ•ã‚¡ã‚¤ãƒ«ã«ä¿å˜ã•ã‚Œã¾ã™ã€‚固定サイズã®ã‚¤ãƒ¡ãƒ¼ã‚¸ã®ä½œæˆã¯ã€ã‚¤ãƒ¡ãƒ¼ã‚¸ã®ã‚µã‚¤ã‚ºã¨ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã®æ›¸ãè¾¼ã¿æ€§èƒ½ã«ä¾å˜ã—ã¦é•·ã„時間ãŒã‹ã‹ã‚‹ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。</p></translation> </message> <message> + <location filename="../src/wizards/newhd/VBoxNewHDWzd.ui" line="691"/> <source><p>Press the <b>Select</b> button to select the location and name of the file to store the virtual hard disk image or type a file name in the entry field.</p></source> <translation type="obsolete"><p><b>[é¸æŠž]</b>ボタンをクリックã—ã€ãƒ•ã‚¡ã‚¤ãƒ«ã®å ´æ‰€ã¨åå‰ã‚’é¸æŠžã—ã¦ä»®æƒ³ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚¤ãƒ¡ãƒ¼ã‚¸ã‚’ä¿å˜ã™ã‚‹ã‹ã€å…¥åŠ›ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã«ãƒ•ã‚¡ã‚¤ãƒ«åを入力ã—ã¦ãã ã•ã„ 。</p></translation> </message> <message> + <location filename="../src/wizards/newhd/VBoxNewHDWzd.ui" line="691"/> <source><p>Select the size of the virtual hard disk image in megabytes. This size will be reported to the Guest OS as the size of the virtual hard disk.</p></source> <translation type="obsolete"><p>仮想ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã®ã‚µã‚¤ã‚ºã‚’é¸æŠžã—ã¦ãã ã•ã„。ã“ã®ã‚µã‚¤ã‚ºã¯ä»®æƒ³ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã®ã‚µã‚¤ã‚ºã¨ã—ã¦ã‚²ã‚¹ãƒˆOSã«å ±å‘Šã•ã‚Œã¾ã™ã€‚</p></translation> </message> <message> + <location filename="../src/wizards/newhd/VBoxNewHDWzd.ui" line="691"/> <source>If the above settings are correct, press the <b>Finish</b> button. Once you press it, a new hard disk image will be created.</source> <translation type="obsolete">上記ã®è¨å®šãŒæ£ã—ã‘ã‚Œã°ã€<b>[完了]</b>ボタンをクリックã—ã¦ãã ã•ã„。 æ–°è¦ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚¤ãƒ¡ãƒ¼ã‚¸ãŒä½œæˆã•ã‚Œã¾ã™ã€‚</translation> </message> @@ -5262,9 +5540,6 @@ time depending on the image size and the write performance of your harddisk.< <translation>ãƒã‚¤ãƒˆ</translation> </message> <message> - <location filename="../src/wizards/newhd/VBoxNewHDWzd.ui" line="206"/> - <location filename="../src/wizards/newhd/VBoxNewHDWzd.ui" line="414"/> - <location filename="../src/wizards/newhd/VBoxNewHDWzd.ui" line="714"/> <location filename="../src/wizards/newhd/VBoxNewHDWzd.ui" line="928"/> <source>Cancel</source> <translation>ã‚ャンセル</translation> @@ -5338,6 +5613,7 @@ time depending on the image size and the write performance of your harddisk.< <translation>æ–°è¦ä»®æƒ³ãƒžã‚·ãƒ³ã®ä½œæˆ</translation> </message> <message> + <location filename="../src/wizards/newvm/VBoxNewVMWzd.ui" line="31"/> <source><p>This wizard will guide you through the steps that are necessary to create a new virtual machine for VirtualBox.</p> <p>Use the <b>Next</b> button to go the next page of the wizard @@ -5351,6 +5627,7 @@ and the <b>Back</b> button to return to the previous page.</p> <translation>よã†ã“ãæ–°è¦ä»®æƒ³ãƒžã‚·ãƒ³ä½œæˆã‚¦ã‚£ã‚¶ãƒ¼ãƒ‰ã¸ï¼</translation> </message> <message> + <location filename="../src/wizards/newvm/VBoxNewVMWzd.ui" line="55"/> <source><p>Enter a name for the new virtual machine and select the type of the guest operating system you plan to install onto the virtual machine.</p> <p>The name of the virtual machine usually indicates its software and hardware configuration. @@ -5384,14 +5661,17 @@ It will be used by all VirtualBox components to identify your virtual machine.&l <translation>メインメモリã®ã‚µã‚¤ã‚º(&M)</translation> </message> <message> + <location filename="../src/wizards/newvm/VBoxNewVMWzd.ui" line="524"/> <source><</source> <translation type="obsolete"><</translation> </message> <message> + <location filename="../src/wizards/newvm/VBoxNewVMWzd.ui" line="524"/> <source>=</source> <translation type="obsolete">=</translation> </message> <message> + <location filename="../src/wizards/newvm/VBoxNewVMWzd.ui" line="524"/> <source>></source> <translation type="obsolete">></translation> </message> @@ -5406,6 +5686,7 @@ It will be used by all VirtualBox components to identify your virtual machine.&l <translation>メモリ</translation> </message> <message> + <location filename="../src/wizards/newvm/VBoxNewVMWzd.ui" line="428"/> <source><p>Select a hard disk image to be used as the boot hard disk of the virtual machine. You can either create a new hard disk using the <b>New</b> button or select an existing hard disk @@ -5419,14 +5700,17 @@ step and attach hard disks later using the VM Settings dialog.</p></source <p>より高度ãªãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯è¨å®šãŒå¿…è¦ã§ã‚ã‚Œã°ã€ã“ã®ã‚¹ãƒ†ãƒƒãƒ—をスã‚ップã—ã€å¾Œã§ä»®æƒ³ãƒžã‚·ãƒ³è¨å®šãƒ€ã‚¤ã‚¢ãƒã‚°ã‚’使用ã—ã¦ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚’割り当ã¦ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚</p></translation> </message> <message> + <location filename="../src/wizards/newvm/VBoxNewVMWzd.ui" line="428"/> <source>B&oot Hard Disk (Primary Master)</source> <translation type="obsolete">起動ディスク (プライマリ マスター) (&O)</translation> </message> <message> + <location filename="../src/wizards/newvm/VBoxNewVMWzd.ui" line="428"/> <source>N&ew...</source> <translation type="obsolete">æ–°è¦(&E)...</translation> </message> <message> + <location filename="../src/wizards/newvm/VBoxNewVMWzd.ui" line="428"/> <source>E&xisting...</source> <translation type="obsolete">é¸æŠž(&X)...</translation> </message> @@ -5436,6 +5720,7 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>仮想ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯</translation> </message> <message> + <location filename="../src/wizards/newvm/VBoxNewVMWzd.ui" line="716"/> <source> <p> You are going to create a new virtual machine @@ -5445,6 +5730,7 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation type="obsolete"> <p>æ–°è¦ä»®æƒ³ãƒžã‚·ãƒ³ã¯ä»¥ä¸‹ã®è¨å®šã§ä½œæˆã•ã‚Œã¾ã™: </p></translation> </message> <message> + <location filename="../src/wizards/newvm/VBoxNewVMWzd.ui" line="716"/> <source> <p> If the above is correct press the <b>Finish</b> button. @@ -5465,14 +5751,17 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>概è¦</translation> </message> <message> + <location filename="../src/wizards/newvm/VBoxNewVMWzd.ui" line="948"/> <source><qt>%1&nbsp;MB</qt></source> <translation type="obsolete"><qt>%1&nbsp;MB</qt></translation> </message> <message> + <location filename="../src/wizards/newvm/VBoxNewVMWzd.ui" line="948"/> <source><tr><td>Name:</td><td>%1</td></tr><tr><td>OS Type:</td><td>%2</td></tr><tr><td>Base Memory:</td><td>%3&nbsp;MB</td></tr></source> <translation type="obsolete"><tr><td>åå‰:</td><td>%1</td></tr><tr><td>OSタイプ:</td><td>%2</td></tr><tr><td>メインメモリ:</td><td>%3&nbsp;MB</td></tr></translation> </message> <message> + <location filename="../src/wizards/newvm/VBoxNewVMWzd.ui" line="948"/> <source><tr><td>Boot Hard Disk:</td><td>%4</td></tr></source> <translation type="obsolete"><tr><td>起動ディスク:</td><td>%4</td></tr></translation> </message> @@ -5492,18 +5781,11 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation><p>ã“ã®ã‚¦ã‚£ã‚¶ãƒ¼ãƒ‰ã¯VirtualBox用ã®æ–°è¦ä»®æƒ³ãƒžã‚·ãƒ³ã‚’作æˆã™ã‚‹ãŸã‚ã«å¿…è¦ãªã‚¹ãƒ†ãƒƒãƒ—を案内ã—ã¾ã™ã€‚</p><p>ウィザードã®æ¬¡ã®ãƒšãƒ¼ã‚¸ã«é€²ã‚€ã«ã¯<b>[次ã¸]</b>ボタンをã€å‰ã®ãƒšãƒ¼ã‚¸ã«æˆ»ã‚‹ã«ã¯<b>[戻る]</b>ボタンを使用ã—ã¦ãã ã•ã„。</p></translation> </message> <message> - <location filename="../src/wizards/newvm/VBoxNewVMWzd.ui" line="165"/> - <location filename="../src/wizards/newvm/VBoxNewVMWzd.ui" line="377"/> - <location filename="../src/wizards/newvm/VBoxNewVMWzd.ui" line="665"/> - <location filename="../src/wizards/newvm/VBoxNewVMWzd.ui" line="897"/> <location filename="../src/wizards/newvm/VBoxNewVMWzd.ui" line="1105"/> <source>< &Back</source> <translation>< 戻る(&B)</translation> </message> <message> - <location filename="../src/wizards/newvm/VBoxNewVMWzd.ui" line="172"/> - <location filename="../src/wizards/newvm/VBoxNewVMWzd.ui" line="384"/> - <location filename="../src/wizards/newvm/VBoxNewVMWzd.ui" line="672"/> <location filename="../src/wizards/newvm/VBoxNewVMWzd.ui" line="904"/> <source>&Next ></source> <translation>次ã¸(&N) ></translation> @@ -5514,6 +5796,7 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation><p>æ–°è¦ä»®æƒ³ãƒžã‚·ãƒ³ã®åå‰ã‚’入力ã—ã€ä»®æƒ³ãƒžã‚·ãƒ³ã«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã—ãŸã„ゲストOSã®ã‚¿ã‚¤ãƒ—ã‚’é¸æŠžã—ã¦ãã ã•ã„。</p><p>通常ã€ä»®æƒ³ãƒžã‚·ãƒ³ã®åå‰ã¯ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¨ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢æ§‹æˆã‚’示ã—ã¾ã™ã€‚VirtualBoxã¯ä½œæˆã•ã‚ŒãŸä»®æƒ³ãƒžã‚·ãƒ³ã‚’特定ã™ã‚‹ãŸã‚ã«ã“ã®åå‰ã‚’使用ã—ã¾ã™ã€‚</p></translation> </message> <message> + <location filename="../src/wizards/newvm/VBoxNewVMWzd.ui" line="274"/> <source><p>Select a hard disk image to be used as the boot hard disk of the virtual machine. You can either create a new hard disk using the <b>New</b> button or select an existing hard disk image from the drop-down list or by pressing the <b>Existing</b> button (to invoke the Virtual Disk Manager dialog).</p><p>If you need a more complicated hard disk setup, you can also skip this step and attach hard disks later using the VM Settings dialog.</p></source> <translation type="obsolete"><p>仮想マシンã§èµ·å‹•ãƒ‡ã‚£ã‚¹ã‚¯ã¨ã—ã¦ä½¿ç”¨ã™ã‚‹ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚¤ãƒ¡ãƒ¼ã‚¸ã‚’é¸æŠžã—ã¾ã™ã€‚<b>[æ–°è¦]</b>ボタンをクリックã—ã¦æ–°è¦ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚’作æˆã™ã‚‹ã‹ã€ãƒ‰ãƒãƒƒãƒ—ダウンリストã¾ãŸã¯<b>[é¸æŠž]</b>ボタンをクリック(仮想ディスクマãƒãƒ¼ã‚¸ãƒ£ã‚’èµ·å‹•ã—ã¾ã™)ã—ã¦æ—¢å˜ã®ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚¤ãƒ¡ãƒ¼ã‚¸ã‚’é¸æŠžã—ã¾ã™ã€‚</p><p>より高度ãªãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯è¨å®šãŒå¿…è¦ã§ã‚ã‚Œã°ã€ã“ã®ã‚¹ãƒ†ãƒƒãƒ—をスã‚ップã—ã€å¾Œã§ä»®æƒ³ãƒžã‚·ãƒ³è¨å®šãƒ€ã‚¤ã‚¢ãƒã‚°ã‚’使用ã—ã¦ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚’割り当ã¦ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚</p></translation> </message> @@ -5533,8 +5816,6 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>完了(&F)</translation> </message> <message> - <location filename="../src/wizards/newvm/VBoxNewVMWzd.cpp" line="134"/> - <location filename="../src/wizards/newvm/VBoxNewVMWzd.cpp" line="136"/> <location filename="../src/wizards/newvm/VBoxNewVMWzd.cpp" line="150"/> <source>MB</source> <comment>megabytes</comment> @@ -5565,10 +5846,6 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>èµ·å‹• ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯</translation> </message> <message> - <location filename="../src/wizards/newvm/VBoxNewVMWzd.ui" line="195"/> - <location filename="../src/wizards/newvm/VBoxNewVMWzd.ui" line="407"/> - <location filename="../src/wizards/newvm/VBoxNewVMWzd.ui" line="695"/> - <location filename="../src/wizards/newvm/VBoxNewVMWzd.ui" line="927"/> <location filename="../src/wizards/newvm/VBoxNewVMWzd.ui" line="1135"/> <source>Cancel</source> <translation>ã‚ャンセル</translation> @@ -5607,6 +5884,7 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>仮想マシンã«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã™ã‚‹OSã®ç¨®é¡žã‚’表示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/widgets/VBoxOSTypeSelectorWidget.cpp" line="126"/> <source>V&ersion:</source> <translation type="obsolete">ãƒãƒ¼ã‚¸ãƒ§ãƒ³(&E):</translation> </message> @@ -5700,7 +5978,6 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>仮想マシン<b>"%1"</b>ã®è¨å®šã®é©ç”¨ã«å¤±æ•—ã—ã¾ã—ãŸã€‚</translation> </message> <message> - <location filename="../src/globals/VBoxProblemReporter.cpp" line="636"/> <location filename="../src/globals/VBoxProblemReporter.cpp" line="650"/> <source>Failed to start the virtual machine <b>%1</b>.</source> <translation>仮想マシン<b>"%1"</b>ã®èµ·å‹•ã«å¤±æ•—ã—ã¾ã—ãŸã€‚</translation> @@ -5716,19 +5993,16 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>仮想マシン<b>"%1"</b>ã®å†é–‹ã«å¤±æ•—ã—ã¾ã—ãŸã€‚</translation> </message> <message> - <location filename="../src/globals/VBoxProblemReporter.cpp" line="696"/> <location filename="../src/globals/VBoxProblemReporter.cpp" line="710"/> <source>Failed to save the state of the virtual machine <b>%1</b>.</source> <translation>仮想マシン<b>"%1"</b>ã®çŠ¶æ…‹ã®ä¿å˜ã«å¤±æ•—ã—ã¾ã—ãŸã€‚</translation> </message> <message> - <location filename="../src/globals/VBoxProblemReporter.cpp" line="722"/> <location filename="../src/globals/VBoxProblemReporter.cpp" line="736"/> <source>Failed to create a snapshot of the virtual machine <b>%1</b>.</source> <translation>仮想マシン<b>"%1"</b>ã®ã‚¹ãƒŠãƒƒãƒ—ショット作æˆã«å¤±æ•—ã—ã¾ã—ãŸã€‚</translation> </message> <message> - <location filename="../src/globals/VBoxProblemReporter.cpp" line="748"/> <location filename="../src/globals/VBoxProblemReporter.cpp" line="760"/> <source>Failed to stop the virtual machine <b>%1</b>.</source> <translation>仮想マシン<b>"%1"</b>ã®åœæ¢ã«å¤±æ•—ã—ã¾ã—ãŸã€‚</translation> @@ -5744,14 +6018,17 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>仮想マシン<b>"%1"</b>ã®ä¿å˜ã•ã‚ŒãŸçŠ¶æ…‹ã®ç ´æ£„ã«å¤±æ•—ã—ã¾ã—ãŸã€‚</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="783"/> <source>Failed to discard the snapshot <b>%1</b> of the virtual machine <b>%2</b>.</source> <translation type="obsolete">仮想マシン<b>"%2"</b>ã®ã‚¹ãƒŠãƒƒãƒ—ショット <b>%1</b> ã®ç ´æ£„ã«å¤±æ•—ã—ã¾ã—ãŸã€‚</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="783"/> <source>Failed to discard the current state of the virtual machine <b>%1</b>.</source> <translation type="obsolete">仮想マシン<b>"%1"</b>ã®æœ€æ–°ã®çŠ¶æ…‹ã®ç ´æ£„ã«å¤±æ•—ã—ã¾ã—ãŸã€‚</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="783"/> <source>Failed to discard the current snapshot and the current state of the virtual machine <b>%1</b>.</source> <translation type="obsolete">仮想マシン<b>"%1"</b>ã®æœ€æ–°ã®ã‚¹ãƒŠãƒƒãƒ—ショットã¨çŠ¶æ…‹ã®ç ´æ£„ã«å¤±æ•—ã—ã¾ã—ãŸã€‚</translation> </message> @@ -5777,43 +6054,53 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation><p>仮想マシン<b>"%1"</b>ã®ä¿å˜ã•ã‚ŒãŸçŠ¶æ…‹ã‚’ç ´æ£„ã—ã¾ã™ã‹ï¼Ÿ</p><p>ã“ã®æ“作ã¯ã‚²ã‚¹ãƒˆOSã‚’é©åˆ‡ã«ã‚·ãƒ£ãƒƒãƒˆãƒ€ã‚¦ãƒ³ã›ãšã«ãƒªã‚»ãƒƒãƒˆã¾ãŸã¯é›»æºã‚’オフã«ã™ã‚‹ã“ã¨ã¨åŒç‰ã§ã™ã€‚</p></translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="979"/> <source><p>Releasing this media image will detach it from the following virtual machine(s): <b>%1</b>.</p><p>Continue?</p></source> - <translation type="obsolete"><p>ã“ã®ãƒ¡ãƒ‡ã‚£ã‚¢ã‚¤ãƒ¡ãƒ¼ã‚¸ã‚’解放ã™ã‚‹ã¨ã€ä»¥ä¸‹ã®ä»®æƒ³ãƒžã‚·ãƒ³ã§ã®å‰²ã‚Šå½“ã¦ãŒè§£é™¤ã•ã‚Œã¾ã™:<b>%1</b>.</p><p>続行ã—ã¾ã™ã‹?</p></translation> + <translation type="obsolete"><p>ã“ã®ãƒ¡ãƒ‡ã‚£ã‚¢ã‚¤ãƒ¡ãƒ¼ã‚¸ã‚’解放ã™ã‚‹ã¨ã€ä»¥ä¸‹ã®ä»®æƒ³ãƒžã‚·ãƒ³ã§ã®å‰²ã‚Šå½“ã¦ãŒè§£é™¤ã•ã‚Œã¾ã™:<b>%1</b>.</p><p>続行ã—ã¾ã™ã‹ï¼Ÿ</p></translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="979"/> <source><p>The image file <b>%1</b> already exists. You cannot create a new virtual hard disk that uses this file, because it can be already used by another virtual hard disk.</p><p>Please specify a different image file name.</p></source> <translation type="obsolete"><p>イメージファイル<b>"%1"</b>ã¯ã™ã§ã«å˜åœ¨ã—ã¾ã™ã€‚ä»–ã®ä»®æƒ³ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã§ã“ã®åå‰ãŒä½¿ç”¨ã•ã‚Œã¦ã„ã‚‹ãŸã‚ã€æ–°è¦ä»®æƒ³ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚’作æˆã§ãã¾ã›ã‚“。</p><p>別ã®ã‚¤ãƒ¡ãƒ¼ã‚¸ãƒ•ã‚¡ã‚¤ãƒ«åを指定ã—ã¦ãã ã•ã„。</p></translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="979"/> <source>Failed to delete the virtual hard disk image <b>%1</b>.</source> <translation type="obsolete">仮想ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚¤ãƒ¡ãƒ¼ã‚¸<b>"%1"</b>ã®å‰Šé™¤ã«å¤±æ•—ã—ã¾ã—ãŸã€‚</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="979"/> <source><p>Do you want to remove (unregister) the virtual hard disk <nobr><b>%1</b>?</nobr></p></source> - <translation type="obsolete"><p>仮想ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯<nobr><b>"%1"</b>を除去(登録解除)ã—ã¾ã™ã‹?</nobr></p></translation> + <translation type="obsolete"><p>仮想ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯<nobr><b>"%1"</b>を除去(登録解除)ã—ã¾ã™ã‹ï¼Ÿ</nobr></p></translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="979"/> <source>Failed to create the virtual hard disk image <nobr><b>%1</b>.</nobr></source> <translation type="obsolete">仮想ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚¤ãƒ¡ãƒ¼ã‚¸<nobr><b>"%1"</b>ã®ä½œæˆã«å¤±æ•—ã—ã¾ã—ãŸã€‚</nobr></translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="979"/> <source>hard disk</source> <translation type="obsolete">ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="979"/> <source>CD/DVD image</source> <translation type="obsolete">CD/DVDイメージ</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="979"/> <source>floppy image</source> <translation type="obsolete">フãƒãƒƒãƒ”ーイメージ</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="979"/> <source>Failed to register the %1 <nobr><b>%2</b></nobr>.</source> <translation type="obsolete">%1 <nobr><b>%2</b></nobr>ã®ç™»éŒ²ã«å¤±æ•—ã—ã¾ã—ãŸã€‚ </translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="979"/> <source>Failed to unregister the %1 <nobr><b>%2</b></nobr>.</source> <translation type="obsolete">%1 <nobr><b>%2</b></nobr>ã®ç™»éŒ²è§£é™¤ã«å¤±æ•—ã—ã¾ã—ãŸã€‚</translation> </message> @@ -5828,33 +6115,31 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>仮想マシン<b>"%1"</b>ã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ã‚’é–‹ã‘ã¾ã›ã‚“ã§ã—ãŸã€‚</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="1296"/> <source>Failed to determine the accessibility state of the media <nobr><b>%1</b></nobr>. Some of the registered media may become inaccessible.</source> <translation type="obsolete">メディア<nobr><b>"%1"</b></nobr>ã®ã‚¢ã‚¯ã‚»ã‚¹å¯å¦çŠ¶æ…‹ã‚’å–å¾—ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚登録ã•ã‚ŒãŸãƒ¡ãƒ‡ã‚£ã‚¢ã®ã„ãã¤ã‹ã«ã‚¢ã‚¯ã‚»ã‚¹ã§ããªã„ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="1296"/> <source>Failed to create the host network interface <b>%1</b>.</source> <translation type="obsolete">ホスト ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ インターフェース<b>"%1"</b>ã®ä½œæˆã«å¤±æ•—ã—ã¾ã—ãŸã€‚</translation> </message> <message> - <location filename="../src/globals/VBoxProblemReporter.cpp" line="1349"/> <location filename="../src/globals/VBoxProblemReporter.cpp" line="1358"/> <source>Failed to remove the host network interface <b>%1</b>.</source> <translation>ホスト ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ インターフェース<b>"%1"</b>ã‚’å–り除ã‘ã¾ã›ã‚“ã§ã—ãŸã€‚</translation> </message> <message> - <location filename="../src/globals/VBoxProblemReporter.cpp" line="1370"/> <location filename="../src/globals/VBoxProblemReporter.cpp" line="1382"/> <source>Failed to attach the USB device <b>%1</b> to the virtual machine <b>%2</b>.</source> <translation>USB デãƒã‚¤ã‚¹<b>"%1"</b>ã®ä»®æƒ³ãƒžã‚·ãƒ³<b>"%2"</b>ã¸ã®å‰²ã‚Šå½“ã¦ã«å¤±æ•—ã—ã¾ã—ãŸã€‚</translation> </message> <message> - <location filename="../src/globals/VBoxProblemReporter.cpp" line="1396"/> <location filename="../src/globals/VBoxProblemReporter.cpp" line="1408"/> <source>Failed to detach the USB device <b>%1</b> from the virtual machine <b>%2</b>.</source> <translation>USB デãƒã‚¤ã‚¹<b>"%1"</b>ã®ä»®æƒ³ãƒžã‚·ãƒ³<b>"%2"</b>ã‹ã‚‰ã®å‰²ã‚Šå½“ã¦è§£é™¤ã«å¤±æ•—ã—ã¾ã—ãŸã€‚</translation> </message> <message> - <location filename="../src/globals/VBoxProblemReporter.cpp" line="1424"/> <location filename="../src/globals/VBoxProblemReporter.cpp" line="1460"/> <source>Failed to create the shared folder <b>%1</b> (pointing to <nobr><b>%2</b></nobr>) for the virtual machine <b>%3</b>.</source> <translation>仮想マシン<b>"%3"</b>ã®å…±æœ‰ãƒ•ã‚©ãƒ«ãƒ€<b>"%1"</b>(å‚照先 <nobr><b>%2</b></nobr>)ã®ä½œæˆã«å¤±æ•—ã—ã¾ã—ãŸã€‚</translation> @@ -5865,14 +6150,17 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>仮想マシン<b>"%3"</b>ã®å…±æœ‰ãƒ•ã‚©ãƒ«ãƒ€<b>"%1"</b>(å‚照先 <nobr><b>%2</b></nobr>)ã®é™¤åŽ»ã«å¤±æ•—ã—ã¾ã—ãŸã€‚</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="1442"/> <source><p>You have <b>clicked the mouse</b> inside the Virtual Machine display or pressed the <b>host key</b>. This will cause the Virtual Machine to <b>capture</b> the host mouse pointer (only if the mouse pointer integration is not currently supported by the guest OS) and the keyboard, which will make them unavailable to other applications running on your host machine.</p><p>You can press the <b>host key</b> at any time to <b>uncapture</b> the keyboard and mouse (if it is captured) and return them to normal operation. The currently assigned host key is shown on the status bar at the bottom of the Virtual Machine window, next to the&nbsp;<img src=hostkey_16px.png/>&nbsp;icon. This icon, together with the mouse icon placed nearby, indicate the current keyboard and mouse capture state.</p></source> <translation type="obsolete"><p>仮想マシンã®ç”»é¢ã‚’<b>マウスクリック</b>ã™ã‚‹ã‹ã€ã¾ãŸã¯<b>ホストã‚ー</b>を押ã™ã¨ã€ä»®æƒ³ãƒžã‚·ãƒ³ã¯ãƒžã‚¦ã‚¹ãƒã‚¤ãƒ³ã‚¿(マウス統åˆæ©Ÿèƒ½ãŒã‚²ã‚¹ãƒˆOSã§ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ãªã„ã¨ãã ã‘)ã¨ã‚ーボードを<b>ã‚ャプãƒãƒ£</b>ã—ã¾ã™ã€‚仮想マシンã«ã‚ーボードã¨ãƒžã‚¦ã‚¹ãŒã‚ャプãƒãƒ£ã•ã‚Œã‚‹ã¨ãƒ›ã‚¹ãƒˆPCã§å‹•ä½œã™ã‚‹ä»–ã®ã‚¢ãƒ—リケーションã¯åˆ©ç”¨ã§ãã¾ã›ã‚“。</p><p></p><p><b>ホストã‚ー</b>を押ã™ã¨ã€ã‚ーボードã¨ãƒžã‚¦ã‚¹(ã‚ャプãƒãƒ£ã•ã‚Œã¦ã„ã‚‹ã¨ã)ã¯<b>ã‚ャプãƒãƒ£è§£é™¤</b>ã•ã‚Œã€é€šå¸¸ã®æ“作ã«æˆ»ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ç¾åœ¨å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„るホストã‚ーã¯ä»®æƒ³ãƒžã‚·ãƒ³ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ä¸‹éƒ¨ã®ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ãƒãƒ¼ã«&nbsp;<img src=hostkey_16px.png/>&nbsp;アイコンã§è¡¨ç¤ºã•ã‚Œã¾ã™ã€‚ã“ã®ã‚¢ã‚¤ã‚³ãƒ³ã¯ãƒžã‚¦ã‚¹ã‚¢ã‚¤ã‚³ãƒ³ã¨å…±ã«ç¾åœ¨ã®ã‚ーボ−ドã¨ãƒžã‚¦ã‚¹ã®ã‚ャプãƒãƒ£çŠ¶æ…‹ã‚’表示ã—ã¾ã™ã€‚.</p></translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="1442"/> <source><p>You have the <b>Auto capture keyboard</b> option turned on. This will cause the Virtual Machine to automatically <b>capture</b> the keyboard every time the VM window is activated and make it unavailable to other applications running on your host machine: when the keyboard is captured, all keystrokes (including system ones like Alt-Tab) will be directed to the VM.</p><p>You can press the <b>host key</b> at any time to <b>uncapture</b> the keyboard and mouse (if it is captured) and return them to normal operation. The currently assigned host key is shown on the status bar at the bottom of the Virtual Machine window, next to the&nbsp;<img src=hostkey_16px.png/>&nbsp;icon. This icon, together with the mouse icon placed nearby, indicate the current keyboard and mouse capture state.</p></source> <translation type="obsolete"><p><b>ã‚ーボードã®è‡ªå‹•ã‚ャプãƒãƒ£</b>機能ãŒæœ‰åŠ¹ã§ã™ã€‚仮想マシンã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ãŒã‚¢ã‚¯ãƒ†ã‚£ãƒ–ã®ã¨ãã€ä»®æƒ³ãƒžã‚·ãƒ³ã¯ã‚ーボードを自動的ã«<b>ã‚ャプãƒãƒ£</b>ã—ã¾ã™ã€‚ã‚ーボードãŒã‚ャプãƒãƒ£ã•ã‚Œã‚‹ã¨ã€ã™ã¹ã¦ã®ã‚ーストãƒãƒ¼ã‚¯(Alt-Tabãªã©ã‚’å«ã‚€)ãŒä»®æƒ³ãƒžã‚·ãƒ³ã«é€ã‚‰ã‚Œã‚‹ãŸã‚ã€ãƒ›ã‚¹ãƒˆPCã§å‹•ä½œã™ã‚‹ä»–ã®ã‚¢ãƒ—リケーションã¯åˆ©ç”¨ã§ãã¾ã›ã‚“。</p><p><b>ホストã‚ー</b>を押ã™ã¨ã€ã‚ーボードã¨ãƒžã‚¦ã‚¹(ã‚ャプãƒãƒ£ã•ã‚Œã¦ã„ã‚‹ã¨ã)ã¯<b>ã‚ャプãƒãƒ£è§£é™¤</b>ã•ã‚Œã€é€šå¸¸ã®æ“作ã«æˆ»ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ç¾åœ¨å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„るホストã‚ーã¯ä»®æƒ³ãƒžã‚·ãƒ³ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ä¸‹éƒ¨ã®ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ãƒãƒ¼ã«&nbsp;<img src=hostkey_16px.png/>&nbsp;アイコンã§è¡¨ç¤ºã•ã‚Œã¾ã™ã€‚ã“ã®ã‚¢ã‚¤ã‚³ãƒ³ã¯ãƒžã‚¦ã‚¹ã‚¢ã‚¤ã‚³ãƒ³ã¨å…±ã«ç¾åœ¨ã®ã‚ーボ−ドã¨ãƒžã‚¦ã‚¹ã®ã‚ャプãƒãƒ£çŠ¶æ…‹ã‚’表示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="1442"/> <source><p>The Virtual Machine reports that the guest OS supports <b>mouse pointer integration</b>. This means that you do not need to <i>capture</i> the mouse pointer to be able to use it in your guest OS -- all mouse actions you perform when the mouse pointer is over the Virtual Machine's display are directly sent to the guest OS. If the mouse is currently captured, it will be automatically uncaptured.</p><p>The mouse icon on the status bar will look like&nbsp;<img src=mouse_seamless_16px.png/>&nbsp;to inform you that mouse pointer integration is supported by the guest OS and is currently turned on.</p><p><b>Note</b>: Some applications may behave incorrectly in mouse pointer integration mode. You can always disable it for the current session (and enable it again) by selecting the corresponding action from the menu bar.</p></source> <translation type="obsolete"><p>ゲストOSã§<b>マウス統åˆ</b>機能ãŒã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã™ã€‚ゲストOSã§ãƒžã‚¦ã‚¹ãƒã‚¤ãƒ³ã‚¿ã‚’<i>ã‚ャプãƒãƒ£</i>ã™ã‚‹ã“ã¨ãªã使用ã§ãã¾ã™ã€‚仮想マシンã®ç”»é¢ä¸Šã«ãƒžã‚¦ã‚¹ãƒã‚¤ãƒ³ã‚¿ãŒã‚ã‚‹ã¨ãã€ã™ã¹ã¦ã®ãƒžã‚¦ã‚¹ã®å‹•ä½œã¯ç›´æŽ¥ã‚²ã‚¹ãƒˆOSã«é€ã‚‰ã‚Œã¾ã™ã€‚ç¾åœ¨ãƒžã‚¦ã‚¹ãŒã‚ャプãƒãƒ£ã•ã‚Œã¦ã„ã‚‹ã¨ãã¯ã€è‡ªå‹•çš„ã«ã‚ャプãƒãƒ£è§£é™¤ã•ã‚Œã¾ã™ã€‚ステータスãƒãƒ¼ã®ãƒžã‚¦ã‚¹ã‚¢ã‚¤ã‚³ãƒ³ã¯ã€ãƒžã‚¦ã‚¹çµ±åˆæ©Ÿèƒ½ãŒã‚²ã‚¹ãƒˆOSã§ã‚µãƒãƒ¼ãƒˆã•ã‚Œã€ç¾åœ¨æœ‰åŠ¹ã§ã‚ã‚‹ã“ã¨ã‚’示ã™ãŸã‚&nbsp;<img src=mouse_seamless_16px.png/>&nbsp;ã®ã‚ˆã†ã«è¡¨ç¤ºã•ã‚Œã¾ã™ã€‚ </p><p><b>注</b>: マウス統åˆæ©Ÿèƒ½ãŒæœ‰åŠ¹ãªã¨ãã€ã„ãã¤ã‹ã®ã‚¢ãƒ—リケーションã®å‹•ä½œãŒä¸æ£ã«ãªã‚‹ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。メニューãƒãƒ¼ã‹ã‚‰å¯¾å¿œã™ã‚‹å‹•ä½œã‚’é¸æŠžã—ã¦ç¾åœ¨ã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ã®ãƒžã‚¦ã‚¹çµ±åˆæ©Ÿèƒ½ã‚’無効化(ã¾ãŸã¯æœ‰åŠ¹åŒ–)ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚</p></translation> </message> @@ -5940,7 +6228,7 @@ step and attach hard disks later using the VM Settings dialog.</p></source <location filename="../src/globals/VBoxProblemReporter.cpp" line="2351"/> <source>Result&nbsp;Code: </source> <comment>error info</comment> - <translation>終了コード: </translation> + <translation>終了コード&nbsp;: </translation> </message> <message> <location filename="../src/globals/VBoxProblemReporter.cpp" line="2357"/> @@ -6022,11 +6310,13 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation><p>VirtualBox Guest Additions CDイメージを<nobr><a href="%1">%2</a></nobr>ã‹ã‚‰ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ã—ã€<nobr><b>%3</b>ã«ä¿å˜ã—ã¾ã—ãŸã€‚</nobr></p><p>CDイメージを登録ã—ã€ä»®æƒ³CD/DVDドライブã«ãƒžã‚¦ãƒ³ãƒˆã—ã¾ã™ã‹ï¼Ÿ</p></translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="1538"/> <source><p>The virtual machine window will be now switched to <b>fullscreen</b> mode. You can go back to windowed mode at any time by pressing <b>%1</b>. Note that the <i>Host</i> key is currently defined as <b>%1</b>.</p><p>Note that the main menu bar is hidden in fullscreen mode. You can access it by pressing <b>Host+Home</b>.</p></source> <translation type="obsolete"><p>仮想マシンã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’"フルスクリーン"モードã«åˆ‡ã‚Šæ›¿ãˆã¾ã™ã€‚<b>%1</b>ã‚ーを押ã™ã¨ã„ã¤ã§ã‚‚ウィンドウモードã«æˆ»ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚注:ホストã‚ーã¯ç¾åœ¨<b>%2</b>ã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ã¾ã™ã€‚</p><p> 注:フルスクリーンモードã§ã¯ãƒ¡ã‚¤ãƒ³ãƒ¡ãƒ‹ãƒ¥ãƒ¼ãƒãƒ¼ã¯è¡¨ç¤ºã•ã‚Œã¾ã›ã‚“。メニューãƒãƒ¼ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã«ã¯ <b>Host+Home</b>ã‚ーを押ã—ã¦ãã ã•ã„。</p></translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="1538"/> <source><p>The virtual machine window will be now switched to <b>Seamless</b> mode. You can go back to windowed mode at any time by pressing <b>%1</b>. Note that the <i>Host</i> key is currently defined as <b>%1</b>.</p><p>Note that the main menu bar is hidden in seamless mode. You can access it by pressing <b>Host+Home</b>.</p></source> <translation type="obsolete"><p>仮想マシンã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’"シームレス"モードã«åˆ‡ã‚Šæ›¿ãˆã¾ã™ã€‚<b>%1</b>ã‚ーを押ã™ã¨ã„ã¤ã§ã‚‚ウィンドウ表示ã«æˆ»ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚注:ホストã‚ーã¯ç¾åœ¨<b>%2</b>ã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ã¾ã™ã€‚</p><p>注:シームレスモードã§ã¯ãƒ¡ã‚¤ãƒ³ãƒ¡ãƒ‹ãƒ¥ãƒ¼ãƒãƒ¼ã¯è¡¨ç¤ºã•ã‚Œã¾ã›ã‚“。メニューãƒãƒ¼ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã«ã¯ <b>Host+Home</b>ã‚ーを押ã—ã¦ãã ã•ã„。</p></translation> </message> @@ -6036,6 +6326,7 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation><p>仮想マシンウィンドウã¯<b>%1&nbsp;ビット</b>カラーモードã«æœ€é©åŒ–ã•ã‚Œã¾ã™ãŒã€ç¾åœ¨ä»®æƒ³ãƒ‡ã‚£ã‚¹ãƒ—レイã¯<b>%2&nbsp;ビット</b>ã«è¨å®šã•ã‚Œã¦ã„ã¾ã™ã€‚</p><p>最良ã®ä»®æƒ³ãƒ“デオサブシステム性能を得るãŸã‚ã€åˆ©ç”¨å¯èƒ½ã§ã‚ã‚‹ãªã‚‰ã°ã‚²ã‚¹ãƒˆOSã®ç”»é¢è¨å®šãƒ€ã‚¤ã‚¢ãƒã‚°ã‚’é–‹ãã€<b>%3&nbsp;ビット</b>カラーモードをé¸æŠžã—ã¦ãã ã•ã„。</p><p><b>注:OS/2ãªã©ã€ã„ãã¤ã‹ã®ã‚ªãƒšãƒ¬ãƒ¼ãƒ†ã‚£ãƒ³ã‚°ã‚·ã‚¹ãƒ†ãƒ ã¯32&nbsp;ビットモードã®å‹•ä½œã‚’24&nbsp;ビット(ç´„1600万色)ã¨ã—ã¦å ±å‘Šã—ã¾ã™ã€‚ ã“ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒæ¶ˆãˆã‚‹ã‹ã€ã¾ãŸã¯ã‚²ã‚¹ãƒˆOSã§å¿…è¦ãªè‰²æ·±åº¦(%4&nbsp;ビット) ãŒåˆ©ç”¨ã§ããªã„ã“ã¨ãŒåˆ†ã‹ã£ã¦ã„ã‚‹ãªã‚‰ã°ã€å˜ã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’無効ã«ã§ãã‚‹ã‹ç¢ºèªã™ã‚‹ãŸã‚ã«ç•°ãªã£ãŸè‰²æ·±åº¦ã‚’é¸æŠžã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚</p></translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="1928"/> <source><p>A critical error has occurred while running the virtual machine and the machine execution has been stopped.</p><p>For help, please see the Community section on <a href=http://www.virtualbox.org>http://www.virtualbox.org</a> or your support contract. Please provide the contents of the log file <tt>VBox.log</tt> and the image file <tt>VBox.png</tt>, which you can find in the <nobr><b>%1</b></nobr> directory, as well as a description of what you were doing when this error happened. Note that you can also access the above files by selecting <b>Show Log</b> from the <b>Machine</b> menu of the main VirualBox window.</p><p>Press <b>OK</b> if you want to power off the machine or press <b>Ignore</b> if you want to leave it as is for debugging. Please note that debugging requires special knowledge and tools, so it is recommended to press <b>OK</b> now.</p></source> <translation type="obsolete"><p>仮想マシン実行ä¸ã«é‡å¤§ãªã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸãŸã‚ã€ä»®æƒ³ãƒžã‚·ãƒ³ã¯åœæ¢ã—ã¾ã—ãŸã€‚</p><p>å•é¡Œã®è§£æ±ºã®ãŸã‚ã€<a href=http://www.virtualbox.org>http://www.virtualbox.org</a>ã®Communityセクションをå‚ç…§ã™ã‚‹ã‹ã€ã‚µãƒãƒ¼ãƒˆå¥‘ç´„ã‚’ç· çµã—ã¦ãã ã•ã„。ã‚ãªãŸãŒã‚¨ãƒ©ãƒ¼ç™ºç”Ÿæ™‚ã«è¡Œã£ãŸæ“作ã¨å…±ã«ã€<nobr><b>%1</b></nobr>ディレクトリã«æ ¼ç´ã•ã‚Œã¦ã„ã‚‹ãƒã‚°ãƒ•ã‚¡ã‚¤ãƒ«(<tt>VBox.log</tt>)ã¨ã‚¤ãƒ¡ãƒ¼ã‚¸ãƒ•ã‚¡ã‚¤ãƒ«(<tt>VBox.png</tt>)ã‚’æä¾›ã—ã¦ãã ã•ã„。注:VirualBoxメインウィンドウã®<b>[仮想マシン]</b>メニューã‹ã‚‰[ãƒã‚°ã‚’å‚ç…§]ã‚’é¸æŠžã—ã¦ã€ä¸Šè¨˜ãƒ•ã‚¡ã‚¤ãƒ«ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚</p><p>仮想マシンを電æºã‚ªãƒ•ã™ã‚‹ã«ã¯<b>[OK]</b>ボタンをクリックã—ã¦ãã ã•ã„。ã“ã®ã¾ã¾ãƒ‡ãƒãƒƒã‚°ã‚’è¡Œã†ã«ã¯<b>[無視]</b>ボタンをクリックã—ã¦ãã ã•ã„。デãƒãƒƒã‚°ã«ã¯ç‰¹åˆ¥ãªçŸ¥è˜ã¨ãƒ„ールを必è¦ã¨ã™ã‚‹ãŸã‚ã€<b>[OK]</b>ボタンをクリックã™ã‚‹ã“ã¨ã‚’推奨ã—ã¾ã™ã€‚</p></translation> </message> @@ -6060,6 +6351,7 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>仮想マシン<b>"%1"</b>ã¸ã®é›»æºãƒœã‚¿ãƒ³ オフã®ACPIイベントé€ä¿¡ã«å¤±æ•—ã—ã¾ã—ãŸã€‚</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="684"/> <source><p>Failed to connect to the VirtualBox online registration service.</p><p>%1</p></source> <translation type="obsolete"><p>VirtualBox オンライン登録サービスã¸ã®æŽ¥ç¶šã«å¤±æ•—ã—ã¾ã—ãŸã€‚</p><p>%1</p></translation> </message> @@ -6069,6 +6361,7 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation><p>VirtualBox ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ç™»éŒ²ãŒå®Œäº†ã—ã¾ã—ãŸã€‚</p><p>登録フォームã«æ›¸ã込む時間を割ã„ã¦ãã ã•ã‚Šã€ã‚ã‚ŠãŒã¨ã†ã”ã–ã„ã¾ã—ãŸï¼</p></translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="1619"/> <source><p>Failed to register the VirtualBox product</p><p>%1</p></source> <translation type="obsolete"><p>VirtualBox ã®è£½å“登録ã«å¤±æ•—ã—ã¾ã—ãŸ</p><p>%1</p></translation> </message> @@ -6118,27 +6411,32 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>ç ´æ£„</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="986"/> <source>Continue</source> <comment>detach image</comment> <translation type="obsolete">続ã‘ã‚‹</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="986"/> <source><p>Do you want to delete this hard disk's image file <nobr><b>%1</b>?</nobr></p><p>If you select <b>Delete</b> then the image file will be permanently deleted after unregistering the hard disk. This operation cannot be undone.</p><p>If you select <b>Unregister</b> then the virtual hard disk will be unregistered and removed from the collection, but the image file will be left on your physical disk.</p></source> <translation type="obsolete"><p>ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚¤ãƒ¡ãƒ¼ã‚¸ãƒ•ã‚¡ã‚¤ãƒ«<nobr><b>"%1"</b>を削除ã—ã¾ã™ã‹ï¼Ÿ</nobr></p> <p><b>[削除]</b>ã‚’é¸æŠžã™ã‚‹ã¨ã€ã‚¤ãƒ¡ãƒ¼ã‚¸ãƒ•ã‚¡ã‚¤ãƒ«ã¯ãƒªã‚¹ãƒˆã‹ã‚‰å–り除ã‹ã‚ŒãŸå¾Œã€æ°¸ä¹…ã«å‰Šé™¤ã•ã‚Œã¾ã™ã€‚ã“ã®æ“作ã¯å…ƒã«æˆ»ã›ã¾ã›ã‚“。</p> <p><b>[登録解除]</b>ã‚’é¸æŠžã™ã‚‹ã¨ã€ä»®æƒ³ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã¯ãƒªã‚¹ãƒˆã‹ã‚‰å–り除ã‹ã‚Œã¾ã™ãŒã€ã‚¤ãƒ¡ãƒ¼ã‚¸ãƒ•ã‚¡ã‚¤ãƒ«ã¯ç‰©ç†ãƒ‡ã‚£ã‚¹ã‚¯ä¸Šã«æ®‹ã•ã‚Œã¾ã™ã€‚</p></translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="986"/> <source>Delete</source> <comment>hard disk</comment> <translation type="obsolete">削除</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="986"/> <source>Unregister</source> <comment>hard disk</comment> <translation type="obsolete">登録解除</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="986"/> <source><p>There are hard disks attached to SATA ports of this virtual machine. If you disable the SATA controller, all these hard disks will be automatically detached.</p><p>Are you sure that you want to disable the SATA controller?</p></source> <translation type="obsolete"><p>ã“ã®ä»®æƒ³ãƒžã‚·ãƒ³ã®SATAãƒãƒ¼ãƒˆã«å‰²ã‚Šå½“ã¦ã‚‰ã‚ŒãŸãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ãŒã‚ã‚Šã¾ã™ã€‚SATA コントãƒãƒ¼ãƒ©ã‚’無効ã«ã™ã‚‹ã¨ã€ãれらã®ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã¯è‡ªå‹•çš„ã«å‰²ã‚Šå½“ã¦è§£é™¤ã•ã‚Œã¾ã™ã€‚</p> <p>SATA コントãƒãƒ¼ãƒ©ã‚’無効ã«ã—ã¾ã™ã‹ï¼Ÿ</p></translation> @@ -6150,10 +6448,12 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>無効</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="1099"/> <source>Failed to attach a hard disk image with UUID %1 to device slot %2 on channel %3 of the %4 bus of the machine <b>%5</b>.</source> <translation type="obsolete">ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚¤ãƒ¡ãƒ¼ã‚¸(UUID %1)ã®ã€ä»®æƒ³ãƒžã‚·ãƒ³<b>"%5"</b>ã®ãƒã‚¹ %4 ã®ãƒãƒ£ãƒ³ãƒãƒ« %3 ã®ãƒ‡ãƒã‚¤ã‚¹ã‚¹ãƒãƒƒãƒˆ %2 ã¸ã®å‰²ã‚Šå½“ã¦ã«å¤±æ•—ã—ã¾ã—ãŸã€‚</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="1099"/> <source>Failed to detach a hard disk image from device slot %1 on channel %2 of the %3 bus of the machine <b>%4</b>.</source> <translation type="obsolete">ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚¤ãƒ¡ãƒ¼ã‚¸ã®ã€ä»®æƒ³ãƒžã‚·ãƒ³<b>"%4"</b>ã®ãƒã‚¹ %3 ã®ãƒãƒ£ãƒ³ãƒãƒ« %2 ã®ãƒ‡ãƒã‚¤ã‚¹ã‚¹ãƒãƒƒãƒˆ %1 ã‹ã‚‰ã®å‰²ã‚Šå½“ã¦è§£é™¤ã«å¤±æ•—ã—ã¾ã—ãŸã€‚</translation> </message> @@ -6170,7 +6470,6 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>マウント</translation> </message> <message> - <location filename="../src/globals/VBoxProblemReporter.cpp" line="1688"/> <location filename="../src/globals/VBoxProblemReporter.cpp" line="1721"/> <source><p>The host key is currently defined as <b>%1</b>.</p></source> <comment>additional message box paragraph</comment> @@ -6183,6 +6482,7 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>ã‚ャプãƒãƒ£</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="1695"/> <source><p>One or more of the registered virtual hard disks, CD/DVD or floppy media are not currently accessible. As a result, you will not be able to operate virtual machines that use these media until they become accessible later.</p><p>Press <b>Check</b> to open the Virtual Disk Manager window and see what media are inaccessible, or press <b>Ignore</b> to ignore this message.</p></source> <translation type="obsolete"><p>登録ã•ã‚ŒãŸä¸€ã¤ä»¥ä¸Šã®ä»®æƒ³ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã€CD/DVDã¾ãŸã¯ãƒ•ãƒãƒƒãƒ”ーメディアã®ã«ç¾åœ¨ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã›ã‚“。アクセスå¯èƒ½ã«ãªã‚‹ã¾ã§ã“れらã®ãƒ¡ãƒ‡ã‚£ã‚¢ã‚’使用ã™ã‚‹ä»®æƒ³ãƒžã‚·ãƒ³ã‚’æ“作ã§ãã¾ã›ã‚“。</p> <p><b>[確èª]</b>ボタンをクリックã—ã¦ä»®æƒ³ãƒ‡ã‚£ã‚¹ã‚¯ãƒžãƒãƒ¼ã‚¸ãƒ£ã‚’èµ·å‹•ã—ã€ã©ã®ãƒ¡ãƒ‡ã‚£ã‚¢ã«ã‚¢ã‚¯ã‚»ã‚¹ã§ããªã„ã®ã‹ç¢ºèªã—ã¦ãã ã•ã„。ã¾ãŸã¯<b>[無視]</b>ボタンをクリックã—ã¦ã€ã“ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’無視ã—ã¦ãã ã•ã„。</p></translation> @@ -6194,6 +6494,7 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>確èª</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="1816"/> <source><p>The following VirtualBox settings files have been automatically converted to the new settings file format version <b>%1</b>.</p><p>However, the results of the conversion were not saved back to disk yet. Please press:</p><ul><li><b>Save</b> to save all auto-converted files now (it will not be possible to use these settings files with an older version of VirtualBox in the future);</li><li><b>Backup</b> to create backup copies of the settings files in the old format before saving them in the new format;</li><li><b>Cancel</b> to not save the auto-converted settings files now.<li></ul><p>Note that if you select <b>Cancel</b>, the auto-converted settings files will be implicitly saved in the new format anyway once you change a setting or start a virtual machine, but <b>no</b> backup copies will be created in this case.</p></source> <translation type="obsolete"><p>次ã®VirtualBoxè¨å®šãƒ•ã‚¡ã‚¤ãƒ«ã¯è‡ªå‹•çš„ã«ãƒãƒ¼ã‚¸ãƒ§ãƒ³ <b>%1</b> ã®æ–°ã—ã„è¨å®šãƒ•ã‚¡ã‚¤ãƒ«å½¢å¼ã«å¤‰æ›ã•ã‚Œã¾ã—ãŸã€‚</p> <p>ã—ã‹ã—ãªãŒã‚‰ã€å¤‰æ›å¾Œã®ãƒ•ã‚¡ã‚¤ãƒ«ã¯ã¾ã ディスクã«ä¿å˜ã•ã‚Œã¦ã„ã¾ã›ã‚“。ボタンをクリックã—ã¦ãã ã•ã„:</p> @@ -6203,16 +6504,19 @@ step and attach hard disks later using the VM Settings dialog.</p></source <p>注:<b>[ã‚ャンセル]</b> ã®é¸æŠžæ™‚ã€è¨å®šã‚’変更ã™ã‚‹ã‹ä»®æƒ³ãƒžã‚·ãƒ³ã‚’èµ·å‹•ã™ã‚‹ã¨è‡ªå‹•å¤‰æ›ã•ã‚ŒãŸè¨å®šãƒ•ã‚¡ã‚¤ãƒ«ã¯æš—黙的ã«ä¿å˜ã•ã‚Œã¾ã™ãŒã€ã“ã®å ´åˆã©ã‚“ãªãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—コピーも<b>作æˆã•ã‚Œã¾ã›ã‚“</b>。</p></translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="1816"/> <source>&Save</source> <comment>warnAboutAutoConvertedSettings message box</comment> <translation type="obsolete">ä¿å˜(&S)</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="1816"/> <source>&Backup</source> <comment>warnAboutAutoConvertedSettings message box</comment> <translation type="obsolete">ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—(&B)</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="1816"/> <source>Cancel</source> <comment>warnAboutAutoConvertedSettings message box</comment> <translation type="obsolete">ã‚ャンセル</translation> @@ -6258,16 +6562,19 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>ファイル<b><nobr>"%1"</nobr></b>ã®<b><nobr>"%2"</nobr></b>ã¸ã®ã‚³ãƒ”ーã«å¤±æ•—ã—ã¾ã—ãŸ(%3)。</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="431"/> <source><p>There are no unused hard disks available for the newly created attachment.</p><p>Press the <b>Create</b> button to start the <i>New Virtual Disk</i> wizard and create a new hard disk, or press the <b>Select</b> if you wish to open the <i>Virtual Disk Manager</i>.</p></source> <translation type="obsolete"><p>æ–°è¦ã®å‰²ã‚Šå½“ã¦ã«åˆ©ç”¨ã§ãる未使用ã®ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ãŒã‚ã‚Šã¾ã›ã‚“。</p> <p><b>[作æˆ]</b>ボタンをクリックã—ã€<i>æ–°è¦ä»®æƒ³ãƒ‡ã‚£ã‚¹ã‚¯ä½œæˆã‚¦ã‚£ã‚¶ãƒ¼ãƒ‰</i>ã‚’èµ·å‹•ã—ã¦æ–°è¦ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚¤ãƒ¡ãƒ¼ã‚¸ã‚’作æˆã™ã‚‹ã‹ã€<b>[é¸æŠž]</b>ボタンをクリックã—ã¦ã€<i>仮想ディスクマãƒãƒ¼ã‚¸ãƒ£</i>ã‚’é–‹ãã€å‹•ä½œã‚’é¸æŠžã—ã¦ãã ã•ã„。</p></translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="431"/> <source>&Create</source> <comment>hard disk</comment> <translation type="obsolete">作æˆ(&C)</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="431"/> <source>Select</source> <comment>hard disk</comment> <translation type="obsolete">é¸æŠž</translation> @@ -6283,6 +6590,7 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation><p>ゲストOSã®ãƒ“デオメモリä¸è¶³ã®ãŸã‚ã€ã‚²ã‚¹ãƒˆç”»é¢ã‚’フルスクリーンモードã«åˆ‡ã‚Šæ›¿ãˆã§ãã¾ã›ã‚“。</p><p>仮想マシンã®è¨å®šã§ãƒ“デオメモリを <b>%1</b>以上ã«è¨å®šã—ã¦ãã ã•ã„。</p><p><b>[無視]</b>ボタンをクリックã—ã¦ãƒ•ãƒ«ã‚¹ã‚¯ãƒªãƒ¼ãƒ³ãƒ¢ãƒ¼ãƒ‰ã«åˆ‡ã‚Šæ›ãˆã‚‹ã‹ã€<b>[ã‚ャンセル]</b>ボタンをクリックã—ã¦æ“作をå–り消ã—ã¦ãã ã•ã„。</p></translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="931"/> <source><p>Unable to obtain the new version information due to the following network error:</p><p><b>%1</b></p></source> <translation type="obsolete"><p>ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚¨ãƒ©ãƒ¼ã®ãŸã‚ã€æ–°ã—ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³æƒ…å ±ã‚’å–å¾—ã§ãã¾ã›ã‚“:</p><p><b>%1</b></p></translation> </message> @@ -6446,6 +6754,7 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ ストレージ装置<b>"%1"</b>ã®å‰Šé™¤ã«å¤±æ•—ã—ã¾ã—ãŸã€‚</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="1083"/> <source><p>There are no unused hard disks available for the newly created attachment.</p><p>Press the <b>Create</b> button to start the <i>New Virtual Disk</i> wizard and create a new hard disk, or press the <b>Select</b> if you wish to open the <i>Virtual Media Manager</i>.</p></source> <translation type="obsolete"><p>æ–°è¦ã®å‰²ã‚Šå½“ã¦ã«åˆ©ç”¨ã§ãる未使用ã®ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ãŒã‚ã‚Šã¾ã›ã‚“。</p><p><b>[作æˆ]</b>ボタンをクリックã—ã€<i>æ–°è¦ä»®æƒ³ãƒ‡ã‚£ã‚¹ã‚¯ä½œæˆã‚¦ã‚£ã‚¶ãƒ¼ãƒ‰</i>ã‚’èµ·å‹•ã—ã¦æ–°è¦ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚¤ãƒ¡ãƒ¼ã‚¸ã‚’作æˆã™ã‚‹ã‹ã€<b>[é¸æŠž]</b>ボタンをクリックã—ã¦ã€<i>仮想メディアマãƒãƒ¼ã‚¸ãƒ£</i>ã‚’é–‹ãã€å‹•ä½œã‚’é¸æŠžã—ã¦ãã ã•ã„。</p></translation> </message> @@ -6455,18 +6764,22 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ ストレージ<nobr><b>"%1"</b>ã®ä½œæˆã«å¤±æ•—ã—ã¾ã—ãŸã€‚</nobr></translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="1162"/> <source>Failed to attach the hard disk <nobr><b>%1</b></nobr> to slot <i>%2</i> of the machine <b>%3</b>.</source> <translation type="obsolete">ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯<nobr><b>"%1"</b></nobr>ã®ã€ä»®æƒ³ãƒžã‚·ãƒ³<b>"%3"</b>ã®ã‚¹ãƒãƒƒãƒˆ<i>"%2"</i> ã¸ã®å‰²ã‚Šå½“ã¦ã«å¤±æ•—ã—ã¾ã—ãŸã€‚</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="1162"/> <source>Failed to detach the hard disk <nobr><b>%1</b></nobr> from slot <i>%2</i> of the machine <b>%3</b>.</source> <translation type="obsolete">ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯<nobr><b>"%1"</b></nobr>ã®ã€ä»®æƒ³ãƒžã‚·ãƒ³<b>"%3"</b>ã®ã‚¹ãƒãƒƒãƒˆ<i>"%2"</i> ã¸ã®å‰²ã‚Šå½“ã¦è§£é™¤ã«å¤±æ•—ã—ã¾ã—ãŸã€‚</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="1162"/> <source>Failed to mount the %1 <nobr><b>%2</b></nobr> on the machine <b>%3</b>.</source> <translation type="obsolete">"%1 <nobr><b>%2</b></nobr>"ã®ã€ä»®æƒ³ãƒžã‚·ãƒ³<b>"%3"</b>ã¸ã®ãƒžã‚¦ãƒ³ãƒˆã«å¤±æ•—ã—ã¾ã—ãŸã€‚</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="1162"/> <source>Failed to unmount the %1 <nobr><b>%2</b></nobr> from the machine <b>%3</b>.</source> <translation type="obsolete">"%1 <nobr><b>%2</b></nobr>"ã®ã€ä»®æƒ³ãƒžã‚·ãƒ³<b>"%3"</b>ã‹ã‚‰ã®ãƒžã‚¦ãƒ³ãƒˆè§£é™¤ã«å¤±æ•—ã—ã‹ã¾ã—ãŸã€‚</translation> </message> @@ -6501,28 +6814,34 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation><p>一ã¤ä»¥ä¸Šã®ä»®æƒ³ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã€CD/DVDã¾ãŸã¯ãƒ•ãƒãƒƒãƒ”ーメディアã®ã«ç¾åœ¨ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã›ã‚“。アクセスå¯èƒ½ã«ãªã‚‹ã¾ã§ã“れらã®ãƒ¡ãƒ‡ã‚£ã‚¢ã‚’使用ã™ã‚‹ä»®æƒ³ãƒžã‚·ãƒ³ã‚’æ“作ã§ãã¾ã›ã‚“。</p><p><b>[確èª]</b>ボタンをクリックã—ã¦ä»®æƒ³ãƒ¡ãƒ‡ã‚£ã‚¢ãƒžãƒãƒ¼ã‚¸ãƒ£ã‚’èµ·å‹•ã—ã€ã©ã®ãƒ¡ãƒ‡ã‚£ã‚¢ã«ã‚¢ã‚¯ã‚»ã‚¹ã§ããªã„ã®ã‹ç¢ºèªã—ã¦ãã ã•ã„。ã¾ãŸã¯<b>[無視]</b>ボタンをクリックã—ã¦ã€ã“ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’無視ã—ã¦ãã ã•ã„。</p></translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="1805"/> <source><p>Your existing VirtualBox settings files were automatically converted from the old format to a new format required by the new version of VirtualBox.</p><p>Press <b>OK</b> to start VirtualBox now or press <b>More</b> if you want to get more information about what files were converted and access additional actions.</p><p>Press <b>Exit</b> to terminate the VirtualBox application without saving the results of the conversion to disk.</p></source> <translation type="obsolete"><p>æ—¢å˜ã®VirtualBoxè¨å®šãƒ•ã‚¡ã‚¤ãƒ«ã¯å¤ã„å½¢å¼ã‹ã‚‰VirtualBoxã®æ–°ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«å¿…è¦ãªå½¢å¼ã«è‡ªå‹•å¤‰æ›ã•ã‚Œã¾ã—ãŸã€‚</p><p>ã™ãã«VirtualBoxã‚’èµ·å‹•ã™ã‚‹ã«ã¯<b>[OK]</b>ボタンをクリックã—ã¦ãã ã•ã„。変æ›ã•ã‚ŒãŸè¨å®šãƒ•ã‚¡ã‚¤ãƒ«ã«ã¤ã„ã¦ã€è©³ã—ã„æƒ…å ±ã‚’å¾—ãŸã„å ´åˆã¯<b>[詳細]</b>ボタンをクリックã—ã¦ãã ã•ã„。</p><p><b>[終了]</b>ボタンをクリックã™ã‚‹ã¨ã€å¤‰æ›çµæžœã‚’ディスクã«ä¿å˜ã™ã‚‹ã“ã¨ãªãã€VirtualBoxアプリケーションを終了ã—ã¾ã™ã€‚</p></translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="1805"/> <source>&More</source> <comment>warnAboutAutoConvertedSettings message box</comment> <translation type="obsolete">詳細(&M)</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="1805"/> <source>E&xit</source> <comment>warnAboutAutoConvertedSettings message box</comment> <translation type="obsolete">終了(&X)</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="1805"/> <source><p>The following VirtualBox settings files have been automatically converted to the new settings file format version <b>%1</b>.</p><p>However, the results of the conversion were not saved back to disk yet. Please press:</p><ul><li><b>Backup</b> to create backup copies of the settings files in the old format before saving them in the new format;</li><li><b>Overwrite</b> to save all auto-converted files without creating backup copies (it will not be possible to use these settings files with an older version of VirtualBox afterwards);</li>%2</ul><p>It is recommended to always select <b>Backup</b> because in this case it will be possible to go back to the previous version of VirtualBox (if necessary) without losing your current settings. See the VirtualBox Manual for more information about downgrading.</p></source> <translation type="obsolete"><p>次ã®VirtualBoxè¨å®šãƒ•ã‚¡ã‚¤ãƒ«ã¯è‡ªå‹•çš„ã«ãƒãƒ¼ã‚¸ãƒ§ãƒ³ <b>"%1"</b> ã®æ–°ã—ã„è¨å®šãƒ•ã‚¡ã‚¤ãƒ«å½¢å¼ã«å¤‰æ›ã•ã‚Œã¾ã—ãŸã€‚</p><p>ã—ã‹ã—ãªãŒã‚‰ã€å¤‰æ›å¾Œã®ãƒ•ã‚¡ã‚¤ãƒ«ã¯ã¾ã ディスクã«ä¿å˜ã•ã‚Œã¦ã„ã¾ã›ã‚“。ボタンをクリックã—ã¦ãã ã•ã„:</p><ul><li><b>[ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—]</b>: æ–°ã—ã„å½¢å¼ã§è¨å®šãƒ•ã‚¡ã‚¤ãƒ«ã‚’ä¿å˜ã™ã‚‹å‰ã«ã€å¤ã„å½¢å¼ã§è¨å®šãƒ•ã‚¡ã‚¤ãƒ«ã®ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—コピーを作æˆã—ã¾ã™ã€‚</li><li><b>[上書ã]</b>:ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—コピーを作æˆã›ãšã«ã€ã™ã¹ã¦ã®å¤‰æ›æ¸ˆã¿ãƒ•ã‚¡ã‚¤ãƒ«ã‚’ä¿å˜ã—ã¾ã™ã€‚(æ—§ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®VirtualBoxã§ã“れらã®è¨å®šãƒ•ã‚¡ã‚¤ãƒ«ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“)</li>%2</ul><p>(å¿…è¦ãªã‚‰ã°) æ—§ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®VirtualBoxã«ç¾åœ¨ã®è¨å®šã‚’失ã†ã“ã¨ãªã戻るã“ã¨ãŒã§ãã‚‹ã®ã§ã€<b>[ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—]</b> ã‚’é¸æŠžã™ã‚‹ã“ã¨ã‚’推奨ã—ã¾ã™ã€‚ダウングレードã«é–¢ã™ã‚‹è©³ç´°ã¯VirtualBoxマニュアルをå‚ç…§ã—ã¦ãã ã•ã„。</p></translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="1805"/> <source><li><b>Exit</b> to terminate VirtualBox without saving the results of the conversion to disk.</li></source> <translation type="obsolete"><li><b>[終了]</b>:変æ›çµæžœã‚’ディスクã«ä¿å˜ã›ãšã«VirtualBoxを終了ã—ã¾ã™ã€‚</li></translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="1805"/> <source>O&verwrite</source> <comment>warnAboutAutoConvertedSettings message box</comment> <translation type="obsolete">上書ã(&V)</translation> @@ -6533,23 +6852,27 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation><p>仮想マシン実行ä¸ã«é‡å¤§ãªã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸãŸã‚ã€ä»®æƒ³ãƒžã‚·ãƒ³ã¯åœæ¢ã—ã¾ã—ãŸã€‚</p><p>å•é¡Œã®è§£æ±ºã®ãŸã‚ã€<a href=http://www.virtualbox.org>http://www.virtualbox.org</a>ã®Communityセクションをå‚ç…§ã™ã‚‹ã‹ã€ã‚µãƒãƒ¼ãƒˆã«é€£çµ¡ã—ã¦ãã ã•ã„。ã‚ãªãŸãŒã‚¨ãƒ©ãƒ¼ç™ºç”Ÿæ™‚ã«è¡Œã£ãŸæ“作ã¨å…±ã«ã€<nobr><b>%1</b></nobr>ディレクトリã«æ ¼ç´ã•ã‚Œã¦ã„ã‚‹ãƒã‚°ãƒ•ã‚¡ã‚¤ãƒ«(<tt>VBox.log</tt>)ã¨ã‚¤ãƒ¡ãƒ¼ã‚¸ãƒ•ã‚¡ã‚¤ãƒ«(<tt>VBox.png</tt>)ã‚’æä¾›ã—ã¦ãã ã•ã„。注:VirualBoxメインウィンドウã®<b>[仮想マシン]</b>メニューã‹ã‚‰[ãƒã‚°ã‚’å‚ç…§]ã‚’é¸æŠžã—ã¦ã€ä¸Šè¨˜ãƒ•ã‚¡ã‚¤ãƒ«ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚</p><p>仮想マシンを電æºã‚ªãƒ•ã™ã‚‹ã«ã¯<b>[OK]</b>ボタンをクリックã—ã¦ãã ã•ã„。ã“ã®ã¾ã¾ãƒ‡ãƒãƒƒã‚°ã‚’è¡Œã†ã«ã¯<b>[無視]</b>ボタンをクリックã—ã¦ãã ã•ã„。デãƒãƒƒã‚°ã«ã¯ç‰¹åˆ¥ãªçŸ¥è˜ã¨ãƒ„ールを必è¦ã¨ã™ã‚‹ãŸã‚ã€<b>[OK]</b>ボタンをクリックã™ã‚‹ã“ã¨ã‚’推奨ã—ã¾ã™ã€‚</p></translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="1954"/> <source>hard disk</source> <comment>failed to close ...</comment> <translation type="obsolete">ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="1954"/> <source>CD/DVD image</source> <comment>failed to close ...</comment> <translation type="obsolete">CD/DVDイメージ</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="1954"/> <source>floppy image</source> <comment>failed to close ...</comment> <translation type="obsolete">フãƒãƒƒãƒ”ーイメージ</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="1954"/> <source>A file named <b>%1</b> already exists. Are you sure you want to replace it?<br /><br />The file already exists in "%2". Replacing it will overwrite its contents.</source> - <translation type="obsolete">ファイルå<b>"%1"</b>ã¯ã™ã§ã«ä½¿ã‚ã‚Œã¦ã„ã¾ã™ã€‚ファイルを置ãæ›ãˆã¾ã™ã‹?<br /><br />ファイルã¯"%2"ã«å˜åœ¨ã—ã¾ã™ã€‚ファイルã®å†…容ã¯ä¸Šæ›¸ãã•ã‚Œã¾ã™ã€‚</translation> + <translation type="obsolete">ファイルå<b>"%1"</b>ã¯ã™ã§ã«ä½¿ã‚ã‚Œã¦ã„ã¾ã™ã€‚ファイルを置ãæ›ãˆã¾ã™ã‹ï¼Ÿ<br /><br />ファイルã¯"%2"ã«å˜åœ¨ã—ã¾ã™ã€‚ファイルã®å†…容ã¯ä¸Šæ›¸ãã•ã‚Œã¾ã™ã€‚</translation> </message> <message> <location filename="../src/globals/VBoxProblemReporter.cpp" line="306"/> @@ -6582,27 +6905,26 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation><p>仮想化支æ´æ©Ÿèƒ½(VT-x/AMD-V)を有効化ã§ãã¾ã›ã‚“。64ビット ゲストOSã¯64ビットCPUを検出ã§ããšã€èµ·å‹•ã§ãã¾ã›ã‚“。</p><p>ホストマシンã®BIOSè¨å®šã§VT-x/AMD-Vを有効化ã—ã¦ãã ã•ã„。</p></translation> </message> <message> - <location filename="../src/globals/VBoxProblemReporter.cpp" line="805"/> <location filename="../src/globals/VBoxProblemReporter.cpp" line="817"/> <source>Close VM</source> <translation>仮想マシンを閉ã˜ã‚‹</translation> </message> <message> - <location filename="../src/globals/VBoxProblemReporter.cpp" line="805"/> <location filename="../src/globals/VBoxProblemReporter.cpp" line="817"/> <source>Continue</source> <translation>続ã‘ã‚‹</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="817"/> <source><p>Are you sure you wish to delete the selected snapshot and saved state?</p></source> <translation type="obsolete"><p>é¸æŠžã•ã‚ŒãŸã‚¹ãƒŠãƒƒãƒ—ショットã¨ä¿å˜ã•ã‚ŒãŸçŠ¶æ…‹ã‚’削除ã—ã¾ã™ã‹ï¼Ÿ</p></translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="817"/> <source>Discard</source> <translation type="obsolete">ç ´æ£„</translation> </message> <message> - <location filename="../src/globals/VBoxProblemReporter.cpp" line="841"/> <location filename="../src/globals/VBoxProblemReporter.cpp" line="853"/> <source>Cancel</source> <translation>ã‚ャンセル</translation> @@ -6624,11 +6946,11 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>変更</translation> </message> <message> + <location filename="../src/globals/VBoxProblemReporter.cpp" line="1111"/> <source><p>Do you want to remove the selected host network interface <nobr><b>%1</b>?</nobr></p><p><b>Note:</b> This interface may be in use by one or more network adapters of this or another VM. After it is removed, these adapters will no longer work until you correct their settings by either choosing a different interface name or a different adapter attachment type.</p></source> - <translation type="obsolete"><p>é¸æŠžã—ãŸãƒ›ã‚¹ãƒˆ ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ インターフェース ;<nobr><b>"%1"</b>を除去ã—ã¾ã™ã‹?</nobr></p><p><b>注:</b> ã“ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ãƒ¼ã‚¹ã¯è¤‡æ•°ã®ä»®æƒ³ãƒžã‚·ãƒ³ã®1ã¤ä»¥ä¸Šã®ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ アタプタã§ä½¿ç”¨ä¸ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。除去ã™ã‚‹ã¨ã€ä»–ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ãƒ¼ã‚¹åã‚’é¸ã¶ã‹ã€åˆ¥ã®å‰²ã‚Šå½“ã¦æ–¹æ³•ã‚’æ£ã—ãè¨å®šã™ã‚‹ã¾ã§ãれらã®ã‚¢ãƒ€ãƒ—ã‚¿ã¯å‹•ä½œã—ã¾ã›ã‚“。</p></translation> + <translation type="obsolete"><p>é¸æŠžã—ãŸãƒ›ã‚¹ãƒˆ ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ インターフェース ;<nobr><b>"%1"</b>を除去ã—ã¾ã™ã‹ï¼Ÿ</nobr></p><p><b>注:</b> ã“ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ãƒ¼ã‚¹ã¯è¤‡æ•°ã®ä»®æƒ³ãƒžã‚·ãƒ³ã®1ã¤ä»¥ä¸Šã®ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ アタプタã§ä½¿ç”¨ä¸ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。除去ã™ã‚‹ã¨ã€ä»–ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ãƒ¼ã‚¹åã‚’é¸ã¶ã‹ã€åˆ¥ã®å‰²ã‚Šå½“ã¦æ–¹æ³•ã‚’æ£ã—ãè¨å®šã™ã‚‹ã¾ã§ãれらã®ã‚¢ãƒ€ãƒ—ã‚¿ã¯å‹•ä½œã—ã¾ã›ã‚“。</p></translation> </message> <message> - <location filename="../src/globals/VBoxProblemReporter.cpp" line="1333"/> <location filename="../src/globals/VBoxProblemReporter.cpp" line="1341"/> <source>Failed to create the host-only network interface.</source> <translation>ホストオンリー ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ インターフェースã®ä½œæˆã«å¤±æ•—ã—ã¾ã—ãŸã€‚</translation> @@ -6659,7 +6981,6 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>仮想アプライアンスã®ä½œæˆã«å¤±æ•—ã—ã¾ã—ãŸã€‚</translation> </message> <message> - <location filename="../src/globals/VBoxProblemReporter.cpp" line="2094"/> <location filename="../src/globals/VBoxProblemReporter.cpp" line="2111"/> <source>Failed to prepare the export of the appliance <b>%1</b>.</source> <translation>仮想アプライアンス<b>"%1"</b>ã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã®å‰å‡¦ç†ã«å¤±æ•—ã—ã¾ã—ãŸã€‚</translation> @@ -6682,7 +7003,7 @@ step and attach hard disks later using the VM Settings dialog.</p></source <message> <location filename="../src/globals/VBoxProblemReporter.cpp" line="297"/> <source>A file named <b>%1</b> already exists. Are you sure you want to replace it?<br /><br />Replacing it will overwrite its contents.</source> - <translation>ファイルå<b>"%1"</b>ã¯ã™ã§ã«ä½¿ã‚ã‚Œã¦ã„ã¾ã™ã€‚ファイルを置ãæ›ãˆã¾ã™ã‹?<br /><br />ファイルã®å†…容ã¯ä¸Šæ›¸ãã•ã‚Œã¾ã™ã€‚</translation> + <translation>ファイルå<b>"%1"</b>ã¯ã™ã§ã«ä½¿ã‚ã‚Œã¦ã„ã¾ã™ã€‚ファイルを置ãæ›ãˆã¾ã™ã‹ï¼Ÿ<br /><br />ファイルã®å†…容ã¯ä¸Šæ›¸ãã•ã‚Œã¾ã™ã€‚</translation> </message> <message> <location filename="../src/globals/VBoxProblemReporter.cpp" line="811"/> @@ -6740,13 +7061,11 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>削除</translation> </message> <message> - <location filename="../src/globals/VBoxProblemReporter.cpp" line="860"/> <location filename="../src/globals/VBoxProblemReporter.cpp" line="872"/> <source>Failed to restore the snapshot <b>%1</b> of the virtual machine <b>%2</b>.</source> <translation>仮想マシン<b>"%2"</b>ã®ã‚¹ãƒŠãƒƒãƒ—ショット<b>"%1"</b>ã¸ã®å¾©å…ƒã«å¤±æ•—ã—ã¾ã—ãŸã€‚</translation> </message> <message> - <location filename="../src/globals/VBoxProblemReporter.cpp" line="882"/> <location filename="../src/globals/VBoxProblemReporter.cpp" line="894"/> <source>Failed to delete the snapshot <b>%1</b> of the virtual machine <b>%2</b>.</source> <translation>仮想マシン<b>"%2"</b>ã®ã‚¹ãƒŠãƒƒãƒ—ショット<b>"%1"</b>ã®å‰Šé™¤ã«å¤±æ•—ã—ã¾ã—ãŸã€‚</translation> @@ -6763,7 +7082,6 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>作æˆ(&C)</translation> </message> <message> - <location filename="../src/globals/VBoxProblemReporter.cpp" line="1131"/> <location filename="../src/globals/VBoxProblemReporter.cpp" line="1142"/> <source>&Select</source> <comment>medium</comment> @@ -6777,13 +7095,13 @@ step and attach hard disks later using the VM Settings dialog.</p></source <message> <location filename="../src/globals/VBoxProblemReporter.cpp" line="1150"/> <source><p>Are you sure you want to delete the CD/DVD-ROM device?</p><p>You will not be able to mount any CDs or ISO images or install the Guest Additions without it!</p></source> - <translation type="unfinished"></translation> + <translation><p>CD/DVD-ROM デãƒã‚¤ã‚¹ã‚’削除ã—ã¾ã™ã‹ï¼Ÿ</p><p>デãƒã‚¤ã‚¹ãŒãªã„å ´åˆã€CD/DVDメディアやISOイメージファイルã®ãƒžã‚¦ãƒ³ãƒˆãŠã‚ˆã³Guest Additions ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã¯ã§ãã¾ã›ã‚“ï¼</p></translation> </message> <message> <location filename="../src/globals/VBoxProblemReporter.cpp" line="1154"/> <source>&Remove</source> <comment>medium</comment> - <translation type="unfinished"></translation> + <translation>除去(&R)</translation> </message> <message> <location filename="../src/globals/VBoxProblemReporter.cpp" line="1179"/> @@ -6803,7 +7121,7 @@ step and attach hard disks later using the VM Settings dialog.</p></source <message> <location filename="../src/globals/VBoxProblemReporter.cpp" line="1211"/> <source> Would you like to force mounting of this medium?</source> - <translation>メディアを強制マウントã—ã¾ã™ã‹?</translation> + <translation>メディアを強制マウントã—ã¾ã™ã‹ï¼Ÿ</translation> </message> <message> <location filename="../src/globals/VBoxProblemReporter.cpp" line="1215"/> @@ -6813,7 +7131,7 @@ step and attach hard disks later using the VM Settings dialog.</p></source <message> <location filename="../src/globals/VBoxProblemReporter.cpp" line="1216"/> <source> Would you like to force unmounting of this medium?</source> - <translation>メディアを強制マウント解除ã—ã¾ã™ã‹?</translation> + <translation>メディアを強制マウント解除ã—ã¾ã™ã‹ï¼Ÿ</translation> </message> <message> <location filename="../src/globals/VBoxProblemReporter.cpp" line="1226"/> @@ -6831,7 +7149,6 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation><p>仮想マシン<b>"%1"</b>ãŒCD/DVD-ROMドライブをæŒãŸãªã„ãŸã‚ã€VirtualBox Guest Additionsã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«CDイメージを仮想マシンã«ã‚¤ãƒ³ã‚µãƒ¼ãƒˆã§ãã¾ã›ã‚“。 仮想マシンè¨å®šãƒ€ã‚¤ã‚¢ãƒã‚°ã®[ストレージ]ページã§ãƒ‰ãƒ©ã‚¤ãƒ–ã‚’è¿½åŠ ã—ã¦ãã ã•ã„。</p></translation> </message> <message> - <location filename="../src/globals/VBoxProblemReporter.cpp" line="1848"/> <location filename="../src/globals/VBoxProblemReporter.cpp" line="1866"/> <source>E&xit</source> <comment>warnAboutSettingsAutoConversion message box</comment> @@ -6899,58 +7216,72 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>ã‚ャンセル(&C)</translation> </message> <message> + <location filename="../src/widgets/VBoxProgressDialog.cpp" line="118"/> <source>Time remaining: %1</source> <translation type="obsolete">残り時間: %1</translation> </message> <message> + <location filename="../src/widgets/VBoxProgressDialog.cpp" line="118"/> <source>%1 days, %2 hours remaining</source> <translation type="obsolete">残り時間 %1日㨠%2時間</translation> </message> <message> + <location filename="../src/widgets/VBoxProgressDialog.cpp" line="118"/> <source>%1 days, %2 minutes remaining</source> <translation type="obsolete">残り時間 %1日㨠%2分</translation> </message> <message> + <location filename="../src/widgets/VBoxProgressDialog.cpp" line="118"/> <source>%1 days remaining</source> <translation type="obsolete">残り時間 %1æ—¥</translation> </message> <message> + <location filename="../src/widgets/VBoxProgressDialog.cpp" line="118"/> <source>1 day, %1 hours remaining</source> <translation type="obsolete">残り時間 1日㨠%1時間</translation> </message> <message> + <location filename="../src/widgets/VBoxProgressDialog.cpp" line="118"/> <source>1 day, %1 minutes remaining</source> <translation type="obsolete">残り時間 1日㨠%1分</translation> </message> <message> + <location filename="../src/widgets/VBoxProgressDialog.cpp" line="118"/> <source>1 day remaining</source> <translation type="obsolete">残り時間 1æ—¥</translation> </message> <message> + <location filename="../src/widgets/VBoxProgressDialog.cpp" line="118"/> <source>%1 hours, %2 minutes remaining</source> <translation type="obsolete">残り時間 %1時間㨠%2分</translation> </message> <message> + <location filename="../src/widgets/VBoxProgressDialog.cpp" line="118"/> <source>1 hour, %1 minutes remaining</source> <translation type="obsolete">残り時間 1時間㨠%1分</translation> </message> <message> + <location filename="../src/widgets/VBoxProgressDialog.cpp" line="118"/> <source>1 hour remaining</source> <translation type="obsolete">残り時間 1時間</translation> </message> <message> + <location filename="../src/widgets/VBoxProgressDialog.cpp" line="118"/> <source>%1 minutes remaining</source> <translation type="obsolete">残り時間 %1分</translation> </message> <message> + <location filename="../src/widgets/VBoxProgressDialog.cpp" line="118"/> <source>1 minute, %2 seconds remaining</source> <translation type="obsolete">残り時間 1分㨠%2秒</translation> </message> <message> + <location filename="../src/widgets/VBoxProgressDialog.cpp" line="118"/> <source>1 minute remaining</source> <translation type="obsolete">残り時間 1分</translation> </message> <message> + <location filename="../src/widgets/VBoxProgressDialog.cpp" line="118"/> <source>%1 seconds remaining</source> <translation type="obsolete">残り時間 %1秒</translation> </message> @@ -6973,13 +7304,13 @@ step and attach hard disks later using the VM Settings dialog.</p></source <location filename="../src/widgets/VBoxProgressDialog.cpp" line="216"/> <source>%1, %2 remaining</source> <comment>You may wish to translate this more like "Time remaining: %1, %2"</comment> - <translation type="unfinished"></translation> + <translation>残り時間:%1, %2</translation> </message> <message> <location filename="../src/widgets/VBoxProgressDialog.cpp" line="217"/> <source>%1 remaining</source> <comment>You may wish to translate this more like "Time remaining: %1"</comment> - <translation type="unfinished"></translation> + <translation>残り時間:%1</translation> </message> </context> <context> @@ -6990,31 +7321,27 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>VirtualBox 登録ダイアãƒã‚°</translation> </message> <message> + <location filename="../src/VBoxRegistrationDlg.ui" line="30"/> <source>&Name</source> <translation type="obsolete">åå‰(&N)</translation> </message> <message> - <location filename="../src/VBoxRegistrationDlg.ui" line="237"/> - <location filename="../src/VBoxRegistrationDlg.ui" line="257"/> - <location filename="../src/VBoxRegistrationDlg.ui" line="277"/> - <location filename="../src/VBoxRegistrationDlg.ui" line="297"/> - <location filename="../src/VBoxRegistrationDlg.ui" line="333"/> - <location filename="../src/VBoxRegistrationDlg.ui" line="353"/> <location filename="../src/VBoxRegistrationDlg.ui" line="376"/> <source>Enter your full name using Latin characters.</source> <translation>フルãƒãƒ¼ãƒ を英å—ã§å…¥åŠ›ã—ã¦ãã ã•ã„。</translation> </message> <message> + <location filename="../src/VBoxRegistrationDlg.ui" line="376"/> <source>&E-mail</source> <translation type="obsolete">メールアドレス(&E)</translation> </message> <message> - <location filename="../src/VBoxRegistrationDlg.ui" line="164"/> <location filename="../src/VBoxRegistrationDlg.ui" line="184"/> <source>Enter your e-mail address. Please use a valid address here.</source> <translation>メールアドレスを入力ã—ã¦ãã ã•ã„。</translation> </message> <message> + <location filename="../src/VBoxRegistrationDlg.ui" line="184"/> <source>&Please do not use this information to contact me</source> <translation type="obsolete">æƒ…å ±ãƒ¡ãƒ¼ãƒ«ä¸è¦(&P)</translation> </message> @@ -7024,14 +7351,17 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>よã†ã“ã VirtualBox 登録フォームã¸ï¼</translation> </message> <message> + <location filename="../src/VBoxRegistrationDlg.ui" line="63"/> <source>&Confirm</source> <translation type="obsolete">確èª(&C)</translation> </message> <message> + <location filename="../src/VBoxRegistrationDlg.ui" line="63"/> <source>Connection timed out.</source> <translation type="obsolete">接続ãŒã‚¿ã‚¤ãƒ アウトã«ãªã‚Šã¾ã—ãŸã€‚</translation> </message> <message> + <location filename="../src/VBoxRegistrationDlg.ui" line="63"/> <source>Could not locate the registration form on the server (response: %1).</source> <translation type="obsolete">サーãƒãƒ¼ä¸Šã«ç™»éŒ²ãƒ•ã‚©ãƒ¼ãƒ ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ(å¿œç”: %1)。</translation> </message> @@ -7041,14 +7371,17 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>接続を確立ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚</translation> </message> <message> + <location filename="../src/VBoxRegistrationDlg.cpp" line="416"/> <source><p>Please fill out this registration form to let us know that you use VirtualBox and, optionally, to keep you informed about VirtualBox news and updates.</p><p>Enter your full name using Latin characters and your e-mail address to the fields below. Sun Microsystems will use this information only to gather product usage statistics and to send you VirtualBox newsletters. In particular, Sun Microsystems will never pass your data to third parties. Detailed information about how we use your personal data can be found in the <b>Privacy Policy</b> section of the VirtualBox Manual or on the <a href=http://www.virtualbox.org/wiki/PrivacyPolicy>Privacy Policy</a> page of the VirtualBox web-site.</p></source> <translation type="obsolete"><p>登録フォームã«å…¥åŠ›ã—ã€ã‚ãªãŸãŒ VirtualBox を使用ã—ã¦ã„ã‚‹ã“ã¨ã‚’我々ã«çŸ¥ã‚‰ã›ã¦ãã ã•ã„。VirtualBox ã®ãƒ‹ãƒ¥ãƒ¼ã‚¹ã¨æ›´æ–°æƒ…å ±ã‚’ãŠçŸ¥ã‚‰ã›ã—ã¾ã™(ä»»æ„)。</p><p>フルãƒãƒ¼ãƒ (英å—)ã¨ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’下ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã«å…¥åŠ›ã—ã¦ãã ã•ã„。注:Sun Microsystems ã¯ã€ã“ã®æƒ…å ±ã‚’è£½å“使用ã®çµ±è¨ˆã‚’åŽé›†ã—ã€VirtualBox ニュースレターをé€ä¿¡ã™ã‚‹ãŸã‚ã ã‘ã«ä½¿ç”¨ã—ã¾ã™ã€‚Sun Microsystems ãŒå€‹äººæƒ…å ±ã‚’ç¬¬ä¸‰è€…ã«æ¸¡ã™ã“ã¨ã¯ã‚ã‚Šã¾ã›ã‚“ã€‚å€‹äººæƒ…å ±ã®æ‰±ã„ã«é–¢ã™ã‚‹è©³ç´°æƒ…å ±ã¯ã€VirtualBox マニュアルã®"<b>Privacy Policy</b>" セクションã¾ãŸã¯ VirtualBox webサイトã®"<a href=http://www.virtualbox.org/wiki/PrivacyPolicy>Privacy Policy</a>"ページをå‚ç…§ã—ã¦ãã ã•ã„。</p></translation> </message> <message> + <location filename="../src/VBoxRegistrationDlg.cpp" line="416"/> <source>Check this box if you do not want to receive mail from Sun Microsystems at the e-mail address specified above.</source> <translation type="obsolete">Sun Microsystems ã‹ã‚‰ã®æƒ…å ±ãƒ¡ãƒ¼ãƒ«ã‚’å—ã‘å–ã‚ŠãŸããªã„å ´åˆã€ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ã‚’オンã«ã—ã¦ãã ã•ã„。</translation> </message> <message> + <location filename="../src/VBoxRegistrationDlg.cpp" line="416"/> <source>C&onfirm</source> <translation type="obsolete">確èª(&O)</translation> </message> @@ -7136,14 +7469,17 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>共有フォルダ</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3812"/> <source>Cancel</source> <translation type="obsolete">ã‚ャンセル</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3812"/> <source>Help</source> <translation type="obsolete">ヘルプ</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3812"/> <source>&OK</source> <translation type="obsolete">OK(&O)</translation> </message> @@ -7158,12 +7494,12 @@ step and attach hard disks later using the VM Settings dialog.</p></source <message> <location filename="../src/VBoxSnapshotDetailsDlg.cpp" line="226"/> <source>Click to view non-scaled screenshot.</source> - <translation>クリックã—ã¦ã‚¹ã‚¯ãƒªãƒ¼ãƒ³ã‚·ãƒ§ãƒƒãƒˆã‚’表示ã—ã¾ã™ã€‚</translation> + <translation>クリックã—ã¦å®Ÿå¯¸ã®ã‚¹ã‚¯ãƒªãƒ¼ãƒ³ã‚·ãƒ§ãƒƒãƒˆã‚’表示ã—ã¾ã™ã€‚</translation> </message> <message> <location filename="../src/VBoxSnapshotDetailsDlg.cpp" line="233"/> <source>Click to view scaled screenshot.</source> - <translation>クリックã—ã¦å®Ÿå¯¸ã®ã‚¹ã‚¯ãƒªãƒ¼ãƒ³ã‚·ãƒ§ãƒƒãƒˆã‚’表示ã—ã¾ã™ã€‚</translation> + <translation>クリックã—ã¦ã‚¹ã‚¯ãƒªãƒ¼ãƒ³ã‚·ãƒ§ãƒƒãƒˆã‚’表示ã—ã¾ã™ã€‚</translation> </message> </context> <context> @@ -7179,25 +7515,28 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>詳細(&D)</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="1309"/> <source>Virtual &Disk Manager...</source> <translation type="obsolete">仮想ディスクマãƒãƒ¼ã‚¸ãƒ£(&D)...</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="1309"/> <source>Ctrl+D</source> <translation type="obsolete">Ctrl+D</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="1309"/> <source>Display the Virtual Disk Manager dialog</source> <translation type="obsolete">仮想ディスクマãƒãƒ¼ã‚¸ãƒ£ ダイアãƒã‚°ã‚’表示</translation> </message> <message> - <location filename="../src/VBoxSelectorWnd.cpp" line="1339"/> <location filename="../src/VBoxSelectorWnd.cpp" line="1346"/> <source>&Preferences...</source> <comment>global settings</comment> <translation>環境è¨å®š(&P)...</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="1346"/> <source>Ctrl+G</source> <translation type="obsolete">Ctrl+G</translation> </message> @@ -7212,6 +7551,7 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>終了(&X)</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="1351"/> <source>Ctrl+Q</source> <translation type="obsolete">Ctrl+Q</translation> </message> @@ -7226,10 +7566,12 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>æ–°è¦(&N)...</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="1355"/> <source>New</source> <translation type="obsolete">æ–°è¦</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="1355"/> <source>Ctrl+N</source> <translation type="obsolete">Ctrl+N</translation> </message> @@ -7244,10 +7586,12 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>è¨å®š(&S)...</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="1361"/> <source>Settings</source> <translation type="obsolete">è¨å®š</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="1361"/> <source>Ctrl+S</source> <translation type="obsolete">Ctrl+S</translation> </message> @@ -7262,6 +7606,7 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>削除(&D)</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="1367"/> <source>Delete</source> <translation type="obsolete">削除</translation> </message> @@ -7276,6 +7621,7 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>ç ´æ£„(&I)</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="1373"/> <source>Discard</source> <translation type="obsolete">ç ´æ£„</translation> </message> @@ -7285,14 +7631,17 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>é¸æŠžã—ãŸä»®æƒ³ãƒžã‚·ãƒ³ã‚’ç ´æ£„</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="1375"/> <source>&Refresh</source> <translation type="obsolete">最新ã®æƒ…å ±ã«æ›´æ–°(&R)</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="1375"/> <source>Refresh</source> <translation type="obsolete">最新ã®æƒ…å ±ã«æ›´æ–°</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="1375"/> <source>Ctrl+R</source> <translation type="obsolete">Ctrl+R</translation> </message> @@ -7302,38 +7651,47 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>é¸æŠžã—ãŸä»®æƒ³ãƒžã‚·ãƒ³ã®ã‚¢ã‚¯ã‚»ã‚¹å¯å¦çŠ¶æ…‹ã‚’最新ã®æƒ…å ±ã«æ›´æ–°ã™ã‚‹</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="1383"/> <source>&Contents...</source> <translation type="obsolete">ヘルプを表示(&C)...</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="1383"/> <source>F1</source> <translation type="obsolete">F1</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="1383"/> <source>Show the online help contents</source> <translation type="obsolete">オンラインヘルプを表示</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="1383"/> <source>&VirtualBox Web Site...</source> <translation type="obsolete">VirtualBox Webサイト(&V)...</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="1383"/> <source>Open the browser and go to the VirtualBox product web site</source> <translation type="obsolete">Webブラウザã§VirtualBox製å“ã®Webサイトを開ã</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="1383"/> <source>&About VirtualBox...</source> <translation type="obsolete">VirtualBox ã«ã¤ã„ã¦(&A)...</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="1383"/> <source>Show a dialog with product information</source> <translation type="obsolete">製å“æƒ…å ±ãƒ€ã‚¤ã‚¢ãƒã‚°ã‚’表示</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="1383"/> <source>&Reset All Warnings</source> <translation type="obsolete">ã™ã¹ã¦ã®è¦å‘Šã‚’リセット(&R)</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="1383"/> <source>Go back to showing all suppressed warnings and messages</source> <translation type="obsolete">ã™ã¹ã¦ã®æŠ‘æ¢ã•ã‚ŒãŸè¦å‘Šã¨ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’å†åº¦è¡¨ç¤ºã•ã›ã‚‹</translation> </message> @@ -7348,13 +7706,11 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>ヘルプ(&H)</translation> </message> <message> - <location filename="../src/VBoxSelectorWnd.cpp" line="1443"/> <location filename="../src/VBoxSelectorWnd.cpp" line="1578"/> <source>&Snapshots</source> <translation>スナップショット(&S)</translation> </message> <message> - <location filename="../src/VBoxSelectorWnd.cpp" line="1457"/> <location filename="../src/VBoxSelectorWnd.cpp" line="1582"/> <source>D&escription</source> <translation>説明(&E)</translation> @@ -7370,6 +7726,7 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>表示(&H)</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="1497"/> <source>Show</source> <translation type="obsolete">表示</translation> </message> @@ -7379,24 +7736,24 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>é¸æŠžã—ãŸä»®æƒ³ãƒžã‚·ãƒ³ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã«åˆ‡ã‚Šæ›¿ãˆ</translation> </message> <message> - <location filename="../src/VBoxSelectorWnd.cpp" line="1483"/> <location filename="../src/VBoxSelectorWnd.cpp" line="1592"/> <source>S&tart</source> <translation>èµ·å‹•(&T)</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="1592"/> <source>Start</source> <translation type="obsolete">èµ·å‹•</translation> </message> <message> - <location filename="../src/VBoxSelectorWnd.cpp" line="1491"/> <location filename="../src/VBoxSelectorWnd.cpp" line="1594"/> <source>Start the selected virtual machine</source> <translation>é¸æŠžã—ãŸä»®æƒ³ãƒžã‚·ãƒ³ã‚’èµ·å‹•</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="1594"/> <source><h3>Welcome to VirtualBox!</h3><p>The left part of this window is a list of all virtual machines on your computer. The list is empty now because you haven't created any virtual machines yet.<img src=welcome.png align=right/></p><p>In order to create a new virtual machine, press the <b>New</b> button in the main tool bar located at the top of the window.</p><p>You can press the <b>%1</b> key to get instant help, or visit <a href=http://www.virtualbox.org>www.virtualbox.org</a> for the latest information and news.</p></source> - <translation type="obsolete"><h3>よã†ã“ãVirtualBoxã¸!</h3><p>ã“ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã®å·¦å´ã«ã‚³ãƒ³ãƒ”ュータ上ã®ã™ã¹ã¦ã®ä»®æƒ³ãƒžã‚·ãƒ³ãŒãƒªã‚¹ãƒˆè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚ã¾ã 仮想マシンãŒä½œæˆã•ã‚Œã¦ã„ãªã„ãŸã‚ã€ãƒªã‚¹ãƒˆã¯ç©ºã§ã™ã€‚<img src=welcome.png align=right/></p><p>æ–°è¦ä»®æƒ³ãƒžã‚·ãƒ³ã‚’作æˆã™ã‚‹ã«ã¯ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ä¸Šéƒ¨ã«ã‚るメインツールãƒãƒ¼ã®<b>[æ–°è¦]</b>ボタンをクリックã—ã¦ãã ã•ã„。</p><p><b>%1</b>ã‚ーã§ãƒ˜ãƒ«ãƒ—を表示ã§ãã¾ã™ã€‚ã¾ãŸã¯æœ€æ–°ã®æƒ…å ±ã¨ãƒ‹ãƒ¥ãƒ¼ã‚¹ã‚’å–å¾—ã™ã‚‹ãŸã‚ <a href=http://www.virtualbox.org>www.virtualbox.org</a> を訪å•ã—ã¦ãã ã•ã„。</p></translation> + <translation type="obsolete"><h3>よã†ã“ãVirtualBoxã¸ï¼</h3><p>ã“ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã®å·¦å´ã«ã‚³ãƒ³ãƒ”ュータ上ã®ã™ã¹ã¦ã®ä»®æƒ³ãƒžã‚·ãƒ³ãŒãƒªã‚¹ãƒˆè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚ã¾ã 仮想マシンãŒä½œæˆã•ã‚Œã¦ã„ãªã„ãŸã‚ã€ãƒªã‚¹ãƒˆã¯ç©ºã§ã™ã€‚<img src=welcome.png align=right/></p><p>æ–°è¦ä»®æƒ³ãƒžã‚·ãƒ³ã‚’作æˆã™ã‚‹ã«ã¯ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ä¸Šéƒ¨ã«ã‚るメインツールãƒãƒ¼ã®<b>[æ–°è¦]</b>ボタンをクリックã—ã¦ãã ã•ã„。</p><p><b>%1</b>ã‚ーã§ãƒ˜ãƒ«ãƒ—を表示ã§ãã¾ã™ã€‚ã¾ãŸã¯æœ€æ–°ã®æƒ…å ±ã¨ãƒ‹ãƒ¥ãƒ¼ã‚¹ã‚’å–å¾—ã™ã‚‹ãŸã‚ <a href=http://www.virtualbox.org>www.virtualbox.org</a> を訪å•ã—ã¦ãã ã•ã„。</p></translation> </message> <message> <location filename="../src/VBoxSelectorWnd.cpp" line="1394"/> @@ -7409,10 +7766,12 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>ãƒã‚°ã‚’å‚ç…§(&L)...</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="1385"/> <source>Show Log...</source> <translation type="obsolete">ãƒã‚°ã‚’å‚ç…§...</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="1385"/> <source>Ctrl+L</source> <translation type="obsolete">Ctrl+L</translation> </message> @@ -7422,10 +7781,12 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>é¸æŠžã—ãŸä»®æƒ³ãƒžã‚·ãƒ³ã®ãƒã‚°ãƒ•ã‚¡ã‚¤ãƒ«ã‚’å‚ç…§ã™ã‚‹</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="1389"/> <source>R&egister VirtualBox...</source> <translation type="obsolete">VirtualBox を登録(&E)...</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="1389"/> <source>Open VirtualBox registration form</source> <translation type="obsolete">VirtualBox 登録フォームを開ã</translation> </message> @@ -7435,10 +7796,12 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>å†é–‹(&E)</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="1515"/> <source>Resume</source> <translation type="obsolete">å†é–‹</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="1515"/> <source>Ctrl+P</source> <translation type="obsolete">Ctrl+P</translation> </message> @@ -7448,17 +7811,16 @@ step and attach hard disks later using the VM Settings dialog.</p></source <translation>仮想マシンã®å®Ÿè¡Œã‚’å†é–‹ã™ã‚‹</translation> </message> <message> - <location filename="../src/VBoxSelectorWnd.cpp" line="1377"/> <location filename="../src/VBoxSelectorWnd.cpp" line="1525"/> <source>&Pause</source> <translation>一時åœæ¢(&P)</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="1525"/> <source>Pause</source> <translation type="obsolete">一時åœæ¢</translation> </message> <message> - <location filename="../src/VBoxSelectorWnd.cpp" line="1379"/> <location filename="../src/VBoxSelectorWnd.cpp" line="1528"/> <source>Suspend the execution of the virtual machine</source> <translation>仮想マシンã®å®Ÿè¡Œã‚’一時åœæ¢ã™ã‚‹</translation> @@ -7546,18 +7908,22 @@ step and attach hard disks later using the VM Settings dialog.</p></source <context> <name>VBoxSharedFoldersSettings</name> <message> + <location filename="../src/settings/VBoxSettingsDialog.cpp" line="143"/> <source>Name</source> <translation type="obsolete">åå‰</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialog.cpp" line="143"/> <source>Path</source> <translation type="obsolete">パス</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialog.cpp" line="143"/> <source>Shared &Folders</source> <translation type="obsolete">共有フォルダ(&F)</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialog.cpp" line="143"/> <source><qt>Lists all shared folders accessible to this machine. Use <tt>net use x: \\vboxsvr\share</tt> @@ -7570,63 +7936,78 @@ DOS系ゲストOSã‹ã‚‰ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹å ´åˆã¯ <tt>net use x:¥¥vboxs 本機能を使用ã™ã‚‹ã«ã¯ Guest Additions ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ãŒå¿…è¦ã§ã™ã€‚</qt></translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialog.cpp" line="143"/> <source>Adds a new shared folder definition.</source> <translation type="obsolete">æ–°è¦å…±æœ‰ãƒ•ã‚©ãƒ«ãƒ€ã‚’è¿½åŠ ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialog.cpp" line="143"/> <source>Removes the selected shared folder definition.</source> <translation type="obsolete">é¸æŠžã—ãŸå…±æœ‰ãƒ•ã‚©ãƒ«ãƒ€ã®è¨å®šã‚’削除ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialog.cpp" line="143"/> <source> Machine Folders</source> <translation type="obsolete">共有フォルダ</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialog.cpp" line="143"/> <source> Transient Folders</source> <translation type="obsolete">一時的ãªå…±æœ‰ãƒ•ã‚©ãƒ«ãƒ€</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialog.cpp" line="143"/> <source>Edits the selected shared folder definition.</source> <translation type="obsolete">é¸æŠžã—ãŸå…±æœ‰ãƒ•ã‚©ãƒ«ãƒ€ã®è¨å®šã‚’編集ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialog.cpp" line="143"/> <source>VBoxSharedFoldersSettings</source> <comment>don't translate</comment> <translation type="obsolete">VBoxSharedFoldersSettings</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialog.cpp" line="143"/> <source>Ins</source> <translation type="obsolete">Ins</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialog.cpp" line="143"/> <source>Add a new shared folder (Ins)</source> <translation type="obsolete">æ–°è¦å…±æœ‰ãƒ•ã‚©ãƒ«ãƒ€ã‚’è¿½åŠ (Ins)</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialog.cpp" line="143"/> <source>Del</source> <translation type="obsolete">Del</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialog.cpp" line="143"/> <source>Remove the selected shared folder (Del)</source> <translation type="obsolete">é¸æŠžã—ãŸå…±æœ‰ãƒ•ã‚©ãƒ«ãƒ€ã‚’削除(Del)</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialog.cpp" line="143"/> <source>Access</source> <translation type="obsolete">アクセス権</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialog.cpp" line="143"/> <source>Ctrl+Space</source> <translation type="obsolete">Ctrl+スペース</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialog.cpp" line="143"/> <source>Edit the selected shared folder (Ctrl+Space)</source> <translation type="obsolete">é¸æŠžã—ãŸå…±æœ‰ãƒ•ã‚©ãƒ«ãƒ€ã®è¨å®šã‚’編集(Ctrl+スペース)</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialog.cpp" line="143"/> <source>Full</source> <translation type="obsolete">完全</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialog.cpp" line="143"/> <source>Read-only</source> <translation type="obsolete">èªã¿è¾¼ã¿å°‚用</translation> </message> @@ -7634,38 +8015,47 @@ DOS系ゲストOSã‹ã‚‰ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹å ´åˆã¯ <tt>net use x:¥¥vboxs <context> <name>VBoxSnapshotDetailsDlg</name> <message> + <location filename="../src/settings/VBoxSettingsDialog.cpp" line="143"/> <source>VBoxSnapshotDetailsDlg</source> <translation type="obsolete">VBoxSnapshotDetailsDlg</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialog.cpp" line="143"/> <source> Snapshot Details </source> <translation type="obsolete">スナップショット詳細</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialog.cpp" line="143"/> <source>&Name</source> <translation type="obsolete">åå‰(&N)</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialog.cpp" line="143"/> <source>&Description</source> <translation type="obsolete">説明(&D)</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialog.cpp" line="143"/> <source>&Machine Details</source> <translation type="obsolete">仮想マシン詳細(&M)</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialog.cpp" line="143"/> <source>Help</source> <translation type="obsolete">ヘルプ</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialog.cpp" line="143"/> <source>F1</source> <translation type="obsolete">F1</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialog.cpp" line="143"/> <source>&OK</source> <translation type="obsolete">OK(&O)</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialog.cpp" line="143"/> <source>Cancel</source> <translation type="obsolete">ã‚ャンセル</translation> </message> @@ -7675,6 +8065,7 @@ DOS系ゲストOSã‹ã‚‰ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹å ´åˆã¯ <tt>net use x:¥¥vboxs <translation>%1 (%2)ã®è©³ç´°</translation> </message> <message> + <location filename="../src/VBoxSnapshotDetailsDlg.cpp" line="121"/> <source>Snapshot Details</source> <translation type="obsolete">スナップショット詳細</translation> </message> @@ -7707,6 +8098,7 @@ DOS系ゲストOSã‹ã‚‰ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹å ´åˆã¯ <tt>net use x:¥¥vboxs <context> <name>VBoxSnapshotsWgt</name> <message> + <location filename="../src/VBoxSnapshotDetailsDlg.ui" line="124"/> <source>[snapshot]</source> <translation type="obsolete">[snapshot]</translation> </message> @@ -7716,26 +8108,32 @@ DOS系ゲストOSã‹ã‚‰ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹å ´åˆã¯ <tt>net use x:¥¥vboxs <translation>VBoxSnapshotsWgt</translation> </message> <message> + <location filename="../src/VBoxSnapshotsWgt.ui" line="30"/> <source>snapshotActionGroup</source> <translation type="obsolete">snapshotActionGroup</translation> </message> <message> + <location filename="../src/VBoxSnapshotsWgt.ui" line="30"/> <source>Discard Snapshot</source> <translation type="obsolete">ã‚¹ãƒŠãƒƒãƒ—ã‚·ãƒ§ãƒƒãƒˆã‚’ç ´æ£„</translation> </message> <message> + <location filename="../src/VBoxSnapshotsWgt.ui" line="30"/> <source>&Discard Snapshot</source> <translation type="obsolete">ã‚¹ãƒŠãƒƒãƒ—ã‚·ãƒ§ãƒƒãƒˆã‚’ç ´æ£„(&D)</translation> </message> <message> + <location filename="../src/VBoxSnapshotsWgt.ui" line="30"/> <source>Ctrl+Shift+D</source> <translation type="obsolete">Ctrl+Shift+D</translation> </message> <message> + <location filename="../src/VBoxSnapshotsWgt.ui" line="30"/> <source>curStateActionGroup</source> <translation type="obsolete">curStateActionGroup</translation> </message> <message> + <location filename="../src/VBoxSnapshotsWgt.ui" line="30"/> <source>Take Snapshot</source> <translation type="obsolete">スナップショット作æˆ</translation> </message> @@ -7745,14 +8143,17 @@ DOS系ゲストOSã‹ã‚‰ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹å ´åˆã¯ <tt>net use x:¥¥vboxs <translation>スナップショット作æˆ(&S)</translation> </message> <message> + <location filename="../src/VBoxSnapshotsWgt.cpp" line="696"/> <source>Discard Current Snapshot and State</source> <translation type="obsolete">最新ã®ã‚¹ãƒŠãƒƒãƒ—ショットã¨çŠ¶æ…‹ã‚’ç ´æ£„</translation> </message> <message> + <location filename="../src/VBoxSnapshotsWgt.cpp" line="696"/> <source>D&iscard Current Snapshot and State</source> <translation type="obsolete">最新ã®ã‚¹ãƒŠãƒƒãƒ—ショットã¨çŠ¶æ…‹ã‚’ç ´æ£„(&I)</translation> </message> <message> + <location filename="../src/VBoxSnapshotsWgt.cpp" line="696"/> <source>Show Details</source> <translation type="obsolete">詳細を表示</translation> </message> @@ -7784,12 +8185,9 @@ DOS系ゲストOSã‹ã‚‰ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹å ´åˆã¯ <tt>net use x:¥¥vboxs <translation>最新ã®çŠ¶æ…‹ã¯æœ€æ–°ã®ã‚¹ãƒŠãƒƒãƒ—ショットã«ä¿å˜ã•ã‚Œã¦ã„る状態ã¨åŒã˜ã§ã™</translation> </message> <message> - <location filename="../src/VBoxSnapshotsWgt.cpp" line="189"/> - <location filename="../src/VBoxSnapshotsWgt.cpp" line="194"/> - <location filename="../src/VBoxSnapshotsWgt.cpp" line="199"/> <location filename="../src/VBoxSnapshotsWgt.cpp" line="204"/> <source> (%1 ago)</source> - <translation type="unfinished"></translation> + <translation>(%1å‰)</translation> </message> <message> <location filename="../src/VBoxSnapshotsWgt.cpp" line="244"/> @@ -7833,10 +8231,12 @@ DOS系ゲストOSã‹ã‚‰ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹å ´åˆã¯ <tt>net use x:¥¥vboxs <translation>スナップショット %1</translation> </message> <message> + <location filename="../src/VBoxSnapshotsWgt.cpp" line="585"/> <source>Discard the selected snapshot of the virtual machine</source> <translation type="obsolete">é¸æŠžã—ãŸä»®æƒ³ãƒžã‚·ãƒ³ã®ã‚¹ãƒŠãƒƒãƒ—ã‚·ãƒ§ãƒƒãƒˆã‚’ç ´æ£„</translation> </message> <message> + <location filename="../src/VBoxSnapshotsWgt.cpp" line="585"/> <source>Ctrl+Shift+S</source> <translation type="obsolete">Ctrl+Shift+S</translation> </message> @@ -7846,26 +8246,32 @@ DOS系ゲストOSã‹ã‚‰ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹å ´åˆã¯ <tt>net use x:¥¥vboxs <translation>ç¾åœ¨ã®ä»®æƒ³ãƒžã‚·ãƒ³ã®çŠ¶æ…‹ã®ã‚¹ãƒŠãƒƒãƒ—ショットを作æˆ</translation> </message> <message> + <location filename="../src/VBoxSnapshotsWgt.cpp" line="701"/> <source>Revert to Current Snapshot</source> <translation type="obsolete">最新ã®ã‚¹ãƒŠãƒƒãƒ—ショットã®çŠ¶æ…‹ã«æˆ»ã™</translation> </message> <message> + <location filename="../src/VBoxSnapshotsWgt.cpp" line="701"/> <source>&Revert to Current Snapshot</source> <translation type="obsolete">最新ã®ã‚¹ãƒŠãƒƒãƒ—ショットã®çŠ¶æ…‹ã«æˆ»ã™(&R)</translation> </message> <message> + <location filename="../src/VBoxSnapshotsWgt.cpp" line="701"/> <source>Ctrl+Shift+R</source> <translation type="obsolete">Ctrl+Shift+R</translation> </message> <message> + <location filename="../src/VBoxSnapshotsWgt.cpp" line="701"/> <source>Restore the virtual machine state from the state stored in the current snapshot</source> <translation type="obsolete">仮想マシンã®çŠ¶æ…‹ã‚’最新ã®ã‚¹ãƒŠãƒƒãƒ—ショットã«ä¿å˜ã•ã‚ŒãŸçŠ¶æ…‹ã«å¾©å…ƒ</translation> </message> <message> + <location filename="../src/VBoxSnapshotsWgt.cpp" line="701"/> <source>Ctrl+Shift+B</source> <translation type="obsolete">Ctrl+Shift+B</translation> </message> <message> + <location filename="../src/VBoxSnapshotsWgt.cpp" line="701"/> <source>Discard the current snapshot and revert the machine to the state it had before the snapshot was taken</source> <translation type="obsolete">最新ã®ã‚¹ãƒŠãƒƒãƒ—ã‚·ãƒ§ãƒƒãƒˆã‚’ç ´æ£„ã—ã€ã‚¹ãƒŠãƒƒãƒ—ショットを作æˆã™ã‚‹å‰ã®çŠ¶æ…‹ã«æˆ»ã™</translation> </message> @@ -7875,6 +8281,7 @@ DOS系ゲストOSã‹ã‚‰ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹å ´åˆã¯ <tt>net use x:¥¥vboxs <translation>é¸æŠžã—ãŸã‚¹ãƒŠãƒƒãƒ—ショットã®è©³ç´°ã‚’表示</translation> </message> <message> + <location filename="../src/VBoxSnapshotsWgt.cpp" line="700"/> <source>Ctrl+Space</source> <translation type="obsolete">Ctrl+スペース</translation> </message> @@ -7884,24 +8291,28 @@ DOS系ゲストOSã‹ã‚‰ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹å ´åˆã¯ <tt>net use x:¥¥vboxs <translation> (%1)</translation> </message> <message numerus="yes"> + <location filename="../src/VBoxSnapshotsWgt.cpp" line="184"/> <source> (%n day(s) ago)</source> <translation type="obsolete"> <numerusform> (%n æ—¥å‰)</numerusform> </translation> </message> <message numerus="yes"> + <location filename="../src/VBoxSnapshotsWgt.cpp" line="184"/> <source> (%n hour(s) ago)</source> <translation type="obsolete"> <numerusform> (%n 時間å‰)</numerusform> </translation> </message> <message numerus="yes"> + <location filename="../src/VBoxSnapshotsWgt.cpp" line="184"/> <source> (%n minute(s) ago)</source> <translation type="obsolete"> <numerusform> (%n 分å‰)</numerusform> </translation> </message> <message numerus="yes"> + <location filename="../src/VBoxSnapshotsWgt.cpp" line="184"/> <source> (%n second(s) ago)</source> <translation type="obsolete"> <numerusform> (%n 秒å‰)</numerusform> @@ -7941,6 +8352,7 @@ DOS系ゲストOSã‹ã‚‰ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹å ´åˆã¯ <tt>net use x:¥¥vboxs <translation>有効</translation> </message> <message> + <location filename="../src/globals/VBoxGlobal.cpp" line="5110"/> <source>%1 %2</source> <translation type="obsolete">%1 %2</translation> </message> @@ -7963,26 +8375,30 @@ DOS系ゲストOSã‹ã‚‰ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹å ´åˆã¯ <tt>net use x:¥¥vboxs <translation>スナップショットã®èª¬æ˜Ž(&D)</translation> </message> <message> + <location filename="../src/VBoxTakeSnapshotDlg.ui" line="88"/> <source>Help</source> <translation type="obsolete">ヘルプ</translation> </message> <message> + <location filename="../src/VBoxTakeSnapshotDlg.ui" line="88"/> <source>F1</source> <translation type="obsolete">F1</translation> </message> <message> + <location filename="../src/VBoxTakeSnapshotDlg.ui" line="88"/> <source>&OK</source> <translation type="obsolete">OK(&O)</translation> </message> <message> + <location filename="../src/VBoxTakeSnapshotDlg.ui" line="88"/> <source>Cancel</source> <translation type="obsolete">ã‚ャンセル</translation> </message> <message numerus="yes"> <location filename="../src/VBoxTakeSnapshotDlg.cpp" line="60"/> <source>Warning: You are taking a snapshot of a running machine which has %n immutable image(s) attached to it. As long as you are working from this snapshot the immutable image(s) will not be reset to avoid loss of data.</source> - <translation type="unfinished"> - <numerusform></numerusform> + <translation> + <numerusform>è¦å‘Šï¼š%n 個ã®å¤‰æ›´ä¸å¯ã®ä»®æƒ³ãƒ‡ã‚£ã‚¹ã‚¯ã‚’割り当ã¦ãŸä»®æƒ³ãƒžã‚·ãƒ³ã®ã‚¹ãƒŠãƒƒãƒ—ショットを作æˆã—ã¦ã„ã¾ã™ã€‚データ喪失をé¿ã‘ã‚‹ãŸã‚ã€ã“ã®ã‚¹ãƒŠãƒƒãƒ—ショットã‹ã‚‰èµ·å‹•ã™ã‚‹é™ã‚Šã€ä»®æƒ³ãƒ‡ã‚£ã‚¹ã‚¯ã¯ãƒªã‚»ãƒƒãƒˆã•ã‚Œã¾ã›ã‚“。</numerusform> </translation> </message> </context> @@ -8046,70 +8462,86 @@ DOS系ゲストOSã‹ã‚‰ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹å ´åˆã¯ <tt>net use x:¥¥vboxs <context> <name>VBoxUSBFilterSettings</name> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="2038"/> <source>VBoxUSBFilterSettings</source> <comment>don't translate</comment> <translation type="obsolete">VBoxUSBFilterSettings</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="2038"/> <source>&Name</source> <translation type="obsolete">åå‰(&N)</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="2038"/> <source>Displays the filter name.</source> <translation type="obsolete">フィルタåを表示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="2038"/> <source>&Manufacturer</source> <translation type="obsolete">メーカー(&M)</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="2038"/> <source>Pro&duct</source> <translation type="obsolete">製å“å(&D)</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="2038"/> <source>&Serial No.</source> <translation type="obsolete">シリアル No.(&S)</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="2038"/> <source>R&emote</source> <translation type="obsolete">リモート(&E)</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="2038"/> <source>&Action</source> <translation type="obsolete">動作(&A)</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="2038"/> <source>&Vendor ID</source> <translation type="obsolete">ベンダーID(&V)</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="2038"/> <source>&Product ID</source> <translation type="obsolete">プãƒãƒ€ã‚¯ãƒˆID(&P)</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="2038"/> <source>&Revision</source> <translation type="obsolete">リビジョン(&R)</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="2038"/> <source>Por&t</source> <translation type="obsolete">ãƒãƒ¼ãƒˆ(&T)</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="2038"/> <source>Any</source> <comment>remote</comment> <translation type="obsolete">ä»»æ„</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="2038"/> <source>Yes</source> <comment>remote</comment> <translation type="obsolete">ã¯ã„</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="2038"/> <source>No</source> <comment>remote</comment> <translation type="obsolete">ã„ã„ãˆ</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="2038"/> <source><qt>Defines the manufacturer filter as an <i>exact match</i> string. An empty string will match any value.</qt></source> @@ -8117,6 +8549,7 @@ value.</qt></source> 空ã®æ–‡å—列ã¯ã™ã¹ã¦ã®å€¤ã¨ä¸€è‡´ã—ã¾ã™ã€‚</qt></translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="2038"/> <source><qt>Defines the product name filter as an <i>exact match</i> string. An empty string will match any value.</qt></source> @@ -8124,6 +8557,7 @@ value.</qt></source> 空ã®æ–‡å—列ã¯ã™ã¹ã¦ã®å€¤ã¨ä¸€è‡´ã—ã¾ã™ã€‚</qt></translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="2038"/> <source><qt>Defines the serial number filter as an <i>exact match</i> string. An empty string will match any value.</qt></source> @@ -8131,6 +8565,7 @@ value.</qt></source> 空ã®æ–‡å—列ã¯ã™ã¹ã¦ã®å€¤ã¨ä¸€è‡´ã—ã¾ã™ã€‚</qt></translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="2038"/> <source><qt>Defines whether this filter applies to USB devices attached locally to the host computer (<i>No</i>), to a VRDP client's computer (<i>Yes</i>), @@ -8140,6 +8575,7 @@ or both (<i>Any</i>).</qt></source> 両方((<i>ä»»æ„</i>))。</qt></translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="2038"/> <source><qt>Defines an action performed by the host computer when a matching device is attached: give it up to the host OS (<i>Ignore</i>) or grab it for later usage by virtual machines @@ -8148,6 +8584,7 @@ computer when a matching device is attached: give it up to the host OS ホストOSã«è²ã‚‹(<i>無視</i>) ã€ä»®æƒ³ãƒžã‚·ãƒ³ã§ä½¿ç”¨ã™ã‚‹ãŸã‚ã«æ•æ‰(<i>ä¿æŒ</i>)。</qt></translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="2038"/> <source><qt>Defines the vendor ID filter. The <i>exact match</i> string format is <tt>XXXX</tt> where <tt>X</tt> is a hexadecimal digit. An empty string will match any @@ -8157,6 +8594,7 @@ value.</qt></source> 空ã®æ–‡å—列ã¯ã™ã¹ã¦ã®å€¤ã¨ä¸€è‡´ã—ã¾ã™ã€‚</qt></translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="2038"/> <source><qt>Defines the product ID filter. The <i>exact match</i> string format is <tt>XXXX</tt> where <tt>X</tt> is a hexadecimal digit. An empty string will match any @@ -8166,6 +8604,7 @@ value.</qt></source> 空ã®æ–‡å—列ã¯ã™ã¹ã¦ã®å€¤ã¨ä¸€è‡´ã—ã¾ã™ã€‚</qt></translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="2038"/> <source><qt>Defines the revision number filter. The <i>exact match</i> string format is <tt>IIFF</tt> where <tt>I</tt> is a decimal digit of the integer part and <tt>F</tt> @@ -8177,6 +8616,7 @@ value.</qt></source> 空ã®æ–‡å—列ã¯ã™ã¹ã¦ã®å€¤ã¨ä¸€è‡´ã—ã¾ã™ã€‚</qt></translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="2038"/> <source><qt>Defines the host USB port filter as an <i>exact match</i> string. An empty string will match any value.</qt></source> @@ -8257,10 +8697,12 @@ value.</qt></source> <translation>確èªã—ãªã„</translation> </message> <message> + <location filename="../src/VBoxUpdateDlg.cpp" line="253"/> <source>Connection timed out.</source> <translation type="obsolete">接続ãŒã‚¿ã‚¤ãƒ アウトã«ãªã‚Šã¾ã—ãŸã€‚</translation> </message> <message> + <location filename="../src/VBoxUpdateDlg.cpp" line="253"/> <source>Could not locate the latest version list on the server (response: %1).</source> <translation type="obsolete">サーãƒãƒ¼ä¸Šã«æœ€æ–°ãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ(å¿œç”: %1)。</translation> </message> @@ -8285,6 +8727,7 @@ value.</qt></source> <translation>アップデートを確èª</translation> </message> <message> + <location filename="../src/VBoxUpdateDlg.cpp" line="409"/> <source><p>This wizard will connect to the VirtualBox web-site and check if a newer version of VirtualBox is available.</p> <p>Use the <b>Check</b> button to check for a new version now or the <b>Cancel</b> button if you do not want to perform this check.</p> <p>You can run this wizard at any time by choosing <b>Check for Updates...</b> from the <b>Help</b> menu.</p></source> @@ -8339,6 +8782,7 @@ value.</qt></source> <translation>編集(Ctrl+E)</translation> </message> <message> + <location filename="../src/VBoxSelectorWnd.cpp" line="331"/> <source>Ctrl+E</source> <translation type="obsolete">Ctrl+E</translation> </message> @@ -8399,14 +8843,17 @@ value.</qt></source> <translation>メディア ソース</translation> </message> <message> + <location filename="../src/wizards/firstrun/VBoxVMFirstRunWzd.ui" line="439"/> <source>&Host Drive</source> <translation type="obsolete">ホスト デãƒã‚¤ã‚¹(&H)</translation> </message> <message> + <location filename="../src/wizards/firstrun/VBoxVMFirstRunWzd.ui" line="439"/> <source>&Image File</source> <translation type="obsolete">イメージファイル(&I)</translation> </message> <message> + <location filename="../src/wizards/firstrun/VBoxVMFirstRunWzd.ui" line="439"/> <source>VDM</source> <translation type="obsolete">VDM</translation> </message> @@ -8441,10 +8888,12 @@ value.</qt></source> <translation>フãƒãƒƒãƒ”ー デãƒã‚¤ã‚¹</translation> </message> <message> + <location filename="../src/wizards/firstrun/VBoxVMFirstRunWzd.cpp" line="86"/> <source>Host Drive %1</source> <translation type="obsolete">ホスト ドライブ %1</translation> </message> <message> + <location filename="../src/wizards/firstrun/VBoxVMFirstRunWzd.cpp" line="86"/> <source><table><tr><td>Type:</td><td>%1</td></tr><tr><td>Source:</td><td>%2</td></tr></table></source> <translation type="obsolete"><table><tr><td>タイプ:</td><td>%1</td></tr><tr><td>ソース:</td><td>%2</td></tr></table> </translation> @@ -8475,19 +8924,17 @@ value.</qt></source> <translation><p>上記ãŒæ£ã—ã„ãªã‚‰ã€<b>[完了]</b>ボタンをクリックã—ã¦ãã ã•ã„。 é¸æŠžã•ã‚ŒãŸãƒ¡ãƒ‡ã‚£ã‚¢ã¯ä»®æƒ³ãƒžã‚·ãƒ³ã«å–り付ã‘られã€ä»®æƒ³ãƒžã‚·ãƒ³ã¯å®Ÿè¡Œã‚’開始ã—ã¾ã™ã€‚</p></translation> </message> <message> - <location filename="../src/wizards/firstrun/VBoxVMFirstRunWzd.ui" line="198"/> - <location filename="../src/wizards/firstrun/VBoxVMFirstRunWzd.ui" line="500"/> <location filename="../src/wizards/firstrun/VBoxVMFirstRunWzd.ui" line="758"/> <source>< &Back</source> <translation>< 戻る(&B)</translation> </message> <message> - <location filename="../src/wizards/firstrun/VBoxVMFirstRunWzd.ui" line="205"/> <location filename="../src/wizards/firstrun/VBoxVMFirstRunWzd.ui" line="507"/> <source>&Next ></source> <translation>次ã¸(&N) ></translation> </message> <message> + <location filename="../src/wizards/firstrun/VBoxVMFirstRunWzd.ui" line="507"/> <source><html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Arial'; font-size:9pt; font-weight:400; font-style:normal;"> @@ -8514,8 +8961,6 @@ p, li { white-space: pre-wrap; } <translation>ソース</translation> </message> <message> - <location filename="../src/wizards/firstrun/VBoxVMFirstRunWzd.ui" line="228"/> - <location filename="../src/wizards/firstrun/VBoxVMFirstRunWzd.ui" line="530"/> <location filename="../src/wizards/firstrun/VBoxVMFirstRunWzd.ui" line="788"/> <source>Cancel</source> <translation>ã‚ャンセル</translation> @@ -8524,10 +8969,12 @@ p, li { white-space: pre-wrap; } <context> <name>VBoxVMInformationDlg</name> <message> + <location filename="../src/wizards/firstrun/VBoxVMFirstRunWzd.ui" line="788"/> <source>Session Information Dialog</source> <translation type="obsolete">ã‚»ãƒƒã‚·ãƒ§ãƒ³æƒ…å ±ãƒ€ã‚¤ã‚¢ãƒã‚°</translation> </message> <message> + <location filename="../src/wizards/firstrun/VBoxVMFirstRunWzd.ui" line="788"/> <source>&Close</source> <translation type="obsolete">é–‰ã˜ã‚‹(&C)</translation> </message> @@ -8537,19 +8984,16 @@ p, li { white-space: pre-wrap; } <translation>%1 - ã‚»ãƒƒã‚·ãƒ§ãƒ³æƒ…å ±</translation> </message> <message> - <location filename="../src/VBoxVMInformationDlg.ui" line="41"/> <location filename="../src/VBoxVMInformationDlg.cpp" line="154"/> <source>&Details</source> <translation>詳細(&D)</translation> </message> <message> - <location filename="../src/VBoxVMInformationDlg.ui" line="76"/> <location filename="../src/VBoxVMInformationDlg.cpp" line="155"/> <source>&Runtime</source> <translation>ランタイム(&R)</translation> </message> <message> - <location filename="../src/VBoxVMInformationDlg.cpp" line="178"/> <location filename="../src/VBoxVMInformationDlg.cpp" line="215"/> <source>DMA Transfers</source> <translation>DMA 転é€</translation> @@ -8560,15 +9004,11 @@ p, li { white-space: pre-wrap; } <translation>PIO 転é€</translation> </message> <message> - <location filename="../src/VBoxVMInformationDlg.cpp" line="182"/> - <location filename="../src/VBoxVMInformationDlg.cpp" line="217"/> <location filename="../src/VBoxVMInformationDlg.cpp" line="244"/> <source>Data Read</source> <translation>データèªã¿è¾¼ã¿</translation> </message> <message> - <location filename="../src/VBoxVMInformationDlg.cpp" line="184"/> - <location filename="../src/VBoxVMInformationDlg.cpp" line="219"/> <location filename="../src/VBoxVMInformationDlg.cpp" line="246"/> <source>Data Written</source> <translation>データ書ãè¾¼ã¿</translation> @@ -8594,10 +9034,12 @@ p, li { white-space: pre-wrap; } <translation>ç”»é¢è§£åƒåº¦</translation> </message> <message> + <location filename="../src/VBoxVMInformationDlg.cpp" line="482"/> <source>CD/DVD-ROM Statistics</source> <translation type="obsolete">CD/DVD-ROM 統計</translation> </message> <message> + <location filename="../src/VBoxVMInformationDlg.cpp" line="482"/> <source>Network Adapter Statistics</source> <translation type="obsolete">ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ アダプタ統計</translation> </message> @@ -8630,10 +9072,12 @@ p, li { white-space: pre-wrap; } <translation>ゲストOSã®ã‚¿ã‚¤ãƒ—</translation> </message> <message> + <location filename="../src/VBoxVMInformationDlg.cpp" line="486"/> <source>Hard Disk Statistics</source> <translation type="obsolete">ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯çµ±è¨ˆ</translation> </message> <message> + <location filename="../src/VBoxVMInformationDlg.cpp" line="486"/> <source>No Hard Disks</source> <translation type="obsolete">ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ãªã—</translation> </message> @@ -8660,10 +9104,12 @@ p, li { white-space: pre-wrap; } <translation>ãƒã‚¹ãƒ†ãƒƒãƒ‰ãƒšãƒ¼ã‚¸ãƒ³ã‚°</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3171"/> <source>Enabled</source> <translation type="obsolete">有効</translation> </message> <message> + <location filename="../src/VBoxConsoleWnd.cpp" line="3171"/> <source>Disabled</source> <translation type="obsolete">無効</translation> </message> @@ -8697,16 +9143,19 @@ p, li { white-space: pre-wrap; } <context> <name>VBoxVMListBox</name> <message> + <location filename="../src/VBoxVMInformationDlg.cpp" line="577"/> <source><nobr>%1<br></nobr><nobr>%2 since %3</nobr><br><nobr>Session %4</nobr></source> <comment>VM tooltip (name, last state change, session state)</comment> <translation type="obsolete"><nobr>%1<br></nobr><nobr>%3ã‹ã‚‰ã®çŠ¶æ…‹ %2</nobr><br><nobr>セッション %4</nobr></translation> </message> <message> + <location filename="../src/VBoxVMInformationDlg.cpp" line="577"/> <source><nobr><b>%1</b><br></nobr><nobr>Inaccessible since %2</nobr></source> <comment>Inaccessible VM tooltip (name, last state change)</comment> <translation type="obsolete"><nobr><b>%1</b><br></nobr><nobr>%2ã‹ã‚‰ã®çŠ¶æ…‹ アクセスã§ãã¾ã›ã‚“</nobr></translation> </message> <message> + <location filename="../src/VBoxVMInformationDlg.cpp" line="577"/> <source>Inaccessible</source> <translation type="obsolete">アクセスã§ãã¾ã›ã‚“</translation> </message> @@ -8741,13 +9190,11 @@ p, li { white-space: pre-wrap; } <translation>é¸æŠžã—ãŸä»®æƒ³ãƒžã‚·ãƒ³ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã«åˆ‡ã‚Šæ›¿ãˆ</translation> </message> <message> - <location filename="../src/VBoxSelectorWnd.cpp" line="1907"/> <location filename="../src/VBoxSelectorWnd.cpp" line="1975"/> <source>S&tart</source> <translation>èµ·å‹•(&T)</translation> </message> <message> - <location filename="../src/VBoxSelectorWnd.cpp" line="1909"/> <location filename="../src/VBoxSelectorWnd.cpp" line="1977"/> <source>Start the selected virtual machine</source> <translation>é¸æŠžã—ãŸä»®æƒ³ãƒžã‚·ãƒ³ã‚’èµ·å‹•</translation> @@ -8806,10 +9253,12 @@ p, li { white-space: pre-wrap; } <translation>åå‰ã‚’ã¤ã‘ã¦VirtualBox ãƒã‚°ã‚’ä¿å˜</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="227"/> <source>Help</source> <translation type="obsolete">ヘルプ</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="227"/> <source>F1</source> <translation type="obsolete">F1</translation> </message> @@ -8827,118 +9276,147 @@ p, li { white-space: pre-wrap; } <context> <name>VBoxVMNetworkSettings</name> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>VBoxVMNetworkSettings</source> <translation type="obsolete">VBoxVMNetworkSettings</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>&Enable Network Adapter</source> <translation type="obsolete">ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ アダプタを有効化(&E)</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>&Attached to</source> <translation type="obsolete">割り当ã¦(&A)</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>&MAC Address</source> <translation type="obsolete">MACアドレス(&M)</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>&Generate</source> <translation type="obsolete">生æˆ(&G)</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>Generates a new random MAC address.</source> <translation type="obsolete">MACアドレスをランダムã«ç”Ÿæˆã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>Ca&ble Connected</source> <translation type="obsolete">接続(&B)</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>Host Interface Settings</source> <translation type="obsolete">ホスト インターフェースã®è¨å®š</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>&Interface Name</source> <translation type="obsolete">インターフェースå(&I)</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>&File Descriptor</source> <translation type="obsolete">ファイルè˜åˆ¥å(&F)</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>&Setup Application</source> <translation type="obsolete">è¨å®šã‚¢ãƒ—リケーション(&S)</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>Select</source> <translation type="obsolete">é¸æŠž</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>&Terminate Application</source> <translation type="obsolete">終了アプリケーション(&T)</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>Select TAP setup application</source> <translation type="obsolete">TAPè¨å®šã‚¢ãƒ—リケーションをé¸æŠž</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>Select TAP terminate application</source> <translation type="obsolete">TAP終了アプリケーションをé¸æŠž</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>When checked, plugs this virtual network adapter into the virtual machine.</source> <translation type="obsolete">仮想ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ アダプタを仮想マシンã«æŽ¥ç¶šã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>Controls how this virtual adapter is attached to the real network of the Host OS.</source> <translation type="obsolete">仮想アダプタをホストOSã®å®Ÿéš›ã®ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã«å‰²ã‚Šå½“ã¦ã‚‹æ–¹å¼ã‚’指定ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>Indicates whether the virtual network cable is plugged in on machine startup or not.</source> <translation type="obsolete">仮想マシンã®èµ·å‹•æ™‚ã«ä»®æƒ³ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚±ãƒ¼ãƒ–ルãŒæŽ¥ç¶šã•ã‚Œã‚‹ã‹ã©ã†ã‹ã‚’示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>Displays the name of the host interface selected for this adapter.</source> <translation type="obsolete">ã“ã®ã‚¢ãƒ€ãƒ—タ用ã«é¸æŠžã—ãŸãƒ›ã‚¹ãƒˆ インターフェースåを表示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>Displays the TAP interface name.</source> <translation type="obsolete">TAPインターフェースåを表示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>Displays the command executed to set up the TAP interface.</source> <translation type="obsolete">TAPインターフェースè¨å®šæ™‚ã«å®Ÿè¡Œã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’表示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>Selects the setup application.</source> <translation type="obsolete">è¨å®šã‚¢ãƒ—リケーションをé¸æŠžã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>Displays the command executed to terminate the TAP interface.</source> <translation type="obsolete">TAPインターフェース終了時ã«å®Ÿè¡Œã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’表示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>Selects the terminate application.</source> <translation type="obsolete">終了アプリケーションをé¸æŠžã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>Displays the MAC address of this adapter. It contains exactly 12 characters chosen from {0-9,A-F}. Note that the second character must be an even digit.</source> <translation type="obsolete">ã“ã®ã‚¢ãƒ€ãƒ—ã‚¿ã®MACアドレスを表示ã—ã¾ã™ã€‚MACアドレスã¯{0-9,A-F}ã‹ã‚‰é¸æŠžã•ã‚ŒãŸ12æ–‡å—ã§æ§‹æˆã•ã‚Œã¾ã™ã€‚注:2番目ã®æ–‡å—ã¯å¶æ•°ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>&Network Name</source> <translation type="obsolete">ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯å(&N)</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>Adapter &Type</source> <translation type="obsolete">アダプタ タイプ(&T)</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>Selects the type of the virtual network adapter. Depending on this value, VirtualBox will provide different network hardware to the virtual machine.</source> <translation type="obsolete">仮想ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚¢ãƒ€ãƒ—ã‚¿ã®ã‚¿ã‚¤ãƒ—ã‚’é¸æŠžã—ã¾ã™ã€‚ ã“ã®å€¤ã«ã‚ˆã‚Šã€VirtualBoxã¯ç•°ãªã£ãŸãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚’仮想マシンã«æä¾›ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>Displays the name of the internal network selected for this adapter.</source> <translation type="obsolete">ã“ã®ã‚¢ãƒ€ãƒ—タ用ã«é¸æŠžã—ãŸå†…部ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯åを表示ã—ã¾ã™ã€‚</translation> </message> @@ -8946,46 +9424,57 @@ p, li { white-space: pre-wrap; } <context> <name>VBoxVMParallelPortSettings</name> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>VBoxVMParallelPortSettings</source> <translation type="obsolete">VBoxVMParallelPortSettings</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>&Enable Parallel Port</source> <translation type="obsolete">パラレルãƒãƒ¼ãƒˆã‚’有効化(&E)</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>When checked, enables the given parallel port of the virtual machine.</source> <translation type="obsolete">仮想マシンã®ãƒ‘ラレルãƒãƒ¼ãƒˆã‚’有効ã«ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>Port &Number</source> <translation type="obsolete">ãƒãƒ¼ãƒˆç•ªå·(&N)</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>Displays the parallel port number. You can choose one of the standard parallel ports or select <b>User-defined</b> and specify port parameters manually.</source> <translation type="obsolete">パラレルãƒãƒ¼ãƒˆç•ªå·ã‚’表示ã—ã¾ã™ã€‚ 標準ã®ãƒ‘ラレルãƒãƒ¼ãƒˆã‹<b>[ユーザー定義]</b>ã‚’é¸æŠžã—ã€æ‰‹å‹•ã§ãƒãƒ¼ãƒˆãƒ‘ラメタを指定ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>&IRQ</source> <translation type="obsolete">IRQ(&I)</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>Displays the IRQ number of this parallel port. Valid values are integer numbers in range from <tt>0</tt> to <tt>255</tt>. Values greater than <tt>15</tt> may only be used if the <b>IO APIC</b> is enabled for this virtual machine.</source> <translation type="obsolete">ã“ã®ãƒ‘ラレルãƒãƒ¼ãƒˆã®IRQ番å·ã‚’表示ã—ã¾ã™ã€‚有効値ã¯<tt>0</tt>ã‹ã‚‰<tt>255</tt>ã¾ã§ã®ç¯„囲ã®æ•´æ•°ã§ã™ã€‚<tt>15</tt>以上ã®å€¤ã¯ã“ã®ä»®æƒ³ãƒžã‚·ãƒ³ã§<b>IO APIC</b>ãŒæœ‰åŠ¹ãªã¨ã使用ã•ã‚Œã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>I/O Po&rt</source> <translation type="obsolete">I/Oãƒãƒ¼ãƒˆ(&R)</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>Displays the base I/O port address of this parallel port. This should be a whole number between <tt>0</tt> and <tt>0xFFFF</tt>.</source> <translation type="obsolete">ã“ã®ãƒ‘ラレルãƒãƒ¼ãƒˆã®ãƒ™ãƒ¼ã‚¹I/Oãƒãƒ¼ãƒˆã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’表示ã—ã¾ã™ã€‚ 有効値ã¯<tt>0</tt>ã‹ã‚‰<tt>0xFFFF</tt>ã®ç¯„囲ã®æ•´æ•°ã§ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>Port &Path</source> <translation type="obsolete">ãƒãƒ¼ãƒˆ パス(&P)</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>Displays the host parallel device name.</source> <translation type="obsolete">ホストã®ãƒ‘ラレル デãƒã‚¤ã‚¹åを表示ã—ã¾ã™ã€‚</translation> </message> @@ -8993,62 +9482,77 @@ p, li { white-space: pre-wrap; } <context> <name>VBoxVMSerialPortSettings</name> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>VBoxVMSerialPortSettings</source> <translation type="obsolete">VBoxVMSerialPortSettings</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>&Enable Serial Port</source> <translation type="obsolete">シリアルãƒãƒ¼ãƒˆã‚’有効化(&E)</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>When checked, enables the given serial port of the virtual machine.</source> <translation type="obsolete">仮想マシンã®ã‚·ãƒªã‚¢ãƒ«ãƒãƒ¼ãƒˆã‚’有効ã«ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>Port &Number</source> <translation type="obsolete">ãƒãƒ¼ãƒˆç•ªå·(&N)</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>Displays the serial port number. You can choose one of the standard serial ports or select <b>User-defined</b> and specify port parameters manually.</source> <translation type="obsolete">シリアルãƒãƒ¼ãƒˆç•ªå·ã‚’表示ã—ã¾ã™ã€‚ 標準ã®ã‚·ãƒªã‚¢ãƒ«ãƒãƒ¼ãƒˆã‹<b>[ユーザー定義]</b>ã‚’é¸æŠžã—ã€æ‰‹å‹•ã§ãƒãƒ¼ãƒˆãƒ‘ラメタを指定ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>&IRQ</source> <translation type="obsolete">IRQ(&I)</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>Displays the IRQ number of this serial port. Valid values are integer numbers in range from <tt>0</tt> to <tt>255</tt>. Values greater than <tt>15</tt> may only be used if the <b>IO APIC</b> is enabled for this virtual machine.</source> <translation type="obsolete">ã“ã®ã‚·ãƒªã‚¢ãƒ«ãƒãƒ¼ãƒˆã®IRQ番å·ã‚’表示ã—ã¾ã™ã€‚有効値ã¯<tt>0</tt>ã‹ã‚‰<tt>255</tt>ã¾ã§ã®ç¯„囲ã®æ•´æ•°ã§ã™ã€‚<tt>15</tt>以上ã®å€¤ã¯ã“ã®ä»®æƒ³ãƒžã‚·ãƒ³ã§<b>IO APIC</b>ãŒæœ‰åŠ¹ãªã¨ã使用ã•ã‚Œã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>I/O Po&rt</source> <translation type="obsolete">I/Oãƒãƒ¼ãƒˆ(&R)</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>Displays the base I/O port address of this serial port. This should be a whole number between <tt>0</tt> and <tt>0xFFFF</tt>.</source> <translation type="obsolete">ã“ã®ã‚·ãƒªã‚¢ãƒ«ãƒãƒ¼ãƒˆã®ãƒ™ãƒ¼ã‚¹I/Oãƒãƒ¼ãƒˆã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’表示ã—ã¾ã™ã€‚ 有効値ã¯<tt>0</tt>ã‹ã‚‰<tt>0xFFFF</tt>ã®ç¯„囲ã®æ•´æ•°ã§ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>Port &Mode</source> <translation type="obsolete">ãƒãƒ¼ãƒˆ モード(&M)</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>Controls the working mode of this serial port. If you select <b>Disconnected</b>, the guest OS will detect the serial port but will not be able to operate it.</source> <translation type="obsolete">ã“ã®ã‚·ãƒªã‚¢ãƒ«ãƒãƒ¼ãƒˆã®å‹•ä½œãƒ¢ãƒ¼ãƒ‰ã‚’指定ã—ã¾ã™ã€‚ <b>[切æ–]</b>ã‚’é¸æŠžã™ã‚‹ã¨ã€ã‚²ã‚¹ãƒˆOSã¯ã‚·ãƒªã‚¢ãƒ«ãƒãƒ¼ãƒˆã‚’検出ã—ã¾ã™ãŒã€ãれをæ“作ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>&Create Pipe</source> <translation type="obsolete">パイプ作æˆ(&C)</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>If checked, the pipe specified in the <b>Port Path</b> field will be created by the virtual machine when it starts. Otherwise, the virtual machine will assume that the pipe exists and try to use it.</source> <translation type="obsolete">オンã®å ´åˆã€ä»®æƒ³ãƒžã‚·ãƒ³ã®èµ·å‹•æ™‚ã« <b>[ãƒãƒ¼ãƒˆ パス]</b>フィールドã§æŒ‡å®šã•ã‚ŒãŸãƒ‘イプãŒä½œæˆã•ã‚Œã¾ã™ã€‚ãã†ã§ãªã‘ã‚Œã°ä»®æƒ³ãƒžã‚·ãƒ³ã¯æ—¢å˜ã®ãƒ‘イプを使用ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>Port &Path</source> <translation type="obsolete">ãƒãƒ¼ãƒˆ パス(&P)</translation> </message> <message> + <location filename="../src/VBoxVMLogViewer.cpp" line="268"/> <source>Displays the path to the serial port's pipe on the host when the port is working in <b>Host Pipe</b> mode, or the host serial device name when the port is working in <b>Host Device</b> mode.</source> <translation type="obsolete">ãƒãƒ¼ãƒˆãŒ<b>[ホスト パイプ]</b>モードã§å‹•ä½œã—ã¦ã„ã‚‹ã¨ãã€ã‚·ãƒªã‚¢ãƒ«ãƒãƒ¼ãƒˆã®ãƒ‘イプã®ãƒ‘スを表示ã—ã¾ã™ã€‚ãƒãƒ¼ãƒˆãŒ<b>[ホスト デãƒã‚¤ã‚¹]</b>モードã§å‹•ä½œã—ã¦ã„ã‚‹ã¨ãã€ãƒ›ã‚¹ãƒˆ シリアル デãƒã‚¤ã‚¹åを表示ã—ã¾ã™ã€‚</translation> </message> @@ -9089,58 +9593,72 @@ p, li { white-space: pre-wrap; } <context> <name>VBoxVMSettingsCD</name> <message> + <location filename="../src/settings/vm/VBoxVMSettingsAudio.ui" line="110"/> <source>Host CD/DVD drive is not selected</source> <translation type="obsolete">ホスト CD/DVDドライブãŒé¸æŠžã•ã‚Œã¦ã„ãªã„</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsAudio.ui" line="110"/> <source>CD/DVD image file is not selected</source> <translation type="obsolete">CD/DVDイメージファイルãŒé¸æŠžã•ã‚Œã¦ã„ãªã„</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsAudio.ui" line="110"/> <source>When checked, mounts the specified media to the CD/DVD drive of the virtual machine. Note that the CD/DVD drive is always connected to the Secondary Master IDE controller of the machine.</source> <translation type="obsolete">指定ã—ãŸãƒ¡ãƒ‡ã‚£ã‚¢ã‚’仮想マシンã®CD/DVDドライブã«ãƒžã‚¦ãƒ³ãƒˆã—ã¾ã™ã€‚注:CD/DVDドライブã¯å¸¸ã«ä»®æƒ³ãƒžã‚·ãƒ³ã®ã‚»ã‚«ãƒ³ãƒ€ãƒªIDE コントãƒãƒ¼ãƒ©ã®ãƒžã‚¹ã‚¿ãƒ¼ã‚¹ãƒãƒƒãƒˆã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsAudio.ui" line="110"/> <source>&Mount CD/DVD Drive</source> <translation type="obsolete">CD/DVD ドライブã®ãƒžã‚¦ãƒ³ãƒˆ(&M)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsAudio.ui" line="110"/> <source>Mounts the specified CD/DVD drive to the virtual CD/DVD drive.</source> <translation type="obsolete">指定ã—ãŸCD/DVDドライブを仮想CD/DVDドライブã«ãƒžã‚¦ãƒ³ãƒˆã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsAudio.ui" line="110"/> <source>Host CD/DVD &Drive</source> <translation type="obsolete">ホスト CD/DVDドライブ(&D)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsAudio.ui" line="110"/> <source>Lists host CD/DVD drives available to mount to the virtual machine.</source> <translation type="obsolete">仮想マシンã«ãƒžã‚¦ãƒ³ãƒˆã™ã‚‹ãŸã‚ã«åˆ©ç”¨å¯èƒ½ãªãƒ›ã‚¹ãƒˆã®CD/DVDドライブをリスト表示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsAudio.ui" line="110"/> <source>When checked, allows the guest to send ATAPI commands directly to the host drive which makes it possible to use CD/DVD writers connected to the host inside the VM. Note that writing audio CD inside the VM is not yet supported.</source> <translation type="obsolete">ホストã«æŽ¥ç¶šã•ã‚ŒãŸCD/DVDライターを使用å¯èƒ½ã«ã™ã‚‹ãŸã‚ã€ã‚²ã‚¹ãƒˆOSã®ATAPIコマンドを直接ホスト ドライブã«é€ã‚Šã¾ã™ã€‚注:仮想マシンã‹ã‚‰éŸ³æ¥½CDã¸ã®æ›¸ãè¾¼ã¿ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“。</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsAudio.ui" line="110"/> <source>Enable &Passthrough</source> <translation type="obsolete">パススルーを有効化(&P)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsAudio.ui" line="110"/> <source>Mounts the specified CD/DVD image to the virtual CD/DVD drive.</source> <translation type="obsolete">指定ã—ãŸCD/DVDイメージを仮想CD/DVDドライブã«ãƒžã‚¦ãƒ³ãƒˆã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsAudio.ui" line="110"/> <source>&ISO Image File</source> <translation type="obsolete">ISO イメージファイル(&I)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsAudio.ui" line="110"/> <source>Displays the image file to mount to the virtual CD/DVD drive and allows to quickly select a different image.</source> <translation type="obsolete">仮想CD/DVDドライブã«ãƒžã‚¦ãƒ³ãƒˆã•ã‚ŒãŸã‚¤ãƒ¡ãƒ¼ã‚¸ãƒ•ã‚¡ã‚¤ãƒ«ã‚’表示ã—ã¾ã™ã€‚ã¾ãŸã€ä»–ã®ã‚¤ãƒ¡ãƒ¼ã‚¸ã‚’ç´ æ—©ãé¸æŠžã§ãã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsAudio.ui" line="110"/> <source>Invokes the Virtual Disk Manager to select a CD/DVD image to mount.</source> <translation type="obsolete">仮想ディスクマãƒãƒ¼ã‚¸ãƒ£ã‚’èµ·å‹•ã—ã€é¸æŠžã—ãŸCD/DVDイメージをマウントã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsAudio.ui" line="110"/> <source>Invokes the Virtual Media Manager to select a CD/DVD image to mount.</source> <translation type="obsolete">仮想メディアマãƒãƒ¼ã‚¸ãƒ£ã‚’èµ·å‹•ã—ã€é¸æŠžã—ãŸCD/DVDイメージをマウントã—ã¾ã™ã€‚</translation> </message> @@ -9153,7 +9671,6 @@ p, li { white-space: pre-wrap; } <translation>仮想マシンをフルスクリーンã¾ãŸã¯ã‚·ãƒ¼ãƒ レスモードã«åˆ‡ã‚Šæ›ãˆã‚‹ãŸã‚ã«å¿…è¦ãªå€¤(%1)より少ãªã„ビデオメモリãŒä»®æƒ³ãƒžã‚·ãƒ³ã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¾ã—ãŸã€‚</translation> </message> <message> - <location filename="../src/settings/vm/VBoxVMSettingsDisplay.cpp" line="242"/> <location filename="../src/settings/vm/VBoxVMSettingsDisplay.cpp" line="243"/> <source><qt>%1&nbsp;MB</qt></source> <translation><qt>%1&nbsp;MB</qt></translation> @@ -9169,7 +9686,6 @@ p, li { white-space: pre-wrap; } <translation>ビデオメモリ(&M):</translation> </message> <message> - <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="74"/> <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="134"/> <source>Controls the amount of video memory provided to the virtual machine.</source> <translation>仮想マシンã«å‰²ã‚Šå½“ã¦ã‚‹ãƒ“デオメモリã®ã‚µã‚¤ã‚ºã‚’指定ã—ã¾ã™ã€‚</translation> @@ -9215,6 +9731,7 @@ p, li { white-space: pre-wrap; } <translation>サーãƒãƒ¼ã®ãƒãƒ¼ãƒˆç•ªå·(&P):</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="277"/> <source>Displays the VRDP Server port number. You may specify <tt>0</tt> (zero) to reset the port to the default value.</source> <translation type="obsolete">VRDPサーãƒãƒ¼ã®ãƒãƒ¼ãƒˆç•ªå·ã‚’表示ã—ã¾ã™ã€‚ãƒãƒ¼ãƒˆã‚’デフォルト値ã«ãƒªã‚»ãƒƒãƒˆã™ã‚‹ã«ã¯<tt>0</tt>(ゼãƒ)を指定ã—ã¾ã™ã€‚</translation> </message> @@ -9262,563 +9779,701 @@ p, li { white-space: pre-wrap; } <context> <name>VBoxVMSettingsDlg</name> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Category</source> <translation type="obsolete">カテゴリ</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>[id]</source> <translation type="obsolete">[id]</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>[link]</source> <translation type="obsolete">[link]</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>[name]</source> <translation type="obsolete">[name]</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>VBoxVMSettingsDlg</source> <translation type="obsolete">VBoxVMSettingsDlg</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source><i>Select a settings category from the list on the left-hand side and move the mouse over a settings item to get more information<i>.</source> <translation type="obsolete"><i>å·¦å´ã®ãƒªã‚¹ãƒˆã‹ã‚‰è¨å®šã®ã‚«ãƒ†ã‚´ãƒªã‚’é¸æŠžã—ã€è¨å®šé …目をマウスオーãƒãƒ¼ã—ã¦è©³ç´°ãªæƒ…å ±ã‚’å‚ç…§ã—ã¦ãã ã•ã„<i>。</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source> General </source> <translation type="obsolete">一般</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source> Hard Disks </source> <translation type="obsolete">ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source> Floppy </source> <translation type="obsolete">フãƒãƒƒãƒ”ー</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source> CD/DVD-ROM </source> <translation type="obsolete">CD/DVD-ROM</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source> Audio </source> <translation type="obsolete">オーディオ</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source> Network </source> <translation type="obsolete">ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source> USB </source> <translation type="obsolete"> USB </translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source> Remote Display </source> <translation type="obsolete">リモートディスプレイ</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source> Shared Folders </source> <translation type="obsolete">共有フォルダ</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>&Identification</source> <translation type="obsolete">ID(&I)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>&Name</source> <translation type="obsolete">åå‰(&N)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Displays the name of the virtual machine.</source> <translation type="obsolete">仮想マシンã®åå‰ã‚’表示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>OS &Type</source> <translation type="obsolete">OSタイプ(&T)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Base &Memory Size</source> <translation type="obsolete">メインメモリã®ã‚µã‚¤ã‚º(&M)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Controls the amount of memory provided to the virtual machine. If you assign too much, the machine might not start.</source> <translation type="obsolete">仮想マシンã«å‰²ã‚Šå½“ã¦ã‚‹ãƒ¡ã‚¤ãƒ³ãƒ¡ãƒ¢ãƒªã®ã‚µã‚¤ã‚ºã‚’指定ã—ã¾ã™ã€‚割り当ã¦é‡ãŒå¤šã™ãŽã‚‹ã¨ä»®æƒ³ãƒžã‚·ãƒ³ã¯èµ·å‹•ã—ãªã„ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source><</source> <translation type="obsolete"><</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>=</source> <translation type="obsolete">=</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>></source> <translation type="obsolete">></translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>MB</source> <translation type="obsolete">MB</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>&Video Memory Size</source> <translation type="obsolete">ビデオメモリã®ã‚µã‚¤ã‚º(&V)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Controls the amount of video memory provided to the virtual machine.</source> <translation type="obsolete">仮想マシンã«å‰²ã‚Šå½“ã¦ã‚‹ãƒ“デオメモリã®ã‚µã‚¤ã‚ºã‚’指定ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>&Basic</source> <translation type="obsolete">基本(&B)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Select</source> <translation type="obsolete">é¸æŠž</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Selects the snapshot folder path.</source> <translation type="obsolete">スナップショットã®ä¿å˜å…ˆãƒ•ã‚©ãƒ«ãƒ€ã®ãƒ‘スをé¸æŠžã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Reset</source> <translation type="obsolete">リセット</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Extended Features</source> <translation type="obsolete">拡張機能</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Enable A&CPI</source> <translation type="obsolete">ACPIを有効化(&C)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Enable IO A&PIC</source> <translation type="obsolete">IO APICを有効化(&P)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Boo&t Order</source> <translation type="obsolete">èµ·å‹•é †åº(&T)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>&Advanced</source> <translation type="obsolete">高度(&A)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>&Description</source> <translation type="obsolete">コメント(&D)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>&Mount Floppy Drive</source> <translation type="obsolete">フãƒãƒƒãƒ”ードライブã®ãƒžã‚¦ãƒ³ãƒˆ(&M)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Host Floppy &Drive</source> <translation type="obsolete">ホスト フãƒãƒƒãƒ”ードライブ(&D)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Mounts the specified host Floppy drive to the virtual Floppy drive.</source> <translation type="obsolete">指定ã—ãŸãƒ›ã‚¹ãƒˆ フãƒãƒƒãƒ”ードライブを仮想フãƒãƒƒãƒ”ードライブã«ãƒžã‚¦ãƒ³ãƒˆã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>&Image File</source> <translation type="obsolete">イメージファイル(&I)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Mounts the specified Floppy image to the virtual Floppy drive.</source> <translation type="obsolete">指定ã—ãŸãƒ•ãƒãƒƒãƒ”ーイメージを仮想フãƒãƒƒãƒ”ードライブã«ãƒžã‚¦ãƒ³ãƒˆã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>&Mount CD/DVD Drive</source> <translation type="obsolete">CD/DVD ドライブã®ãƒžã‚¦ãƒ³ãƒˆ(&M)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Host CD/DVD &Drive</source> <translation type="obsolete">ホスト CD/DVDドライブ(&D)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Mounts the specified CD/DVD drive to the virtual CD/DVD drive.</source> <translation type="obsolete">指定ã—ãŸCD/DVDドライブを仮想CD/DVDドライブã«ãƒžã‚¦ãƒ³ãƒˆã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>&ISO Image File</source> <translation type="obsolete">ISO イメージファイル(&I)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Mounts the specified CD/DVD image to the virtual CD/DVD drive.</source> <translation type="obsolete">指定ã—ãŸCD/DVDイメージを仮想CD/DVDドライブã«ãƒžã‚¦ãƒ³ãƒˆã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>&Enable Audio</source> <translation type="obsolete">オーディオを有効化(&E)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Host Audio &Driver</source> <translation type="obsolete">ホスト オーディオ ドライãƒ(&D)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Enable &USB Controller</source> <translation type="obsolete">USB コントãƒãƒ¼ãƒ©ã‚’有効化(&U)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>USB Device &Filters</source> <translation type="obsolete">USB デãƒã‚¤ã‚¹ フィルタ(&F)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Ins</source> <translation type="obsolete">Ins</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Alt+Ins</source> <translation type="obsolete">Alt+Ins</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Del</source> <translation type="obsolete">Del</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Ctrl+Up</source> <translation type="obsolete">Ctrl+Up</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Ctrl+Down</source> <translation type="obsolete">Ctrl+Down</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>&Enable VRDP Server</source> <translation type="obsolete">VRDPサーãƒã‚’有効化(&E)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Defines the VRDP authentication method.</source> <translation type="obsolete">VRDPã®èªè¨¼æ–¹å¼ã‚’指定ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Specifies the timeout for guest authentication, in milliseconds.</source> <translation type="obsolete">ゲストèªè¨¼ã®ã‚¿ã‚¤ãƒ アウト値をミリ秒å˜ä½ã§æŒ‡å®šã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Help</source> <translation type="obsolete">ヘルプ</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>F1</source> <translation type="obsolete">F1</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Displays the dialog help.</source> <translation type="obsolete">ダイアãƒã‚°ã®ãƒ˜ãƒ«ãƒ—を表示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Invalid settings detected</source> <translation type="obsolete">無効ãªè¨å®šãŒè¦‹ã¤ã‹ã‚Šã¾ã—ãŸ</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>&OK</source> <translation type="obsolete">OK(&O)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Accepts (saves) changes and closes the dialog.</source> <translation type="obsolete">変更をä¿å˜ã—ã¦ãƒ€ã‚¤ã‚¢ãƒã‚°ã‚’é–‰ã˜ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Cancel</source> <translation type="obsolete">ã‚ャンセル</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Cancels changes and closes the dialog.</source> <translation type="obsolete">å¤‰æ›´ã‚’ç ´æ£„ã—ã¦ãƒ€ã‚¤ã‚¢ãƒã‚°ã‚’é–‰ã˜ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>When checked, mounts the specified media to the CD/DVD drive of the virtual machine. Note that the CD/DVD drive is always connected to the Secondary Master IDE controller of the machine.</source> <translation type="obsolete">指定ã—ãŸãƒ¡ãƒ‡ã‚£ã‚¢ã‚’仮想マシンã®CD/DVDドライブã«ãƒžã‚¦ãƒ³ãƒˆã—ã¾ã™ã€‚注:CD/DVDドライブã¯å¸¸ã«ä»®æƒ³ãƒžã‚·ãƒ³ã®ã‚»ã‚«ãƒ³ãƒ€ãƒªIDE コントãƒãƒ¼ãƒ©ã®ãƒžã‚¹ã‚¿ãƒ¼ã‚¹ãƒãƒƒãƒˆã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Displays the image file to mount to the virtual CD/DVD drive and allows to quickly select a different image.</source> <translation type="obsolete">仮想CD/DVDドライブã«ãƒžã‚¦ãƒ³ãƒˆã•ã‚ŒãŸã‚¤ãƒ¡ãƒ¼ã‚¸ãƒ•ã‚¡ã‚¤ãƒ«ã‚’表示ã—ã¾ã™ã€‚ã¾ãŸã€ä»–ã®ã‚¤ãƒ¡ãƒ¼ã‚¸ã‚’ç´ æ—©ãé¸æŠžã§ãã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>When checked, mounts the specified media to the Floppy drive of the virtual machine.</source> <translation type="obsolete">指定ã—ãŸãƒ¡ãƒ‡ã‚£ã‚¢ã‚’仮想マシンã®ãƒ•ãƒãƒƒãƒ”ードライブã«ãƒžã‚¦ãƒ³ãƒˆã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Displays the image file to mount to the virtual Floppy drive and allows to quickly select a different image.</source> <translation type="obsolete">仮想フãƒãƒƒãƒ”ードライブã«ãƒžã‚¦ãƒ³ãƒˆã•ã‚ŒãŸã‚¤ãƒ¡ãƒ¼ã‚¸ãƒ•ã‚¡ã‚¤ãƒ«ã‚’表示ã—ã¾ã™ã€‚ã¾ãŸã€ä»–ã®ã‚¤ãƒ¡ãƒ¼ã‚¸ã‚’ç´ æ—©ãé¸æŠžã§ãã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>When checked, a virtual PCI audio card will be plugged into the virtual machine and will communicate with the host audio system using the specified driver.</source> <translation type="obsolete">指定ã•ã‚ŒãŸãƒ‰ãƒ©ã‚¤ãƒã‚’使用ã—ã¦ãƒ›ã‚¹ãƒˆã®ã‚ªãƒ¼ãƒ‡ã‚£ã‚ªã‚«ãƒ¼ãƒ‰ã¨é€šä¿¡ã™ã‚‹ä»®æƒ³PCIオーディオカードを仮想マシンã«æŽ¥ç¶šã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>When checked, the VM will act as a Remote Desktop Protocol (RDP) server, allowing remote clients to connect and operate the VM (when it is running) using a standard RDP client.</source> <translation type="obsolete">仮想マシンã®ãƒªãƒ¢ãƒ¼ãƒˆãƒ‡ã‚¹ã‚¯ãƒˆãƒƒãƒ—プãƒãƒˆã‚³ãƒ«(RDP)サーãƒæ©Ÿèƒ½ã‚’有効ã«ã—ã¾ã™ã€‚リモートクライアントãŒæ¨™æº–çš„ãªRDPクライアントを使用ã—ã¦å®Ÿè¡Œä¸ã®ä»®æƒ³ãƒžã‚·ãƒ³ã«æŽ¥ç¶šã—ã€æ“作ã™ã‚‹ã“ã¨ã‚’å¯èƒ½ã«ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source><qt>%1&nbsp;MB</qt></source> <translation type="obsolete"><qt>%1&nbsp;MB</qt></translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source><not attached></source> <comment>hard disk</comment> <translation type="obsolete"><割り当ã¦ã‚‰ã‚Œã¦ã„ã¾ã›ã‚“></translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source> - Settings</source> <translation type="obsolete">- è¨å®š</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>New Filter %1</source> <comment>usb</comment> <translation type="obsolete">æ–°è¦ãƒ•ã‚£ãƒ«ã‚¿ %1</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>&Shared Clipboard</source> <translation type="obsolete">クリップボードã®å…±æœ‰(&S)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>S&napshot Folder</source> <translation type="obsolete">スナップショットã®ä¿å˜å…ˆ(&N)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Displays the operating system type that you plan to install into this virtual machine (called a guest operating system).</source> <translation type="obsolete">仮想マシンã§å®Ÿè¡Œã™ã‚‹OS(ゲストOSã¨å‘¼ã³ã¾ã™)ã®ã‚¿ã‚¤ãƒ—を表示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source><qt>When checked, the virtual machine will support the Advanced Configuration and Power Management Interface (ACPI). <b>Note:</b> don't disable this feature after having installed a Windows guest operating system!</qt></source> - <translation type="obsolete"><qt>仮想マシンã§ACPI(Advanced Configuration and Power Management Interface)サãƒãƒ¼ãƒˆã‚’有効ã«ã—ã¾ã™ã€‚<b>注:</b> Windows ゲストOSをインストールã—ãŸå¾Œã§æœ¬æ©Ÿèƒ½ã‚’無効ã«ã—ãªã„ã§ãã ã•ã„!</qt></translation> + <translation type="obsolete"><qt>仮想マシンã§ACPI(Advanced Configuration and Power Management Interface)サãƒãƒ¼ãƒˆã‚’有効ã«ã—ã¾ã™ã€‚<b>注:</b> Windows ゲストOSをインストールã—ãŸå¾Œã§æœ¬æ©Ÿèƒ½ã‚’無効ã«ã—ãªã„ã§ãã ã•ã„ï¼</qt></translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source><qt>When checked, the virtual machine will support the Input Output APIC (IO APIC), which may slightly decrease performance. <b>Note:</b> don't disable this feature after having installed a Windows guest operating system!</qt></source> - <translation type="obsolete"><qt>仮想マシンã§IO APIC(Input Output APIC)サãƒãƒ¼ãƒˆã‚’有効ã«ã—ã¾ã™ã€‚ã“ã‚Œã¯ä»®æƒ³ãƒžã‚·ãƒ³ã®æ€§èƒ½ã‚’ã‚ãšã‹ã«ä½Žä¸‹ã•ã›ã‚‹ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。<b>注:</b>Windows ゲストOSをインストールã—ãŸå¾Œã§æœ¬æ©Ÿèƒ½ã‚’無効ã«ã—ãªã„ã§ãã ã•ã„!</qt></translation> + <translation type="obsolete"><qt>仮想マシンã§IO APIC(Input Output APIC)サãƒãƒ¼ãƒˆã‚’有効ã«ã—ã¾ã™ã€‚ã“ã‚Œã¯ä»®æƒ³ãƒžã‚·ãƒ³ã®æ€§èƒ½ã‚’ã‚ãšã‹ã«ä½Žä¸‹ã•ã›ã‚‹ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。<b>注:</b>Windows ゲストOSをインストールã—ãŸå¾Œã§æœ¬æ©Ÿèƒ½ã‚’無効ã«ã—ãªã„ã§ãã ã•ã„ï¼</qt></translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Selects which clipboard data will be copied between the guest and the host OS. This feature requires Guest Additions to be installed in the guest OS.</source> <translation type="obsolete">ゲストOSã¨ãƒ›ã‚¹ãƒˆOSã®é–“ã§ã‚¯ãƒªãƒƒãƒ—ボードを共有ã™ã‚‹ãƒ¢ãƒ¼ãƒ‰ã‚’定義ã—ã¾ã™ã€‚注:本機能ã®åˆ©ç”¨ã«ã¯ã‚²ã‚¹ãƒˆOSã« Guest Additions ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ãŒå¿…è¦ã§ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Displays the path where snapshots of this virtual machine will be stored. Be aware that snapshots can take quite a lot of disk space.</source> <translation type="obsolete">ã“ã®ä»®æƒ³ãƒžã‚·ãƒ³ã®ã‚¹ãƒŠãƒƒãƒ—ショットã®ä¿å˜å…ˆãƒ‘スを表示ã—ã¾ã™ã€‚注:スナップショットã¯å¤šãã®ãƒ‡ã‚£ã‚¹ã‚¯å®¹é‡ã‚’消費ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Resets the snapshot folder path to the default value. The actual default path will be displayed after accepting the changes and opening this dialog again.</source> <translation type="obsolete">スナップショットã®ä¿å˜å…ˆãƒ•ã‚©ãƒ«ãƒ€ã®ãƒ‘スをデフォルト値ã«æˆ»ã—ã¾ã™ã€‚変更後ã€å†åº¦ã“ã®ãƒ€ã‚¤ã‚¢ãƒã‚°ã‚’é–‹ãã¨ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã®ãƒ‘スãŒè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Displays the description of the virtual machine. The description field is useful for commenting on configuration details of the installed guest OS.</source> <translation type="obsolete">仮想マシンã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’表示ã—ã¾ã™ã€‚コメントã¯ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•ã‚ŒãŸã‚²ã‚¹ãƒˆOSã®è©³ç´°ãªæ§‹æˆã«é–¢ã™ã‚‹æ³¨é‡ˆã¨ã—ã¦å½¹ç«‹ã¡ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Lists host Floppy drives available to mount to the virtual machine.</source> <translation type="obsolete">仮想マシンã«ãƒžã‚¦ãƒ³ãƒˆã™ã‚‹ãŸã‚ã«åˆ©ç”¨å¯èƒ½ãªãƒ›ã‚¹ãƒˆ フãƒãƒƒãƒ”ードライブをリスト表示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Invokes the Virtual Disk Manager to select a Floppy image to mount.</source> <translation type="obsolete">仮想ディスクマãƒãƒ¼ã‚¸ãƒ£ã‚’èµ·å‹•ã—ã€é¸æŠžã—ãŸãƒ•ãƒãƒƒãƒ”ーイメージをマウントã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Lists host CD/DVD drives available to mount to the virtual machine.</source> <translation type="obsolete">仮想マシンã«ãƒžã‚¦ãƒ³ãƒˆã™ã‚‹ãŸã‚ã«åˆ©ç”¨å¯èƒ½ãªãƒ›ã‚¹ãƒˆã®CD/DVDドライブをリスト表示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Invokes the Virtual Disk Manager to select a CD/DVD image to mount.</source> <translation type="obsolete">仮想ディスクマãƒãƒ¼ã‚¸ãƒ£ã‚’èµ·å‹•ã—ã€é¸æŠžã—ãŸCD/DVDイメージをマウントã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source><qt>Controls the audio output driver. The <b>Null Audio Driver</b> makes the guest see an audio card, however every access to it will be ignored.</qt></source> <translation type="obsolete"><qt>オーディオ出力ドライãƒã‚’é¸æŠžã—ã¾ã™ã€‚<b>Null Audio Driver</b>ã¯ã‚²ã‚¹ãƒˆOSã‹ã‚‰ã‚ªãƒ¼ãƒ‡ã‚£ã‚ªã‚«ãƒ¼ãƒ‰ã¨ã—ã¦èªè˜ã•ã‚Œã¾ã™ãŒã€ãƒ‡ãƒã‚¤ã‚¹ã¸ã®ã™ã¹ã¦ã®ã‚¢ã‚¯ã‚»ã‚¹ã¯ç„¡è¦–ã•ã‚Œã¾ã™ã€‚</qt></translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>When checked, enables the virtual USB controller of this machine.</source> <translation type="obsolete">ã“ã®ä»®æƒ³ãƒžã‚·ãƒ³ã®ä»®æƒ³USB コントãƒãƒ¼ãƒ©ã‚’有効ã«ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Adapter %1</source> <comment>network</comment> <translation type="obsolete">アダプタ %1</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Host &Interfaces</source> <translation type="obsolete">ホスト インターフェース(&I)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Lists all available host interfaces.</source> <translation type="obsolete">利用å¯èƒ½ãªãƒ›ã‚¹ãƒˆ インターフェースをリスト表示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Adds a new host interface.</source> <translation type="obsolete">æ–°è¦ãƒ›ã‚¹ãƒˆ ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ãƒ¼ã‚¹ã‚’è¿½åŠ ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Removes the selected host interface.</source> <translation type="obsolete">é¸æŠžã—ãŸãƒ›ã‚¹ãƒˆ インターフェースを除去ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source><No suitable interfaces></source> <translation type="obsolete"><é©åˆ‡ãªã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ãƒ¼ã‚¹ãŒã‚ã‚Šã¾ã›ã‚“></translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Add</source> <translation type="obsolete">è¿½åŠ </translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Remove</source> <translation type="obsolete">除去</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>VirtualBox Host Interface %1</source> <translation type="obsolete">VirtualBox ホスト インターフェース %1</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source><p>Do you want to remove the selected host network interface <nobr><b>%1</b>?</nobr></p><p><b>Note:</b> This interface may be in use by one or more network adapters of this or another VM. After it is removed, these adapters will no longer work until you correct their settings by either choosing a different interface name or a different adapter attachment type.</p></source> - <translation type="obsolete"><p>é¸æŠžã—ãŸãƒ›ã‚¹ãƒˆ インターフェース<nobr><b>"%1"</b>を除去ã—ã¾ã™ã‹?</nobr></p><p><b>注:</b> ã“ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ãƒ¼ã‚¹ã¯è¤‡æ•°ã®ä»®æƒ³ãƒžã‚·ãƒ³ã®1ã¤ä»¥ä¸Šã®ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ アタプタã§ä½¿ç”¨ä¸ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。除去ã™ã‚‹ã¨ã€ä»–ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ãƒ¼ã‚¹åã‚’é¸ã¶ã‹ã€åˆ¥ã®å‰²ã‚Šå½“ã¦æ–¹æ³•ã‚’æ£ã—ãè¨å®šã™ã‚‹ã¾ã§ãれらã®ã‚¢ãƒ€ãƒ—ã‚¿ã¯å‹•ä½œã—ã¾ã›ã‚“。</p></translation> + <translation type="obsolete"><p>é¸æŠžã—ãŸãƒ›ã‚¹ãƒˆ インターフェース<nobr><b>"%1"</b>を除去ã—ã¾ã™ã‹ï¼Ÿ</nobr></p><p><b>注:</b> ã“ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ãƒ¼ã‚¹ã¯è¤‡æ•°ã®ä»®æƒ³ãƒžã‚·ãƒ³ã®1ã¤ä»¥ä¸Šã®ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ アタプタã§ä½¿ç”¨ä¸ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。除去ã™ã‚‹ã¨ã€ä»–ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ãƒ¼ã‚¹åã‚’é¸ã¶ã‹ã€åˆ¥ã®å‰²ã‚Šå½“ã¦æ–¹æ³•ã‚’æ£ã—ãè¨å®šã™ã‚‹ã¾ã§ãれらã®ã‚¢ãƒ€ãƒ—ã‚¿ã¯å‹•ä½œã—ã¾ã›ã‚“。</p></translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source> Serial Ports </source> <translation type="obsolete">シリアルãƒãƒ¼ãƒˆ</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>#serialPorts</source> <translation type="obsolete">#serialPorts</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Enable &VT-x/AMD-V</source> <translation type="obsolete">VT-x/AMD-Vを有効化(&V)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>When checked, the virtual machine will try to make use of the host CPU's hardware virtualization extensions such as Intel VT-x and AMD-V. The grayed checkbox state means that this setting is determined by the value of the global setting.</source> <translation type="obsolete">仮想マシンã¯Intel VT-x/AMD-Vã®ã‚ˆã†ãªãƒ›ã‚¹ãƒˆCPUã®ä»®æƒ³åŒ–支æ´æ©Ÿèƒ½ã‚’使用ã—ã¾ã™ã€‚ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ãŒã‚°ãƒ¬ã‚¤ã®ã¨ãã¯ã‚°ãƒãƒ¼ãƒãƒ«è¨å®šã®æŒ‡å®šå€¤ãŒä½¿ç”¨ã•ã‚Œã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Other &Settings</source> <translation type="obsolete">ãã®ä»–ã®è¨å®š(&S)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>&Remember Media Mounted at Runtime</source> <translation type="obsolete">実行ä¸ã«ãƒžã‚¦ãƒ³ãƒˆã—ãŸãƒ¡ãƒ‡ã‚£ã‚¢ã‚’記録(&R)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>If checked, any change to mounted CD/DVD or Floppy media performed during machine execution will be saved in the settings file in order to preserve the configuration of mounted media between runs.</source> <translation type="obsolete">仮想マシン実行ä¸ã«å¤‰æ›´ã—ãŸCD/DVDã¾ãŸã¯ãƒ•ãƒãƒƒãƒ”ーメディアã®æ§‹æˆã‚’è¨å®šãƒ•ã‚¡ã‚¤ãƒ«ã«ä¿å˜ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>O&ther</source> <translation type="obsolete">ãã®ä»–(&T)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>&Enable Passthrough</source> <translation type="obsolete">パススルーを有効化(&E)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>When checked, allows the guest to send ATAPI commands directly to the host drive which makes it possible to use CD/DVD writers connected to the host inside the VM. Note that writing audio CD inside the VM is not yet supported.</source> <translation type="obsolete">ホストã«æŽ¥ç¶šã•ã‚ŒãŸCD/DVDライターを使用å¯èƒ½ã«ã™ã‚‹ãŸã‚ã€ã‚²ã‚¹ãƒˆOSã®ATAPIコマンドを直接ホスト ドライブã«é€ã‚Šã¾ã™ã€‚注:仮想マシンã‹ã‚‰éŸ³æ¥½CDã¸ã®æ›¸ãè¾¼ã¿ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“。</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>&Server Port </source> <translation type="obsolete">サーãƒãƒ¼ã®ãƒãƒ¼ãƒˆç•ªå·</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Authentication &Method </source> <translation type="obsolete">èªè¨¼æ–¹æ³•(&M)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Authentication &Timeout </source> <translation type="obsolete">èªè¨¼ã‚¿ã‚¤ãƒ アウト値(&T)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source><qt>Displays the VRDP Server port number. You may specify <tt>0</tt> (zero) to reset the port to the default value.</qt></source> <translation type="obsolete"><qt>VRDPサームãƒãƒ¼ãƒˆç•ªå·ã‚’表示ã—ã¾ã™ã€‚ãƒãƒ¼ãƒˆã‚’デフォルト値ã«ãƒªã‚»ãƒƒãƒˆã™ã‚‹ã«ã¯<tt>0</tt>(ゼãƒ)を指定ã—ã¾ã™ã€‚</qt></translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>CD/DVD image file is not selected</source> <translation type="obsolete">CD/DVDイメージファイルãŒé¸æŠžã•ã‚Œã¦ã„ãªã„</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Floppy image file is not selected</source> <translation type="obsolete">フãƒãƒƒãƒ”ーイメージファイルãŒé¸æŠžã•ã‚Œã¦ã„ãªã„</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Incorrect host network interface is selected</source> <translation type="obsolete">é¸æŠžã—ãŸãƒ›ã‚¹ãƒˆ ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ インターフェースãŒä¸æ£</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Duplicate port number selected </source> <translation type="obsolete">é¸æŠžã—ãŸãƒãƒ¼ãƒˆç•ªå·ã¯ã™ã§ã«ä½¿ç”¨ã•ã‚Œã¦ã„ã‚‹</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Duplicate port path entered </source> <translation type="obsolete">指定ã—ãŸãƒãƒ¼ãƒˆ パスã¯ã™ã§ã«ä½¿ç”¨ã•ã‚Œã¦ã„ã‚‹</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>%1 on the <b>%2</b> page.</source> <translation type="obsolete"><b>%2</b>ページã®%1。</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Port %1</source> <comment>serial ports</comment> <translation type="obsolete">ãƒãƒ¼ãƒˆ %1</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>00</source> <translation type="obsolete">00</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>01</source> <translation type="obsolete">01</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>02</source> <translation type="obsolete">02</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>03</source> <translation type="obsolete">03</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>04</source> <translation type="obsolete">04</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>05</source> <translation type="obsolete">05</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>08</source> <translation type="obsolete">08</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>10</source> <translation type="obsolete">10</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>09</source> <translation type="obsolete">09</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>06</source> <translation type="obsolete">06</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source> Parallel Ports </source> <translation type="obsolete">パラレルãƒãƒ¼ãƒˆ</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>07</source> <translation type="obsolete">07</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>#parallelPorts</source> <translation type="obsolete">#parallelPorts</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Enable PA&E/NX</source> <translation type="obsolete">PAE/NXを有効化(&E)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source><qt>When checked, the Physical Address Extension @@ -9830,30 +10485,37 @@ makes the guest see an audio card, however every access to it will be ignored.&l <translation type="obsolete"><qt>ホストCPUã®ç‰©ç†ã‚¢ãƒ‰ãƒ¬ã‚¹æ‹¡å¼µæ©Ÿèƒ½(PAE)を仮想マシンã§æœ‰åŠ¹ã«ã—ã¾ã™ã€‚</qt></translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>&IDE Controller Type</source> <translation type="obsolete">IDE コントãƒãƒ¼ãƒ© タイプ(&I)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Defines the type of the virtual IDE controller. Depending on this value, VirtualBox will provide different virtual IDE hardware devices to the guest OS.</source> <translation type="obsolete">仮想IDE コントãƒãƒ¼ãƒ©ã®ã‚¿ã‚¤ãƒ—を定義ã—ã¾ã™ã€‚ã“ã®å€¤ã«ã‚ˆã‚Šã€VirtualBoxã¯ç•°ãªã£ãŸä»®æƒ³IDEãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ デãƒã‚¤ã‚¹ã‚’ゲストOSã«æä¾›ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Audio &Controller</source> <translation type="obsolete">オーディオ コントãƒãƒ¼ãƒ©(&C)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Selects the type of the virtual sound card. Depending on this value, VirtualBox will provide different audio hardware to the virtual machine.</source> <translation type="obsolete">仮想サウンドカードã®ã‚¿ã‚¤ãƒ—ã‚’é¸æŠžã—ã¾ã™ã€‚ ã“ã®å€¤ã«ã‚ˆã‚Šã€VirtualBoxã¯ç•°ãªã£ãŸã‚ªãƒ¼ãƒ‡ã‚£ã‚ª ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚’仮想マシンã«æä¾›ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Enable USB &2.0 Controller</source> <translation type="obsolete">USB 2.0 コントãƒãƒ¼ãƒ©ã‚’有効化(&2)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>When checked, enables the virtual USB EHCI controller of this machine. The USB EHCI controller provides USB 2.0 support.</source> <translation type="obsolete">仮想マシンã®ä»®æƒ³USB EHCI コントãƒãƒ¼ãƒ©ã‚’有効ã«ã—ã¾ã™ã€‚USB EHCI コントãƒãƒ¼ãƒ©ã¯USB 2.0 サãƒãƒ¼ãƒˆã‚’æä¾›ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source> <qt>Lists all USB filters of this machine. The checkbox to the @@ -9868,14 +10530,17 @@ makes the guest see an audio card, however every access to it will be ignored.&l USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニューã‹å³å´ã®ãƒœã‚¿ãƒ³ã‚’使用ã—ã¦ãã ã•ã„。</qt></translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Add Empty Filter</source> <translation type="obsolete">空ã®ãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ </translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>&Add Empty Filter</source> <translation type="obsolete">空ã®ãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã™ã‚‹(&A)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source> <qt>Adds a new USB filter with all fields initially set to empty strings. Note that such a filter will match any attached USB @@ -9884,14 +10549,17 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation type="obsolete"><qt>ã™ã¹ã¦ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ãŒç©ºã®æ–°è¦USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã—ã¾ã™ã€‚注:ã“ã®ãƒ•ã‚£ãƒ«ã‚¿ã¯ã™ã¹ã¦ã®æŽ¥ç¶šã•ã‚ŒãŸUSB デãƒã‚¤ã‚¹ã«é©åˆã—ã¾ã™ã€‚</qt></translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Add Filter From Device</source> <translation type="obsolete">デãƒã‚¤ã‚¹ã‹ã‚‰ãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ </translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>A&dd Filter From Device</source> <translation type="obsolete">デãƒã‚¤ã‚¹ã‹ã‚‰ãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã™ã‚‹(&D)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source><qt>Adds a new USB filter with all fields set to the values of the selected USB device attached to the host PC.</qt> @@ -9899,61 +10567,74 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation type="obsolete"><qt>é¸æŠžã—ãŸãƒ›ã‚¹ãƒˆPCã®USB デãƒã‚¤ã‚¹ã®å€¤ã‚’ã™ã¹ã¦ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã«è¨å®šã—ãŸæ–°è¦USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã—ã¾ã™ã€‚</qt></translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Remove Filter</source> <translation type="obsolete">フィルタを除去</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>&Remove Filter</source> <translation type="obsolete">フィルタを除去ã™ã‚‹(&R)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source> <qt>Removes the highlighted USB filter.</qt> </source> <translation type="obsolete"><qt>ãƒã‚¤ãƒ©ã‚¤ãƒˆè¡¨ç¤ºã•ã‚ŒãŸUSBフィルタを除去ã—ã¾ã™ã€‚</qt></translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Move Filter Up</source> <translation type="obsolete">フィルタを上ã«ç§»å‹•</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>&Move Filter Up</source> <translation type="obsolete">フィルタを上ã«ç§»å‹•ã™ã‚‹(&M)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source> <qt>Moves the highlighted USB filter up.</qt> </source> <translation type="obsolete"><qt>ãƒã‚¤ãƒ©ã‚¤ãƒˆè¡¨ç¤ºã•ã‚ŒãŸUSBフィルタを上ã«ç§»å‹•ã—ã¾ã™ã€‚</qt></translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Move Filter Down</source> <translation type="obsolete">フィルタを下ã«ç§»å‹•</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>M&ove Filter Down</source> <translation type="obsolete">フィルタを下ã«ç§»å‹•(&O)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source> <qt>Moves the highlighted USB filter down.</qt> </source> <translation type="obsolete"><qt>ãƒã‚¤ãƒ©ã‚¤ãƒˆè¡¨ç¤ºã•ã‚ŒãŸUSBフィルタを下ã«ç§»å‹•ã—ã¾ã™ã€‚</qt></translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Internal network name is not set</source> <translation type="obsolete">内部ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯åãŒè¨å®šã•ã‚Œã¦ã„ãªã„</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Port path not specified </source> <translation type="obsolete">ãƒãƒ¼ãƒˆ パスãŒæŒ‡å®šã•ã‚Œã¦ã„ãªã„</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>Port %1</source> <comment>parallel ports</comment> <translation type="obsolete">ãƒãƒ¼ãƒˆ %1</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsDisplay.ui" line="290"/> <source>USBActionGroup</source> <translation type="obsolete">USBActionGroup</translation> </message> @@ -10018,6 +10699,7 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation>共有フォルダ</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialogSpecific.cpp" line="481"/> <source>Remote Display</source> <translation type="obsolete">リモートディスプレイ</translation> </message> @@ -10027,6 +10709,7 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation>%1 - %2</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialogSpecific.cpp" line="499"/> <source>On the <b>%1</b> page, %2</source> <translation type="obsolete"><b>%1</b>ページã®%2</translation> </message> @@ -10059,50 +10742,62 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<context> <name>VBoxVMSettingsFD</name> <message> + <location filename="../src/settings/VBoxSettingsDialogSpecific.cpp" line="553"/> <source>Host floppy drive is not selected</source> <translation type="obsolete">ホスト フãƒãƒƒãƒ”ードライブãŒé¸æŠžã•ã‚Œã¦ã„ãªã„</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialogSpecific.cpp" line="553"/> <source>Floppy image file is not selected</source> <translation type="obsolete">フãƒãƒƒãƒ”ーイメージファイルãŒé¸æŠžã•ã‚Œã¦ã„ãªã„</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialogSpecific.cpp" line="553"/> <source>When checked, mounts the specified media to the Floppy drive of the virtual machine.</source> <translation type="obsolete">指定ã—ãŸãƒ¡ãƒ‡ã‚£ã‚¢ã‚’仮想マシンã®ãƒ•ãƒãƒƒãƒ”ードライブã«ãƒžã‚¦ãƒ³ãƒˆã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialogSpecific.cpp" line="553"/> <source>&Mount Floppy Drive</source> <translation type="obsolete">フãƒãƒƒãƒ”ードライブã®ãƒžã‚¦ãƒ³ãƒˆ(&M)</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialogSpecific.cpp" line="553"/> <source>Mounts the specified host Floppy drive to the virtual Floppy drive.</source> <translation type="obsolete">指定ã—ãŸãƒ›ã‚¹ãƒˆ フãƒãƒƒãƒ”ードライブを仮想フãƒãƒƒãƒ”ードライブã«ãƒžã‚¦ãƒ³ãƒˆã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialogSpecific.cpp" line="553"/> <source>Host Floppy &Drive</source> <translation type="obsolete">ホスト フãƒãƒƒãƒ”ードライブ(&D)</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialogSpecific.cpp" line="553"/> <source>Lists host Floppy drives available to mount to the virtual machine.</source> <translation type="obsolete">仮想マシンã«ãƒžã‚¦ãƒ³ãƒˆã™ã‚‹ãŸã‚ã«åˆ©ç”¨å¯èƒ½ãªãƒ›ã‚¹ãƒˆ フãƒãƒƒãƒ”ードライブをリスト表示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialogSpecific.cpp" line="553"/> <source>Mounts the specified Floppy image to the virtual Floppy drive.</source> <translation type="obsolete">指定ã—ãŸãƒ•ãƒãƒƒãƒ”ーイメージを仮想フãƒãƒƒãƒ”ードライブã«ãƒžã‚¦ãƒ³ãƒˆã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialogSpecific.cpp" line="553"/> <source>&Image File</source> <translation type="obsolete">イメージファイル(&I)</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialogSpecific.cpp" line="553"/> <source>Displays the image file to mount to the virtual Floppy drive and allows to quickly select a different image.</source> <translation type="obsolete">仮想フãƒãƒƒãƒ”ードライブã«ãƒžã‚¦ãƒ³ãƒˆã•ã‚ŒãŸã‚¤ãƒ¡ãƒ¼ã‚¸ãƒ•ã‚¡ã‚¤ãƒ«ã‚’表示ã—ã¾ã™ã€‚ã¾ãŸã€ä»–ã®ã‚¤ãƒ¡ãƒ¼ã‚¸ã‚’ç´ æ—©ãé¸æŠžã§ãã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialogSpecific.cpp" line="553"/> <source>Invokes the Virtual Disk Manager to select a Floppy image to mount.</source> <translation type="obsolete">仮想ディスクマãƒãƒ¼ã‚¸ãƒ£ã‚’èµ·å‹•ã—ã€é¸æŠžã—ãŸãƒ•ãƒãƒƒãƒ”ーイメージをマウントã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/VBoxSettingsDialogSpecific.cpp" line="553"/> <source>Invokes the Virtual Media Manager to select a Floppy image to mount.</source> <translation type="obsolete">仮想メディアマãƒãƒ¼ã‚¸ãƒ£ã‚’èµ·å‹•ã—ã€é¸æŠžã—ãŸãƒ•ãƒãƒƒãƒ”ーイメージをマウントã—ã¾ã™ã€‚</translation> </message> @@ -10110,6 +10805,7 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<context> <name>VBoxVMSettingsGeneral</name> <message> + <location filename="../src/settings/VBoxSettingsDialogSpecific.cpp" line="553"/> <source><qt>%1&nbsp;MB</qt></source> <translation type="obsolete"><qt>%1&nbsp;MB</qt></translation> </message> @@ -10124,6 +10820,7 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation>基本(&B)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="37"/> <source>Identification</source> <translation type="obsolete">詳細</translation> </message> @@ -10138,38 +10835,47 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation>仮想マシンã®åå‰ã‚’表示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="65"/> <source>OS &Type:</source> <translation type="obsolete">OSタイプ(&T):</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="65"/> <source>Displays the operating system type that you plan to install into this virtual machine (called a guest operating system).</source> <translation type="obsolete">仮想マシンã§å®Ÿè¡Œã™ã‚‹OS(ゲストOSã¨å‘¼ã³ã¾ã™)ã®ã‚¿ã‚¤ãƒ—を表示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="65"/> <source>Base &Memory Size</source> <translation type="obsolete">メインメモリã®ã‚µã‚¤ã‚º(&M)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="65"/> <source>Controls the amount of memory provided to the virtual machine. If you assign too much, the machine might not start.</source> <translation type="obsolete">仮想マシンã«å‰²ã‚Šå½“ã¦ã‚‹ãƒ¡ã‚¤ãƒ³ãƒ¡ãƒ¢ãƒªã®ã‚µã‚¤ã‚ºã‚’指定ã—ã¾ã™ã€‚割り当ã¦é‡ãŒå¤šã™ãŽã‚‹ã¨ä»®æƒ³ãƒžã‚·ãƒ³ã¯èµ·å‹•ã—ãªã„ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="65"/> <source><</source> <translation type="obsolete"><</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="65"/> <source>></source> <translation type="obsolete">></translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="65"/> <source>MB</source> <translation type="obsolete">MB</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="65"/> <source>&Video Memory Size</source> <translation type="obsolete">ビデオメモリã®ã‚µã‚¤ã‚º(&V)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="65"/> <source>Controls the amount of video memory provided to the virtual machine.</source> <translation type="obsolete">仮想マシンã«å‰²ã‚Šå½“ã¦ã‚‹ãƒ“デオメモリã®ã‚µã‚¤ã‚ºã‚’指定ã—ã¾ã™ã€‚</translation> </message> @@ -10179,66 +10885,82 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation>高度(&A)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="92"/> <source>Boo&t Order:</source> <translation type="obsolete">èµ·å‹•é †åº(&T):</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="92"/> <source>Defines the boot device order. Use the checkboxes on the left to enable or disable individual boot devices. Move items up and down to change the device order.</source> <translation type="obsolete">起動デãƒã‚¤ã‚¹ã®å„ªå…ˆé †åºã‚’指定ã—ã¾ã™ã€‚ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ã‚’使ã„å„デãƒã‚¤ã‚¹ã‚’有効ã¾ãŸã¯ç„¡åŠ¹ã«ã§ãã¾ã™ã€‚é …ç›®ã‚’ä¸Šã¾ãŸã¯ä¸‹ã«ç§»å‹•ã—ã¦ãƒ‡ãƒã‚¤ã‚¹ã®é †åºã‚’変更ã—ã¦ãã ã•ã„。</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="92"/> <source>[device]</source> <translation type="obsolete">[デãƒã‚¤ã‚¹]</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="92"/> <source>Move Up (Ctrl-Up)</source> <translation type="obsolete">上ã«ç§»å‹•(Ctrl-Up)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="92"/> <source>Moves the selected boot device up.</source> <translation type="obsolete">é¸æŠžã—ãŸèµ·å‹•ãƒ‡ãƒã‚¤ã‚¹ã‚’上ã«ç§»å‹•ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="92"/> <source>Move Down (Ctrl-Down)</source> <translation type="obsolete">下ã«ç§»å‹•(Ctrl-Down)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="92"/> <source>Moves the selected boot device down.</source> <translation type="obsolete">é¸æŠžã—ãŸèµ·å‹•ãƒ‡ãƒã‚¤ã‚¹ã‚’下ã«ç§»å‹•ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="92"/> <source>Extended Features:</source> <translation type="obsolete">拡張機能:</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="92"/> <source>When checked, the virtual machine will support the Advanced Configuration and Power Management Interface (ACPI). <b>Note:</b> don't disable this feature after having installed a Windows guest operating system!</source> - <translation type="obsolete">仮想マシンã§ACPI(Advanced Configuration and Power Management Interface)サãƒãƒ¼ãƒˆã‚’有効ã«ã—ã¾ã™ã€‚<b>注:</b> Windows ゲストOSをインストールã—ãŸå¾Œã§æœ¬æ©Ÿèƒ½ã‚’無効ã«ã—ãªã„ã§ãã ã•ã„!</translation> + <translation type="obsolete">仮想マシンã§ACPI(Advanced Configuration and Power Management Interface)サãƒãƒ¼ãƒˆã‚’有効ã«ã—ã¾ã™ã€‚<b>注:</b> Windows ゲストOSをインストールã—ãŸå¾Œã§æœ¬æ©Ÿèƒ½ã‚’無効ã«ã—ãªã„ã§ãã ã•ã„ï¼</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="92"/> <source>Enable A&CPI</source> <translation type="obsolete">ACPIを有効化(&C)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="92"/> <source>When checked, the virtual machine will support the Input Output APIC (IO APIC), which may slightly decrease performance. <b>Note:</b> don't disable this feature after having installed a Windows guest operating system!</source> - <translation type="obsolete">仮想マシンã§IO APIC(Input Output APIC)サãƒãƒ¼ãƒˆã‚’有効ã«ã—ã¾ã™ã€‚ã“ã‚Œã¯ä»®æƒ³ãƒžã‚·ãƒ³ã®æ€§èƒ½ã‚’ã‚ãšã‹ã«ä½Žä¸‹ã•ã›ã‚‹ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。<b>注:</b>Windows ゲストOSをインストールã—ãŸå¾Œã§æœ¬æ©Ÿèƒ½ã‚’無効ã«ã—ãªã„ã§ãã ã•ã„!</translation> + <translation type="obsolete">仮想マシンã§IO APIC(Input Output APIC)サãƒãƒ¼ãƒˆã‚’有効ã«ã—ã¾ã™ã€‚ã“ã‚Œã¯ä»®æƒ³ãƒžã‚·ãƒ³ã®æ€§èƒ½ã‚’ã‚ãšã‹ã«ä½Žä¸‹ã•ã›ã‚‹ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。<b>注:</b>Windows ゲストOSをインストールã—ãŸå¾Œã§æœ¬æ©Ÿèƒ½ã‚’無効ã«ã—ãªã„ã§ãã ã•ã„ï¼</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="92"/> <source>Enable IO A&PIC</source> <translation type="obsolete">IO APICを有効化(&P)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="92"/> <source>When checked, the virtual machine will try to make use of the host CPU's hardware virtualization extensions such as Intel VT-x and AMD-V.</source> <translation type="obsolete">仮想マシンã§ãƒ›ã‚¹ãƒˆCPUã®ä»®æƒ³åŒ–支æ´æ©Ÿèƒ½(Intel VT-xã¾ãŸã¯AMD-V)を有効ã«ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="92"/> <source>Enable &VT-x/AMD-V</source> <translation type="obsolete">VT-x/AMD-Vを有効化(&V)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="92"/> <source>When checked, the Physical Address Extension (PAE) feature of the host CPU will be exposed to the virtual machine.</source> <translation type="obsolete">仮想マシンã§ãƒ›ã‚¹ãƒˆCPUã®PAE(物ç†ã‚¢ãƒ‰ãƒ¬ã‚¹æ‹¡å¼µæ©Ÿèƒ½)を有効ã«ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="92"/> <source>Enable PA&E/NX</source> <translation type="obsolete">PAE/NXを有効化(&E)</translation> </message> @@ -10253,10 +10975,12 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation>ゲストOSã¨ãƒ›ã‚¹ãƒˆOSã®é–“ã§ã‚¯ãƒªãƒƒãƒ—ボードを共有ã™ã‚‹ãƒ¢ãƒ¼ãƒ‰ã‚’定義ã—ã¾ã™ã€‚注:本機能ã®åˆ©ç”¨ã«ã¯ã‚²ã‚¹ãƒˆOSã« Guest Additions ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ãŒå¿…è¦ã§ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="149"/> <source>Defines the type of the virtual IDE controller. Depending on this value, VirtualBox will provide different virtual IDE hardware devices to the guest OS.</source> <translation type="obsolete">仮想IDE コントãƒãƒ¼ãƒ©ã®ã‚¿ã‚¤ãƒ—を定義ã—ã¾ã™ã€‚ã“ã®å€¤ã«ã‚ˆã‚Šã€VirtualBoxã¯ç•°ãªã£ãŸä»®æƒ³IDEãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ デãƒã‚¤ã‚¹ã‚’ゲストOSã«æä¾›ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="149"/> <source>&IDE Controller Type:</source> <translation type="obsolete">IDE コントãƒãƒ¼ãƒ© タイプ(&I):</translation> </message> @@ -10276,6 +11000,7 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation>仮想マシンã®èª¬æ˜Žã‚’表示ã—ã¾ã™ã€‚ã“れインストールã•ã‚ŒãŸã‚²ã‚¹ãƒˆOSã®è©³ç´°ãªæ§‹æˆã«é–¢ã™ã‚‹æ³¨é‡ˆã¨ã—ã¦å½¹ç«‹ã¡ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="272"/> <source>&Other</source> <translation type="obsolete">ãã®ä»–(&O)</translation> </message> @@ -10285,50 +11010,62 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation>仮想マシン実行ä¸ã«å¤‰æ›´ã—ãŸCD/DVDã¾ãŸã¯ãƒ•ãƒãƒƒãƒ”ーメディアã®æ§‹æˆã‚’è¨å®šãƒ•ã‚¡ã‚¤ãƒ«ã«ä¿å˜ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="185"/> <source>&Remember Mounted Media</source> <translation type="obsolete">マウントã—ãŸãƒ¡ãƒ‡ã‚£ã‚¢ã‚’記録(&R)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="185"/> <source>Runtime:</source> <translation type="obsolete">実行時:</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="185"/> <source>you have assigned more than <b>75%</b> of your computer's memory (<b>%1</b>) to the virtual machine. Not enough memory is left for your host operating system. Please select a smaller amount.</source> <translation type="obsolete">実メモリ(<b>%1</b)ã®<b>75%</b>を超ãˆã‚‹ãƒ¡ãƒ¢ãƒªãŒä»®æƒ³ãƒžã‚·ãƒ³ã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¾ã—ãŸã€‚ ホストOSãŒå分ãªãƒ¡ãƒ¢ãƒªã‚’使用ã§ãã¾ã›ã‚“。割り当ã¦ãƒ¡ãƒ¢ãƒªã‚’減らã—ã¦ãã ã•ã„。</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="185"/> <source>you have assigned more than <b>50%</b> of your computer's memory (<b>%1</b>) to the virtual machine. There might not be enough memory left for your host operating system. Continue at your own risk.</source> <translation type="obsolete">実メモリ(<b>%1</b)ã®<b>50%</b>を超ãˆã‚‹ãƒ¡ãƒ¢ãƒªãŒä»®æƒ³ãƒžã‚·ãƒ³ã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¾ã—ãŸã€‚ ホストOSãŒå分ãªãƒ¡ãƒ¢ãƒªã‚’使用ã§ãã¾ã›ã‚“。割り当ã¦ãƒ¡ãƒ¢ãƒªã‚’減らã—ã¦ãã ã•ã„。</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="185"/> <source>you have assigned less than <b>%1</b> of video memory which is the minimum amount required to switch the virtual machine to fullscreen or seamless mode.</source> <translation type="obsolete">仮想マシンをフルスクリーンã¾ãŸã¯ã‚·ãƒ¼ãƒ レスモードã«åˆ‡ã‚Šæ›ãˆã‚‹ãŸã‚ã«å¿…è¦ãªå€¤(%1)より少ãªã„ビデオメモリãŒä»®æƒ³ãƒžã‚·ãƒ³ã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¾ã—ãŸã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="185"/> <source>When checked, the virtual machine will be given access to the 3D graphics capabilities available on the host.</source> <translation type="obsolete">仮想マシンã¯ãƒ›ã‚¹ãƒˆãƒžã‚·ãƒ³ã®3Dグラフィックス機能を利用ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="185"/> <source>Enable &3D Acceleration</source> <translation type="obsolete">3Dアクセラレーションを有効化(&3)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="185"/> <source>you have assigned more than <b>%1%</b> of your computer's memory (<b>%2</b>) to the virtual machine. Not enough memory is left for your host operating system. Please select a smaller amount.</source> <translation type="obsolete">実メモリ(<b>%2</b)ã®<b>%1%</b>を超ãˆã‚‹ãƒ¡ãƒ¢ãƒªãŒä»®æƒ³ãƒžã‚·ãƒ³ã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¾ã—ãŸã€‚ ホストOSãŒå分ãªãƒ¡ãƒ¢ãƒªã‚’使用ã§ãã¾ã›ã‚“。割り当ã¦ãƒ¡ãƒ¢ãƒªã‚’減らã—ã¦ãã ã•ã„。</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="185"/> <source>you have assigned more than <b>%1%</b> of your computer's memory (<b>%2</b>) to the virtual machine. There might not be enough memory left for your host operating system. Continue at your own risk.</source> <translation type="obsolete">実メモリ(<b>%2</b)ã®<b>%1%</b>を超ãˆã‚‹ãƒ¡ãƒ¢ãƒªãŒä»®æƒ³ãƒžã‚·ãƒ³ã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¾ã—ãŸã€‚ ホストOSã«å分ãªãƒ¡ãƒ¢ãƒªãŒæ®‹ã•ã‚Œã¦ã„ã¾ã›ã‚“。自己ã®è²¬ä»»ã§ç¶šè¡Œã—ã¦ãã ã•ã„。</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="185"/> <source>there is a 64 bits guest OS type assigned for this VM, which requires virtualization feature (VT-x/AMD-V) to be enabled too, else your guest will fail to detect a 64 bits CPU and will not be able to boot, so this feature will be enabled automatically when you'll accept VM Settings by pressing OK button.</source> <translation type="obsolete">64ビット ゲストOSタイプを指定ã—ãŸä»®æƒ³ãƒžã‚·ãƒ³ã¯ã€ä»®æƒ³åŒ–支æ´æ©Ÿèƒ½(VT-x/AMD-V)を有効化ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ãã†ã§ãªã‘ã‚Œã°ã‚²ã‚¹ãƒˆOSã¯64ビットCPUを検出ã§ããšã€èµ·å‹•ã§ãã¾ã›ã‚“。ã“ã®ãŸã‚[OK]ボタンを押ã—ã¦ä»®æƒ³ãƒžã‚·ãƒ³è¨å®šã‚’ä¿å˜ã™ã‚‹ã¨ãã€ä»®æƒ³åŒ–支æ´æ©Ÿèƒ½ã‚’自動的ã«æœ‰åŠ¹åŒ–ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="185"/> <source>When checked, the virtual machine will try to make use of the nested paging extension of Intel VT-x and AMD-V.</source> <translation type="obsolete">仮想マシンã§ãƒ›ã‚¹ãƒˆCPUã®ãƒã‚¹ãƒ†ãƒƒãƒ‰ãƒšãƒ¼ã‚¸ãƒ³ã‚°(Intel VT-xã¾ãŸã¯AMD-V)を有効ã«ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="185"/> <source>Enable Nested Pa&ging</source> <translation type="obsolete">ãƒã‚¹ãƒ†ãƒƒãƒ‰ãƒšãƒ¼ã‚¸ãƒ³ã‚°ã‚’有効化(&G)</translation> </message> @@ -10371,54 +11108,67 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<context> <name>VBoxVMSettingsHD</name> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="236"/> <source>No hard disk is selected for <i>%1</i></source> <translation type="obsolete"> <i>%1</i>ã®ãŸã‚ã®ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ãŒé¸æŠžã•ã‚Œã¦ã„ãªã„</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="236"/> <source><i>%1</i> uses the hard disk that is already attached to <i>%2</i></source> <translation type="obsolete"><i>%1</i>ã¯ã™ã§ã«<i>%2</i>ã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ã‚‹</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="236"/> <source>&Add Attachment</source> <translation type="obsolete">割り当ã¦ã‚’è¿½åŠ ã™ã‚‹(&A)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="236"/> <source>&Remove Attachment</source> <translation type="obsolete">割り当ã¦ã‚’除去ã™ã‚‹(&R)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="236"/> <source>&Select Hard Disk</source> <translation type="obsolete">ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚’é¸æŠžã™ã‚‹(&S)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="236"/> <source>Adds a new hard disk attachment.</source> <translation type="obsolete">æ–°è¦ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã®å‰²ã‚Šå½“ã¦ã‚’è¿½åŠ ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="236"/> <source>Removes the highlighted hard disk attachment.</source> <translation type="obsolete">ãƒã‚¤ãƒ©ã‚¤ãƒˆè¡¨ç¤ºã•ã‚ŒãŸãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã®å‰²ã‚Šå½“ã¦ã‚’除去ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="236"/> <source>Invokes the Virtual Disk Manager to select a hard disk to attach to the currently highlighted slot.</source> <translation type="obsolete">仮想ディスクマãƒãƒ¼ã‚¸ãƒ£ã‚’èµ·å‹•ã—ã€ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚’ç¾åœ¨ãƒã‚¤ãƒ©ã‚¤ãƒˆè¡¨ç¤ºã•ã‚ŒãŸã‚¹ãƒãƒƒãƒˆã«å‰²ã‚Šå½“ã¦ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="236"/> <source>When checked, enables the virtual SATA controller of this machine. Note that you cannot attach hard disks to SATA ports when the virtual SATA controller is disabled.</source> <translation type="obsolete">仮想SATA コントãƒãƒ¼ãƒ©ã‚’有効ã«ã—ã¾ã™ã€‚注:仮想SATA コントãƒãƒ¼ãƒ©ãŒç„¡åŠ¹ãªå ´åˆã€SATAãƒãƒ¼ãƒˆã«ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚’割り当ã¦ã§ãã¾ã›ã‚“。</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="236"/> <source>&Enable SATA Controller</source> <translation type="obsolete">SATA コントãƒãƒ¼ãƒ©ã‚’有効化(&E)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="236"/> <source>&Attachments</source> <translation type="obsolete">割り当ã¦(&A)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="236"/> <source>Lists all hard disks attached to this machine. Use a mouse click or the <tt>Space</tt> key on the highlighted item to activate the drop-down list and choose the desired value. Use the context menu or buttons to the right to add or remove hard disk attachments.</source> <translation type="obsolete">ã“ã®ä»®æƒ³ãƒžã‚·ãƒ³ã«å‰²ã‚Šå½“ã¦ã‚‰ã‚ŒãŸã™ã¹ã¦ã®ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚’リスト表示ã—ã¾ã™ã€‚ãƒã‚¤ãƒ©ã‚¤ãƒˆè¡¨ç¤ºã•ã‚ŒãŸé …目をマウスクリックã™ã‚‹ã‹ã€<tt>[スペース]</tt>ã‚ーを使用ã—ã¦ã€ãƒ‰ãƒãƒƒãƒ—ダウンリストã‹ã‚‰ä½¿ç”¨ã™ã‚‹ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚’é¸æŠžã—ã¦ãã ã•ã„。コンテã‚ストメニューã‹å³ã®ãƒœã‚¿ãƒ³ã‚’使ã£ã¦ã€ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã®å‰²ã‚Šå½“ã¦ã®è¿½åŠ ã¾ãŸã¯é™¤åŽ»ãŒè¡Œãˆã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsGeneral.ui" line="236"/> <source>Invokes the Virtual Media Manager to select a hard disk to attach to the currently highlighted slot.</source> <translation type="obsolete">仮想メディアマãƒãƒ¼ã‚¸ãƒ£ã‚’èµ·å‹•ã—ã€ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚’ç¾åœ¨ãƒã‚¤ãƒ©ã‚¤ãƒˆè¡¨ç¤ºã•ã‚ŒãŸã‚¹ãƒãƒƒãƒˆã«å‰²ã‚Šå½“ã¦ã¾ã™ã€‚</translation> </message> @@ -10428,22 +11178,27 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation>実際ã®ãƒ™ãƒ¼ã‚¹ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã®ä»£ã‚ã‚Šã«ã‚¹ãƒãƒƒãƒˆã«å‰²ã‚Šå½“ã¦ã‚‰ã‚ŒãŸå·®åˆ†ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚’表示ã—ã¾ã™(間接的ãªå‰²ã‚Šå½“ã¦æ™‚)。 高度ãªãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯è¨å®šãŒå¿…è¦ãªå ´åˆã®ã¿ã€ã‚ªãƒ³ã«ã—ã¦ãã ã•ã„。</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsHD.ui" line="325"/> <source>&Show Differencing Hard Disks</source> <translation type="obsolete">差分ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚’表示(&S)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsHD.ui" line="325"/> <source>When checked, enables an additional virtual controller (either SATA or SCSI) of this machine.</source> <translation type="obsolete">ã“ã®ä»®æƒ³ãƒžã‚·ãƒ³ã®è¿½åŠ ã®ä»®æƒ³ã‚³ãƒ³ãƒˆãƒãƒ¼ãƒ©(SATAã¾ãŸã¯SCSI)を有効ã«ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsHD.ui" line="325"/> <source>&Enable Additional Controller</source> <translation type="obsolete">è¿½åŠ ã®ã‚³ãƒ³ãƒˆãƒãƒ¼ãƒ©ã‚’有効化(&E)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsHD.ui" line="325"/> <source>IDE &Controller Type</source> <translation type="obsolete">IDE コントãƒãƒ¼ãƒ© タイプ(&C)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsHD.ui" line="325"/> <source>Defines the type of the virtual IDE controller. Depending on this value, VirtualBox will provide different virtual IDE hardware devices to the guest OS.</source> <translation type="obsolete">仮想IDE コントãƒãƒ¼ãƒ©ã®ã‚¿ã‚¤ãƒ—を定義ã—ã¾ã™ã€‚ã“ã®å€¤ã«ã‚ˆã‚Šã€VirtualBoxã¯ç•°ãªã£ãŸä»®æƒ³IDEãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ デãƒã‚¤ã‚¹ã‚’ゲストOSã«æä¾›ã—ã¾ã™ã€‚</translation> </message> @@ -10558,7 +11313,6 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation>ãƒã‚¤ãƒ©ã‚¤ãƒˆè¡¨ç¤ºã•ã‚ŒãŸã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ ツリーã®å‰²ã‚Šå½“ã¦ã‚’除去ã—ã¾ã™ã€‚</translation> </message> <message> - <location filename="../src/settings/vm/VBoxVMSettingsHD.cpp" line="1901"/> <location filename="../src/wizards/newvm/VBoxNewVMWzd.cpp" line="357"/> <source>IDE Controller</source> <translation>IDE コントãƒãƒ¼ãƒ©</translation> @@ -10574,7 +11328,6 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation>SCSI コントãƒãƒ¼ãƒ©</translation> </message> <message> - <location filename="../src/settings/vm/VBoxVMSettingsHD.cpp" line="1916"/> <location filename="../src/wizards/newvm/VBoxNewVMWzd.cpp" line="358"/> <source>Floppy Controller</source> <translation>フãƒãƒƒãƒ”ー コントãƒãƒ¼ãƒ©</translation> @@ -10605,7 +11358,6 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation>ã“ã®ä»®æƒ³ãƒžã‚·ãƒ³ã®ã™ã¹ã¦ã®ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ コントãƒãƒ¼ãƒ©ã¨ä»®æƒ³ã‚¤ãƒ¡ãƒ¼ã‚¸ã€å‰²ã‚Šå½“ã¦ã‚‰ã‚ŒãŸãƒ›ã‚¹ãƒˆ デãƒã‚¤ã‚¹ã‚’å«ã¿ã¾ã™ã€‚</translation> </message> <message> - <location filename="../src/settings/vm/VBoxVMSettingsHD.ui" line="119"/> <location filename="../src/settings/vm/VBoxVMSettingsHD.ui" line="351"/> <source>Information</source> <translation>æƒ…å ±</translation> @@ -10616,7 +11368,6 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation>ストレージ ツリーã¯ç•°ãªã£ãŸç¨®é¡žã®è¤‡æ•°ã®ã‚³ãƒ³ãƒˆãƒãƒ¼ãƒ©ã‚’å«ã‚€ã“ã¨ãŒã§ãã¾ã™ã€‚ã“ã®ä»®æƒ³ãƒžã‚·ãƒ³ã«ã¯ã‚³ãƒ³ãƒˆãƒãƒ¼ãƒ©ãŒã‚ã‚Šã¾ã›ã‚“。</translation> </message> <message> - <location filename="../src/settings/vm/VBoxVMSettingsHD.ui" line="165"/> <location filename="../src/settings/vm/VBoxVMSettingsHD.ui" line="247"/> <source>Attributes</source> <translation>属性</translation> @@ -10715,10 +11466,12 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<context> <name>VBoxVMSettingsNetwork</name> <message> + <location filename="../src/settings/vm/VBoxVMSettingsHD.ui" line="458"/> <source>Select TAP setup application</source> <translation type="obsolete">TAPè¨å®šã‚¢ãƒ—リケーションをé¸æŠž</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsHD.ui" line="458"/> <source>Select TAP terminate application</source> <translation type="obsolete">TAP終了アプリケーションをé¸æŠž</translation> </message> @@ -10733,6 +11486,7 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation>ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ アダプタを有効化(&E)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="36"/> <source>A&dapter Type:</source> <translation type="obsolete">アダプタ タイプ(&D):</translation> </message> @@ -10752,14 +11506,17 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation>仮想アダプタをホストOSã®å®Ÿéš›ã®ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã«å‰²ã‚Šå½“ã¦ã‚‹æ–¹å¼ã‚’指定ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="87"/> <source>&Network Name:</source> <translation type="obsolete">ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯å(&N):</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="87"/> <source>Displays the name of the internal network selected for this adapter.</source> <translation type="obsolete">ã“ã®ã‚¢ãƒ€ãƒ—タ用ã«é¸æŠžã—ãŸå†…部ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯åを表示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="87"/> <source>&MAC Address:</source> <translation type="obsolete">MACアドレス(&M):</translation> </message> @@ -10774,6 +11531,7 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation>MACアドレスをランダムã«ç”Ÿæˆã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="202"/> <source>&Generate</source> <translation type="obsolete">生æˆ(&G)</translation> </message> @@ -10783,84 +11541,103 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation>仮想マシンã®èµ·å‹•æ™‚ã«ä»®æƒ³ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚±ãƒ¼ãƒ–ルãŒæŽ¥ç¶šã•ã‚Œã‚‹ã‹ã©ã†ã‹ã‚’示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="216"/> <source>Ca&ble Connected</source> <translation type="obsolete">接続(&B)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="216"/> <source>&Interface Name:</source> <translation type="obsolete">インターフェースå(&I):</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="216"/> <source>Displays the TAP interface name.</source> <translation type="obsolete">TAPインターフェースåを表示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="216"/> <source>&Setup Application:</source> <translation type="obsolete">è¨å®šã‚¢ãƒ—リケーション(&S):</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="216"/> <source>Displays the command executed to set up the TAP interface.</source> <translation type="obsolete">TAPインターフェースè¨å®šæ™‚ã«å®Ÿè¡Œã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’表示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="216"/> <source>Selects the setup application.</source> <translation type="obsolete">è¨å®šã‚¢ãƒ—リケーションをé¸æŠžã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="216"/> <source>&Terminate Application:</source> <translation type="obsolete">終了アプリケーション(&T):</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="216"/> <source>Displays the command executed to terminate the TAP interface.</source> <translation type="obsolete">TAPインターフェース終了時ã«å®Ÿè¡Œã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’表示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="216"/> <source>Selects the terminate application.</source> <translation type="obsolete">終了アプリケーションをé¸æŠžã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="216"/> <source>Host Interface Settings</source> <translation type="obsolete">ホスト インターフェースã®è¨å®š</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="216"/> <source>Adapter</source> <comment>network</comment> <translation type="obsolete">アダプタ</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="216"/> <source>Not selected</source> <comment>adapter</comment> <translation type="obsolete">未é¸æŠž</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="216"/> <source>Network</source> <comment>internal</comment> <translation type="obsolete">ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="216"/> <source>Not selected</source> <comment>network</comment> <translation type="obsolete">未é¸æŠž</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="216"/> <source>MAC Address</source> <translation type="obsolete">MACアドレス</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="216"/> <source>Not selected</source> <comment>address</comment> <translation type="obsolete">未é¸æŠž</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="216"/> <source>Cable</source> <translation type="obsolete">ケーブル</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="216"/> <source>Connected</source> <comment>cable</comment> <translation type="obsolete">接続</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="216"/> <source>Not connected</source> <comment>cable</comment> <translation type="obsolete">未接続</translation> @@ -10871,6 +11648,7 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation>アダプタ タイプ(&T):</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="150"/> <source>Open extended settings dialog for current attachment type.</source> <translation type="obsolete">ç¾åœ¨ã®å‰²ã‚Šå½“ã¦ã‚¿ã‚¤ãƒ—ã®ãŸã‚ã®æ‹¡å¼µè¨å®šãƒ€ã‚¤ã‚¢ãƒã‚°ã‚’é–‹ãã¾ã™ã€‚</translation> </message> @@ -10890,13 +11668,13 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation>ホストオンリー ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ アダプタãŒæœªé¸æŠž</translation> </message> <message> - <location filename="../src/settings/vm/VBoxVMSettingsNetwork.cpp" line="349"/> <location filename="../src/settings/vm/VBoxVMSettingsNetwork.cpp" line="351"/> <source>Not selected</source> <comment>network adapter name</comment> <translation>未é¸æŠž</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.cpp" line="351"/> <source>Open additional options dialog for current attachment type.</source> <translation type="obsolete">ç¾åœ¨ã®å‰²ã‚Šå½“ã¦ã‚¿ã‚¤ãƒ—ã®ãŸã‚ã®è¿½åŠ オプションダイアãƒã‚°ã‚’é–‹ãã¾ã™ã€‚</translation> </message> @@ -10934,90 +11712,112 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<context> <name>VBoxVMSettingsNetworkDetails</name> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="219"/> <source>no bridged network adapter is selected</source> <translation type="obsolete">ブリッジ ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ アダプタãŒæœªé¸æŠž</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="219"/> <source>no internal network name is specified</source> <translation type="obsolete">内部ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯åãŒæœªæŒ‡å®š</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="219"/> <source>no host-only adapter is selected</source> <translation type="obsolete">ホストオンリー アダプタãŒæœªé¸æŠž</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="219"/> <source>Basic Details</source> <translation type="obsolete">è©³ç´°æƒ…å ±</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="219"/> <source>Bridged Network Details</source> <translation type="obsolete">ブリッジ ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯è©³ç´°</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="219"/> <source>Internal Network Details</source> <translation type="obsolete">内部ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯è©³ç´°</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="219"/> <source>Host-only Network Details</source> <translation type="obsolete">ホストオンリー ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯è©³ç´°</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="219"/> <source>Not selected</source> <translation type="obsolete">未é¸æŠž</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="219"/> <source>Host Settings</source> <translation type="obsolete">ホストè¨å®š</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="219"/> <source>&Bridged Network Adapter:</source> <translation type="obsolete">ブリッジ ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ アダプタ(&B):</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="219"/> <source>Displays the name of the host network adapter selected for bridged networking.</source> <translation type="obsolete">ブリッジ ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ç”¨ã«é¸æŠžã—ãŸãƒ›ã‚¹ãƒˆ ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚¢ãƒ€ãƒ—ã‚¿åを表示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="219"/> <source>Internal &Network:</source> <translation type="obsolete">内部ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯(&N):</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="219"/> <source>Displays the name of the internal network selected for this adapter.</source> <translation type="obsolete">ã“ã®ã‚¢ãƒ€ãƒ—タ用ã«é¸æŠžã—ãŸå†…部ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯åを表示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="219"/> <source>Host-only &Network Adapter:</source> <translation type="obsolete">ホストオンリー ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚¢ãƒ€ãƒ—ã‚¿(&N):</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="219"/> <source>Displays the name of the VirtualBox network adapter selected for host-only networking.</source> <translation type="obsolete">ホストオンリー ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ç”¨ã«é¸æŠžã—ãŸVirtualBox ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚¢ãƒ€ãƒ—ã‚¿åを表示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="219"/> <source>Guest Settings</source> <translation type="obsolete">ゲストè¨å®š</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="219"/> <source>Guest &MAC Address:</source> <translation type="obsolete">ゲストMACアドレス:</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="219"/> <source>Displays the MAC address of this adapter. It contains exactly 12 characters chosen from {0-9,A-F}. Note that the second character must be an even digit.</source> <translation type="obsolete">ã“ã®ã‚¢ãƒ€ãƒ—ã‚¿ã®MACアドレスを表示ã—ã¾ã™ã€‚MACアドレスã¯{0-9,A-F}ã‹ã‚‰é¸æŠžã•ã‚ŒãŸ12æ–‡å—ã§æ§‹æˆã•ã‚Œã¾ã™ã€‚注:2番目ã®æ–‡å—ã¯å¶æ•°ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="219"/> <source>Generates a new random MAC address.</source> <translation type="obsolete">MACアドレスをランダムã«ç”Ÿæˆã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="219"/> <source>&Cable connected</source> <translation type="obsolete">ケーブル接続(&C)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="219"/> <source>Indicates whether the virtual network cable is plugged in on machine startup or not.</source> <translation type="obsolete">仮想マシンã®èµ·å‹•æ™‚ã«ä»®æƒ³ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚±ãƒ¼ãƒ–ルを接続ã™ã‚‹ã‹ã©ã†ã‹ã‚’示ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="219"/> <source>Additional Options</source> <translation type="obsolete">è¿½åŠ ã‚ªãƒ—ã‚·ãƒ§ãƒ³</translation> </message> @@ -11025,10 +11825,12 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<context> <name>VBoxVMSettingsNetworkPage</name> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="219"/> <source>No host network interface is selected</source> <translation type="obsolete">ホスト インターフェースãŒé¸æŠžã•ã‚Œã¦ã„ãªã„</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsNetwork.ui" line="219"/> <source>Internal network name is not set</source> <translation type="obsolete">内部ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯åãŒè¨å®šã•ã‚Œã¦ã„ãªã„</translation> </message> @@ -11067,6 +11869,7 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation>IRQ(&I):</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsParallel.ui" line="97"/> <source>Displays the IRQ number of this parallel port. Valid values are integer numbers in range from <tt>0</tt> to <tt>255</tt>. Values greater than <tt>15</tt> may only be used if the <b>IO APIC</b> is enabled for this virtual machine.</source> <translation type="obsolete">ã“ã®ãƒ‘ラレルãƒãƒ¼ãƒˆã®IRQ番å·ã‚’表示ã—ã¾ã™ã€‚有効値ã¯<tt>0</tt>ã‹ã‚‰<tt>255</tt>ã¾ã§ã®ç¯„囲ã®æ•´æ•°ã§ã™ã€‚<tt>15</tt>以上ã®å€¤ã¯ã“ã®ä»®æƒ³ãƒžã‚·ãƒ³ã§<b>IO APIC</b>ãŒæœ‰åŠ¹ãªã¨ã使用ã•ã‚Œã¾ã™ã€‚</translation> </message> @@ -11076,6 +11879,7 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation>I/Oãƒãƒ¼ãƒˆ(&R):</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsParallel.ui" line="120"/> <source>Displays the base I/O port address of this parallel port. This should be a whole number between <tt>0</tt> and <tt>0xFFFF</tt>.</source> <translation type="obsolete">ã“ã®ãƒ‘ラレルãƒãƒ¼ãƒˆã®ãƒ™ãƒ¼ã‚¹I/Oãƒãƒ¼ãƒˆã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’表示ã—ã¾ã™ã€‚ 有効値ã¯<tt>0</tt>ã‹ã‚‰<tt>0xFFFF</tt>ã®ç¯„囲ã®æ•´æ•°ã§ã™ã€‚</translation> </message> @@ -11121,14 +11925,17 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<context> <name>VBoxVMSettingsSF</name> <message> + <location filename="../src/settings/vm/VBoxVMSettingsParallel.cpp" line="240"/> <source>&Add New Shared Folder</source> <translation type="obsolete">æ–°è¦å…±æœ‰ãƒ•ã‚©ãƒ«ãƒ€ã‚’è¿½åŠ (&A)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsParallel.cpp" line="240"/> <source>&Edit Selected Shared Folder</source> <translation type="obsolete">é¸æŠžã—ãŸå…±æœ‰ãƒ•ã‚©ãƒ«ãƒ€ã‚’編集(&E)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsParallel.cpp" line="240"/> <source>&Remove Selected Shared Folder</source> <translation type="obsolete">é¸æŠžã—ãŸå…±æœ‰ãƒ•ã‚©ãƒ«ãƒ€ã‚’除去(&R)</translation> </message> @@ -11295,6 +12102,7 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation>IRQ(&I):</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsSerial.ui" line="97"/> <source>Displays the IRQ number of this serial port. Valid values are integer numbers in range from <tt>0</tt> to <tt>255</tt>. Values greater than <tt>15</tt> may only be used if the <b>IO APIC</b> is enabled for this virtual machine.</source> <translation type="obsolete">ã“ã®ã‚·ãƒªã‚¢ãƒ«ãƒãƒ¼ãƒˆã®IRQ番å·ã‚’表示ã—ã¾ã™ã€‚有効値ã¯<tt>0</tt>ã‹ã‚‰<tt>255</tt>ã¾ã§ã®ç¯„囲ã®æ•´æ•°ã§ã™ã€‚<tt>15</tt>以上ã®å€¤ã¯ã“ã®ä»®æƒ³ãƒžã‚·ãƒ³ã§<b>IO APIC</b>ãŒæœ‰åŠ¹ãªã¨ã使用ã•ã‚Œã¾ã™ã€‚</translation> </message> @@ -11304,6 +12112,7 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation>I/Oãƒãƒ¼ãƒˆ(&R):</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsSerial.ui" line="120"/> <source>Displays the base I/O port address of this serial port. This should be a whole number between <tt>0</tt> and <tt>0xFFFF</tt>.</source> <translation type="obsolete">ã“ã®ã‚·ãƒªã‚¢ãƒ«ãƒãƒ¼ãƒˆã®ãƒ™ãƒ¼ã‚¹I/Oãƒãƒ¼ãƒˆã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’表示ã—ã¾ã™ã€‚ 有効値ã¯<tt>0</tt>ã‹ã‚‰<tt>0xFFFF</tt>ã®ç¯„囲ã®æ•´æ•°ã§ã™ã€‚</translation> </message> @@ -11328,6 +12137,7 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation>パイプ作æˆ(&C)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsSerial.ui" line="179"/> <source>Port &Path:</source> <translation type="obsolete">ãƒãƒ¼ãƒˆ パス(&P):</translation> </message> @@ -11403,7 +12213,6 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation>2個以上ã®CPUãŒä»®æƒ³ãƒžã‚·ãƒ³ã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¾ã—ãŸã€‚仮想化支æ´æ©Ÿèƒ½(VT-x/AMD-V)ãŒç„¡åŠ¹ãªå ´åˆã€ã“ã‚Œã¯å‹•ä½œã—ã¾ã›ã‚“。[OK]ボタンを押ã™ã¨è‡ªå‹•çš„ã«ä»®æƒ³åŒ–支æ´æ©Ÿèƒ½ãŒæœ‰åŠ¹åŒ–ã•ã‚Œã¾ã™ã€‚</translation> </message> <message> - <location filename="../src/settings/vm/VBoxVMSettingsSystem.cpp" line="371"/> <location filename="../src/settings/vm/VBoxVMSettingsSystem.cpp" line="372"/> <source><qt>%1&nbsp;MB</qt></source> <translation><qt>%1&nbsp;MB</qt></translation> @@ -11415,6 +12224,7 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation><qt>%1&nbsp;CPU</qt></translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsSystem.cpp" line="375"/> <source><qt>%1&nbsp;CPUs</qt></source> <comment>%1 is 32 for now</comment> <translation type="obsolete"><qt>%1&nbsp;CPUs</qt></translation> @@ -11430,7 +12240,6 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation>メインメモリ(&M):</translation> </message> <message> - <location filename="../src/settings/vm/VBoxVMSettingsSystem.ui" line="68"/> <location filename="../src/settings/vm/VBoxVMSettingsSystem.ui" line="134"/> <source>Controls the amount of memory provided to the virtual machine. If you assign too much, the machine might not start.</source> <translation>仮想マシンã«å‰²ã‚Šå½“ã¦ã‚‹ãƒ¡ã‚¤ãƒ³ãƒ¡ãƒ¢ãƒªã®ã‚µã‚¤ã‚ºã‚’指定ã—ã¾ã™ã€‚割り当ã¦é‡ãŒå¤šã™ãŽã‚‹ã¨ä»®æƒ³ãƒžã‚·ãƒ³ã¯èµ·å‹•ã—ãªã„ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。</translation> @@ -11471,16 +12280,17 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation>é¸æŠžã—ãŸèµ·å‹•ãƒ‡ãƒã‚¤ã‚¹ã‚’上ã«ç§»å‹•ã—ã¾ã™ã€‚</translation> </message> <message> - <location filename="../src/settings/vm/VBoxVMSettingsSystem.ui" line="306"/> <location filename="../src/settings/vm/VBoxVMSettingsSystem.ui" line="472"/> <source>Extended Features:</source> <translation>拡張機能:</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsSystem.ui" line="472"/> <source>When checked, the virtual machine will support the Advanced Configuration and Power Management Interface (ACPI). <b>Note:</b> don't disable this feature after having installed a Windows guest operating system!</source> <translation type="obsolete">仮想マシンã§ACPI(Advanced Configuration and Power Management Interface)サãƒãƒ¼ãƒˆã‚’有効ã«ã—ã¾ã™ã€‚<b>注:</b> Windows ゲストOSをインストールã—ãŸå¾Œã§æœ¬æ©Ÿèƒ½ã‚’無効ã«ã—ãªã„ã§ãã ã•ã„ï¼</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsSystem.ui" line="472"/> <source>Enable &ACPI</source> <translation type="obsolete">ACPIを有効化(&A)</translation> </message> @@ -11505,7 +12315,6 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<translation>プãƒã‚»ãƒƒã‚µæ•°(&P):</translation> </message> <message> - <location filename="../src/settings/vm/VBoxVMSettingsSystem.ui" line="392"/> <location filename="../src/settings/vm/VBoxVMSettingsSystem.ui" line="465"/> <source>Controls the number of virtual CPUs in the virtual machine.</source> <translation>仮想マシンã«å‰²ã‚Šå½“ã¦ã‚‹CPUã®æ•°ã‚’指定ã—ã¾ã™ã€‚</translation> @@ -11800,34 +12609,42 @@ USBãƒ•ã‚£ãƒ«ã‚¿ã‚’è¿½åŠ ã¾ãŸã¯é™¤åŽ»ã™ã‚‹ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストメニュム<context> <name>VBoxVMSettingsVRDP</name> <message> + <location filename="../src/settings/vm/VBoxVMSettingsUSBFilterDetails.ui" line="36"/> <source>When checked, the VM will act as a Remote Desktop Protocol (RDP) server, allowing remote clients to connect and operate the VM (when it is running) using a standard RDP client.</source> <translation type="obsolete">仮想マシンã®ãƒªãƒ¢ãƒ¼ãƒˆãƒ‡ã‚¹ã‚¯ãƒˆãƒƒãƒ—プãƒãƒˆã‚³ãƒ«(RDP)サーãƒãƒ¼æ©Ÿèƒ½ã‚’有効ã«ã—ã¾ã™ã€‚リモートクライアントãŒæ¨™æº–çš„ãªRDPクライアントを使用ã—ã¦å®Ÿè¡Œä¸ã®ä»®æƒ³ãƒžã‚·ãƒ³ã«æŽ¥ç¶šã—ã€æ“作ã™ã‚‹ã“ã¨ã‚’å¯èƒ½ã«ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsUSBFilterDetails.ui" line="36"/> <source>&Enable VRDP Server</source> <translation type="obsolete">VRDPサーãƒãƒ¼ã‚’有効化(&E)</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsUSBFilterDetails.ui" line="36"/> <source>Server &Port:</source> <translation type="obsolete">サーãƒãƒ¼ã®ãƒãƒ¼ãƒˆç•ªå·(&P):</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsUSBFilterDetails.ui" line="36"/> <source>Displays the VRDP Server port number. You may specify <tt>0</tt> (zero) to reset the port to the default value.</source> <translation type="obsolete">VRDPサーãƒãƒ¼ã®ãƒãƒ¼ãƒˆç•ªå·ã‚’表示ã—ã¾ã™ã€‚ãƒãƒ¼ãƒˆã‚’デフォルト値ã«ãƒªã‚»ãƒƒãƒˆã™ã‚‹ã«ã¯<tt>0</tt>(ゼãƒ)を指定ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsUSBFilterDetails.ui" line="36"/> <source>Authentication &Method:</source> <translation type="obsolete">èªè¨¼æ–¹å¼(&M):</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsUSBFilterDetails.ui" line="36"/> <source>Defines the VRDP authentication method.</source> <translation type="obsolete">VRDPã®èªè¨¼æ–¹å¼ã‚’指定ã—ã¾ã™ã€‚</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsUSBFilterDetails.ui" line="36"/> <source>Authentication &Timeout:</source> <translation type="obsolete">èªè¨¼ã‚¿ã‚¤ãƒ アウト値(&T):</translation> </message> <message> + <location filename="../src/settings/vm/VBoxVMSettingsUSBFilterDetails.ui" line="36"/> <source>Specifies the timeout for guest authentication, in milliseconds.</source> <translation type="obsolete">ゲストèªè¨¼ã®ã‚¿ã‚¤ãƒ アウト値をミリ秒å˜ä½ã§æŒ‡å®šã—ã¾ã™ã€‚</translation> </message> diff --git a/src/VBox/Frontends/VirtualBox/nls/VirtualBox_sk.ts b/src/VBox/Frontends/VirtualBox/nls/VirtualBox_sk.ts index e9a4c9a17..043d7e718 100644 --- a/src/VBox/Frontends/VirtualBox/nls/VirtualBox_sk.ts +++ b/src/VBox/Frontends/VirtualBox/nls/VirtualBox_sk.ts @@ -1067,7 +1067,7 @@ verzia %1</translation> </message> <message> <source>Switch to seamless desktop integration mode</source> - <translation>Prepnúť režim plynulého prechodu medzi plochami</translation> + <translation>Prepnúť do režimu plynulého prechodu medzi plochami</translation> </message> <message> <source>Indicates whether the keyboard is captured by the guest OS (<img src=hostkey_captured_16px.png/>) or not (<img src=hostkey_16px.png/>).</source> @@ -1733,15 +1733,15 @@ p, li { white-space: pre-wrap; } </message> <message> <source>Write in legacy OVF 0.9 format for compatibility with other virtualization products.</source> - <translation type="unfinished"></translation> + <translation>UložiÅ¥ v starÅ¡om formáte OVF 0.9 kvôli kompatibilite so starÅ¡Ãmi virtualizaÄnými produktami.</translation> </message> <message> <source>&Write legacy OVF 0.9</source> - <translation type="unfinished"></translation> + <translation>&UložiÅ¥ vo formáte OVF 0.9</translation> </message> <message> <source>Please choose a filename to export the OVF to.</source> - <translation type="unfinished"></translation> + <translation>ProsÃm, vyberte názov súboru pre export OVF.</translation> </message> <message> <source>Please complete the additional fields like the username, password and the bucket, and provide a filename for the OVF target.</source> @@ -1789,7 +1789,7 @@ p, li { white-space: pre-wrap; } </message> <message> <source>&Bucket:</source> - <translation type="unfinished"></translation> + <translation>&Sektor:</translation> </message> <message> <source>&Hostname:</source> @@ -1941,7 +1941,7 @@ p, li { white-space: pre-wrap; } </message> <message> <source>Displays the key used as a Host Key in the VM window. Activate the entry field and press a new Host Key. Note that alphanumeric, cursor movement and editing keys cannot be used.</source> - <translation type="unfinished">Zobrazuje kláves, ktorý sa použÃva ako Hostiteľský kláves v okne VM. Aktivujte pole a stlaÄte nový Hostiteľský kláves. VÅ¡imnite si, že alfanumerické znaky, klávesy na pohyb kurzora a na úpravu sa nedajú použiÅ¥ ako Hostiteľský kláves.</translation> + <translation>Zobrazà kláves, ktorý sa použÃva ako Hostiteľský kláves v okne VS. Aktivujte pole a stlaÄte nový Hostiteľský kláves. VÅ¡imnite si, že alfanumerické znaky, klávesy na pohyb kurzora a na úpravu sa nedajú použiÅ¥ ako Hostiteľské klávesy.</translation> </message> <message> <source>When checked, the keyboard is automatically captured every time the VM window is activated. When the keyboard is captured, all keystrokes (including system ones like Alt-Tab) are directed to the VM.</source> @@ -2124,15 +2124,15 @@ p, li { white-space: pre-wrap; } </message> <message> <source>&Add host-only network</source> - <translation type="unfinished"></translation> + <translation>&PridaÅ¥ sieÅ¥ medzi hostiteľom</translation> </message> <message> <source>&Remove host-only network</source> - <translation type="unfinished"></translation> + <translation>&OdstrániÅ¥ sieÅ¥ medzi hostiteľom</translation> </message> <message> <source>&Edit host-only network</source> - <translation type="unfinished"></translation> + <translation>&UpraviÅ¥ sieÅ¥ medzi hostiteľom</translation> </message> <message> <source>Performing</source> @@ -2141,11 +2141,11 @@ p, li { white-space: pre-wrap; } </message> <message> <source>&Host-only Networks:</source> - <translation type="unfinished"></translation> + <translation>Sie&te iba pre hostiteľa:</translation> </message> <message> <source>Lists all available host-only networks.</source> - <translation type="unfinished"></translation> + <translation>Zobrazà vÅ¡etky dostupné siete iba pre hostiteľa.</translation> </message> <message> <source>Name</source> @@ -2156,7 +2156,7 @@ p, li { white-space: pre-wrap; } <name>VBoxGLSettingsNetworkDetails</name> <message> <source>Host-only Network Details</source> - <translation type="unfinished"></translation> + <translation>Podrobnosti siete iba pre hostiteľa</translation> </message> <message> <source>&Adapter</source> @@ -2168,7 +2168,7 @@ p, li { white-space: pre-wrap; } </message> <message> <source>Use manual configuration for this host-only network adapter.</source> - <translation type="unfinished"></translation> + <translation>PoužiÅ¥ manuálnu konfiguráciu pre tento adaptér siete medzi hostiteľom.</translation> </message> <message> <source>&IPv4 Address:</source> @@ -2196,11 +2196,11 @@ p, li { white-space: pre-wrap; } </message> <message> <source>IPv6 Network Mask &Length:</source> - <translation type="unfinished"></translation> + <translation>Dĺžka sieÅ¥ove&j masky IPv6:</translation> </message> <message> <source>Displays the host IPv6 network mask prefix length for this adapter if IPv6 is supported.</source> - <translation type="unfinished"></translation> + <translation>Zobrazà dĺžku prefixu IPv6 adresy hostiteľa pre tento adaptér, ak je IPv6 podporovaná.</translation> </message> <message> <source>&DHCP Server</source> @@ -2212,7 +2212,7 @@ p, li { white-space: pre-wrap; } </message> <message> <source>Indicates whether the DHCP Server is enabled on machine startup or not.</source> - <translation type="unfinished"></translation> + <translation>OznaÄuje, Äi je povolené spustenie DHCP servera po Å¡tarte stroja alebo nie.</translation> </message> <message> <source>Server Add&ress:</source> @@ -2220,7 +2220,7 @@ p, li { white-space: pre-wrap; } </message> <message> <source>Displays the address of the DHCP server servicing the network associated with this host-only adapter.</source> - <translation type="unfinished"></translation> + <translation>Zobrazuje adresu DHCP servera, ktorý obsluhuje sieÅ¥ medzi hostiteľom priradenú k tomuto adaptéru.</translation> </message> <message> <source>Server &Mask:</source> @@ -2228,11 +2228,11 @@ p, li { white-space: pre-wrap; } </message> <message> <source>Displays the network mask of the DHCP server servicing the network associated with this host-only adapter.</source> - <translation type="unfinished"></translation> + <translation>Zobrazuje sieÅ¥ovú masku DHCP servera, ktorý obsluhuje sieÅ¥ medzi hostiteľom priradenú k tomuto adaptéru.</translation> </message> <message> <source>&Lower Address Bound:</source> - <translation type="unfinished"></translation> + <translation>&Spodná hranica pre adresu:</translation> </message> <message> <source>Displays the lower address bound offered by the DHCP server servicing the network associated with this host-only adapter.</source> @@ -2240,7 +2240,7 @@ p, li { white-space: pre-wrap; } </message> <message> <source>&Upper Address Bound:</source> - <translation type="unfinished"></translation> + <translation>&Horná hranica pre adresu:</translation> </message> <message> <source>Displays the upper address bound offered by the DHCP server servicing the network associated with this host-only adapter.</source> @@ -3163,7 +3163,7 @@ p, li { white-space: pre-wrap; } <message> <source>Nested Paging</source> <comment>details report</comment> - <translation type="unfinished"></translation> + <translation>Priamy prÃstup k hardware</translation> </message> <message> <source>Enabled</source> @@ -3183,7 +3183,7 @@ p, li { white-space: pre-wrap; } <message> <source>SCSI</source> <comment>StorageBus</comment> - <translation type="unfinished"></translation> + <translation>SCSI</translation> </message> <message> <source>PIIX3</source> @@ -3218,12 +3218,12 @@ p, li { white-space: pre-wrap; } <message> <source>Bridged adapter, %1</source> <comment>details report (network)</comment> - <translation type="unfinished"></translation> + <translation>Karta použÃtá v sieÅ¥ovom moste, %1</translation> </message> <message> <source>Host-only adapter, '%1'</source> <comment>details report (network)</comment> - <translation type="unfinished"></translation> + <translation>Karta pre sieÅ¥ iba medzi hostiteľom a hosÅ¥om, '%1'</translation> </message> <message> <source>Intel PRO/1000 MT Server (82545EM)</source> @@ -3303,12 +3303,12 @@ p, li { white-space: pre-wrap; } <message> <source>Not Attached</source> <comment>details report (Storage)</comment> - <translation type="unfinished">Nepripojený</translation> + <translation>Nepripojené</translation> </message> <message> <source>Storage</source> <comment>details report</comment> - <translation type="unfinished"></translation> + <translation>Úložisko</translation> </message> <message> <source>Teleported</source> @@ -3328,7 +3328,7 @@ p, li { white-space: pre-wrap; } <message> <source>Taking Live Snapshot</source> <comment>MachineState</comment> - <translation type="unfinished"></translation> + <translation>Vytváram živú snÃmku</translation> </message> <message> <source>Teleporting Paused VM</source> @@ -3338,12 +3338,12 @@ p, li { white-space: pre-wrap; } <message> <source>Restoring Snapshot</source> <comment>MachineState</comment> - <translation type="unfinished"></translation> + <translation>Obnovujem snÃmku</translation> </message> <message> <source>Deleting Snapshot</source> <comment>MachineState</comment> - <translation type="unfinished"></translation> + <translation>Mažem snÃmku</translation> </message> <message> <source>Floppy</source> @@ -3475,55 +3475,55 @@ p, li { white-space: pre-wrap; } </message> <message numerus="yes"> <source>%n year(s)</source> - <translation type="unfinished"> - <numerusform></numerusform> - <numerusform></numerusform> - <numerusform></numerusform> + <translation> + <numerusform>%n rok</numerusform> + <numerusform>%n roky</numerusform> + <numerusform>%n rokov</numerusform> </translation> </message> <message numerus="yes"> <source>%n month(s)</source> - <translation type="unfinished"> - <numerusform></numerusform> - <numerusform></numerusform> - <numerusform></numerusform> + <translation> + <numerusform>%n mesiac</numerusform> + <numerusform>%n mesiace</numerusform> + <numerusform>%n mesiacov</numerusform> </translation> </message> <message numerus="yes"> <source>%n day(s)</source> - <translation type="unfinished"> - <numerusform></numerusform> - <numerusform></numerusform> - <numerusform></numerusform> + <translation> + <numerusform>%n deň</numerusform> + <numerusform>%n dni</numerusform> + <numerusform>%n dnÃ</numerusform> </translation> </message> <message numerus="yes"> <source>%n hour(s)</source> - <translation type="unfinished"> - <numerusform></numerusform> - <numerusform></numerusform> - <numerusform></numerusform> + <translation> + <numerusform>%n hodina</numerusform> + <numerusform>%n hodiny</numerusform> + <numerusform>%n hodÃn</numerusform> </translation> </message> <message numerus="yes"> <source>%n minute(s)</source> - <translation type="unfinished"> - <numerusform></numerusform> - <numerusform></numerusform> - <numerusform></numerusform> + <translation> + <numerusform>%n minúta</numerusform> + <numerusform>%n minúty</numerusform> + <numerusform>%n minút</numerusform> </translation> </message> <message numerus="yes"> <source>%n second(s)</source> - <translation type="unfinished"> - <numerusform></numerusform> - <numerusform></numerusform> - <numerusform></numerusform> + <translation> + <numerusform>%n sekunda</numerusform> + <numerusform>%n sekundy</numerusform> + <numerusform>%n sekúnd</numerusform> </translation> </message> <message> <source>(CD/DVD)</source> - <translation type="unfinished"></translation> + <translation>(CD/DVD)</translation> </message> </context> <context> @@ -3952,7 +3952,7 @@ je zobrazený <b>tuÄným</b> pÃsmom. Voľbou <i>Å tandardný <name>VBoxHelpButton</name> <message> <source>&Help</source> - <translation type="unfinished">&PomocnÃk</translation> + <translation>&PomocnÃk</translation> </message> </context> <context> @@ -3974,7 +3974,7 @@ je zobrazený <b>tuÄným</b> pÃsmom. Voľbou <i>Å tandardný </message> <message> <source>Open Virtualization Format (%1)</source> - <translation type="unfinished">Formát Open Virtualization Format (%1)</translation> + <translation>Formát Open Virtualization Format (%1)</translation> </message> <message> <source>Appliance Import Wizard</source> @@ -3996,15 +3996,15 @@ p, li { white-space: pre-wrap; } </message> <message> <source>< &Back</source> - <translation type="unfinished">< &Späť</translation> + <translation>< &Späť</translation> </message> <message> <source>&Next ></source> - <translation type="unfinished"></translation> + <translation>ÄŽ&alej ></translation> </message> <message> <source>Cancel</source> - <translation type="unfinished">ZruÅ¡iÅ¥</translation> + <translation>ZruÅ¡iÅ¥</translation> </message> <message> <source>Appliance Import Settings</source> @@ -4016,11 +4016,11 @@ p, li { white-space: pre-wrap; } </message> <message> <source>Restore Defaults</source> - <translation type="unfinished">ObnoviÅ¥ východzie hodnoty</translation> + <translation>ObnoviÅ¥ východzie hodnoty</translation> </message> <message> <source>&Import ></source> - <translation type="unfinished"></translation> + <translation>&ImportovaÅ¥ ></translation> </message> </context> <context> @@ -4035,27 +4035,27 @@ p, li { white-space: pre-wrap; } </message> <message> <source>&Disagree</source> - <translation type="unfinished"></translation> + <translation>&NesúhlasÃm</translation> </message> <message> <source>&Agree</source> - <translation type="unfinished"></translation> + <translation>&SúhlasÃm</translation> </message> <message> <source>&Print...</source> - <translation type="unfinished"></translation> + <translation>&TlaÄiÅ¥...</translation> </message> <message> <source>&Save...</source> - <translation type="unfinished"></translation> + <translation>&UložiÅ¥...</translation> </message> <message> <source>Text (*.txt)</source> - <translation type="unfinished"></translation> + <translation>Text (*.txt)</translation> </message> <message> <source>Save license to file...</source> - <translation type="unfinished"></translation> + <translation>UložiÅ¥ licenciu do súboru...</translation> </message> </context> <context> @@ -4288,17 +4288,17 @@ p, li { white-space: pre-wrap; } <message> <source>Attached to</source> <comment>VMM: Virtual Disk</comment> - <translation type="unfinished">Pripojený k</translation> + <translation>Pripojený k</translation> </message> <message> <source>Attached to</source> <comment>VMM: CD/DVD Image</comment> - <translation type="unfinished">Pripojený k</translation> + <translation>Pripojený k</translation> </message> <message> <source>Attached to</source> <comment>VMM: Floppy Image</comment> - <translation type="unfinished">Pripojený k</translation> + <translation>Pripojený k</translation> </message> </context> <context> @@ -4309,7 +4309,7 @@ p, li { white-space: pre-wrap; } </message> <message> <source>Exit Full Screen or Seamless Mode</source> - <translation>UkonÄiÅ¥ režim na celú obrazovku alebo bezÅ¡vový režim </translation> + <translation>UkonÄiÅ¥ režim na celú obrazovku alebo režim plynulého prechodu</translation> </message> <message> <source>Close VM</source> @@ -4355,7 +4355,7 @@ p, li { white-space: pre-wrap; } <name>VBoxNetworkDialog</name> <message> <source>Network Adapters</source> - <translation type="unfinished"></translation> + <translation>SieÅ¥ové adaptéry</translation> </message> </context> <context> @@ -4520,7 +4520,7 @@ ako veľkosÅ¥ virtuálneho pevného disku.</p></translation> </message> <message> <source><p>Select the type of virtual hard disk you want to create.</p><p>A <b>dynamically expanding storage</b> initially occupies a very small amount of space on your physical hard disk. It will grow dynamically (up to the size specified) as the Guest OS claims disk space.</p><p>A <b>fixed-size storage</b> does not grow. It is stored in a file of approximately the same size as the size of the virtual hard disk. The creation of a fixed-size storage may take a long time depending on the storage size and the write performance of your harddisk.</p></source> - <translation><p>Vyberte typ virtuálneho pevného disku, ktorý chcete vytvoriÅ¥.</p><p><b>Dynamicky sa zväÄÅ¡ujúce úložisko</b> najprv zaberá veľmi málo miesta na fyzickom pevnom disku. Potom dynamicky rastie (až do definovanej veľkosti) podľa toho, koľko miesta si OS hosÅ¥a nárokuje.</p><p><b>Úložisko s fixnou veľkosÅ¥ou</b> nerastie. Je uložené v súbore o približne rovnakej veľkosti ako virtuálny pevný disk. Vytvorenie úložiska s pevno veľkosÅ¥ou môže trvaÅ¥ dlhÅ¡Ã Äas v závislosti od jeho veľkosti a výkonu vášho disku pri zápise.</p></translation> + <translation><p>Vyberte typ virtuálneho pevného disku, ktorý chcete vytvoriÅ¥.</p><p><b>Dynamicky sa zväÄÅ¡ujúce úložisko</b> najprv zaberá veľmi málo miesta na fyzickom pevnom disku. Potom dynamicky rastie (až do definovanej veľkosti) podľa toho, koľko miesta si OS hosÅ¥a nárokuje.</p><p><b>Úložisko s fixnou veľkosÅ¥ou</b> nerastie. Je uložené v súbore o približne rovnakej veľkosti ako virtuálny pevný disk. Vytvorenie úložiska s pevnou veľkosÅ¥ou môže trvaÅ¥ dlhÅ¡Ã Äas v závislosti od jeho veľkosti a výkonu vášho disku pri zápise.</p></translation> </message> <message> <source>Storage Type</source> @@ -4536,7 +4536,7 @@ ako veľkosÅ¥ virtuálneho pevného disku.</p></translation> </message> <message> <source><p>Press the <b>Select</b> button to select the location of a file to store the hard disk data or type a file name in the entry field.</p></source> - <translation><p>StlaÄte tlaÄidlo<b>Výber</b> a vyberte umiestnenie súboru, ktoré bude slúžiÅ¥ na ukladanie dát pevného disku alebo napÃÅ¡te jeho meno do poľa vstupu.</p></translation> + <translation><p>StlaÄte tlaÄidlo <b>Výber</b> a vyberte umiestnenie súboru, ktoré bude slúžiÅ¥ na ukladanie dát pevného disku alebo napÃÅ¡te jeho meno do poľa vstupu.</p></translation> </message> <message> <source>&Location</source> @@ -5187,7 +5187,7 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá </message> <message> <source><p>Congratulations! You have been successfully registered as a user of VirtualBox.</p><p>Thank you for finding time to fill out the registration form!</p></source> - <translation type="unfinished"></translation> + <translation><p>Gratulujeme! ÚspeÅ¡ne ste sa zaregistrovali ako užÃvateľ VirtualBoxu.</p><p>ÄŽakujeme, že ste si naÅ¡li Äas na vyplnenie registraÄného formulára!</p></translation> </message> <message> <source><p>Failed to save the global VirtualBox settings to <b><nobr>%1</nobr></b>.</p></source> @@ -5217,7 +5217,7 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá <message> <source>Unregister</source> <comment>machine</comment> - <translation type="unfinished"></translation> + <translation>ZruÅ¡iÅ¥ registráciu</translation> </message> <message> <source>Discard</source> @@ -5319,15 +5319,15 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá </message> <message> <source><p>Could not enter seamless mode due to insufficient guest video memory.</p><p>You should configure the virtual machine to have at least <b>%1</b> of video memory.</p></source> - <translation type="unfinished"></translation> + <translation><p>Zlyhalo prepnutie do režimu plynulého prechodu kvôli nedostatku video pamäte hosÅ¥a.</p><p>Mali by ste nastaviÅ¥ virtuálny stroj tak, aby mal aspoň <b>%1</b> video pamäte.</p></translation> </message> <message> <source><p>Could not switch the guest display to fullscreen mode due to insufficient guest video memory.</p><p>You should configure the virtual machine to have at least <b>%1</b> of video memory.</p><p>Press <b>Ignore</b> to switch to fullscreen mode anyway or press <b>Cancel</b> to cancel the operation.</p></source> - <translation type="unfinished"></translation> + <translation><p>Zlyhalo prepnutie do režimu na celú obrazovku kvôli nedostatku video pamäte hosÅ¥a.</p><p>Mali by ste nastaviÅ¥ virtuálny stroj tak, aby mal aspoň <b>%1</b> video pamäte.</p><p>Kliknite na <b>IgnorovaÅ¥</b>, ak chcete prepnúť do režimu na celú obrazovku aj tak alebo stlaÄte <b>ZruÅ¡iÅ¥</b> pre zruÅ¡enie tejto akcie.</p></translation> </message> <message> <source>You are already running the most recent version of VirtualBox.</source> - <translation type="unfinished"></translation> + <translation>PoužÃvate najnovÅ¡iu verziu VirtualBoxu.</translation> </message> <message> <source><p>You have <b>clicked the mouse</b> inside the Virtual Machine display or pressed the <b>host key</b>. This will cause the Virtual Machine to <b>capture</b> the host mouse pointer (only if the mouse pointer integration is not currently supported by the guest OS) and the keyboard, which will make them unavailable to other applications running on your host machine.</p><p>You can press the <b>host key</b> at any time to <b>uncapture</b> the keyboard and mouse (if it is captured) and return them to normal operation. The currently assigned host key is shown on the status bar at the bottom of the Virtual Machine window, next to the&nbsp;<img src=:/hostkey_16px.png/>&nbsp;icon. This icon, together with the mouse icon placed nearby, indicate the current keyboard and mouse capture state.</p></source> @@ -5531,11 +5531,11 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá </message> <message> <source>Close VM</source> - <translation type="unfinished">ZatvoriÅ¥ virtuálny stroj</translation> + <translation>ZatvoriÅ¥ virtuálny stroj</translation> </message> <message> <source>Continue</source> - <translation type="unfinished">PokraÄovaÅ¥</translation> + <translation>PokraÄovaÅ¥</translation> </message> <message> <source>Discard</source> @@ -5543,7 +5543,7 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá </message> <message> <source>Cancel</source> - <translation type="unfinished">ZruÅ¡iÅ¥</translation> + <translation>ZruÅ¡iÅ¥</translation> </message> <message> <source><p>There are hard disks attached to ports of the additional controller. If you disable the additional controller, all these hard disks will be automatically detached.</p><p>Are you sure you want to disable the additional controller?</p></source> @@ -5556,7 +5556,7 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá <message> <source>Change</source> <comment>hard disk</comment> - <translation type="unfinished"></translation> + <translation>ZmeniÅ¥</translation> </message> <message> <source><p>Do you want to remove the selected host network interface <nobr><b>%1</b>?</nobr></p><p><b>Note:</b> This interface may be in use by one or more network adapters of this or another VM. After it is removed, these adapters will no longer work until you correct their settings by either choosing a different interface name or a different adapter attachment type.</p></source> @@ -5632,7 +5632,7 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá </message> <message> <source>You are running an EXPERIMENTAL build of VirtualBox. This version is not suitable for production use.</source> - <translation type="unfinished"></translation> + <translation>PoužÃvate TESTOVACIE zostavenie VirtualBoxu. Táto verzia nie je vhodná pre nasadenie v produkcii.</translation> </message> <message> <source><p>Are you sure you want to restore snapshot <b>%1</b>? This will cause you to lose your current machine state, which cannot be recovered.</p></source> @@ -5640,7 +5640,7 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá </message> <message> <source>Restore</source> - <translation type="unfinished"></translation> + <translation>ObnoviÅ¥</translation> </message> <message> <source><p>Deleting the snapshot will cause the state information saved in it to be lost, and disk data spread over several image files that VirtualBox has created together with the snapshot will be merged into one file. This can be a lengthy process, and the information in the snapshot cannot be recovered.</p></p>Are you sure you want to delete the selected snapshot <b>%1</b>?</p></source> @@ -5648,11 +5648,11 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá </message> <message> <source>Delete</source> - <translation type="unfinished">VymazaÅ¥</translation> + <translation>VymazaÅ¥</translation> </message> <message> <source>Failed to restore the snapshot <b>%1</b> of the virtual machine <b>%2</b>.</source> - <translation type="unfinished"></translation> + <translation>Nepodarilo sa obnoviÅ¥ snÃmok <b>%1</b> virtuálneho stroja <b>%2</b>.</translation> </message> <message> <source>Failed to delete the snapshot <b>%1</b> of the virtual machine <b>%2</b>.</source> @@ -5665,12 +5665,12 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá <message> <source>&Create</source> <comment>medium</comment> - <translation type="unfinished">Vy&tvoriÅ¥</translation> + <translation>Vy&tvoriÅ¥</translation> </message> <message> <source>&Select</source> <comment>medium</comment> - <translation type="unfinished">&VybraÅ¥</translation> + <translation>&VybraÅ¥</translation> </message> <message> <source><p>There are no unused media available for the newly created attachment.</p><p>Press the <b>Select</b> if you wish to open the <i>Virtual Media Manager</i>.</p></source> @@ -5702,7 +5702,7 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá </message> <message> <source>Force Unmount</source> - <translation type="unfinished"></translation> + <translation>VynútiÅ¥ odpojenie</translation> </message> <message> <source>Failed to eject the disk from the virtual drive. The drive may be locked by the guest operating system. Please check this and try again.</source> @@ -5715,7 +5715,7 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá <message> <source>E&xit</source> <comment>warnAboutSettingsAutoConversion message box</comment> - <translation type="unfinished">&UkonÄiÅ¥</translation> + <translation>&UkonÄiÅ¥</translation> </message> <message> <source><p>The following VirtualBox settings files will be automatically converted from the old format to a new format required by the new version of VirtualBox.</p><p>Press <b>OK</b> to start VirtualBox now or press <b>Exit</b> if you want to terminate the VirtualBox application without any further actions.</p></source> @@ -5724,17 +5724,17 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá <message> <source>hard disk</source> <comment>failed to mount ...</comment> - <translation type="unfinished">pevný disk</translation> + <translation>pevný disk</translation> </message> <message> <source>CD/DVD</source> <comment>failed to mount ... host-drive</comment> - <translation type="unfinished"></translation> + <translation>CD/DVD</translation> </message> <message> <source>CD/DVD image</source> <comment>failed to mount ...</comment> - <translation type="unfinished">obraz CD/DVD</translation> + <translation>obraz CD/DVD</translation> </message> <message> <source>floppy</source> @@ -5744,22 +5744,22 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá <message> <source>floppy image</source> <comment>failed to mount ...</comment> - <translation type="unfinished">obraz diskety</translation> + <translation>obraz diskety</translation> </message> <message> <source>hard disk</source> <comment>failed to attach ...</comment> - <translation type="unfinished">pevný disk</translation> + <translation>pevný disk</translation> </message> <message> <source>CD/DVD device</source> <comment>failed to attach ...</comment> - <translation type="unfinished"></translation> + <translation>zariadenie CD/DVD</translation> </message> <message> <source>floppy device</source> <comment>failed to close ...</comment> - <translation type="unfinished"></translation> + <translation>zariadenie disketovej mechaniky</translation> </message> <message> <source><p>Are you sure you want to delete the CD/DVD-ROM device?</p><p>You will not be able to mount any CDs or ISO images or install the Guest Additions without it!</p></source> @@ -5768,36 +5768,36 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá <message> <source>&Remove</source> <comment>medium</comment> - <translation type="unfinished"></translation> + <translation>&OdstrániÅ¥</translation> </message> </context> <context> <name>VBoxProgressDialog</name> <message> <source>A few seconds remaining</source> - <translation type="unfinished"></translation> + <translation>Zostáva niekoľko sekúnd</translation> </message> <message> <source>Canceling...</source> - <translation type="unfinished"></translation> + <translation>Stornujem...</translation> </message> <message> <source>&Cancel</source> - <translation type="unfinished"></translation> + <translation>&ZruÅ¡iÅ¥</translation> </message> <message> <source>Cancel the current operation</source> - <translation type="unfinished"></translation> + <translation>ZruÅ¡iÅ¥ aktuálnu operáciu</translation> </message> <message> <source>%1, %2 remaining</source> <comment>You may wish to translate this more like "Time remaining: %1, %2"</comment> - <translation type="unfinished"></translation> + <translation>Zostáva %1, %2</translation> </message> <message> <source>%1 remaining</source> <comment>You may wish to translate this more like "Time remaining: %1"</comment> - <translation type="unfinished"></translation> + <translation>Zostáva %1</translation> </message> </context> <context> @@ -5852,43 +5852,43 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá </message> <message> <source>&Password:</source> - <translation type="unfinished">&Heslo:</translation> + <translation>&Heslo:</translation> </message> <message> <source>I &would like to create a new Sun Online account:</source> - <translation type="unfinished"></translation> + <translation>Rá&d by som si vytvoril nový úÄet u Sun Online:</translation> </message> <message> <source>&First Name:</source> - <translation type="unfinished"></translation> + <translation>&Krstné meno:</translation> </message> <message> <source>&Last Name:</source> - <translation type="unfinished"></translation> + <translation>&Priezvisko:</translation> </message> <message> <source>&Company:</source> - <translation type="unfinished"></translation> + <translation>&SpoloÄnosÅ¥:</translation> </message> <message> <source>Co&untry:</source> - <translation type="unfinished"></translation> + <translation>Kr&ajina:</translation> </message> <message> <source>E-&mail:</source> - <translation type="unfinished"></translation> + <translation>E-&mail:</translation> </message> <message> <source>P&assword:</source> - <translation type="unfinished"></translation> + <translation>&Heslo:</translation> </message> <message> <source>Co&nfirm Password:</source> - <translation type="unfinished"></translation> + <translation>&PotvrdiÅ¥ heslo:</translation> </message> <message> <source>&Register</source> - <translation type="unfinished"></translation> + <translation>&RegistrovaÅ¥ sa</translation> </message> </context> <context> @@ -5914,15 +5914,15 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá <name>VBoxScreenshotViewer</name> <message> <source>Screenshot of %1 (%2)</source> - <translation type="unfinished"></translation> + <translation>SnÃmka obrazovky %1 (%2)</translation> </message> <message> <source>Click to view non-scaled screenshot.</source> - <translation type="unfinished"></translation> + <translation>Kliknite sem pre otvorenie nezmenÅ¡enej snÃmky obrazovky.</translation> </message> <message> <source>Click to view scaled screenshot.</source> - <translation type="unfinished"></translation> + <translation>Kliknite sem pre otvorenie snÃmky obrazovky zmenÅ¡enej na veľkosÅ¥ obrazovky.</translation> </message> </context> <context> @@ -6584,19 +6584,19 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá </message> <message> <source>&Delete Snapshot</source> - <translation type="unfinished"></translation> + <translation>&VymazaÅ¥ snÃmku</translation> </message> <message> <source>Restore the selected snapshot of the virtual machine</source> - <translation type="unfinished"></translation> + <translation>ObnoviÅ¥ vybranú snÃmku virtuálneho stroja</translation> </message> <message> <source>Delete the selected snapshot of the virtual machine</source> - <translation type="unfinished"></translation> + <translation>VymazaÅ¥ vybranú snÃmku virtuálneho stroja</translation> </message> <message> <source> (%1 ago)</source> - <translation type="unfinished"></translation> + <translation> (pred %1)</translation> </message> </context> <context> @@ -6648,8 +6648,6 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá <source>Warning: You are taking a snapshot of a running machine which has %n immutable image(s) attached to it. As long as you are working from this snapshot the immutable image(s) will not be reset to avoid loss of data.</source> <translation type="unfinished"> <numerusform></numerusform> - <numerusform></numerusform> - <numerusform></numerusform> </translation> </message> </context> @@ -6840,7 +6838,7 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá </message> <message> <source>VirtualBox Update Wizard</source> - <translation type="unfinished"></translation> + <translation>Sprievodca aktualizáciou VirtualBoxu</translation> </message> <message> <source>Check for Updates</source> @@ -6864,7 +6862,7 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá </message> <message> <source>You are already running the most recent version of VirtualBox.</source> - <translation type="unfinished"></translation> + <translation>PoužÃvate najnovÅ¡iu verziu VirtualBoxu.</translation> </message> <message> <source><p>This wizard will connect to the VirtualBox web-site and check if a newer version of VirtualBox is available.</p><p>Use the <b>Check</b> button to check for a new version now or the <b>Cancel</b> button if you do not want to perform this check.</p><p>You can run this wizard at any time by choosing <b>Check for Updates...</b> from the <b>Help</b> menu.</p></source> @@ -6957,7 +6955,7 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá </message> <message> <source><p>If the above is correct, press the <b>Finish</b> button. Once you press it, the selected media will be temporarily mounted on the virtual machine and the machine will start execution.</p><p>Please note that when you close the virtual machine, the specified media will be automatically unmounted and the boot device will be set back to the first hard disk.</p><p>Depending on the type of the setup program, you may need to manually unmount (eject) the media after the setup program reboots the virtual machine, to prevent the installation process from starting again. You can do this by selecting the corresponding <b>Unmount...</b> action in the <b>Devices</b> menu.</p></source> - <translation type="unfinished"><p>Ak sú vyÅ¡Å¡ie uvedené údaje správne, stlaÄte tlaÄidlo <b>DokonÄiÅ¥</b>. KeÄ ho stlaÄÃte, vybrané médium bude doÄasne pripojené k virtuálnemu stroju a stroj bude spustený.</p><p>Majte na pamäti, že pri ukonÄenà virtuálneho stroja bude Å¡pecifikované médium automaticky odpojené a bootovateľné zariadenie bude znovu nastavené na prvý pevný disk.</p><p>V závislosti na type inÅ¡talaÄného programu možno budete chcieÅ¥ manuálne odpojiÅ¥ (vybraÅ¥) médium predtým, ako inÅ¡talácia reÅ¡tartuje virtuálny stroj, aby ste tak zabránili opätovnému spusteniu inÅ¡talácia. Môžete tak uÄiniÅ¥ výberom zodpovedajúcej akcie <b>OdpojiÅ¥...</b> z ponuky <b>Zariadenia</p>.</translation> + <translation><p>Ak sú vyÅ¡Å¡ie uvedené údaje správne, stlaÄte tlaÄidlo <b>DokonÄiÅ¥</b>. KeÄ ho stlaÄÃte, vybrané médium bude doÄasne pripojené k virtuálnemu stroju a stroj bude spustený.</p><p>Majte na pamäti, že pri ukonÄenà virtuálneho stroja bude Å¡pecifikované médium automaticky odpojené a bootovateľné zariadenie bude znovu nastavené na prvý pevný disk.</p><p>V závislosti na type inÅ¡talaÄného programu budete možno musieÅ¥ manuálne odpojiÅ¥ (vybraÅ¥) médium predtým, ako inÅ¡talácia reÅ¡tartuje virtuálny stroj, aby ste tak zabránili opätovnému spusteniu inÅ¡talácie. Môžete tak uÄiniÅ¥ výberom zodpovedajúcej akcie <b>OdpojiÅ¥...</b> z ponuky <b>Zariadenia</b>.</p></translation> </message> <message> <source>Summary</source> @@ -7143,7 +7141,7 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá </message> <message> <source>Nested Paging</source> - <translation type="unfinished"></translation> + <translation>Priamy prÃstup k hardware</translation> </message> <message> <source>VBoxVMInformationDlg</source> @@ -7152,19 +7150,19 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá <message> <source>Not Available</source> <comment>details report (VRDP server port)</comment> - <translation type="unfinished"></translation> + <translation>Nedostupný</translation> </message> <message> <source>Storage Statistics</source> - <translation type="unfinished"></translation> + <translation>Å tatistiky o úložiskách</translation> </message> <message> <source>No Storage Devices</source> - <translation type="unfinished"></translation> + <translation>Bez zariadenà pre úložiská</translation> </message> <message> <source>Network Statistics</source> - <translation type="unfinished"></translation> + <translation>SieÅ¥ové Å¡tatistiky</translation> </message> </context> <context> @@ -7193,12 +7191,12 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá <message> <source><nobr>%1<br></nobr><nobr>%2 since %3</nobr><br><nobr>Session %4</nobr></source> <comment>VM tooltip (name, last state change, session state)</comment> - <translation type="unfinished"><nobr>%1<br></nobr><nobr>%2 od %3</nobr><br><nobr>Relácia %4</nobr></translation> + <translation><nobr>%1<br></nobr><nobr>%2 od %3</nobr><br><nobr>Relácia %4</nobr></translation> </message> <message> <source><nobr><b>%1</b><br></nobr><nobr>Inaccessible since %2</nobr></source> <comment>Inaccessible VM tooltip (name, last state change)</comment> - <translation type="unfinished"><nobr><b>%1</b><br></nobr><nobr>Nedostupné od %2</nobr></translation> + <translation><nobr><b>%1</b><br></nobr><nobr>Nedostupné od %2</nobr></translation> </message> <message> <source>S&how</source> @@ -7206,31 +7204,31 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá </message> <message> <source>Switch to the window of the selected virtual machine</source> - <translation type="unfinished">Prepnúť do okna vybraného virtuálneho stroja</translation> + <translation>Prepnúť do okna vybraného virtuálneho stroja</translation> </message> <message> <source>S&tart</source> - <translation type="unfinished">S&pustiÅ¥</translation> + <translation>S&pustiÅ¥</translation> </message> <message> <source>Start the selected virtual machine</source> - <translation type="unfinished">SpustiÅ¥ vybraný virtuálny stroj</translation> + <translation>SpustiÅ¥ vybraný virtuálny stroj</translation> </message> <message> <source>R&esume</source> - <translation type="unfinished">P&okraÄovaÅ¥</translation> + <translation>P&okraÄovaÅ¥</translation> </message> <message> <source>Resume the execution of the virtual machine</source> - <translation type="unfinished"></translation> + <translation>PokraÄovaÅ¥ v spúšťanà virtuálneho stroja</translation> </message> <message> <source>&Pause</source> - <translation type="unfinished">&PozastaviÅ¥</translation> + <translation>&PozastaviÅ¥</translation> </message> <message> <source>Suspend the execution of the virtual machine</source> - <translation type="unfinished"></translation> + <translation>Pozastavà spúšťanie virtuálneho stroja</translation> </message> </context> <context> @@ -7511,87 +7509,87 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá <name>VBoxVMSettingsDisplay</name> <message> <source>you have assigned less than <b>%1</b> of video memory which is the minimum amount required to switch the virtual machine to fullscreen or seamless mode.</source> - <translation type="unfinished"></translation> + <translation>priradili ste menej ako <b>%1</b> video pamäte, Äo je minimálne potrebné množstvo na prepnutie virtuálneho stroja do režimu na celú obrazovku alebo do režimu plynulého prechodu.</translation> </message> <message> <source><qt>%1&nbsp;MB</qt></source> - <translation type="unfinished"><qt>%1&nbsp;MB</qt></translation> + <translation><qt>%1&nbsp;MB</qt></translation> </message> <message> <source>&Video</source> - <translation type="unfinished"></translation> + <translation>&Video</translation> </message> <message> <source>Video &Memory:</source> - <translation type="unfinished"></translation> + <translation>V&ideo pamäť:</translation> </message> <message> <source>Controls the amount of video memory provided to the virtual machine.</source> - <translation type="unfinished">Ovláda množstvo videopamäte poskytnutej virtuálnemu stroju.</translation> + <translation>Ovláda množstvo videopamäte poskytnutej virtuálnemu stroju.</translation> </message> <message> <source>MB</source> - <translation type="unfinished">MB</translation> + <translation>MB</translation> </message> <message> <source>Extended Features:</source> - <translation type="unfinished">RozÅ¡Ãrené vlastnosti:</translation> + <translation>RozÅ¡Ãrené vlastnosti:</translation> </message> <message> <source>When checked, the virtual machine will be given access to the 3D graphics capabilities available on the host.</source> - <translation type="unfinished"></translation> + <translation>Ak je zaÅ¡krtnuté, virtuálny stroj dostane prÃstup k 3D grafickým funkciám hostiteľa.</translation> </message> <message> <source>Enable &3D Acceleration</source> - <translation type="unfinished"></translation> + <translation>PovoliÅ¥ &3D akceleráciu</translation> </message> <message> <source>&Remote Display</source> - <translation type="unfinished"></translation> + <translation>&Vzdialený displej</translation> </message> <message> <source>When checked, the VM will act as a Remote Desktop Protocol (RDP) server, allowing remote clients to connect and operate the VM (when it is running) using a standard RDP client.</source> - <translation type="unfinished"></translation> + <translation>KeÄ je zaÅ¡krtnuté, virtuálny stroj bude slúžiÅ¥ ako Server vzdialenej plochy (RDP) umožňujúc vzdialeným klientom pripojiÅ¥ sa a pracovaÅ¥ na virtuálnom stroji (ak je spustený) s použitÃm Å¡tandardného klienta RDP.</translation> </message> <message> <source>&Enable Server</source> - <translation type="unfinished">&Zapnúť server</translation> + <translation>&Zapnúť server</translation> </message> <message> <source>Server &Port:</source> - <translation type="unfinished"></translation> + <translation>&Port servera:</translation> </message> <message> <source>Authentication &Method:</source> - <translation type="unfinished"></translation> + <translation>A&utentizaÄná metóda:</translation> </message> <message> <source>Defines the VRDP authentication method.</source> - <translation type="unfinished">UrÄuje autentifikaÄnú metódu VRDP.</translation> + <translation>UrÄuje autentizaÄnú metódu VRDP.</translation> </message> <message> <source>Authentication &Timeout:</source> - <translation type="unfinished"></translation> + <translation>ÄŒa&s na odpoveÄ pri autentizácii:</translation> </message> <message> <source>Specifies the timeout for guest authentication, in milliseconds.</source> - <translation type="unfinished">Uvádza expiraÄnú dobu autentifikácie hosÅ¥a, v milisekundách.</translation> + <translation>Uvádza expiraÄnú dobu autentizácie hosÅ¥a, v milisekundách.</translation> </message> <message> <source>you have assigned less than <b>%1</b> of video memory which is the minimum amount required for HD Video to be played efficiently.</source> - <translation type="unfinished"></translation> + <translation>priradili ste menej ako <b>%1</b> video pamäte, Äo je minimálne potrebné množstvo na efektÃvne prehrávanie HD videa.</translation> </message> <message> <source>When checked, the virtual machine will be given access to the Video Acceleration capabilities available on the host.</source> - <translation type="unfinished"></translation> + <translation>Ak je zaÅ¡krtnuté, virtuálny stroj dostane prÃstup k funkciám video akcelerácie na hostiteľskom poÄÃtaÄi.</translation> </message> <message> <source>Enable &2D Video Acceleration</source> - <translation type="unfinished"></translation> + <translation>PovoliÅ¥ &2D akceleráciu videa</translation> </message> <message> <source>The VRDP Server port number. You may specify <tt>0</tt> (zero), to select port 3389, the standard port for RDP.</source> - <translation type="unfinished"></translation> + <translation>ÄŒÃslo portu VRDP servera. Môžete zadaÅ¥ <tt>0</tt> (nula), ÄÃm vyberiete port 3389, Å¡tandardný port pre RDP.</translation> </message> </context> <context> @@ -8299,51 +8297,51 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá </message> <message> <source>General</source> - <translation type="unfinished">VÅ¡eobecné</translation> + <translation>VÅ¡eobecné</translation> </message> <message> <source>Storage</source> - <translation type="unfinished"></translation> + <translation>Úložisko</translation> </message> <message> <source>Hard Disks</source> - <translation type="unfinished">Pevné disky</translation> + <translation>Pevné disky</translation> </message> <message> <source>CD/DVD-ROM</source> - <translation type="unfinished">CD/DVD-ROM</translation> + <translation>CD/DVD-ROM</translation> </message> <message> <source>Floppy</source> - <translation type="unfinished">Disketa</translation> + <translation>Disketa</translation> </message> <message> <source>Audio</source> - <translation type="unfinished">Audio</translation> + <translation>Audio</translation> </message> <message> <source>Network</source> - <translation type="unfinished">SieÅ¥</translation> + <translation>SieÅ¥</translation> </message> <message> <source>Ports</source> - <translation type="unfinished"></translation> + <translation>Porty</translation> </message> <message> <source>Serial Ports</source> - <translation type="unfinished">Sériové porty</translation> + <translation>Sériové porty</translation> </message> <message> <source>Parallel Ports</source> - <translation type="unfinished">Paralelné porty</translation> + <translation>Paralelné porty</translation> </message> <message> <source>USB</source> - <translation type="unfinished">USB</translation> + <translation>USB</translation> </message> <message> <source>Shared Folders</source> - <translation type="unfinished">Zdieľané prieÄinky</translation> + <translation>Zdieľané prieÄinky</translation> </message> <message> <source>Remote Display</source> @@ -8351,15 +8349,15 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá </message> <message> <source>%1 - %2</source> - <translation type="unfinished"></translation> + <translation>%1 - %2</translation> </message> <message> <source>System</source> - <translation type="unfinished">Systém</translation> + <translation>Systém</translation> </message> <message> <source>Display</source> - <translation type="unfinished">Displej</translation> + <translation>Displej</translation> </message> <message> <source>you have selected a 64-bit guest OS type for this VM. As such guests require hardware virtualization (VT-x/AMD-V), this feature will be enabled automatically.</source> @@ -8371,7 +8369,7 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá </message> <message> <source>you have 2D Video Acceleration enabled. As 2D Video Acceleration is supported for Windows guests only, this feature will be disabled.</source> - <translation type="unfinished"></translation> + <translation>povolili ste 2D akceleráciu videa. Pretože 2D akcelerácia videa je podporovaná iba pre hosÅ¥ovské systémy s Windows, táto vlastnosÅ¥ bude vypnutá.</translation> </message> </context> <context> @@ -8413,19 +8411,19 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá </message> <message> <source>Displays the path where snapshots of this virtual machine will be stored. Be aware that snapshots can take quite a lot of disk space.</source> - <translation type="unfinished">UrÄuje cestu, kam budú ukladané snÃmky virtuálneho stroja. VÅ¡imnite si, že snÃmky môžu zaberaÅ¥ veľkú ÄasÅ¥ diskového priestoru.</translation> + <translation>UrÄuje cestu, kam budú ukladané snÃmky tohto virtuálneho stroja. Uvedomte si, že snÃmky môžu zaberaÅ¥ veľkú ÄasÅ¥ miesta na disku.</translation> </message> <message> <source>&Basic</source> - <translation type="unfinished">&Základné</translation> + <translation>&Základné</translation> </message> <message> <source>&Name:</source> - <translation type="unfinished">&Názov:</translation> + <translation>&Názov:</translation> </message> <message> <source>Displays the name of the virtual machine.</source> - <translation type="unfinished">Žobrazà názov virtuálneho stroja.</translation> + <translation>Zobrazà názov virtuálneho stroja.</translation> </message> <message> <source>Displays the operating system type that you plan to install into this virtual machine (called a guest operating system).</source> @@ -8461,7 +8459,7 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá </message> <message> <source>&Advanced</source> - <translation type="unfinished">&RozÅ¡Ãrené</translation> + <translation>&RozÅ¡Ãrené</translation> </message> <message> <source>Defines the boot device order. Use the checkboxes on the left to enable or disable individual boot devices. Move items up and down to change the device order.</source> @@ -8505,7 +8503,7 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá </message> <message> <source>Selects which clipboard data will be copied between the guest and the host OS. This feature requires Guest Additions to be installed in the guest OS.</source> - <translation type="unfinished">UrÄuje režim zdieľania schránky medzi hosÅ¥ovským a hostiteľským OS. VÅ¡imnite si, že táto vlastnosÅ¥ vyžaduje inÅ¡taláciu HosÅ¥ovských doplnkov v operaÄnom systéme hosÅ¥ovského stroja.</translation> + <translation>UrÄuje, ktoré dáta v schránke budú zdieľané medzi hosÅ¥ovským a hostiteľským OS. Táto vlastnosÅ¥ vyžaduje inÅ¡taláciu HosÅ¥ovských doplnkov v operaÄnom systéme hosÅ¥ovského stroja.</translation> </message> <message> <source>S&napshot Folder:</source> @@ -8537,11 +8535,11 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá </message> <message> <source>If checked, show the Mini ToolBar in Fullscreen and Seamless modes.</source> - <translation type="unfinished"></translation> + <translation>Ak je zaÅ¡krtnuté, zobrazà v režime na celú obrazovku a v režime plynulého prechodu malú liÅ¡tu nástrojov.</translation> </message> <message> <source>Show In &Fullscreen/Seamless</source> - <translation type="unfinished"></translation> + <translation>ZobraziÅ¥ v rež&ime celej obrazovky/plynulého prechodu</translation> </message> <message> <source>If checked, show the Mini ToolBar at the top of the screen, rather than in its default position at the bottom of the screen.</source> @@ -8549,7 +8547,7 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá </message> <message> <source>Show At &Top Of Screen</source> - <translation type="unfinished"></translation> + <translation>Z&obraziÅ¥ na vrchu obrazovky</translation> </message> </context> <context> @@ -8576,7 +8574,7 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá </message> <message> <source><nobr>Expand/Collapse&nbsp;Item</nobr></source> - <translation type="unfinished"></translation> + <translation><nobr>RozbaliÅ¥/zabaliÅ¥&nbsp;položku</nobr></translation> </message> <message> <source><nobr>Add&nbsp;Hard&nbsp;Disk</nobr></source> @@ -8600,103 +8598,103 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá </message> <message> <source>Add Controller</source> - <translation type="unfinished"></translation> + <translation>PridaÅ¥ radiÄ</translation> </message> <message> <source>Add IDE Controller</source> - <translation type="unfinished"></translation> + <translation>PridaÅ¥ radiÄ IDE</translation> </message> <message> <source>Add SATA Controller</source> - <translation type="unfinished"></translation> + <translation>PridaÅ¥ radiÄ SATA</translation> </message> <message> <source>Add SCSI Controller</source> - <translation type="unfinished"></translation> + <translation>PridaÅ¥ radiÄ SCSI</translation> </message> <message> <source>Add Floppy Controller</source> - <translation type="unfinished"></translation> + <translation>PridaÅ¥ radiÄ disketovej mechaniky</translation> </message> <message> <source>Remove Controller</source> - <translation type="unfinished"></translation> + <translation>OdstrániÅ¥ radiÄ</translation> </message> <message> <source>Add Attachment</source> - <translation type="unfinished"></translation> + <translation>PridaÅ¥ potomka</translation> </message> <message> <source>Add Hard Disk</source> - <translation type="unfinished"></translation> + <translation>PridaÅ¥ pevný disk</translation> </message> <message> <source>Add CD/DVD Device</source> - <translation type="unfinished"></translation> + <translation>PridaÅ¥ zariadenie CD/DVD</translation> </message> <message> <source>Add Floppy Device</source> - <translation type="unfinished"></translation> + <translation>PridaÅ¥ zariadenie disketovej mechaniky</translation> </message> <message> <source>Remove Attachment</source> - <translation type="unfinished"></translation> + <translation>OdstrániÅ¥ potomka</translation> </message> <message> <source>Adds a new controller to the end of the Storage Tree.</source> - <translation type="unfinished"></translation> + <translation>Pridá nový radiÄ na koniec stromu s úložiskami.</translation> </message> <message> <source>Removes the controller highlighted in the Storage Tree.</source> - <translation type="unfinished"></translation> + <translation>OdstrániÅ¥ vybraný radiÄ zo stromu s úložiskami.</translation> </message> <message> <source>Adds a new attachment to the Storage Tree using currently selected controller as parent.</source> - <translation type="unfinished"></translation> + <translation>Pridá nového potomka do stromu s úložiskami, kde vybraný radiÄ bude maÅ¥ úlohu rodiÄa.</translation> </message> <message> <source>Removes the attachment highlighted in the Storage Tree.</source> - <translation type="unfinished"></translation> + <translation>Odstráni potomka oznaÄeného v strome úložisk.</translation> </message> <message> <source>IDE Controller</source> - <translation type="unfinished"></translation> + <translation>RadiÄ IDE</translation> </message> <message> <source>SATA Controller</source> - <translation type="unfinished"></translation> + <translation>RadiÄ SATA</translation> </message> <message> <source>SCSI Controller</source> - <translation type="unfinished"></translation> + <translation>RadiÄ SCSI</translation> </message> <message> <source>Floppy Controller</source> - <translation type="unfinished"></translation> + <translation>RadiÄ disketovej mechaniky</translation> </message> <message> <source>Hard &Disk:</source> - <translation type="unfinished"></translation> + <translation>Pe&vný disk:</translation> </message> <message> <source>&CD/DVD Device:</source> - <translation type="unfinished"></translation> + <translation>&Zariadenie CD/DVD:</translation> </message> <message> <source>&Floppy Device:</source> - <translation type="unfinished"></translation> + <translation>Z&ariadenie disketovej mechaniky:</translation> </message> <message> <source>&Storage Tree</source> - <translation type="unfinished"></translation> + <translation>&Strom úložÃsk</translation> </message> <message> <source>Contains all storage controllers for this machine and the virtual images and host drives attached to them.</source> - <translation type="unfinished"></translation> + <translation>Obsahuje vÅ¡etky diskové radiÄe na tomto stroji, virtuálne obrazy a zariadenia hostiteľa k nim pripojené.</translation> </message> <message> <source>Information</source> - <translation type="unfinished"></translation> + <translation>Informácie</translation> </message> <message> <source>The Storage Tree can contain several controllers of different types. This machine currently has no controllers.</source> @@ -8704,11 +8702,11 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá </message> <message> <source>Attributes</source> - <translation type="unfinished"></translation> + <translation>Atribúty</translation> </message> <message> <source>&Name:</source> - <translation type="unfinished">&Názov:</translation> + <translation>&Názov:</translation> </message> <message> <source>Changes the name of the storage controller currently selected in the Storage Tree.</source> @@ -8716,7 +8714,7 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá </message> <message> <source>&Type:</source> - <translation type="unfinished"></translation> + <translation>&Typ:</translation> </message> <message> <source>Selects the sub-type of the storage controller currently selected in the Storage Tree.</source> @@ -8724,7 +8722,7 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá </message> <message> <source>S&lot:</source> - <translation type="unfinished"></translation> + <translation>S&lot:</translation> </message> <message> <source>Selects the slot on the storage controller used by this attachment. The available slots depend on the type of the controller and other attachments on it.</source> @@ -8756,27 +8754,27 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá </message> <message> <source>Virtual Size:</source> - <translation type="unfinished"></translation> + <translation>Virtuálna veľkosÅ¥</translation> </message> <message> <source>Actual Size:</source> - <translation type="unfinished"></translation> + <translation>SkutoÄná veľkosÅ¥</translation> </message> <message> <source>Size:</source> - <translation type="unfinished"></translation> + <translation>VeľkosÅ¥:</translation> </message> <message> <source>Location:</source> - <translation type="unfinished"></translation> + <translation>Umiestnenie:</translation> </message> <message> <source>Type (Format):</source> - <translation type="unfinished"></translation> + <translation>Typ (formát):</translation> </message> <message> <source>Attached To:</source> - <translation type="unfinished"></translation> + <translation>Pripojený k:</translation> </message> </context> <context> @@ -8795,7 +8793,7 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá </message> <message> <source>&Enable Network Adapter</source> - <translation type="unfinished">&PovoliÅ¥ sieÅ¥ový adaptér</translation> + <translation>&PovoliÅ¥ sieÅ¥ový adaptér</translation> </message> <message> <source>Selects the type of the virtual network adapter. Depending on this value, VirtualBox will provide different network hardware to the virtual machine.</source> @@ -8803,7 +8801,7 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá </message> <message> <source>&Attached to:</source> - <translation type="unfinished"></translation> + <translation>P&ripojený k:</translation> </message> <message> <source>Controls how this virtual adapter is attached to the real network of the Host OS.</source> @@ -8987,82 +8985,82 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá <name>VBoxVMSettingsParallelPage</name> <message> <source>Duplicate port number selected </source> - <translation type="unfinished">Je vybrané duplikované ÄÃslo portu</translation> + <translation>Je vybrané duplikované ÄÃslo portu </translation> </message> <message> <source>Port path not specified </source> - <translation type="unfinished">Cesta k portu nie je definovaná.</translation> + <translation>Cesta k portu nie je definovaná </translation> </message> <message> <source>Duplicate port path entered </source> - <translation type="unfinished">Je zadaná duplikovaná cesta k portu</translation> + <translation>Je zadaná duplikovaná cesta k portu</translation> </message> </context> <context> <name>VBoxVMSettingsSF</name> <message> <source>Adds a new shared folder definition.</source> - <translation type="unfinished">Pridá definÃciu nového zdieľaného prieÄinka.</translation> + <translation>Pridá definÃciu nového zdieľaného prieÄinka.</translation> </message> <message> <source>Edits the selected shared folder definition.</source> - <translation type="unfinished">Upravà definÃciu vybraného zdieľaného prieÄinka.</translation> + <translation>Upravà definÃciu vybraného zdieľaného prieÄinka.</translation> </message> <message> <source>Removes the selected shared folder definition.</source> - <translation type="unfinished">Odstráni definÃciu vybraného virtuálneho prieÄinka.</translation> + <translation>Odstráni definÃciu vybraného virtuálneho prieÄinka.</translation> </message> <message> <source> Machine Folders</source> - <translation type="unfinished">PrieÄinky stroja</translation> + <translation> PrieÄinky stroja</translation> </message> <message> <source> Transient Folders</source> - <translation type="unfinished">DoÄasné prieÄinky</translation> + <translation> DoÄasné prieÄinky</translation> </message> <message> <source>Full</source> - <translation type="unfinished">Plný</translation> + <translation>Plný</translation> </message> <message> <source>Read-only</source> - <translation type="unfinished">Iba na ÄÃtanie</translation> + <translation>Iba na ÄÃtanie</translation> </message> <message> <source>Lists all shared folders accessible to this machine. Use 'net use x: \\vboxsvr\share' to access a shared folder named <i>share</i> from a DOS-like OS, or 'mount -t vboxsf share mount_point' to access it from a Linux OS. This feature requires Guest Additions.</source> - <translation type="unfinished"></translation> + <translation>Zobrazà vÅ¡etky zdieľané prieÄinky dostupné pre tento poÄÃtaÅ¥. Použite 'net use x: \\vboxsrv\share' pre prÃstup k zdieľanému prieÄinku s názvom <i>share</i> pre operaÄný systém na báze DOSu alebo 'mount -t vboxsf share mount_point' pre prÃstup k prieÄinku z operaÄného systému Linux. Táto vlastnosÅ¥ vyžaduje inÅ¡taláciu HosÅ¥ovských doplnkov.</translation> </message> <message> <source>Name</source> - <translation type="unfinished">Názov</translation> + <translation>Názov</translation> </message> <message> <source>Path</source> - <translation type="unfinished">Cesta</translation> + <translation>Cesta</translation> </message> <message> <source>Access</source> - <translation type="unfinished">PrÃstup</translation> + <translation>PrÃstup</translation> </message> <message> <source> Global Folders</source> - <translation type="unfinished"></translation> + <translation> Globálne prieÄinky</translation> </message> <message> <source>&Add Shared Folder</source> - <translation type="unfinished"></translation> + <translation>&PridaÅ¥ zdieľaný prieÄinok</translation> </message> <message> <source>&Edit Shared Folder</source> - <translation type="unfinished"></translation> + <translation>&UpraviÅ¥ zdieľaný prieÄinok</translation> </message> <message> <source>&Remove Shared Folder</source> - <translation type="unfinished"></translation> + <translation>O&dstrániÅ¥ zdieľaný prieÄinok</translation> </message> <message> <source>&Folders List</source> - <translation type="unfinished"></translation> + <translation>&Zoznamy prieÄinkov</translation> </message> </context> <context> @@ -9172,15 +9170,15 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá <name>VBoxVMSettingsSerialPage</name> <message> <source>Duplicate port number selected </source> - <translation type="unfinished">Je vybrané duplikované ÄÃslo portu</translation> + <translation>Je vybrané duplikované ÄÃslo portu </translation> </message> <message> <source>Port path not specified </source> - <translation type="unfinished">Cesta k portu nie je definovaná.</translation> + <translation>Cesta k portu nie je definovaná </translation> </message> <message> <source>Duplicate port path entered </source> - <translation type="unfinished">Je zadaná duplikovaná cesta k portu</translation> + <translation>Je zadaná duplikovaná cesta k portu</translation> </message> </context> <context> @@ -9211,12 +9209,12 @@ preskoÄiÅ¥ a pripojiÅ¥ pevné disky neskôr pomocou dialógu Nastavenia virtuá </message> <message> <source><qt>%1&nbsp;MB</qt></source> - <translation type="unfinished"><qt>%1&nbsp;MB</qt></translation> + <translation><qt>%1&nbsp;MB</qt></translation> </message> <message> <source><qt>%1&nbsp;CPU</qt></source> <comment>%1 is 1 for now</comment> - <translation type="unfinished"></translation> + <translation><qt>%1&nbsp;CPU</qt></translation> </message> <message> <source>&Motherboard</source> diff --git a/src/VBox/Frontends/VirtualBox/nls/VirtualBox_sr.ts b/src/VBox/Frontends/VirtualBox/nls/VirtualBox_sr.ts index 7ef2e640c..4260a2d5c 100644 --- a/src/VBox/Frontends/VirtualBox/nls/VirtualBox_sr.ts +++ b/src/VBox/Frontends/VirtualBox/nls/VirtualBox_sr.ts @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.0" language="sr_YU"> +<!DOCTYPE TS><TS version="1.1" language="sr_YU"> +<defaultcodec></defaultcodec> <context> <name>@@@</name> <message> @@ -612,7 +612,7 @@ </message> <message> <source>&Restore current snapshot '%1'</source> - <translation type="unfinished"></translation> + <translation>Врати актуелну Ñлику '%1'</translation> </message> </context> <context> @@ -1185,7 +1185,7 @@ p, li { white-space: pre-wrap; } </message> <message> <source>Appliance Export Settings</source> - <translation type="unfinished"></translation> + <translation>Параметри извоза ÑаÑтава</translation> </message> <message> <source>Here you can change additional configuration values of the selected virtual machines. You can modify most of the properties shown by double-clicking on the items.</source> @@ -1390,15 +1390,15 @@ p, li { white-space: pre-wrap; } </message> <message> <source>When checked, the Dock Icon will reflect the VM window content in realtime.</source> - <translation></translation> + <translation>Када унето, Dock икона показује Ñадржај Ð’Ðœ.</translation> </message> <message> <source>&Dock Icon Realtime Preview</source> - <translation></translation> + <translation>Dock икона реални преглед</translation> </message> <message> <source>&Auto show Dock && Menubar in fullscreen</source> - <translation type="unfinished"></translation> + <translation>Ðуто покажи Dock траку у пуном-екрану</translation> </message> </context> <context> @@ -2716,7 +2716,7 @@ p, li { white-space: pre-wrap; } <message> <source>Guru Meditation</source> <comment>MachineState</comment> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <source>Teleporting</source> @@ -2791,7 +2791,7 @@ p, li { white-space: pre-wrap; } <message> <source>Paravirtualized Network (virtio-net)</source> <comment>NetworkAdapterType</comment> - <translation type="unfinished"></translation> + <translation>Paravirtualized мрежа (virtio-net)</translation> </message> <message> <source>I82078</source> @@ -2873,55 +2873,55 @@ p, li { white-space: pre-wrap; } </message> <message numerus="yes"> <source>%n year(s)</source> - <translation type="unfinished"> - <numerusform></numerusform> - <numerusform></numerusform> - <numerusform></numerusform> + <translation> + <numerusform>%n годиа</numerusform> + <numerusform>%n године</numerusform> + <numerusform>%n година</numerusform> </translation> </message> <message numerus="yes"> <source>%n month(s)</source> - <translation type="unfinished"> - <numerusform></numerusform> - <numerusform></numerusform> - <numerusform></numerusform> + <translation> + <numerusform>%n меÑец</numerusform> + <numerusform>%n меÑеца</numerusform> + <numerusform>%n меÑеца</numerusform> </translation> </message> <message numerus="yes"> <source>%n day(s)</source> - <translation type="unfinished"> - <numerusform></numerusform> - <numerusform></numerusform> - <numerusform></numerusform> + <translation> + <numerusform>%n дан</numerusform> + <numerusform>%n дана</numerusform> + <numerusform>%n дана</numerusform> </translation> </message> <message numerus="yes"> <source>%n hour(s)</source> - <translation type="unfinished"> - <numerusform></numerusform> - <numerusform></numerusform> - <numerusform></numerusform> + <translation> + <numerusform>%n Ñат</numerusform> + <numerusform>%n Ñата</numerusform> + <numerusform>%n Ñата</numerusform> </translation> </message> <message numerus="yes"> <source>%n minute(s)</source> - <translation type="unfinished"> - <numerusform></numerusform> - <numerusform></numerusform> - <numerusform></numerusform> + <translation> + <numerusform>%n минут</numerusform> + <numerusform>%n минута</numerusform> + <numerusform>%n минута</numerusform> </translation> </message> <message numerus="yes"> <source>%n second(s)</source> - <translation type="unfinished"> - <numerusform></numerusform> - <numerusform></numerusform> - <numerusform></numerusform> + <translation> + <numerusform>%n Ñекунд</numerusform> + <numerusform>%n Ñекунда</numerusform> + <numerusform>%n Ñекунда</numerusform> </translation> </message> <message> <source>(CD/DVD)</source> - <translation type="unfinished"></translation> + <translation>(CD/DVD)</translation> </message> </context> <context> @@ -2954,7 +2954,7 @@ p, li { white-space: pre-wrap; } </message> <message> <source>Reading Appliance ...</source> - <translation type="unfinished"></translation> + <translation>Читање ÑредÑтва...</translation> </message> </context> <context> @@ -3022,7 +3022,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This wizard will guide you through importing an appliance. </p> <p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Use the <span style=" font-weight:600;">Next</span> button to go the next page of the wizard and the <span style=" font-weight:600;">Back</span> button to return to the previous page.</p> <p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">VirtualBox currently supports importing appliances saved in the Open Virtualization Format (OVF). To continue, select the file to import below:</p></body></html></source> - <translation type="unfinished"></translation> + <translation><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">ÐÑиÑтент вам помаже у увозу ÑредÑтва. </p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">КориÑтити <span style=" font-weight:600;">Даље</span> за Ñледећи лиÑÑ‚ и <span style=" font-weight:600;">Ðазад</span> за предходни лиÑÑ‚.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">VirtualBox актуелно подржава увоз ÑредÑтва из Open Virtualization Format (OVF). За наÑтавак, одабрати датотеку за увоз:</p></body></html></translation> </message> </context> <context> @@ -4343,31 +4343,31 @@ p, li { white-space: pre-wrap; } </message> <message> <source>Failed to open appliance.</source> - <translation type="unfinished"></translation> + <translation>Погрешно отварање ÑредÑтва.</translation> </message> <message> <source>Failed to open/interpret appliance <b>%1</b>.</source> - <translation type="unfinished"></translation> + <translation>Погрешно отварање/интерпретирање ÑредÑтва <b>%1</b>.</translation> </message> <message> <source>Failed to import appliance <b>%1</b>.</source> - <translation type="unfinished"></translation> + <translation>Погрешан увоз ÑредÑтва <b>%1</b>.</translation> </message> <message> <source>Failed to create appliance.</source> - <translation type="unfinished"></translation> + <translation>Погрешна креација ÑредÑтва.</translation> </message> <message> <source>Failed to prepare the export of the appliance <b>%1</b>.</source> - <translation type="unfinished"></translation> + <translation>Погрешно Ñпремање извоза ÑредÑтва <b>%1</b>.</translation> </message> <message> <source>Failed to create an appliance.</source> - <translation type="unfinished"></translation> + <translation>ÐеуÑпешна креација ÑредÑтва.</translation> </message> <message> <source>Failed to export appliance <b>%1</b>.</source> - <translation type="unfinished"></translation> + <translation>Погрешан извоз ÑредÑтва <b>%1</b>.</translation> </message> <message> <source><p>Deleting this host-only network will remove the host-only interface this network is based on. Do you want to remove the (host-only network) interface <nobr><b>%1</b>?</nobr></p><p><b>Note:</b> this interface may be in use by one or more virtual network adapters belonging to one of your VMs. After it is removed, these adapters will no longer be usable until you correct their settings by either choosing a different interface name or a different adapter attachment type.</p></source> @@ -4399,7 +4399,7 @@ p, li { white-space: pre-wrap; } </message> <message> <source>You seem to have the USBFS filesystem mounted at /sys/bus/usb/drivers. We strongly recommend that you change this, as it is a severe mis-configuration of your system which could cause USB devices to fail in unexpected ways.</source> - <translation type="unfinished"></translation> + <translation>Делује да имате USBFS ÑиÑтем монтиран на /sys/bus/usb/drivers. Строго препоручујемо да то промените, пошто је то погрешно подешавање ÑиÑтема што може да доводи до грешке USB уређаја.</translation> </message> <message> <source>You are running an EXPERIMENTAL build of VirtualBox. This version is not suitable for production use.</source> @@ -4534,12 +4534,12 @@ p, li { white-space: pre-wrap; } </message> <message> <source><p>Are you sure you want to delete the CD/DVD-ROM device?</p><p>You will not be able to mount any CDs or ISO images or install the Guest Additions without it!</p></source> - <translation type="unfinished"></translation> + <translation><p>Сигурн избриÑати CD/DVD-ROM уређај?</p><p>Ðећете моћи да монтирате CD или ISO Ñлике или д аинÑталирате Додатак!</p></translation> </message> <message> <source>&Remove</source> <comment>medium</comment> - <translation type="unfinished"></translation> + <translation>Уклони</translation> </message> </context> <context> @@ -4619,12 +4619,12 @@ p, li { white-space: pre-wrap; } <message> <source>%1, %2 remaining</source> <comment>You may wish to translate this more like "Time remaining: %1, %2"</comment> - <translation type="unfinished"></translation> + <translation>ОÑтало: %1, %2</translation> </message> <message> <source>%1 remaining</source> <comment>You may wish to translate this more like "Time remaining: %1"</comment> - <translation type="unfinished"></translation> + <translation>ОÑтало: %1</translation> </message> </context> <context> @@ -4922,7 +4922,7 @@ p, li { white-space: pre-wrap; } </message> <message> <source>Export one or more VirtualBox virtual machines as an appliance</source> - <translation type="unfinished"></translation> + <translation>Извоз једне или више Ð’Ðœ као ÑредÑтво</translation> </message> <message> <source>Re&fresh</source> @@ -5123,7 +5123,7 @@ p, li { white-space: pre-wrap; } </message> <message> <source> (%1 ago)</source> - <translation type="unfinished"></translation> + <translation> (пре %1)</translation> </message> </context> <context> @@ -5153,10 +5153,10 @@ p, li { white-space: pre-wrap; } </message> <message numerus="yes"> <source>Warning: You are taking a snapshot of a running machine which has %n immutable image(s) attached to it. As long as you are working from this snapshot the immutable image(s) will not be reset to avoid loss of data.</source> - <translation type="unfinished"> - <numerusform></numerusform> - <numerusform></numerusform> - <numerusform></numerusform> + <translation> + <numerusform>Пажња: Узимате Ñлику машине која ради и која има %n непроменљиву Ñлику прикачену. Све док радите Ñа овом Ñликом непроменљива Ñлика неће бити риÑетована због Ñпречавања губљења података.</numerusform> + <numerusform>Пажња: Узимате Ñлику машине која ради и која има %n непроменљиве Ñлике прикачене. Све док радите Ñа овом Ñликом непроменљиве Ñлике неће бити риÑетоване због Ñпречавања губљења података.</numerusform> + <numerusform>Пажња: Узимате Ñлику машине која ради и која има %n непроменљиве Ñлике прикачене. Све док радите Ñа овом Ñликом непроменљиве Ñлике неће бити риÑетоване због Ñпречавања губљења података.</numerusform> </translation> </message> </context> @@ -6644,7 +6644,7 @@ p, li { white-space: pre-wrap; } </message> <message> <source>&Cable connected</source> - <translation type="unfinished">Привезан каблом</translation> + <translation>Привезан каблом</translation> </message> </context> <context> @@ -6951,7 +6951,7 @@ p, li { white-space: pre-wrap; } </message> <message> <source>Displays the base I/O port address of this serial port. Valid values are integer numbers in range from <tt>0</tt> to <tt>0xFFFF</tt>.</source> - <translation type="unfinished"></translation> + <translation>Показује базну I/O адреÑу Ñеријалног порта. ВредноÑти Ñу бројеви између <tt>0</tt> и <tt>0xFFFF</tt>.</translation> </message> </context> <context> diff --git a/src/VBox/Frontends/VirtualBox/nls/qt_ca_VA.ts b/src/VBox/Frontends/VirtualBox/nls/qt_ca_VA.ts new file mode 100644 index 000000000..578f32a89 --- /dev/null +++ b/src/VBox/Frontends/VirtualBox/nls/qt_ca_VA.ts @@ -0,0 +1,5298 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="ca-va"> +<context> + <name>AudioOutput</name> + <message> + <source><html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html></source> + <translation><html>El dispositiu de reproducció de so <b>%1</b> no funciona.<br/>S'està tornant a <b>%2</b>.</html></translation> + </message> + <message> + <source><html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html></source> + <translation><html>S'està canviat al dispositiu de reproducció <b>%1</b><br/>que és disponible i té una preferència major.</html></translation> + </message> + <message> + <source>Revert back to device '%1'</source> + <translation>Torna al dispositiu '%1'</translation> + </message> +</context> +<context> + <name>Phonon::</name> + <message> + <source>Notifications</source> + <translation>Notificacions</translation> + </message> + <message> + <source>Music</source> + <translation>Música</translation> + </message> + <message> + <source>Video</source> + <translation>VÃdeo</translation> + </message> + <message> + <source>Communication</source> + <translation>Comunicació</translation> + </message> + <message> + <source>Games</source> + <translation>Jocs</translation> + </message> + <message> + <source>Accessibility</source> + <translation>Accessibilitat</translation> + </message> +</context> +<context> + <name>Phonon::Gstreamer::Backend</name> + <message> + <source>Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. + Some video features have been disabled.</source> + <translation>AvÃs: Pareix que no teniu instal·lat el paquet gstreamer0.10-plugins-good. + S'han deshabilitat algunes caracterÃstiques de vÃdeo.</translation> + </message> + <message> + <source>Warning: You do not seem to have the base GStreamer plugins installed. + All audio and video support has been disabled</source> + <translation>AvÃs: Pareix que no teniu instal·lat els connectors bà sics de GStreamer. + S'ha deshabilitat el suport per a vÃdeo i à udio</translation> + </message> +</context> +<context> + <name>Phonon::Gstreamer::MediaObject</name> + <message> + <source>Cannot start playback. + +Check your Gstreamer installation and make sure you +have libgstreamer-plugins-base installed.</source> + <translation>No es pot iniciar la reproducció + +Comproveu la instal·lació de GStreamer i assegureu-vos +que teniu instal·lat el connector libgstreamer-plugins-base.</translation> + </message> + <message numerus="yes"> + <source>A required codec is missing. You need to install the following codec(s) to play this content: %0</source> + <translation> + <numerusform>No es troba un còdec requerit. Necessiteu instal·lar el còdec següent per reproduir este contingut: %0</numerusform> + <numerusform>No es troba un còdec requerit. Necessiteu instal·lar els còdecs següents per reproduir este contingut: %0</numerusform> + <numerusform>No es troba un còdec requerit. Necessiteu instal·lar els còdecs següents per reproduir este contingut: %0</numerusform> + </translation> + </message> + <message> + <source>Could not open media source.</source> + <translation>No es pot obrir el suport multimèdia.</translation> + </message> + <message> + <source>Invalid source type.</source> + <translation>Tipus de font no và lida.</translation> + </message> + <message> + <source>Could not locate media source.</source> + <translation>No es pot trobar el suport multimèdia.</translation> + </message> + <message> + <source>Could not open audio device. The device is already in use.</source> + <translation>No es pot obrir el dispositiu d'à udio. El dispositiu ja es troba en ús.</translation> + </message> + <message> + <source>Could not decode media source.</source> + <translation>No es pot decodificar el suport multimèdia.</translation> + </message> +</context> +<context> + <name>Phonon::VolumeSlider</name> + <message> + <source>Volume: %1%</source> + <translation>Volum: %1%</translation> + </message> + <message> + <source>Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1%</source> + <translation>Feu servir el següent desplaçador per a ajustar el volum. El lÃmit esquerre serà un 0% i el lÃmit dret serà %1%</translation> + </message> +</context> +<context> + <name>Q3Accel</name> + <message> + <source>%1, %2 not defined</source> + <translation>%1, %2 no definit</translation> + </message> + <message> + <source>Ambiguous %1 not handled</source> + <translation>%1 ambigu no gestionat</translation> + </message> +</context> +<context> + <name>Q3DataTable</name> + <message> + <source>True</source> + <translation>Vertader</translation> + </message> + <message> + <source>False</source> + <translation>Fals</translation> + </message> + <message> + <source>Insert</source> + <translation>Insereix</translation> + </message> + <message> + <source>Update</source> + <translation>Actualitza</translation> + </message> + <message> + <source>Delete</source> + <translation>Suprimeix</translation> + </message> +</context> +<context> + <name>Q3FileDialog</name> + <message> + <source>Copy or Move a File</source> + <translation>Copia o mou un fitxer</translation> + </message> + <message> + <source>Read: %1</source> + <translation>Llig: %1</translation> + </message> + <message> + <source>Write: %1</source> + <translation>Escriu: %1</translation> + </message> + <message> + <source>Cancel</source> + <translation>Cancel·la</translation> + </message> + <message> + <source>All Files (*)</source> + <translation>Tots els fitxers (*)</translation> + </message> + <message> + <source>Name</source> + <translation>Nom</translation> + </message> + <message> + <source>Size</source> + <translation>Mida</translation> + </message> + <message> + <source>Type</source> + <translation>Tipus</translation> + </message> + <message> + <source>Date</source> + <translation>Data</translation> + </message> + <message> + <source>Attributes</source> + <translation>Atributs</translation> + </message> + <message> + <source>&OK</source> + <translation>&D'acord</translation> + </message> + <message> + <source>Look &in:</source> + <translation>C&erca a:</translation> + </message> + <message> + <source>File &name:</source> + <translation>&Nom de fitxer:</translation> + </message> + <message> + <source>File &type:</source> + <translation>&Tipus de fitxer:</translation> + </message> + <message> + <source>Back</source> + <translation>Arrere</translation> + </message> + <message> + <source>One directory up</source> + <translation>Directori superior</translation> + </message> + <message> + <source>Create New Folder</source> + <translation>Crea nova carpeta</translation> + </message> + <message> + <source>List View</source> + <translation>Visualitza com a llista</translation> + </message> + <message> + <source>Detail View</source> + <translation>Vista detallada</translation> + </message> + <message> + <source>Preview File Info</source> + <translation>Mostra informació del fitxer</translation> + </message> + <message> + <source>Preview File Contents</source> + <translation>Mostra continguts del fitxer</translation> + </message> + <message> + <source>Read-write</source> + <translation>Lectura-escriptura</translation> + </message> + <message> + <source>Read-only</source> + <translation>Només-lectura</translation> + </message> + <message> + <source>Write-only</source> + <translation>Només-escriptura</translation> + </message> + <message> + <source>Inaccessible</source> + <translation>Inaccessible</translation> + </message> + <message> + <source>Symlink to File</source> + <translation>Enllaç simbòlic a fitxer</translation> + </message> + <message> + <source>Symlink to Directory</source> + <translation>Enllaç simbòlic a directori</translation> + </message> + <message> + <source>Symlink to Special</source> + <translation>Enllaç simbòlic a especial</translation> + </message> + <message> + <source>File</source> + <translation>Fitxer</translation> + </message> + <message> + <source>Dir</source> + <translation>Dir</translation> + </message> + <message> + <source>Special</source> + <translation>Especial</translation> + </message> + <message> + <source>Open</source> + <translation>Obri</translation> + </message> + <message> + <source>Save As</source> + <translation>Anomena i alça</translation> + </message> + <message> + <source>&Open</source> + <translation>&Obri</translation> + </message> + <message> + <source>&Save</source> + <translation>&Alça</translation> + </message> + <message> + <source>&Rename</source> + <translation>&Canvia el nom</translation> + </message> + <message> + <source>&Delete</source> + <translation>&Suprimeix</translation> + </message> + <message> + <source>R&eload</source> + <translation>To&rna a carregar</translation> + </message> + <message> + <source>Sort by &Name</source> + <translation>Ordena per &nom</translation> + </message> + <message> + <source>Sort by &Size</source> + <translation>Ordena per &mida</translation> + </message> + <message> + <source>Sort by &Date</source> + <translation>Ordena per &data</translation> + </message> + <message> + <source>&Unsorted</source> + <translation>&Sense orde</translation> + </message> + <message> + <source>Sort</source> + <translation>Ordena</translation> + </message> + <message> + <source>Show &hidden files</source> + <translation>Mostra els fitxers &ocults</translation> + </message> + <message> + <source>the file</source> + <translation>el fitxer</translation> + </message> + <message> + <source>the directory</source> + <translation>el directori</translation> + </message> + <message> + <source>the symlink</source> + <translation>l'enllaç simbòlic</translation> + </message> + <message> + <source>Delete %1</source> + <translation>Suprimeix %1</translation> + </message> + <message> + <source><qt>Are you sure you wish to delete %1 "%2"?</qt></source> + <translation><qt>Esteu segur que voleu esborrar %1 "%2"?</qt></translation> + </message> + <message> + <source>&Yes</source> + <translation>&SÃ</translation> + </message> + <message> + <source>&No</source> + <translation>&No</translation> + </message> + <message> + <source>New Folder 1</source> + <translation>Nova carpeta 1</translation> + </message> + <message> + <source>New Folder</source> + <translation>Nova carpeta</translation> + </message> + <message> + <source>New Folder %1</source> + <translation>Nova carpeta %1</translation> + </message> + <message> + <source>Find Directory</source> + <translation>Cerca directori</translation> + </message> + <message> + <source>Directories</source> + <translation>Directoris</translation> + </message> + <message> + <source>Directory:</source> + <translation>Directori:</translation> + </message> + <message> + <source>Error</source> + <translation>Error</translation> + </message> + <message> + <source>%1 +File not found. +Check path and filename.</source> + <translation>%1 +No s'ha trobat el fitxer. +Comproveu la ruta i el nom del fitxer.</translation> + </message> +</context> +<context> + <name>Q3LocalFs</name> + <message> + <source>Could not read directory +%1</source> + <translation>No es pot llegir el directori +%1</translation> + </message> + <message> + <source>Could not create directory +%1</source> + <translation>No es pot crear el directori +%1</translation> + </message> + <message> + <source>Could not remove file or directory +%1</source> + <translation>No es pot eliminar el fitxer o el directori +%1</translation> + </message> + <message> + <source>Could not rename +%1 +to +%2</source> + <translation>No es pot canviar el nom +%1 +a +%2</translation> + </message> + <message> + <source>Could not open +%1</source> + <translation>No es pot obrir +%1</translation> + </message> + <message> + <source>Could not write +%1</source> + <translation>No es pot escriure +%1</translation> + </message> +</context> +<context> + <name>Q3MainWindow</name> + <message> + <source>Line up</source> + <translation>Alinea</translation> + </message> + <message> + <source>Customize...</source> + <translation>Personalitza...</translation> + </message> +</context> +<context> + <name>Q3NetworkProtocol</name> + <message> + <source>Operation stopped by the user</source> + <translation>Operació aturada per l'usuari</translation> + </message> +</context> +<context> + <name>Q3ProgressDialog</name> + <message> + <source>Cancel</source> + <translation>Cancel·la</translation> + </message> +</context> +<context> + <name>Q3TabDialog</name> + <message> + <source>OK</source> + <translation>D'acord</translation> + </message> + <message> + <source>Apply</source> + <translation>Aplica</translation> + </message> + <message> + <source>Help</source> + <translation>Ajuda</translation> + </message> + <message> + <source>Defaults</source> + <translation>Per defecte</translation> + </message> + <message> + <source>Cancel</source> + <translation>Cancel·la</translation> + </message> +</context> +<context> + <name>Q3TextEdit</name> + <message> + <source>&Undo</source> + <translation>&Desfés</translation> + </message> + <message> + <source>&Redo</source> + <translation>&Refés</translation> + </message> + <message> + <source>Cu&t</source> + <translation>Re&talla</translation> + </message> + <message> + <source>&Copy</source> + <translation>&Copia</translation> + </message> + <message> + <source>&Paste</source> + <translation>Engan&xa</translation> + </message> + <message> + <source>Clear</source> + <translation>Neteja</translation> + </message> + <message> + <source>Select All</source> + <translation>Selecciona-ho tot</translation> + </message> +</context> +<context> + <name>Q3TitleBar</name> + <message> + <source>System</source> + <translation>Sistema</translation> + </message> + <message> + <source>Restore up</source> + <translation>Restaura a sobre</translation> + </message> + <message> + <source>Minimize</source> + <translation>Minimitza</translation> + </message> + <message> + <source>Restore down</source> + <translation>Restaura a sota</translation> + </message> + <message> + <source>Maximize</source> + <translation>Maximitza</translation> + </message> + <message> + <source>Close</source> + <translation>Tanca</translation> + </message> + <message> + <source>Contains commands to manipulate the window</source> + <translation>Conté ordes per a manipular la finestra</translation> + </message> + <message> + <source>Puts a minimized back to normal</source> + <translation>Restaura una finestra minimitzada a l'estat normal</translation> + </message> + <message> + <source>Moves the window out of the way</source> + <translation>Mou la finestra fora de l'espai visible</translation> + </message> + <message> + <source>Puts a maximized window back to normal</source> + <translation>Restaura una finestra maximitzada a l'estat normal</translation> + </message> + <message> + <source>Makes the window full screen</source> + <translation>Fa que la finestra ocupi tota la pantalla</translation> + </message> + <message> + <source>Closes the window</source> + <translation>Tanca la finestra</translation> + </message> + <message> + <source>Displays the name of the window and contains controls to manipulate it</source> + <translation>Mostra el nom de la finestra i conté controls per a manipular-la</translation> + </message> +</context> +<context> + <name>Q3ToolBar</name> + <message> + <source>More...</source> + <translation>Més...</translation> + </message> +</context> +<context> + <name>Q3UrlOperator</name> + <message> + <source>The protocol `%1' is not supported</source> + <translation>El protocol `%1' no està suportat</translation> + </message> + <message> + <source>The protocol `%1' does not support listing directories</source> + <translation>El protocol `%1' no admet llistat de directoris</translation> + </message> + <message> + <source>The protocol `%1' does not support creating new directories</source> + <translation>El protocol `%1' no admet la creació de nous directoris</translation> + </message> + <message> + <source>The protocol `%1' does not support removing files or directories</source> + <translation>El protocol `%1' no admet l'eliminació de fitxers o directoris</translation> + </message> + <message> + <source>The protocol `%1' does not support renaming files or directories</source> + <translation>El protocol `%1' no admet el canvi de nom de fitxers o directoris</translation> + </message> + <message> + <source>The protocol `%1' does not support getting files</source> + <translation>El protocol `%1' no admet l'obtenció de fitxers</translation> + </message> + <message> + <source>The protocol `%1' does not support putting files</source> + <translation>El protocol `%1' no admet afegir-hi fitxers</translation> + </message> + <message> + <source>The protocol `%1' does not support copying or moving files or directories</source> + <translation>El protocol `%1' no admet la còpia o desplaçament de fitxers o directoris</translation> + </message> + <message> + <source>(unknown)</source> + <translation>(desconegut)</translation> + </message> +</context> +<context> + <name>Q3Wizard</name> + <message> + <source>&Cancel</source> + <translation>&Cancel·la</translation> + </message> + <message> + <source>< &Back</source> + <translation>< &Arrere</translation> + </message> + <message> + <source>&Next ></source> + <translation>Següe&nt ></translation> + </message> + <message> + <source>&Finish</source> + <translation>&Finalitza</translation> + </message> + <message> + <source>&Help</source> + <translation>A&juda</translation> + </message> +</context> +<context> + <name>QAbstractSocket</name> + <message> + <source>Host not found</source> + <translation>No s'ha trobat l'amfitrió</translation> + </message> + <message> + <source>Connection refused</source> + <translation>S'ha rebutjat la connexió</translation> + </message> + <message> + <source>Socket operation timed out</source> + <translation>S'ha excedit el temps d'espera en l'operació del sòcol</translation> + </message> + <message> + <source>Socket is not connected</source> + <translation>No s'ha connectat el sòcol</translation> + </message> +</context> +<context> + <name>QAbstractSpinBox</name> + <message> + <source>&Step up</source> + <translation>Pa&s amunt</translation> + </message> + <message> + <source>Step &down</source> + <translation>Pas a&vall</translation> + </message> + <message> + <source>&Select All</source> + <translation>&Selecciona-ho tot</translation> + </message> +</context> +<context> + <name>QApplication</name> + <message> + <source>Activate</source> + <translation>Activa</translation> + </message> + <message> + <source>Executable '%1' requires Qt %2, found Qt %3.</source> + <translation>L'executable '%1' requereix Qt %2, però s'ha trobat Qt %3.</translation> + </message> + <message> + <source>Incompatible Qt Library Error</source> + <translation>Error de biblioteca Qt incompatible</translation> + </message> + <message> + <source>QT_LAYOUT_DIRECTION</source> + <comment>Translate this string to the string 'LTR' in left-to-right languages or to 'RTL' in right-to-left languages (such as Hebrew and Arabic) to get proper widget layout.</comment> + <translation>LTR</translation> + </message> + <message> + <source>Activates the program's main window</source> + <translation>Activa la finestra principal del programa</translation> + </message> +</context> +<context> + <name>QCheckBox</name> + <message> + <source>Uncheck</source> + <translation>Desactiva</translation> + </message> + <message> + <source>Check</source> + <translation>Activa</translation> + </message> + <message> + <source>Toggle</source> + <translation>Commuta</translation> + </message> +</context> +<context> + <name>QColorDialog</name> + <message> + <source>Hu&e:</source> + <translation>&MatÃs:</translation> + </message> + <message> + <source>&Sat:</source> + <translation>&Sat:</translation> + </message> + <message> + <source>&Val:</source> + <translation>&Val:</translation> + </message> + <message> + <source>&Red:</source> + <translation>Ve&rmell:</translation> + </message> + <message> + <source>&Green:</source> + <translation>Ver&d:</translation> + </message> + <message> + <source>Bl&ue:</source> + <translation>Bla&u:</translation> + </message> + <message> + <source>A&lpha channel:</source> + <translation>Canal a&lfa:</translation> + </message> + <message> + <source>&Basic colors</source> + <translation>Colors &bà sics</translation> + </message> + <message> + <source>&Custom colors</source> + <translation>&Colors personalitzats</translation> + </message> + <message> + <source>&Add to Custom Colors</source> + <translation>&Afig als colors personalitzats</translation> + </message> + <message> + <source>Select color</source> + <translation>Selecciona el color</translation> + </message> +</context> +<context> + <name>QComboBox</name> + <message> + <source>Open</source> + <translation>Obri</translation> + </message> + <message> + <source>False</source> + <translation>Fals</translation> + </message> + <message> + <source>True</source> + <translation>Vertader</translation> + </message> + <message> + <source>Close</source> + <translation>Tanca</translation> + </message> +</context> +<context> + <name>QCoreApplication</name> + <message> + <source>%1: permission denied</source> + <comment>QSystemSemaphore</comment> + <translation>%1: permÃs denegat</translation> + </message> + <message> + <source>%1: already exists</source> + <comment>QSystemSemaphore</comment> + <translation>%1: ja existeix</translation> + </message> + <message> + <source>%1: doesn't exists</source> + <comment>QSystemSemaphore</comment> + <translation>%1: no existeix</translation> + </message> + <message> + <source>%1: out of resources</source> + <comment>QSystemSemaphore</comment> + <translation>%1: s'han sobrepassat els recursos</translation> + </message> + <message> + <source>%1: unknown error %2</source> + <comment>QSystemSemaphore</comment> + <translation>%1: error desconegut %2</translation> + </message> + <message> + <source>%1: key is empty</source> + <comment>QSystemSemaphore</comment> + <translation>%1: la clau és buida</translation> + </message> + <message> + <source>%1: unable to make key</source> + <comment>QSystemSemaphore</comment> + <translation>%1: no es pot crear la clau</translation> + </message> + <message> + <source>%1: ftok failed</source> + <comment>QSystemSemaphore</comment> + <translation>%1: ha fallat ftok</translation> + </message> +</context> +<context> + <name>QDB2Driver</name> + <message> + <source>Unable to connect</source> + <translation>No es pot connectar</translation> + </message> + <message> + <source>Unable to commit transaction</source> + <translation>No es pot validar la transacció</translation> + </message> + <message> + <source>Unable to rollback transaction</source> + <translation>No es pot fer arrere la transacció</translation> + </message> + <message> + <source>Unable to set autocommit</source> + <translation>No es pot activar l'autovalidació</translation> + </message> +</context> +<context> + <name>QDB2Result</name> + <message> + <source>Unable to execute statement</source> + <translation>No es pot executar la declaració</translation> + </message> + <message> + <source>Unable to prepare statement</source> + <translation>No es pot preparar la declaració</translation> + </message> + <message> + <source>Unable to bind variable</source> + <translation>No es pot vincular la variable</translation> + </message> + <message> + <source>Unable to fetch record %1</source> + <translation>No es pot recollir el registre %1</translation> + </message> + <message> + <source>Unable to fetch next</source> + <translation>No es pot recollir el següent</translation> + </message> + <message> + <source>Unable to fetch first</source> + <translation>No es pot recollir el primer</translation> + </message> +</context> +<context> + <name>QDateTimeEdit</name> + <message> + <source>AM</source> + <translation>AM</translation> + </message> + <message> + <source>am</source> + <translation>am</translation> + </message> + <message> + <source>PM</source> + <translation>PM</translation> + </message> + <message> + <source>pm</source> + <translation>pm</translation> + </message> +</context> +<context> + <name>QDial</name> + <message> + <source>QDial</source> + <translation>QDial</translation> + </message> + <message> + <source>SpeedoMeter</source> + <translation>TaquÃmetre</translation> + </message> + <message> + <source>SliderHandle</source> + <translation>Grapat</translation> + </message> +</context> +<context> + <name>QDialog</name> + <message> + <source>What's This?</source> + <translation>Què és això?</translation> + </message> + <message> + <source>Done</source> + <translation>Fet</translation> + </message> +</context> +<context> + <name>QDialogButtonBox</name> + <message> + <source>OK</source> + <translation>D'acord</translation> + </message> + <message> + <source>Save</source> + <translation>Alça</translation> + </message> + <message> + <source>Open</source> + <translation>Obri</translation> + </message> + <message> + <source>Cancel</source> + <translation>Cancel·la</translation> + </message> + <message> + <source>Close</source> + <translation>Tanca</translation> + </message> + <message> + <source>Apply</source> + <translation>Aplica</translation> + </message> + <message> + <source>Reset</source> + <translation>Reinicia</translation> + </message> + <message> + <source>Help</source> + <translation>Ajuda</translation> + </message> + <message> + <source>Don't Save</source> + <translation>No ho alces</translation> + </message> + <message> + <source>Discard</source> + <translation>Descarta</translation> + </message> + <message> + <source>&Yes</source> + <translation>&SÃ</translation> + </message> + <message> + <source>Yes to &All</source> + <translation>Si a &tot</translation> + </message> + <message> + <source>&No</source> + <translation>&No</translation> + </message> + <message> + <source>N&o to All</source> + <translation>N&o a tot</translation> + </message> + <message> + <source>Save All</source> + <translation>Alça-ho tot</translation> + </message> + <message> + <source>Abort</source> + <translation>Interromp</translation> + </message> + <message> + <source>Retry</source> + <translation>Torna a provar</translation> + </message> + <message> + <source>Ignore</source> + <translation>Ignora</translation> + </message> + <message> + <source>Restore Defaults</source> + <translation>Restaura els valors predeterminats</translation> + </message> + <message> + <source>Close without Saving</source> + <translation>Tanca sense alçar</translation> + </message> + <message> + <source>&OK</source> + <translation>&D'acord</translation> + </message> +</context> +<context> + <name>QDirModel</name> + <message> + <source>Name</source> + <translation>Nom</translation> + </message> + <message> + <source>Size</source> + <translation>Mida</translation> + </message> + <message> + <source>Kind</source> + <comment>Match OS X Finder</comment> + <translation>Tipus</translation> + </message> + <message> + <source>Type</source> + <comment>All other platforms</comment> + <translation>Tipus</translation> + </message> + <message> + <source>Date Modified</source> + <translation>Data modificada</translation> + </message> +</context> +<context> + <name>QDockWidget</name> + <message> + <source>Close</source> + <translation>Tanca</translation> + </message> + <message> + <source>Dock</source> + <translation>Acoblador</translation> + </message> + <message> + <source>Float</source> + <translation>Float</translation> + </message> +</context> +<context> + <name>QDoubleSpinBox</name> + <message> + <source>More</source> + <translation>Més</translation> + </message> + <message> + <source>Less</source> + <translation>Menys</translation> + </message> +</context> +<context> + <name>QErrorMessage</name> + <message> + <source>Debug Message:</source> + <translation>Missatge de depuració:</translation> + </message> + <message> + <source>Warning:</source> + <translation>AvÃs:</translation> + </message> + <message> + <source>Fatal Error:</source> + <translation>Error fatal:</translation> + </message> + <message> + <source>&Show this message again</source> + <translation>&Mostra este missatge novament</translation> + </message> + <message> + <source>&OK</source> + <translation>&D'acord</translation> + </message> +</context> +<context> + <name>QFileDialog</name> + <message> + <source>All Files (*)</source> + <translation>Tots els fitxers (*)</translation> + </message> + <message> + <source>Directories</source> + <translation>Directoris</translation> + </message> + <message> + <source>&Open</source> + <translation>&Obri</translation> + </message> + <message> + <source>&Save</source> + <translation>&Alça</translation> + </message> + <message> + <source>Open</source> + <translation>Obri</translation> + </message> + <message> + <source>%1 already exists. +Do you want to replace it?</source> + <translation>%1 ja existeix.Voleu reemplaçar-lo?</translation> + </message> + <message> + <source>%1 +File not found. +Please verify the correct file name was given.</source> + <translation>%1 +No s'ha trobat el fitxer. +Comproveu que el nom del fitxer es correcte.</translation> + </message> + <message> + <source>My Computer</source> + <translation>El meu ordinador</translation> + </message> + <message> + <source>&Rename</source> + <translation>&Canvia el nom</translation> + </message> + <message> + <source>&Delete</source> + <translation>&Suprimeix</translation> + </message> + <message> + <source>Show &hidden files</source> + <translation>Mostra fitxers &ocults</translation> + </message> + <message> + <source>Back</source> + <translation>Arrere</translation> + </message> + <message> + <source>Parent Directory</source> + <translation>Directori pare</translation> + </message> + <message> + <source>List View</source> + <translation>Visualitza com a llista</translation> + </message> + <message> + <source>Detail View</source> + <translation>Vista detallada</translation> + </message> + <message> + <source>Files of type:</source> + <translation>Fitxers del tipus:</translation> + </message> + <message> + <source>Directory:</source> + <translation>Directori:</translation> + </message> + <message> + <source>%1 +Directory not found. +Please verify the correct directory name was given.</source> + <translation>%1 +No s'ha trobat el directori. +Comproveu que el nom del directori es correcte.</translation> + </message> + <message> + <source>'%1' is write protected. +Do you want to delete it anyway?</source> + <translation>'%1' està protegit contra escriptura.Voleu suprimir-lo igualment?</translation> + </message> + <message> + <source>Are sure you want to delete '%1'?</source> + <translation>Esteu segur que voleu suprimir '%1'?</translation> + </message> + <message> + <source>Could not delete directory.</source> + <translation>No s'ha pogut suprimir el directori.</translation> + </message> + <message> + <source>Save As</source> + <translation>Anomena i alça</translation> + </message> + <message> + <source>Drive</source> + <translation>Unitat</translation> + </message> + <message> + <source>File</source> + <translation>Fitxer</translation> + </message> + <message> + <source>Unknown</source> + <translation>Desconegut</translation> + </message> + <message> + <source>Find Directory</source> + <translation>Cerca directori</translation> + </message> + <message> + <source>Show </source> + <translation>Mostra </translation> + </message> + <message> + <source>Forward</source> + <translation>Avant</translation> + </message> + <message> + <source>New Folder</source> + <translation>Nova carpeta</translation> + </message> + <message> + <source>&New Folder</source> + <translation>&Nova carpeta</translation> + </message> + <message> + <source>&Choose</source> + <translation>&Tria</translation> + </message> + <message> + <source>Remove</source> + <translation>Elimina</translation> + </message> + <message> + <source>File &name:</source> + <translation>&Nom de fitxer:</translation> + </message> + <message> + <source>Look in:</source> + <translation>Cerca a:</translation> + </message> + <message> + <source>Create New Folder</source> + <translation>Crea nova carpeta</translation> + </message> +</context> +<context> + <name>QFileSystemModel</name> + <message> + <source>Invalid filename</source> + <translation>Nom de fitxer no và lid</translation> + </message> + <message> + <source><b>The name "%1" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks.</source> + <translation><b>No es pot usar el nom "%1".</b><p>Proveu d'usar un altre nom, amb menys carà cters o sense signes de puntuació.</translation> + </message> + <message> + <source>Name</source> + <translation>Nom</translation> + </message> + <message> + <source>Size</source> + <translation>Mida</translation> + </message> + <message> + <source>Kind</source> + <comment>Match OS X Finder</comment> + <translation>Tipus</translation> + </message> + <message> + <source>Type</source> + <comment>All other platforms</comment> + <translation>Tipus</translation> + </message> + <message> + <source>Date Modified</source> + <translation>Data de modificació</translation> + </message> + <message> + <source>My Computer</source> + <translation>El meu ordinador</translation> + </message> + <message> + <source>Computer</source> + <translation>Ordinador</translation> + </message> + <message> + <source>%1 TB</source> + <translation>%1 TB</translation> + </message> + <message> + <source>%1 GB</source> + <translation>%1 GB</translation> + </message> + <message> + <source>%1 MB</source> + <translation>%1 MB</translation> + </message> + <message> + <source>%1 KB</source> + <translation>%1 KB</translation> + </message> + <message> + <source>%1 bytes</source> + <translation>%1 bytes</translation> + </message> +</context> +<context> + <name>QFontDatabase</name> + <message> + <source>Normal</source> + <translation>Normal</translation> + </message> + <message> + <source>Bold</source> + <translation>Negreta</translation> + </message> + <message> + <source>Demi Bold</source> + <translation>Semi-negreta</translation> + </message> + <message> + <source>Black</source> + <translation>Negre</translation> + </message> + <message> + <source>Demi</source> + <translation>Semi</translation> + </message> + <message> + <source>Light</source> + <translation>Lleuger</translation> + </message> + <message> + <source>Italic</source> + <translation>Cursiva</translation> + </message> + <message> + <source>Oblique</source> + <translation>OblÃcua</translation> + </message> + <message> + <source>Any</source> + <translation>Qualsevol</translation> + </message> + <message> + <source>Latin</source> + <translation>LlatÃ</translation> + </message> + <message> + <source>Greek</source> + <translation>Grec</translation> + </message> + <message> + <source>Cyrillic</source> + <translation>CirÃlic</translation> + </message> + <message> + <source>Armenian</source> + <translation>Armeni</translation> + </message> + <message> + <source>Hebrew</source> + <translation>Hebreu</translation> + </message> + <message> + <source>Arabic</source> + <translation>Àrab</translation> + </message> + <message> + <source>Syriac</source> + <translation>Siri</translation> + </message> + <message> + <source>Thaana</source> + <translation>Thaana</translation> + </message> + <message> + <source>Devanagari</source> + <translation>Devanagari</translation> + </message> + <message> + <source>Bengali</source> + <translation>Bengali</translation> + </message> + <message> + <source>Gurmukhi</source> + <translation>Gurmukhi</translation> + </message> + <message> + <source>Gujarati</source> + <translation>Gujarati</translation> + </message> + <message> + <source>Oriya</source> + <translation>Oriya</translation> + </message> + <message> + <source>Tamil</source> + <translation>Tamil</translation> + </message> + <message> + <source>Telugu</source> + <translation>Telugu</translation> + </message> + <message> + <source>Kannada</source> + <translation>Kannada</translation> + </message> + <message> + <source>Malayalam</source> + <translation>Malayalam</translation> + </message> + <message> + <source>Sinhala</source> + <translation>Sinhala</translation> + </message> + <message> + <source>Thai</source> + <translation>Thai</translation> + </message> + <message> + <source>Lao</source> + <translation>Lao</translation> + </message> + <message> + <source>Tibetan</source> + <translation>Tibetà </translation> + </message> + <message> + <source>Myanmar</source> + <translation>Myanmar</translation> + </message> + <message> + <source>Georgian</source> + <translation>Georgià </translation> + </message> + <message> + <source>Khmer</source> + <translation>Khmer</translation> + </message> + <message> + <source>Simplified Chinese</source> + <translation>Xinés simplificat</translation> + </message> + <message> + <source>Traditional Chinese</source> + <translation>Xinés tradicional</translation> + </message> + <message> + <source>Japanese</source> + <translation>Japonés</translation> + </message> + <message> + <source>Korean</source> + <translation>Coreà </translation> + </message> + <message> + <source>Vietnamese</source> + <translation>Vietnamita</translation> + </message> + <message> + <source>Symbol</source> + <translation>SÃmbol</translation> + </message> + <message> + <source>Ogham</source> + <translation>Ogham</translation> + </message> + <message> + <source>Runic</source> + <translation>Rúnic</translation> + </message> +</context> +<context> + <name>QFontDialog</name> + <message> + <source>&Font</source> + <translation>&Tipus de lletra</translation> + </message> + <message> + <source>Font st&yle</source> + <translation>&Estil de lletra</translation> + </message> + <message> + <source>&Size</source> + <translation>&Mida</translation> + </message> + <message> + <source>Effects</source> + <translation>Efectes</translation> + </message> + <message> + <source>Stri&keout</source> + <translation>&Ratllat</translation> + </message> + <message> + <source>&Underline</source> + <translation>&Subratllat</translation> + </message> + <message> + <source>Sample</source> + <translation>Mostra</translation> + </message> + <message> + <source>Wr&iting System</source> + <translation>S&istema d'escriptura</translation> + </message> + <message> + <source>Select Font</source> + <translation>Seleccioneu el tipus de lletra</translation> + </message> +</context> +<context> + <name>QFtp</name> + <message> + <source>Not connected</source> + <translation>No està connectat</translation> + </message> + <message> + <source>Host %1 not found</source> + <translation>No s'ha trobat l'amfitrió %1</translation> + </message> + <message> + <source>Connection refused to host %1</source> + <translation>S'ha rebutjat la connexió a l'amfitrió %1</translation> + </message> + <message> + <source>Connected to host %1</source> + <translation>Connectat a l'amfitrió %1</translation> + </message> + <message> + <source>Connection refused for data connection</source> + <translation>S'ha rebutjat la connexió per connexió de dades</translation> + </message> + <message> + <source>Unknown error</source> + <translation>Error desconegut</translation> + </message> + <message> + <source>Connecting to host failed: +%1</source> + <translation>No s'ha pogut connectar a l'amfitrió: +%1</translation> + </message> + <message> + <source>Login failed: +%1</source> + <translation>Identificació fallida: +%1</translation> + </message> + <message> + <source>Listing directory failed: +%1</source> + <translation>No s'ha pogut llistar el directori: +%1</translation> + </message> + <message> + <source>Changing directory failed: +%1</source> + <translation>No s'ha pogut canviar el directori: +%1</translation> + </message> + <message> + <source>Downloading file failed: +%1</source> + <translation>No s'ha pogut descarregar el fitxer: +%1</translation> + </message> + <message> + <source>Uploading file failed: +%1</source> + <translation>No s'ha pogut carregar el fitxer: +%1</translation> + </message> + <message> + <source>Removing file failed: +%1</source> + <translation>No s'ha pogut suprimir el fitxer: +%1</translation> + </message> + <message> + <source>Creating directory failed: +%1</source> + <translation>No s'ha pogut crear el fitxer: +%1</translation> + </message> + <message> + <source>Removing directory failed: +%1</source> + <translation>No s'ha pogut suprimir el directori: +%1</translation> + </message> + <message> + <source>Connection closed</source> + <translation>S'ha tancat la connexió</translation> + </message> + <message> + <source>Host %1 found</source> + <translation>Amfitrió %1 trobat</translation> + </message> + <message> + <source>Connection to %1 closed</source> + <translation>S'ha tancat la connexió amb %1</translation> + </message> + <message> + <source>Host found</source> + <translation>Amfitrió trobat</translation> + </message> + <message> + <source>Connected to host</source> + <translation>Connectat a l'amfitrió</translation> + </message> +</context> +<context> + <name>QHostInfo</name> + <message> + <source>Unknown error</source> + <translation>Error desconegut</translation> + </message> +</context> +<context> + <name>QHostInfoAgent</name> + <message> + <source>Host not found</source> + <translation>No s'ha trobat l'amfitrió</translation> + </message> + <message> + <source>Unknown address type</source> + <translation>Tipus d'adreça desconegut</translation> + </message> + <message> + <source>Unknown error</source> + <translation>Error desconegut</translation> + </message> +</context> +<context> + <name>QHttp</name> + <message> + <source>Unknown error</source> + <translation>Error desconegut</translation> + </message> + <message> + <source>Request aborted</source> + <translation>S'ha interromput la sol·licitud</translation> + </message> + <message> + <source>No server set to connect to</source> + <translation>No s'ha especificat servidor</translation> + </message> + <message> + <source>Wrong content length</source> + <translation>Longitud del contingut errònia</translation> + </message> + <message> + <source>Server closed connection unexpectedly</source> + <translation>El servidor s'ha tancat inesperadament</translation> + </message> + <message> + <source>Connection refused</source> + <translation>S'ha rebutjat la connexió</translation> + </message> + <message> + <source>Host %1 not found</source> + <translation>No s'ha trobat l'amfitrió %1</translation> + </message> + <message> + <source>HTTP request failed</source> + <translation>Ha fallat la sol·licitud HTTP</translation> + </message> + <message> + <source>Invalid HTTP response header</source> + <translation>Capçalera de resposta HTTP no và lida</translation> + </message> + <message> + <source>Invalid HTTP chunked body</source> + <translation>Fragment HTTP no và lid</translation> + </message> + <message> + <source>Host %1 found</source> + <translation>S'ha trobat l'amfitrió %1</translation> + </message> + <message> + <source>Connected to host %1</source> + <translation>Connectat a l'amfitrió %1</translation> + </message> + <message> + <source>Connection to %1 closed</source> + <translation>S'ha tancat la connexió amb %1</translation> + </message> + <message> + <source>Host found</source> + <translation>S'ha trobat l'amfitrió</translation> + </message> + <message> + <source>Connected to host</source> + <translation>Connectat a l'amfitrió</translation> + </message> + <message> + <source>Connection closed</source> + <translation>S'ha tancat la connexió</translation> + </message> + <message> + <source>Proxy authentication required</source> + <translation>Es requereix autenticació del servidor intermediari</translation> + </message> + <message> + <source>Authentication required</source> + <translation>Es requreix autenticació</translation> + </message> + <message> + <source>HTTPS connection requested but SSL support not compiled in</source> + <translation>S'ha fet la consulta HTTP però no hi ha suport compilat per a SSL</translation> + </message> + <message> + <source>Connection refused (or timed out)</source> + <translation>S'ha rebutjat la connexió (temps d'espera excedit)</translation> + </message> + <message> + <source>Proxy requires authentication</source> + <translation>Es requereix autenticació del servidor intermediari</translation> + </message> + <message> + <source>Host requires authentication</source> + <translation>Es requereix autenticació de l'amfitrió</translation> + </message> + <message> + <source>Data corrupted</source> + <translation>Dades corruptes</translation> + </message> + <message> + <source>Unknown protocol specified</source> + <translation>El protocol esfecificat és desconegut</translation> + </message> + <message> + <source>SSL handshake failed</source> + <translation>S'ha produït un error en la conformitat de connexió SSL</translation> + </message> +</context> +<context> + <name>QHttpSocketEngine</name> + <message> + <source>Authentication required</source> + <translation>Es requreix autenticació</translation> + </message> +</context> +<context> + <name>QIBaseDriver</name> + <message> + <source>Error opening database</source> + <translation>S'ha produït un error en obrir la base de dades</translation> + </message> + <message> + <source>Could not start transaction</source> + <translation>No s'ha pogut iniciar la transcacció</translation> + </message> + <message> + <source>Unable to commit transaction</source> + <translation>No es pot validar la transacció</translation> + </message> + <message> + <source>Unable to rollback transaction</source> + <translation>No es pot fer arrere la transacció</translation> + </message> +</context> +<context> + <name>QIBaseResult</name> + <message> + <source>Unable to create BLOB</source> + <translation>No es pot crear BLOB</translation> + </message> + <message> + <source>Unable to write BLOB</source> + <translation>No es pot escriure BLOB</translation> + </message> + <message> + <source>Unable to open BLOB</source> + <translation>No es pot obrir BLOB</translation> + </message> + <message> + <source>Unable to read BLOB</source> + <translation>No es pot llegir BLOB</translation> + </message> + <message> + <source>Could not find array</source> + <translation>No s'ha pogut trobar el vector</translation> + </message> + <message> + <source>Could not get array data</source> + <translation>No s'han pogut obtindre les dades del vector</translation> + </message> + <message> + <source>Could not get query info</source> + <translation>No s'ha pogut obtindre la informacio de la consulta</translation> + </message> + <message> + <source>Could not start transaction</source> + <translation>No s'ha pogut iniciar la transcacció</translation> + </message> + <message> + <source>Unable to commit transaction</source> + <translation>No es pot validar la transacció</translation> + </message> + <message> + <source>Could not allocate statement</source> + <translation>No s'ha pogut assignar la declaració</translation> + </message> + <message> + <source>Could not prepare statement</source> + <translation>No s'ha pogut preparar la declaració</translation> + </message> + <message> + <source>Could not describe input statement</source> + <translation>No s'ha pogut descriure la declaració d'entrada</translation> + </message> + <message> + <source>Could not describe statement</source> + <translation>No s'ha pogut descriure la declaració</translation> + </message> + <message> + <source>Unable to close statement</source> + <translation>No es pot tancar la declaració</translation> + </message> + <message> + <source>Unable to execute query</source> + <translation>No es pot executar la consulta</translation> + </message> + <message> + <source>Could not fetch next item</source> + <translation>No s'ha pogut recollir l'element següent</translation> + </message> + <message> + <source>Could not get statement info</source> + <translation>No s'ha pogut obtindre la informacio de la declaració</translation> + </message> +</context> +<context> + <name>QIODevice</name> + <message> + <source>Permission denied</source> + <translation>S'ha denegat el permÃs</translation> + </message> + <message> + <source>Too many open files</source> + <translation>Hi ha massa fitxers oberts</translation> + </message> + <message> + <source>No such file or directory</source> + <translation>No s'ha trobat el fitxer o directori</translation> + </message> + <message> + <source>No space left on device</source> + <translation>No hi ha espai lliure en el dispositiu</translation> + </message> + <message> + <source>Unknown error</source> + <translation>Error desconegut</translation> + </message> +</context> +<context> + <name>QInputContext</name> + <message> + <source>XIM</source> + <translation>XIM</translation> + </message> + <message> + <source>XIM input method</source> + <translation>Mètode d'entrada XIM</translation> + </message> + <message> + <source>Windows input method</source> + <translation>Mètode d'entrada Windows</translation> + </message> + <message> + <source>Mac OS X input method</source> + <translation>Mètode d'entrada Mac OS X</translation> + </message> +</context> +<context> + <name>QLibrary</name> + <message> + <source>QLibrary::load_sys: Cannot load %1 (%2)</source> + <translation>QLibrary::load_sys: No es pot carregar %1 (%2)</translation> + </message> + <message> + <source>QLibrary::unload_sys: Cannot unload %1 (%2)</source> + <translation>QLibrary::unload_sys: No es pot descarregar %1 (%2)</translation> + </message> + <message> + <source>QLibrary::resolve_sys: Symbol "%1" undefined in %2 (%3)</source> + <translation>QLibrary::resolve_sys: SÃmbol "%1" indefinit en %2 (%3)</translation> + </message> + <message> + <source>Could not mmap '%1': %2</source> + <translation>No s'ha pogut mmap '%1': %2</translation> + </message> + <message> + <source>Plugin verification data mismatch in '%1'</source> + <translation>Les dades de verificació del connector són diferents en '%1'</translation> + </message> + <message> + <source>Could not unmap '%1': %2</source> + <translation>No s'ha pogut desmapejar '%1': %2</translation> + </message> + <message> + <source>The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5]</source> + <translation>El connector '%1' usa biblioteca Qt incompatible. (%2.%3.%4) [%5]</translation> + </message> + <message> + <source>The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3"</source> + <translation>El connector '%1' usa una bilioteca Qt incompatible. S'esperava build key "%2", got "%3"</translation> + </message> + <message> + <source>Unknown error</source> + <translation>Error desconegut</translation> + </message> + <message> + <source>The shared library was not found.</source> + <translation>No s'ha trobat la biblioteca compartida.</translation> + </message> + <message> + <source>The file '%1' is not a valid Qt plugin.</source> + <translation>El fitxer '%1' no s'un connector Qt và lid.</translation> + </message> + <message> + <source>The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.)</source> + <translation>El connector '%1' fa servir una biblioteca Qt incompatible. (No es poden barrejar les biblioteques de depuració i llançament.)</translation> + </message> +</context> +<context> + <name>QLineEdit</name> + <message> + <source>&Undo</source> + <translation>&Desfés</translation> + </message> + <message> + <source>&Redo</source> + <translation>&Refés</translation> + </message> + <message> + <source>Cu&t</source> + <translation>Re&talla</translation> + </message> + <message> + <source>&Copy</source> + <translation>&Copia</translation> + </message> + <message> + <source>&Paste</source> + <translation>Engan&xa</translation> + </message> + <message> + <source>Delete</source> + <translation>Suprimeix</translation> + </message> + <message> + <source>Select All</source> + <translation>Selecciona-ho tot</translation> + </message> +</context> +<context> + <name>QLocalServer</name> + <message> + <source>%1: Name error</source> + <translation>%1: Error de nom</translation> + </message> + <message> + <source>%1: Permission denied</source> + <translation>%1: S'ha denegat el permÃs</translation> + </message> + <message> + <source>%1: Address in use</source> + <translation>%1: L'adreça ja és en ús</translation> + </message> + <message> + <source>%1: Unknown error %2</source> + <translation>%1: Error desconegut %2</translation> + </message> +</context> +<context> + <name>QLocalSocket</name> + <message> + <source>%1: Connection refused</source> + <translation>%1: S'ha rebutjat la connexió</translation> + </message> + <message> + <source>%1: Remote closed</source> + <translation>%1: S'ha tancat la sessió remota</translation> + </message> + <message> + <source>%1: Invalid name</source> + <translation>%1: Nom invà lid</translation> + </message> + <message> + <source>%1: Socket access error</source> + <translation>%1: Error d'accés al sòcol</translation> + </message> + <message> + <source>%1: Socket resource error</source> + <translation>%1: Error de recurs de sòcol</translation> + </message> + <message> + <source>%1: Socket operation timed out</source> + <translation>%1: temps d'espera superat per a l'operació de sòcol</translation> + </message> + <message> + <source>%1: Datagram too large</source> + <translation>%1: Datagrama massa llarg</translation> + </message> + <message> + <source>%1: Connection error</source> + <translation>%1: Error de connexió</translation> + </message> + <message> + <source>%1: The socket operation is not supported</source> + <translation>%1: L'operació de sòcol no es troba suportada</translation> + </message> + <message> + <source>%1: Unknown error %2</source> + <translation>%1: error desconegut %2</translation> + </message> +</context> +<context> + <name>QMYSQLDriver</name> + <message> + <source>Unable to open database '</source> + <translation>No es pot obrir la base de dades '</translation> + </message> + <message> + <source>Unable to connect</source> + <translation>No es pot connectar</translation> + </message> + <message> + <source>Unable to begin transaction</source> + <translation>No es pot començar la transacció</translation> + </message> + <message> + <source>Unable to commit transaction</source> + <translation>No es pot validar la transacció</translation> + </message> + <message> + <source>Unable to rollback transaction</source> + <translation>No es pot fer arrere la transacció</translation> + </message> +</context> +<context> + <name>QMYSQLResult</name> + <message> + <source>Unable to fetch data</source> + <translation>No es poden recollir les dades</translation> + </message> + <message> + <source>Unable to execute query</source> + <translation>No es pot executar la consulta</translation> + </message> + <message> + <source>Unable to store result</source> + <translation>No es pot emmagatzemar el resultat</translation> + </message> + <message> + <source>Unable to prepare statement</source> + <translation>No es pot preparar la declaració</translation> + </message> + <message> + <source>Unable to reset statement</source> + <translation>No es pot reiniciar la declaració</translation> + </message> + <message> + <source>Unable to bind value</source> + <translation>No es pot vincular el valor</translation> + </message> + <message> + <source>Unable to execute statement</source> + <translation>No es pot executar la declaració</translation> + </message> + <message> + <source>Unable to bind outvalues</source> + <translation>No es poden vincular els valors d'eixida</translation> + </message> + <message> + <source>Unable to store statement results</source> + <translation>No es poden emmagatzemar els resultats de la declaracio</translation> + </message> + <message> + <source>Unable to execute next query</source> + <translation>No es pot executar la següent consulta</translation> + </message> + <message> + <source>Unable to store next result</source> + <translation>No es pot emmagatzemar el següent resultat</translation> + </message> +</context> +<context> + <name>QMdiArea</name> + <message> + <source>(Untitled)</source> + <translation>(sense tÃtol)</translation> + </message> +</context> +<context> + <name>QMdiSubWindow</name> + <message> + <source>%1 - [%2]</source> + <translation>%1 - [%2]</translation> + </message> + <message> + <source>Close</source> + <translation>Tanca</translation> + </message> + <message> + <source>Minimize</source> + <translation>Minimitza</translation> + </message> + <message> + <source>Restore Down</source> + <translation>Restaura a sota</translation> + </message> + <message> + <source>&Restore</source> + <translation>&Restaura</translation> + </message> + <message> + <source>&Move</source> + <translation>&Mou</translation> + </message> + <message> + <source>&Size</source> + <translation>Mi&da</translation> + </message> + <message> + <source>Mi&nimize</source> + <translation>Mi&nimitza</translation> + </message> + <message> + <source>Ma&ximize</source> + <translation>Ma&ximitza</translation> + </message> + <message> + <source>Stay on &Top</source> + <translation>Sempre per damun&t</translation> + </message> + <message> + <source>&Close</source> + <translation>&Tanca</translation> + </message> + <message> + <source>- [%1]</source> + <translation>- [%1]</translation> + </message> + <message> + <source>Maximize</source> + <translation>Maximitza</translation> + </message> + <message> + <source>Unshade</source> + <translation>Desenfosqueix</translation> + </message> + <message> + <source>Shade</source> + <translation>Enfosqueix</translation> + </message> + <message> + <source>Restore</source> + <translation>Restaura</translation> + </message> + <message> + <source>Help</source> + <translation>Ajuda</translation> + </message> + <message> + <source>Menu</source> + <translation>Menú</translation> + </message> +</context> +<context> + <name>QMenu</name> + <message> + <source>Close</source> + <translation>Tanca</translation> + </message> + <message> + <source>Open</source> + <translation>Obri</translation> + </message> + <message> + <source>Execute</source> + <translation>Executa</translation> + </message> +</context> +<context> + <name>QMessageBox</name> + <message> + <source>Help</source> + <translation>Ajuda</translation> + </message> + <message> + <source>OK</source> + <translation>D'acord</translation> + </message> + <message> + <source>About Qt</source> + <translation>Quant a Qt</translation> + </message> + <message> + <source><p>This program uses Qt version %1.</p></source> + <translation><p>Este programa usa Qt versió %1.</p></translation> + </message> + <message> + <source>Show Details...</source> + <translation>Mostra els detalls...</translation> + </message> + <message> + <source>Hide Details...</source> + <translation>Oculta els detalls...</translation> + </message> + <message> + <source><p>This program uses Qt Open Source Edition version %1.</p><p>Qt Open Source Edition is intended for the development of Open Source applications. You need a commercial Qt license for development of proprietary (closed source) applications.</p><p>Please see <a href="http://www.trolltech.com/company/model/">www.trolltech.com/company/model/</a> for an overview of Qt licensing.</p></source> + <translation><p>Este programa usa Qt Open Source Edition versió %1.</p><p>Qt Open Source Edition està pensat per al desenvolupament d'aplicacions de codi obert. Necessiteu una llicència comercial de Qt per al desenvolupament d'aplicacions de propietat (codi tancat).</p><p>Vegeu <a href="http://www.trolltech.com/company/model/">www.trolltech.com/company/model/</a> per a més informació sobre les llicències Qt.</p></translation> + </message> + <message> + <source><h3>About Qt</h3>%1<p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is a Nokia product. See <a href="http://www.trolltech.com/qt/">www.trolltech.com/qt/</a> for more information.</p></source> + <translation><h3>Quant a Qt</h3>%1<p>Qt és un toolkit C++ multiplataforma per al desenvolupament d'aplicacions.</p><p>Qt proveeix portabilitat a MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux i la gran part de totes les variants Unix comercials. Qt també es troba disponible per a dispositius empotrats.</p><p>Qt és un producte de Nokia. Vegeu <a href="http://www.trolltech.com/qt/">www.trolltech.com/qt/</a> per a més informació.</p></translation> + </message> +</context> +<context> + <name>QMultiInputContext</name> + <message> + <source>Select IM</source> + <translation>Selecciona IM</translation> + </message> +</context> +<context> + <name>QMultiInputContextPlugin</name> + <message> + <source>Multiple input method switcher</source> + <translation>Commutador de mètode d'entrada multiple</translation> + </message> + <message> + <source>Multiple input method switcher that uses the context menu of the text widgets</source> + <translation>Commutador de mètode d'entrada multiple que usa el menu contextual del giny de text</translation> + </message> +</context> +<context> + <name>QNativeSocketEngine</name> + <message> + <source>The remote host closed the connection</source> + <translation>L'amfitrió remot ha tancat la connexió</translation> + </message> + <message> + <source>Network operation timed out</source> + <translation>L'operació de xarxa ha excedit el temps</translation> + </message> + <message> + <source>Out of resources</source> + <translation>Sense recursos</translation> + </message> + <message> + <source>Unsupported socket operation</source> + <translation>Operacio de sòcol no implementada</translation> + </message> + <message> + <source>Protocol type not supported</source> + <translation>Tipus de protocol no implementat</translation> + </message> + <message> + <source>Invalid socket descriptor</source> + <translation>Descriptor de sòcol no và lid</translation> + </message> + <message> + <source>Network unreachable</source> + <translation>La xarxa no és accessible</translation> + </message> + <message> + <source>Permission denied</source> + <translation>S'ha denegat el permÃs</translation> + </message> + <message> + <source>Connection timed out</source> + <translation>La connexió ha excedit el temps</translation> + </message> + <message> + <source>Connection refused</source> + <translation>S'ha rebutjat la connexió</translation> + </message> + <message> + <source>The bound address is already in use</source> + <translation>Ja s'està fent servir l'adreça limit</translation> + </message> + <message> + <source>The address is not available</source> + <translation>L'adreça no està disponible</translation> + </message> + <message> + <source>The address is protected</source> + <translation>L'adreça està protegida</translation> + </message> + <message> + <source>Unable to send a message</source> + <translation>No es pot enviar un missatge</translation> + </message> + <message> + <source>Unable to receive a message</source> + <translation>No es pot rebre un missatge</translation> + </message> + <message> + <source>Unable to write</source> + <translation>No es pot escriure</translation> + </message> + <message> + <source>Network error</source> + <translation>Error de xarxa</translation> + </message> + <message> + <source>Another socket is already listening on the same port</source> + <translation>Un altre sòcol ja està escoltant el mateix port</translation> + </message> + <message> + <source>Unable to initialize non-blocking socket</source> + <translation>No es pot inicialitzar el sòcol no bloquejat</translation> + </message> + <message> + <source>Unable to initialize broadcast socket</source> + <translation>No es pot inicialitzar el sòcol de difusio</translation> + </message> + <message> + <source>Attempt to use IPv6 socket on a platform with no IPv6 support</source> + <translation>S'està provant de fer servir un sòcol IPv6 en una plataforma que no admet IPv6</translation> + </message> + <message> + <source>Host unreachable</source> + <translation>L'amfitrió no és accessible</translation> + </message> + <message> + <source>Datagram was too large to send</source> + <translation>El datagrama era massa llarg i no s'ha pogut enviar</translation> + </message> + <message> + <source>Operation on non-socket</source> + <translation>L'operació no té un sòcol</translation> + </message> + <message> + <source>Unknown error</source> + <translation>Error desconegut</translation> + </message> + <message> + <source>The proxy type is invalid for this operation</source> + <translation>El tipus de proxy no és và lid per a esta operació</translation> + </message> +</context> +<context> + <name>QNetworkAccessFileBackend</name> + <message> + <source>Request for opening non-local file %1</source> + <translation>Sol·licitud per obrir un fitxer no local %1</translation> + </message> + <message> + <source>Error opening %1: %2</source> + <translation>S'ha produït un error mentre s'obria %1: %2</translation> + </message> + <message> + <source>Write error writing to %1: %2</source> + <translation>S'ha produït un error d'escriptura a %1: %2</translation> + </message> + <message> + <source>Cannot open %1: Path is a directory</source> + <translation>No es pot obrir %1: la ruta és un directori</translation> + </message> + <message> + <source>Read error reading from %1: %2</source> + <translation>S'ha produït un error a %1: %2</translation> + </message> +</context> +<context> + <name>QNetworkAccessFtpBackend</name> + <message> + <source>Cannot open %1: is a directory</source> + <translation>No es pot obrir %1: és un directori</translation> + </message> + <message> + <source>Logging in to %1 failed: authentication required</source> + <translation>Ha fallat l'entrada a %1: es requereix autenticació</translation> + </message> + <message> + <source>Error while downloading %1: %2</source> + <translation>S'ha produït un error mentre es baixava %1: %2</translation> + </message> + <message> + <source>Error while uploading %1: %2</source> + <translation>S'ha produït un error mentre es pujava %1: %2</translation> + </message> +</context> +<context> + <name>QNetworkReply</name> + <message> + <source>Error downloading %1 - server replied: %2</source> + <translation>S'ha produït un error mentre es descarregava %1 - el servidor va respondre: %2</translation> + </message> + <message> + <source>Protocol "%1" is unknown</source> + <translation>El protocol "%1" és desconegut</translation> + </message> +</context> +<context> + <name>QNetworkReplyImpl</name> + <message> + <source>Operation canceled</source> + <translation>S'ha cancel·lat l'operació</translation> + </message> +</context> +<context> + <name>QOCIDriver</name> + <message> + <source>Unable to logon</source> + <translation>No es pot iniciar la sessió</translation> + </message> + <message> + <source>Unable to initialize</source> + <comment>QOCIDriver</comment> + <translation>No es pot inicialitzar</translation> + </message> + <message> + <source>Unable to begin transaction</source> + <translation>No es pot començar la transacció</translation> + </message> + <message> + <source>Unable to commit transaction</source> + <translation>No es pot validar la transacció</translation> + </message> + <message> + <source>Unable to rollback transaction</source> + <translation>No es pot fer arrere la transacció</translation> + </message> +</context> +<context> + <name>QOCIResult</name> + <message> + <source>Unable to bind column for batch execute</source> + <translation>No es pot vincular una columna per a executar el lot</translation> + </message> + <message> + <source>Unable to execute batch statement</source> + <translation>No es pot executar la declaració de lot</translation> + </message> + <message> + <source>Unable to goto next</source> + <translation>No es pot anar al següent</translation> + </message> + <message> + <source>Unable to alloc statement</source> + <translation>No es pot assignar la declaració</translation> + </message> + <message> + <source>Unable to prepare statement</source> + <translation>No es pot preparar la declaració</translation> + </message> + <message> + <source>Unable to bind value</source> + <translation>No es pot vincular el valor</translation> + </message> + <message> + <source>Unable to execute select statement</source> + <translation>No es pot executar la declaració select</translation> + </message> + <message> + <source>Unable to execute statement</source> + <translation>No es pot executar la declaració</translation> + </message> +</context> +<context> + <name>QODBCDriver</name> + <message> + <source>Unable to connect</source> + <translation>No es pot connectar</translation> + </message> + <message> + <source>Unable to connect - Driver doesn't support all needed functionality</source> + <translation>No es pot connectar - El controlador no permet tota la funcionalitat necessà ria</translation> + </message> + <message> + <source>Unable to disable autocommit</source> + <translation>No es pot deshabilitar l'autovalidació</translation> + </message> + <message> + <source>Unable to commit transaction</source> + <translation>No es pot validar la transacció</translation> + </message> + <message> + <source>Unable to rollback transaction</source> + <translation>No es pot fer arrere la transacció</translation> + </message> + <message> + <source>Unable to enable autocommit</source> + <translation>No es pot habilitar l'autovalidació</translation> + </message> +</context> +<context> + <name>QODBCResult</name> + <message> + <source>QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration</source> + <translation>QODBCResult::reset: No es pot activar 'SQL_CURSOR_STATIC' com a atribut de la declaració. Comproveu la configuració del controlador ODBC</translation> + </message> + <message> + <source>Unable to execute statement</source> + <translation>No es pot executar la declaració</translation> + </message> + <message> + <source>Unable to fetch next</source> + <translation>No es pot recollir el següent</translation> + </message> + <message> + <source>Unable to prepare statement</source> + <translation>No es pot preparar la declaració</translation> + </message> + <message> + <source>Unable to bind variable</source> + <translation>No es pot vincular la variable</translation> + </message> + <message> + <source>Unable to fetch last</source> + <translation>No es pot recollir l'últim</translation> + </message> + <message> + <source>Unable to fetch</source> + <translation>No es pot recollir</translation> + </message> + <message> + <source>Unable to fetch first</source> + <translation>No es pot recollir el primer</translation> + </message> + <message> + <source>Unable to fetch previous</source> + <translation>No es pot recollir l'anterior</translation> + </message> +</context> +<context> + <name>QObject</name> + <message> + <source>Operation not supported on %1</source> + <translation>Operació no suportada a %1</translation> + </message> + <message> + <source>Invalid URI: %1</source> + <translation>URI no và lida: %1</translation> + </message> + <message> + <source>Write error writing to %1: %2</source> + <translation>Error d'escriptura a %1: %2</translation> + </message> + <message> + <source>Read error reading from %1: %2</source> + <translation>Error de lectura des de %1: %2</translation> + </message> + <message> + <source>Socket error on %1: %2</source> + <translation>Error de sòcol a %1: %2</translation> + </message> + <message> + <source>Remote host closed the connection prematurely on %1</source> + <translation>Amfitrió remot ha tancat la connexió en %1</translation> + </message> + <message> + <source>Protocol error: packet of size 0 received</source> + <translation>Error de protocol: s'ha rebut un paquet de mida 0</translation> + </message> +</context> +<context> + <name>QPPDOptionsModel</name> + <message> + <source>Name</source> + <translation>Nom</translation> + </message> + <message> + <source>Value</source> + <translation>Valor</translation> + </message> +</context> +<context> + <name>QPSQLDriver</name> + <message> + <source>Unable to connect</source> + <translation>No es pot connectar</translation> + </message> + <message> + <source>Could not begin transaction</source> + <translation>No s'ha pogut començar la transcacció</translation> + </message> + <message> + <source>Could not commit transaction</source> + <translation>No s'ha pogut validar la transacció</translation> + </message> + <message> + <source>Could not rollback transaction</source> + <translation>No s'ha pogut fer arrere la transacció</translation> + </message> + <message> + <source>Unable to subscribe</source> + <translation>No es pot subscriure</translation> + </message> + <message> + <source>Unable to unsubscribe</source> + <translation>No es pot donar de baixa</translation> + </message> +</context> +<context> + <name>QPSQLResult</name> + <message> + <source>Unable to create query</source> + <translation>No es pot crear la consulta</translation> + </message> + <message> + <source>Unable to prepare statement</source> + <translation>No es pot preparar la declaració</translation> + </message> +</context> +<context> + <name>QPageSetupWidget</name> + <message> + <source>Centimeters (cm)</source> + <translation>CentÃmetres (cm)</translation> + </message> + <message> + <source>Millimeters (mm)</source> + <translation>MilÃmetres (mm)</translation> + </message> + <message> + <source>Inches (in)</source> + <translation>Polçades (in)</translation> + </message> + <message> + <source>Points (pt)</source> + <translation>Punts (pt)</translation> + </message> + <message> + <source>Form</source> + <translation>Formulari</translation> + </message> + <message> + <source>Paper</source> + <translation>Paper</translation> + </message> + <message> + <source>Page size:</source> + <translation>Mida de la pà gina:</translation> + </message> + <message> + <source>Width:</source> + <translation>Amplada:</translation> + </message> + <message> + <source>Height:</source> + <translation>Alçada:</translation> + </message> + <message> + <source>Paper source:</source> + <translation>Font del paper:</translation> + </message> + <message> + <source>Orientation</source> + <translation>Orientació</translation> + </message> + <message> + <source>Portrait</source> + <translation>Vertical</translation> + </message> + <message> + <source>Landscape</source> + <translation>Horitzontal</translation> + </message> + <message> + <source>Reverse landscape</source> + <translation>Horitzontal revers</translation> + </message> + <message> + <source>Reverse portrait</source> + <translation>Vertical revers</translation> + </message> + <message> + <source>Margins</source> + <translation>Marges</translation> + </message> + <message> + <source>top margin</source> + <translation>Marge superior</translation> + </message> + <message> + <source>left margin</source> + <translation>Marge esquerre</translation> + </message> + <message> + <source>right margin</source> + <translation>Marge dret</translation> + </message> + <message> + <source>bottom margin</source> + <translation>Marge inferior</translation> + </message> +</context> +<context> + <name>QPluginLoader</name> + <message> + <source>Unknown error</source> + <translation>Error desconegut</translation> + </message> + <message> + <source>The plugin was not loaded.</source> + <translation>No s'ha carregat el connector.</translation> + </message> +</context> +<context> + <name>QPrintDialog</name> + <message> + <source>locally connected</source> + <translation>connectat localment</translation> + </message> + <message> + <source>Aliases: %1</source> + <translation>Àlies: %1</translation> + </message> + <message> + <source>unknown</source> + <translation>desconegut</translation> + </message> + <message> + <source>Print To File ...</source> + <translation>Imprimeix a un fitxer...</translation> + </message> + <message> + <source>File %1 is not writable. +Please choose a different file name.</source> + <translation>No es pot escriure al fitxer %1 +Trieu un altre nom de fitxer.</translation> + </message> + <message> + <source>%1 already exists. +Do you want to overwrite it?</source> + <translation>%1 ja existeix. +Voleu sobreescriure'l?</translation> + </message> + <message> + <source>%1 is a directory. +Please choose a different file name.</source> + <translation>%1 és un directori. +Trieu un nom de fitxer diferent.</translation> + </message> + <message> + <source>A0</source> + <translation>A0</translation> + </message> + <message> + <source>A1</source> + <translation>A1</translation> + </message> + <message> + <source>A2</source> + <translation>A2</translation> + </message> + <message> + <source>A3</source> + <translation>A3</translation> + </message> + <message> + <source>A4</source> + <translation>A4</translation> + </message> + <message> + <source>A5</source> + <translation>A5</translation> + </message> + <message> + <source>A6</source> + <translation>A6</translation> + </message> + <message> + <source>A7</source> + <translation>A7</translation> + </message> + <message> + <source>A8</source> + <translation>A8</translation> + </message> + <message> + <source>A9</source> + <translation>A9</translation> + </message> + <message> + <source>B0</source> + <translation>B0</translation> + </message> + <message> + <source>B1</source> + <translation>B1</translation> + </message> + <message> + <source>B2</source> + <translation>B2</translation> + </message> + <message> + <source>B3</source> + <translation>B3</translation> + </message> + <message> + <source>B4</source> + <translation>B4</translation> + </message> + <message> + <source>B5</source> + <translation>B5</translation> + </message> + <message> + <source>B6</source> + <translation>B6</translation> + </message> + <message> + <source>B7</source> + <translation>B7</translation> + </message> + <message> + <source>B8</source> + <translation>B8</translation> + </message> + <message> + <source>B9</source> + <translation>B9</translation> + </message> + <message> + <source>B10</source> + <translation>B10</translation> + </message> + <message> + <source>C5E</source> + <translation>C5E</translation> + </message> + <message> + <source>DLE</source> + <translation>DLE</translation> + </message> + <message> + <source>Executive</source> + <translation>Executiu</translation> + </message> + <message> + <source>Folio</source> + <translation>Foli</translation> + </message> + <message> + <source>Ledger</source> + <translation>Llibre</translation> + </message> + <message> + <source>Legal</source> + <translation>Legal</translation> + </message> + <message> + <source>Letter</source> + <translation>Carta</translation> + </message> + <message> + <source>Tabloid</source> + <translation>Tabloide</translation> + </message> + <message> + <source>US Common #10 Envelope</source> + <translation>US Common #10 Envelope</translation> + </message> + <message> + <source>Custom</source> + <translation>Personalitzat</translation> + </message> + <message> + <source>&Options >></source> + <translation>&Opcions >></translation> + </message> + <message> + <source>&Print</source> + <translation>Im&primeix</translation> + </message> + <message> + <source>&Options <<</source> + <translation>&Opcions <<</translation> + </message> + <message> + <source>Print to File (PDF)</source> + <translation>Imprimeix a un fitxer (PDF)</translation> + </message> + <message> + <source>Print to File (Postscript)</source> + <translation>Imprimeix a un fitxer (Postscript)</translation> + </message> + <message> + <source>Local file</source> + <translation>Fitxer local</translation> + </message> + <message> + <source>Write %1 file</source> + <translation>Escriu el fitxer %1</translation> + </message> +</context> +<context> + <name>QPrintPreviewDialog</name> + <message> + <source>Page Setup</source> + <translation>Configuració de la pà gina</translation> + </message> + <message> + <source>Print Preview</source> + <translation>Previsualització d'impressió</translation> + </message> + <message> + <source>Next page</source> + <translation>Pà gina següent</translation> + </message> + <message> + <source>Previous page</source> + <translation>Pà gina anterior</translation> + </message> + <message> + <source>First page</source> + <translation>Primera pà gina</translation> + </message> + <message> + <source>Last page</source> + <translation>Última pà gina</translation> + </message> + <message> + <source>Fit width</source> + <translation>Ajusta a l'amplada</translation> + </message> + <message> + <source>Fit page</source> + <translation>AJusta a la pà gina</translation> + </message> + <message> + <source>Zoom in</source> + <translation>Apropa</translation> + </message> + <message> + <source>Zoom out</source> + <translation>Allunya</translation> + </message> + <message> + <source>Portrait</source> + <translation>Vertical</translation> + </message> + <message> + <source>Landscape</source> + <translation>Horitzontal</translation> + </message> + <message> + <source>Show single page</source> + <translation>Mostra una pà gina</translation> + </message> + <message> + <source>Show facing pages</source> + <translation>Mostra les pà gines</translation> + </message> + <message> + <source>Show overview of all pages</source> + <translation>Mostra un resum de totes les pà gines</translation> + </message> + <message> + <source>Print</source> + <translation>Imprimeix</translation> + </message> + <message> + <source>Page setup</source> + <translation>Configuració de la pà gina</translation> + </message> + <message> + <source>Close</source> + <translation>Tanca</translation> + </message> +</context> +<context> + <name>QPrintPropertiesWidget</name> + <message> + <source>Form</source> + <translation>Formulari</translation> + </message> + <message> + <source>Page</source> + <translation>Pà gina</translation> + </message> + <message> + <source>Advanced</source> + <translation>Avançat</translation> + </message> +</context> +<context> + <name>QPrintSettingsOutput</name> + <message> + <source>Form</source> + <translation>Formulari</translation> + </message> + <message> + <source>Copies</source> + <translation>Còpies</translation> + </message> + <message> + <source>Print range</source> + <translation>Rang d'impressió</translation> + </message> + <message> + <source>Print all</source> + <translation>Imprimeix-ho tot</translation> + </message> + <message> + <source>Pages from</source> + <translation>Pà gines des de</translation> + </message> + <message> + <source>to</source> + <translation>fins a</translation> + </message> + <message> + <source>Selection</source> + <translation>Selecció</translation> + </message> + <message> + <source>Output Settings</source> + <translation>Parà metres d'eixida</translation> + </message> + <message> + <source>Copies:</source> + <translation>Còpies:</translation> + </message> + <message> + <source>Collate</source> + <translation>Compagina</translation> + </message> + <message> + <source>Reverse</source> + <translation>Revers</translation> + </message> + <message> + <source>Options</source> + <translation>Opcions</translation> + </message> + <message> + <source>Color Mode</source> + <translation>Mode de color</translation> + </message> + <message> + <source>Color</source> + <translation>Color</translation> + </message> + <message> + <source>Grayscale</source> + <translation>Escala de grisos</translation> + </message> + <message> + <source>Duplex Printing</source> + <translation>Impressió a doble cara</translation> + </message> + <message> + <source>None</source> + <translation>No</translation> + </message> + <message> + <source>Long side</source> + <translation>Costat llarg</translation> + </message> + <message> + <source>Short side</source> + <translation>Costat curt</translation> + </message> +</context> +<context> + <name>QPrintWidget</name> + <message> + <source>Form</source> + <translation>Formulari</translation> + </message> + <message> + <source>Printer</source> + <translation>Impressora</translation> + </message> + <message> + <source>&Name:</source> + <translation>&Nom:</translation> + </message> + <message> + <source>P&roperties</source> + <translation>P&ropietats</translation> + </message> + <message> + <source>Location:</source> + <translation>Ubicació:</translation> + </message> + <message> + <source>Preview</source> + <translation>Previsualització</translation> + </message> + <message> + <source>Type:</source> + <translation>Tipus:</translation> + </message> + <message> + <source>Output &file:</source> + <translation>&Fitxer d'eixida:</translation> + </message> + <message> + <source>...</source> + <translation>...</translation> + </message> +</context> +<context> + <name>QProgressDialog</name> + <message> + <source>Cancel</source> + <translation>Cancel·la</translation> + </message> +</context> +<context> + <name>QPushButton</name> + <message> + <source>Open</source> + <translation>Obri</translation> + </message> +</context> +<context> + <name>QRadioButton</name> + <message> + <source>Check</source> + <translation>Activa</translation> + </message> +</context> +<context> + <name>QRegExp</name> + <message> + <source>no error occurred</source> + <translation>cap error</translation> + </message> + <message> + <source>disabled feature used</source> + <translation>s'ha fet servir una caracterÃstica no habilitada</translation> + </message> + <message> + <source>bad char class syntax</source> + <translation>error de sintaxi al tipus de carà cters</translation> + </message> + <message> + <source>bad lookahead syntax</source> + <translation>error de sintaxi a l'ullada</translation> + </message> + <message> + <source>bad repetition syntax</source> + <translation>error de sintaxi a la repetició</translation> + </message> + <message> + <source>invalid octal value</source> + <translation>valor octal invà lid</translation> + </message> + <message> + <source>missing left delim</source> + <translation>falta el delim esquerre</translation> + </message> + <message> + <source>unexpected end</source> + <translation>final inesperat</translation> + </message> + <message> + <source>met internal limit</source> + <translation>s'ha arribat al lÃmit intern</translation> + </message> +</context> +<context> + <name>QSQLite2Driver</name> + <message> + <source>Error to open database</source> + <translation>S'ha produït un error per obrir base de dades</translation> + </message> + <message> + <source>Unable to begin transaction</source> + <translation>No es pot començar la transacció</translation> + </message> + <message> + <source>Unable to commit transaction</source> + <translation>No es pot validar la transacció</translation> + </message> + <message> + <source>Unable to rollback Transaction</source> + <translation>No es pot fer arrere la transacció</translation> + </message> +</context> +<context> + <name>QSQLite2Result</name> + <message> + <source>Unable to fetch results</source> + <translation>No es poden recollir els resultats</translation> + </message> + <message> + <source>Unable to execute statement</source> + <translation>No es pot executar la declaració</translation> + </message> +</context> +<context> + <name>QSQLiteDriver</name> + <message> + <source>Error opening database</source> + <translation>S'ha produït un error en obrir la base de dades</translation> + </message> + <message> + <source>Error closing database</source> + <translation>S'ha produït un error en tancar la base de dades</translation> + </message> + <message> + <source>Unable to begin transaction</source> + <translation>No es pot començar la transacció</translation> + </message> + <message> + <source>Unable to commit transaction</source> + <translation>No es pot validar la transacció</translation> + </message> + <message> + <source>Unable to rollback transaction</source> + <translation>No es pot fer arrere la transacció</translation> + </message> +</context> +<context> + <name>QSQLiteResult</name> + <message> + <source>Unable to fetch row</source> + <translation>No es pot recollir la fila</translation> + </message> + <message> + <source>Unable to execute statement</source> + <translation>No es pot executar la declaració</translation> + </message> + <message> + <source>Unable to reset statement</source> + <translation>No es pot reiniciar la declaració</translation> + </message> + <message> + <source>Unable to bind parameters</source> + <translation>No es poden vincular els parà metres</translation> + </message> + <message> + <source>Parameter count mismatch</source> + <translation>El nombre dels parà metres es discordant</translation> + </message> + <message> + <source>No query</source> + <translation>Cap consulta</translation> + </message> +</context> +<context> + <name>QScrollBar</name> + <message> + <source>Scroll here</source> + <translation>Desplaça acÃ</translation> + </message> + <message> + <source>Left edge</source> + <translation>Vora esquerra</translation> + </message> + <message> + <source>Top</source> + <translation>Superior</translation> + </message> + <message> + <source>Right edge</source> + <translation>Vora dreta</translation> + </message> + <message> + <source>Bottom</source> + <translation>Inferior</translation> + </message> + <message> + <source>Page left</source> + <translation>Pà gina esquerra</translation> + </message> + <message> + <source>Page up</source> + <translation>Pà gina amunt</translation> + </message> + <message> + <source>Page right</source> + <translation>Pà gina dreta</translation> + </message> + <message> + <source>Page down</source> + <translation>Pà gina avall</translation> + </message> + <message> + <source>Scroll left</source> + <translation>Desplaça a l'esquerra</translation> + </message> + <message> + <source>Scroll up</source> + <translation>Desplaça amunt</translation> + </message> + <message> + <source>Scroll right</source> + <translation>Desplaça a la dreta</translation> + </message> + <message> + <source>Scroll down</source> + <translation>Desplaça avall</translation> + </message> + <message> + <source>Line up</source> + <translation>LÃnia amunt</translation> + </message> + <message> + <source>Position</source> + <translation>Posició</translation> + </message> + <message> + <source>Line down</source> + <translation>LÃnia avall</translation> + </message> +</context> +<context> + <name>QSharedMemory</name> + <message> + <source>%1: unable to set key on lock</source> + <translation>%1: no es pot definir la clau del blocatge</translation> + </message> + <message> + <source>%1: create size is less then 0</source> + <translation>%1: la mida de creació és menor que 0</translation> + </message> + <message> + <source>%1: unable to lock</source> + <translation>%1: no es pot bloquejar</translation> + </message> + <message> + <source>%1: unable to unlock</source> + <translation>%1: no es pot desbloquejar</translation> + </message> + <message> + <source>%1: permission denied</source> + <translation>%1: permÃs denegat</translation> + </message> + <message> + <source>%1: already exists</source> + <translation>%1: ja existeix</translation> + </message> + <message> + <source>%1: doesn't exists</source> + <translation>%1: no existeix</translation> + </message> + <message> + <source>%1: out of resources</source> + <translation>%1: s'han sobrepassat els recursos</translation> + </message> + <message> + <source>%1: unknown error %2</source> + <translation>%1: error desconegut %2</translation> + </message> + <message> + <source>%1: key is empty</source> + <translation>%1: la clau és buida</translation> + </message> + <message> + <source>%1: unix key file doesn't exists</source> + <translation>%1: no existeix el fitxer de clau unix</translation> + </message> + <message> + <source>%1: ftok failed</source> + <translation>%1: ha fallat ftok</translation> + </message> + <message> + <source>%1: unable to make key</source> + <translation>%1: no es pot crear la clau</translation> + </message> + <message> + <source>%1: system-imposed size restrictions</source> + <translation>%1: el sistema ha posat restriccions de mida</translation> + </message> + <message> + <source>%1: not attached</source> + <translation>%1: no connectat</translation> + </message> +</context> +<context> + <name>QShortcut</name> + <message> + <source>Space</source> + <translation>Espai</translation> + </message> + <message> + <source>Esc</source> + <translation>Esc</translation> + </message> + <message> + <source>Tab</source> + <translation>Tab</translation> + </message> + <message> + <source>Backtab</source> + <translation>Retro Tab</translation> + </message> + <message> + <source>Backspace</source> + <translation>Retrocés</translation> + </message> + <message> + <source>Return</source> + <translation>Retorn</translation> + </message> + <message> + <source>Enter</source> + <translation>Intro</translation> + </message> + <message> + <source>Ins</source> + <translation>Ins</translation> + </message> + <message> + <source>Del</source> + <translation>Supr</translation> + </message> + <message> + <source>Pause</source> + <translation>Pausa</translation> + </message> + <message> + <source>Print</source> + <translation>Imprimeix</translation> + </message> + <message> + <source>SysReq</source> + <translation>Pet Sis</translation> + </message> + <message> + <source>Home</source> + <translation>Inici</translation> + </message> + <message> + <source>End</source> + <translation>Fi</translation> + </message> + <message> + <source>Left</source> + <translation>Esquerra</translation> + </message> + <message> + <source>Up</source> + <translation>Amunt</translation> + </message> + <message> + <source>Right</source> + <translation>Dreta</translation> + </message> + <message> + <source>Down</source> + <translation>Avall</translation> + </message> + <message> + <source>PgUp</source> + <translation>Re Pag</translation> + </message> + <message> + <source>PgDown</source> + <translation>Av Pag</translation> + </message> + <message> + <source>CapsLock</source> + <translation>Bloq Majús</translation> + </message> + <message> + <source>NumLock</source> + <translation>Bloq Num</translation> + </message> + <message> + <source>ScrollLock</source> + <translation>Bloq Despl</translation> + </message> + <message> + <source>Menu</source> + <translation>Menú</translation> + </message> + <message> + <source>Help</source> + <translation>Ajuda</translation> + </message> + <message> + <source>Back</source> + <translation>Arrere</translation> + </message> + <message> + <source>Forward</source> + <translation>Avant</translation> + </message> + <message> + <source>Stop</source> + <translation>Atura</translation> + </message> + <message> + <source>Refresh</source> + <translation>Refresca</translation> + </message> + <message> + <source>Volume Down</source> + <translation>Baixa el volum</translation> + </message> + <message> + <source>Volume Mute</source> + <translation>Silenci</translation> + </message> + <message> + <source>Volume Up</source> + <translation>Puja el volum</translation> + </message> + <message> + <source>Bass Boost</source> + <translation>Potencia els geus</translation> + </message> + <message> + <source>Bass Up</source> + <translation>Puja els greus</translation> + </message> + <message> + <source>Bass Down</source> + <translation>Baixa els greus</translation> + </message> + <message> + <source>Treble Up</source> + <translation>Puja els aguts </translation> + </message> + <message> + <source>Treble Down</source> + <translation>Baixa els aguts</translation> + </message> + <message> + <source>Media Play</source> + <translation>Inicia Mèdia</translation> + </message> + <message> + <source>Media Stop</source> + <translation>Atura Mèdia</translation> + </message> + <message> + <source>Media Previous</source> + <translation>Mèdia Anterior</translation> + </message> + <message> + <source>Media Next</source> + <translation>Mèdia Següent</translation> + </message> + <message> + <source>Media Record</source> + <translation>Grava Mèdia</translation> + </message> + <message> + <source>Favorites</source> + <translation>Preferits</translation> + </message> + <message> + <source>Search</source> + <translation>Cerca</translation> + </message> + <message> + <source>Standby</source> + <translation>Repòs</translation> + </message> + <message> + <source>Open URL</source> + <translation>Obri URL</translation> + </message> + <message> + <source>Launch Mail</source> + <translation>Inicia Correu</translation> + </message> + <message> + <source>Launch Media</source> + <translation>Inicia Mèdia</translation> + </message> + <message> + <source>Launch (0)</source> + <translation>Inicia (0)</translation> + </message> + <message> + <source>Launch (1)</source> + <translation>Inicia (1)</translation> + </message> + <message> + <source>Launch (2)</source> + <translation>Inicia (2)</translation> + </message> + <message> + <source>Launch (3)</source> + <translation>Inicia (3)</translation> + </message> + <message> + <source>Launch (4)</source> + <translation>Inicia (4)</translation> + </message> + <message> + <source>Launch (5)</source> + <translation>Inicia (5)</translation> + </message> + <message> + <source>Launch (6)</source> + <translation>Inicia (6)</translation> + </message> + <message> + <source>Launch (7)</source> + <translation>Inicia (7)</translation> + </message> + <message> + <source>Launch (8)</source> + <translation>Inicia (8)</translation> + </message> + <message> + <source>Launch (9)</source> + <translation>Inicia (9)</translation> + </message> + <message> + <source>Launch (A)</source> + <translation>Inicia (A)</translation> + </message> + <message> + <source>Launch (B)</source> + <translation>Inicia (B)</translation> + </message> + <message> + <source>Launch (C)</source> + <translation>Inicia (C)</translation> + </message> + <message> + <source>Launch (D)</source> + <translation>Inicia (D)</translation> + </message> + <message> + <source>Launch (E)</source> + <translation>Inicia (E)</translation> + </message> + <message> + <source>Launch (F)</source> + <translation>Inicia (F)</translation> + </message> + <message> + <source>Print Screen</source> + <translation>Impr Pant</translation> + </message> + <message> + <source>Page Up</source> + <translation>Re Pag</translation> + </message> + <message> + <source>Page Down</source> + <translation>Av Pag</translation> + </message> + <message> + <source>Caps Lock</source> + <translation>Bloq Majús</translation> + </message> + <message> + <source>Num Lock</source> + <translation>Bloq Num</translation> + </message> + <message> + <source>Number Lock</source> + <translation>Bloq Num</translation> + </message> + <message> + <source>Scroll Lock</source> + <translation>Bloq Despl</translation> + </message> + <message> + <source>Insert</source> + <translation>Insert</translation> + </message> + <message> + <source>Delete</source> + <translation>Suprimeix</translation> + </message> + <message> + <source>Escape</source> + <translation>Esc</translation> + </message> + <message> + <source>System Request</source> + <translation>Pet Sis</translation> + </message> + <message> + <source>Select</source> + <translation>Selec</translation> + </message> + <message> + <source>Yes</source> + <translation>SÃ</translation> + </message> + <message> + <source>No</source> + <translation>No</translation> + </message> + <message> + <source>Context1</source> + <translation>Context1</translation> + </message> + <message> + <source>Context2</source> + <translation>Context2</translation> + </message> + <message> + <source>Context3</source> + <translation>Context3</translation> + </message> + <message> + <source>Context4</source> + <translation>Context4</translation> + </message> + <message> + <source>Call</source> + <translation>Crida</translation> + </message> + <message> + <source>Hangup</source> + <translation>Penja</translation> + </message> + <message> + <source>Flip</source> + <translation>Inverteix</translation> + </message> + <message> + <source>Ctrl</source> + <translation>Ctrl</translation> + </message> + <message> + <source>Shift</source> + <translation>Shift</translation> + </message> + <message> + <source>Alt</source> + <translation>Alt</translation> + </message> + <message> + <source>Meta</source> + <translation>Meta</translation> + </message> + <message> + <source>+</source> + <translation>+</translation> + </message> + <message> + <source>F%1</source> + <translation>F%1</translation> + </message> + <message> + <source>Home Page</source> + <translation>Pà gina d'inici</translation> + </message> +</context> +<context> + <name>QSlider</name> + <message> + <source>Page left</source> + <translation>Pà gina esquerra</translation> + </message> + <message> + <source>Page up</source> + <translation>Pà gina amunt</translation> + </message> + <message> + <source>Position</source> + <translation>Posició</translation> + </message> + <message> + <source>Page right</source> + <translation>Pà gina dreta</translation> + </message> + <message> + <source>Page down</source> + <translation>Pà gina avall</translation> + </message> +</context> +<context> + <name>QSocks5SocketEngine</name> + <message> + <source>Socks5 timeout error connecting to socks server</source> + <translation>error de temps excedit Socks5 mentre es connectava al servidor de sòcols</translation> + </message> + <message> + <source>Network operation timed out</source> + <translation>L'operació de xarxa ha excedit el temps</translation> + </message> +</context> +<context> + <name>QSpinBox</name> + <message> + <source>More</source> + <translation>Més</translation> + </message> + <message> + <source>Less</source> + <translation>Menys</translation> + </message> +</context> +<context> + <name>QSql</name> + <message> + <source>Delete</source> + <translation>Suprimeix</translation> + </message> + <message> + <source>Delete this record?</source> + <translation>Voleu suprimir este registre?</translation> + </message> + <message> + <source>Yes</source> + <translation>SÃ</translation> + </message> + <message> + <source>No</source> + <translation>No</translation> + </message> + <message> + <source>Insert</source> + <translation>Insereix</translation> + </message> + <message> + <source>Update</source> + <translation>Actualitza</translation> + </message> + <message> + <source>Save edits?</source> + <translation>Voleu alçar els canvis?</translation> + </message> + <message> + <source>Cancel</source> + <translation>Cancel·la</translation> + </message> + <message> + <source>Confirm</source> + <translation>Confirmació</translation> + </message> + <message> + <source>Cancel your edits?</source> + <translation>Voleu cancel·lar els canvis?</translation> + </message> +</context> +<context> + <name>QSslSocket</name> + <message> + <source>Unable to write data: %1</source> + <translation>No es poden escriure les dades: %1</translation> + </message> + <message> + <source>Error while reading: %1</source> + <translation>S'ha produït un error en llegir: %1</translation> + </message> + <message> + <source>Error during SSL handshake: %1</source> + <translation>S'ha produït un error en la conformitat de connexió SSL: %1</translation> + </message> + <message> + <source>Error creating SSL context (%1)</source> + <translation>S'ha produït un error en crear el context SSL (%1)</translation> + </message> + <message> + <source>Invalid or empty cipher list (%1)</source> + <translation>Llista de xifres no và lida o buida (%1)</translation> + </message> + <message> + <source>Error creating SSL session, %1</source> + <translation>S'ha produït un error en crear la sessió SSL, %1</translation> + </message> + <message> + <source>Error creating SSL session: %1</source> + <translation>S'ha produït un error en crear la sessió SSL: %1</translation> + </message> + <message> + <source>Cannot provide a certificate with no key, %1</source> + <translation>No es pot proveir un certificat sense una clau, %1</translation> + </message> + <message> + <source>Error loading local certificate, %1</source> + <translation>S'ha produït un error en carregar el certificat local, %1</translation> + </message> + <message> + <source>Error loading private key, %1</source> + <translation>S'ha produït un error en carregar la clau privada, %1</translation> + </message> + <message> + <source>Private key does not certificate public key, %1</source> + <translation>La clau privada no certifica la clau pública, %1</translation> + </message> +</context> +<context> + <name>QTDSDriver</name> + <message> + <source>Unable to open connection</source> + <translation>No es pot obrir la connexió</translation> + </message> + <message> + <source>Unable to use database</source> + <translation>No es pot usar la base de dades</translation> + </message> +</context> +<context> + <name>QTabBar</name> + <message> + <source>Scroll Left</source> + <translation>Desplaça a l'esquerra</translation> + </message> + <message> + <source>Scroll Right</source> + <translation>Desplaça a la dreta</translation> + </message> +</context> +<context> + <name>QTextControl</name> + <message> + <source>&Undo</source> + <translation>&Desfés</translation> + </message> + <message> + <source>&Redo</source> + <translation>&Refés</translation> + </message> + <message> + <source>Cu&t</source> + <translation>Re&talla</translation> + </message> + <message> + <source>&Copy</source> + <translation>&Copia</translation> + </message> + <message> + <source>Copy &Link Location</source> + <translation>Copia l'adreça de l'en&llaç</translation> + </message> + <message> + <source>&Paste</source> + <translation>Engan&xa</translation> + </message> + <message> + <source>Delete</source> + <translation>Suprimeix</translation> + </message> + <message> + <source>Select All</source> + <translation>Selecciona-ho tot</translation> + </message> +</context> +<context> + <name>QToolButton</name> + <message> + <source>Press</source> + <translation>Premeu</translation> + </message> + <message> + <source>Open</source> + <translation>Obri</translation> + </message> +</context> +<context> + <name>QUdpSocket</name> + <message> + <source>This platform does not support IPv6</source> + <translation>Esta plataforma no admet IPV6</translation> + </message> +</context> +<context> + <name>QUndoGroup</name> + <message> + <source>Undo</source> + <translation>Desfés</translation> + </message> + <message> + <source>Redo</source> + <translation>Refés</translation> + </message> +</context> +<context> + <name>QUndoModel</name> + <message> + <source><empty></source> + <translation><buit></translation> + </message> +</context> +<context> + <name>QUndoStack</name> + <message> + <source>Undo</source> + <translation>Desfés</translation> + </message> + <message> + <source>Redo</source> + <translation>Refés</translation> + </message> +</context> +<context> + <name>QUnicodeControlCharacterMenu</name> + <message> + <source>LRM Left-to-right mark</source> + <translation>LRM Marca esquerra-a-dreta</translation> + </message> + <message> + <source>RLM Right-to-left mark</source> + <translation>RLM marca dreta-a-esquerra</translation> + </message> + <message> + <source>ZWJ Zero width joiner</source> + <translation>ZWJ Zero width joiner</translation> + </message> + <message> + <source>ZWNJ Zero width non-joiner</source> + <translation>ZWNJ Zero width non-joiner</translation> + </message> + <message> + <source>ZWSP Zero width space</source> + <translation>ZWSP Espai d'amplada zero</translation> + </message> + <message> + <source>LRE Start of left-to-right embedding</source> + <translation>LRE Inici de la incrustació esquerra-a-dreta</translation> + </message> + <message> + <source>RLE Start of right-to-left embedding</source> + <translation>RLE Inici de la incrustació dreta-a-esquerra</translation> + </message> + <message> + <source>LRO Start of left-to-right override</source> + <translation>LRO Inici de la sobreescriptura esquerra-a-dreta</translation> + </message> + <message> + <source>RLO Start of right-to-left override</source> + <translation>RLO Inici de la sobreescriptura dreta-a-esquerra</translation> + </message> + <message> + <source>PDF Pop directional formatting</source> + <translation>PDF Pop directional formatting</translation> + </message> + <message> + <source>Insert Unicode control character</source> + <translation>Insereix un carà cter de control Unicode</translation> + </message> +</context> +<context> + <name>QWebFrame</name> + <message> + <source>Request cancelled</source> + <translation>S'ha cancel·lat la sol·licitud</translation> + </message> + <message> + <source>Request blocked</source> + <translation>S'ha bloquejat la sol·licitud</translation> + </message> + <message> + <source>Cannot show URL</source> + <translation>No es pot mostrar l'URL</translation> + </message> + <message> + <source>Frame load interruped by policy change</source> + <translation>S'ha interromput la cà rrega per canvi de polÃtica</translation> + </message> + <message> + <source>Cannot show mimetype</source> + <translation>No es pot mostrar el mimetype</translation> + </message> + <message> + <source>File does not exist</source> + <translation>El fitxer no existeix</translation> + </message> +</context> +<context> + <name>QWebPage</name> + <message> + <source>Bad HTTP request</source> + <translation>Ha fallat la sol·licitud HTTP</translation> + </message> + <message> + <source>Submit</source> + <comment>default label for Submit buttons in forms on web pages</comment> + <translation>Envia</translation> + </message> + <message> + <source>Submit</source> + <comment>Submit (input element) alt text for <input> elements with no alt, title, or value</comment> + <translation>Envia</translation> + </message> + <message> + <source>Reset</source> + <comment>default label for Reset buttons in forms on web pages</comment> + <translation>Reinicia</translation> + </message> + <message> + <source>This is a searchable index. Enter search keywords: </source> + <comment>text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index'</comment> + <translation>Este és un Ãndex on es pot cercar. Introduïu les paraules de cerca: </translation> + </message> + <message> + <source>Choose File</source> + <comment>title for file button used in HTML forms</comment> + <translation>Trieu un fitxer</translation> + </message> + <message> + <source>No file selected</source> + <comment>text to display in file button used in HTML forms when no file is selected</comment> + <translation>No s'ha seleccionat cap fitxer</translation> + </message> + <message> + <source>Open in New Window</source> + <comment>Open in New Window context menu item</comment> + <translation>Obri a una nova finestra</translation> + </message> + <message> + <source>Save Link...</source> + <comment>Download Linked File context menu item</comment> + <translation>Alça l'enllaç...</translation> + </message> + <message> + <source>Copy Link</source> + <comment>Copy Link context menu item</comment> + <translation>Copia l'enllaç</translation> + </message> + <message> + <source>Open Image</source> + <comment>Open Image in New Window context menu item</comment> + <translation>Obri la imatge</translation> + </message> + <message> + <source>Save Image</source> + <comment>Download Image context menu item</comment> + <translation>Alça la imatge</translation> + </message> + <message> + <source>Copy Image</source> + <comment>Copy Link context menu item</comment> + <translation>Copia la imatge</translation> + </message> + <message> + <source>Open Frame</source> + <comment>Open Frame in New Window context menu item</comment> + <translation>Obri el marc</translation> + </message> + <message> + <source>Copy</source> + <comment>Copy context menu item</comment> + <translation>Copia</translation> + </message> + <message> + <source>Go Back</source> + <comment>Back context menu item</comment> + <translation>Vés arrere</translation> + </message> + <message> + <source>Go Forward</source> + <comment>Forward context menu item</comment> + <translation>Vés avant</translation> + </message> + <message> + <source>Stop</source> + <comment>Stop context menu item</comment> + <translation>Atura</translation> + </message> + <message> + <source>Reload</source> + <comment>Reload context menu item</comment> + <translation>Torna a carregar</translation> + </message> + <message> + <source>Cut</source> + <comment>Cut context menu item</comment> + <translation>Retalla</translation> + </message> + <message> + <source>Paste</source> + <comment>Paste context menu item</comment> + <translation>Enganxa</translation> + </message> + <message> + <source>No Guesses Found</source> + <comment>No Guesses Found context menu item</comment> + <translation>No s'ha trobat cap suposició</translation> + </message> + <message> + <source>Ignore</source> + <comment>Ignore Spelling context menu item</comment> + <translation>Ignora</translation> + </message> + <message> + <source>Add To Dictionary</source> + <comment>Learn Spelling context menu item</comment> + <translation>Afig al diccionari</translation> + </message> + <message> + <source>Search The Web</source> + <comment>Search The Web context menu item</comment> + <translation>Cerca al web</translation> + </message> + <message> + <source>Look Up In Dictionary</source> + <comment>Look Up in Dictionary context menu item</comment> + <translation>Cerca al diccionari</translation> + </message> + <message> + <source>Open Link</source> + <comment>Open Link context menu item</comment> + <translation>Obri l'enllaç</translation> + </message> + <message> + <source>Ignore</source> + <comment>Ignore Grammar context menu item</comment> + <translation>Ignora</translation> + </message> + <message> + <source>Spelling</source> + <comment>Spelling and Grammar context sub-menu item</comment> + <translation>Ortografia</translation> + </message> + <message> + <source>Show Spelling and Grammar</source> + <comment>menu item title</comment> + <translation>Mostra l'ortografia i la gramà tica</translation> + </message> + <message> + <source>Hide Spelling and Grammar</source> + <comment>menu item title</comment> + <translation>Amaga l'ortografia i la gramà tica</translation> + </message> + <message> + <source>Check Spelling</source> + <comment>Check spelling context menu item</comment> + <translation>Comprova l'ortografia</translation> + </message> + <message> + <source>Check Spelling While Typing</source> + <comment>Check spelling while typing context menu item</comment> + <translation>Comprova l'ortografia mentre s'escriu</translation> + </message> + <message> + <source>Check Grammar With Spelling</source> + <comment>Check grammar with spelling context menu item</comment> + <translation>Comprova la gramà tica mentre s'escriu</translation> + </message> + <message> + <source>Fonts</source> + <comment>Font context sub-menu item</comment> + <translation>Tipus de lletra</translation> + </message> + <message> + <source>Bold</source> + <comment>Bold context menu item</comment> + <translation>Negreta</translation> + </message> + <message> + <source>Italic</source> + <comment>Italic context menu item</comment> + <translation>Cursiva</translation> + </message> + <message> + <source>Underline</source> + <comment>Underline context menu item</comment> + <translation>Subratllat</translation> + </message> + <message> + <source>Outline</source> + <comment>Outline context menu item</comment> + <translation>Contorn</translation> + </message> + <message> + <source>Direction</source> + <comment>Writing direction context sub-menu item</comment> + <translation>Direcció</translation> + </message> + <message> + <source>Default</source> + <comment>Default writing direction context menu item</comment> + <translation>Per defecte</translation> + </message> + <message> + <source>LTR</source> + <comment>Left to Right context menu item</comment> + <translation>EAD</translation> + </message> + <message> + <source>RTL</source> + <comment>Right to Left context menu item</comment> + <translation>DAE</translation> + </message> + <message> + <source>Inspect</source> + <comment>Inspect Element context menu item</comment> + <translation>Inspecciona</translation> + </message> + <message> + <source>No recent searches</source> + <comment>Label for only item in menu that appears when clicking on the search field image, when no searches have been performed</comment> + <translation>No hi ha cerques recents</translation> + </message> + <message> + <source>Recent searches</source> + <comment>label for first item in the menu that appears when clicking on the search field image, used as embedded menu title</comment> + <translation>Cerques recents</translation> + </message> + <message> + <source>Clear recent searches</source> + <comment>menu item in Recent Searches menu that empties menu's contents</comment> + <translation>Neteja les cerques recents</translation> + </message> + <message> + <source>Unknown</source> + <comment>Unknown filesize FTP directory listing item</comment> + <translation>Desconegut</translation> + </message> + <message> + <source>%1 (%2x%3 pixels)</source> + <comment>Title string for images</comment> + <translation>%1 (%2x%3 pÃxels)</translation> + </message> + <message> + <source>Web Inspector - %2</source> + <translation>Web inspector - %2</translation> + </message> +</context> +<context> + <name>QWhatsThisAction</name> + <message> + <source>What's This?</source> + <translation>Què és això?</translation> + </message> +</context> +<context> + <name>QWidget</name> + <message> + <source>*</source> + <translation>*</translation> + </message> +</context> +<context> + <name>QWizard</name> + <message> + <source>Go Back</source> + <translation>Vés arrere</translation> + </message> + <message> + <source>Continue</source> + <translation>Continua</translation> + </message> + <message> + <source>Commit</source> + <translation>Valida</translation> + </message> + <message> + <source>Done</source> + <translation>Fet</translation> + </message> + <message> + <source>Quit</source> + <translation>Ix</translation> + </message> + <message> + <source>Help</source> + <translation>Ajuda</translation> + </message> + <message> + <source>< &Back</source> + <translation>< &Arrere</translation> + </message> + <message> + <source>&Finish</source> + <translation>&Finalitza</translation> + </message> + <message> + <source>Cancel</source> + <translation>Cancel·la</translation> + </message> + <message> + <source>&Help</source> + <translation>A&juda</translation> + </message> + <message> + <source>&Next</source> + <translation>Següe&n</translation> + </message> + <message> + <source>&Next ></source> + <translation>Següe&nt ></translation> + </message> +</context> +<context> + <name>QWorkspace</name> + <message> + <source>&Restore</source> + <translation>&Restaura</translation> + </message> + <message> + <source>&Move</source> + <translation>&Mou</translation> + </message> + <message> + <source>&Size</source> + <translation>Mi&da</translation> + </message> + <message> + <source>Mi&nimize</source> + <translation>Mi&nimitza</translation> + </message> + <message> + <source>Ma&ximize</source> + <translation>Ma&ximitza</translation> + </message> + <message> + <source>&Close</source> + <translation>&Tanca</translation> + </message> + <message> + <source>Stay on &Top</source> + <translation>&Sempre per damunt</translation> + </message> + <message> + <source>Sh&ade</source> + <translation>&Ombra</translation> + </message> + <message> + <source>%1 - [%2]</source> + <translation>%1 - [%2]</translation> + </message> + <message> + <source>Minimize</source> + <translation>Minimitza</translation> + </message> + <message> + <source>Restore Down</source> + <translation>Restaura a sota</translation> + </message> + <message> + <source>Close</source> + <translation>Tanca</translation> + </message> + <message> + <source>&Unshade</source> + <translation>&Ombreja</translation> + </message> +</context> +<context> + <name>QXml</name> + <message> + <source>no error occurred</source> + <translation>no s'ha produït cap error</translation> + </message> + <message> + <source>error triggered by consumer</source> + <translation>error provocat per l'usuari</translation> + </message> + <message> + <source>unexpected end of file</source> + <translation>final del fitxer inesperat</translation> + </message> + <message> + <source>more than one document type definition</source> + <translation>més d'una definició del tipus de document</translation> + </message> + <message> + <source>error occurred while parsing element</source> + <translation>s'ha produït un error mentre s'analitzava l'element</translation> + </message> + <message> + <source>tag mismatch</source> + <translation>marca discordant</translation> + </message> + <message> + <source>error occurred while parsing content</source> + <translation>s'ha produït un error mentre s'analitzava el contingut</translation> + </message> + <message> + <source>unexpected character</source> + <translation>carà cter inesperat</translation> + </message> + <message> + <source>invalid name for processing instruction</source> + <translation>nom per processar la instrucció no và lid</translation> + </message> + <message> + <source>version expected while reading the XML declaration</source> + <translation>s'esperava llegir la versió en llegir la declaració XML</translation> + </message> + <message> + <source>wrong value for standalone declaration</source> + <translation>valor erroni per a la declaració 'standalone'</translation> + </message> + <message> + <source>encoding declaration or standalone declaration expected while reading the XML declaration</source> + <translation>s'esperava la declaració 'encoding' o 'standalone' en llegir la declaració XML</translation> + </message> + <message> + <source>standalone declaration expected while reading the XML declaration</source> + <translation>s'esperava la declaració 'standalone' en llegir la declaració XML</translation> + </message> + <message> + <source>error occurred while parsing document type definition</source> + <translation>s'ha produït un error mentre s'analitzava la definició del tipus de document</translation> + </message> + <message> + <source>letter is expected</source> + <translation>s'espera una carta</translation> + </message> + <message> + <source>error occurred while parsing comment</source> + <translation>s'ha produït un error quan s'analitzava el document</translation> + </message> + <message> + <source>error occurred while parsing reference</source> + <translation>s'ha produït un error quan s'analitzava la referència</translation> + </message> + <message> + <source>internal general entity reference not allowed in DTD</source> + <translation>no estan permeses referències internes a entitats generals a la DTD</translation> + </message> + <message> + <source>external parsed general entity reference not allowed in attribute value</source> + <translation>no estan permeses referències externes a entitats generals que ja s'han analitzat al valor de l'atribut</translation> + </message> + <message> + <source>external parsed general entity reference not allowed in DTD</source> + <translation>no estan permeses referències externes a entitats generals que ja s'han analitzat a la DTD</translation> + </message> + <message> + <source>unparsed entity reference in wrong context</source> + <translation>referència a la entitat no analitzada en un context inadequat</translation> + </message> + <message> + <source>recursive entities</source> + <translation>entitats recursives</translation> + </message> + <message> + <source>error in the text declaration of an external entity</source> + <translation>error a la declaració textual d'una entitat externa</translation> + </message> +</context> +<context> + <name>QXmlStream</name> + <message> + <source>Extra content at end of document.</source> + <translation>Contingut extra al final del document.</translation> + </message> + <message> + <source>Invalid entity value.</source> + <translation>valor d'entitat no và lid.</translation> + </message> + <message> + <source>Invalid XML character.</source> + <translation>Carà cter XML no và lid.</translation> + </message> + <message> + <source>Sequence ']]>' not allowed in content.</source> + <translation>Seqüència ']]>' no permesa en el contingut.</translation> + </message> + <message> + <source>Namespace prefix '%1' not declared</source> + <translation>Prefix '%1' del namespace no declarat</translation> + </message> + <message> + <source>Attribute redefined.</source> + <translation>S'ha tornat a definir l'atribut.</translation> + </message> + <message> + <source>Unexpected character '%1' in public id literal.</source> + <translation>Carà cter '%1' inesperat en literal id públic.</translation> + </message> + <message> + <source>Invalid XML version string.</source> + <translation>Cadena de versió XML no và lida.</translation> + </message> + <message> + <source>Unsupported XML version.</source> + <translation>Versió XML no compatible.</translation> + </message> + <message> + <source>%1 is an invalid encoding name.</source> + <translation>%1 és un nom de codificació no và lid.</translation> + </message> + <message> + <source>Encoding %1 is unsupported</source> + <translation>La codificació %1 no és compatible</translation> + </message> + <message> + <source>Standalone accepts only yes or no.</source> + <translation>'Standalone' només accepta sà o no.</translation> + </message> + <message> + <source>Invalid attribute in XML declaration.</source> + <translation>Atribut no và lid en la declaració XML.</translation> + </message> + <message> + <source>Premature end of document.</source> + <translation>Final del document prematur.</translation> + </message> + <message> + <source>Invalid document.</source> + <translation>Document no và lid.</translation> + </message> + <message> + <source>Expected </source> + <translation>Esperat </translation> + </message> + <message> + <source>, but got '</source> + <translation>, però té '</translation> + </message> + <message> + <source>Unexpected '</source> + <translation>Inesperat '</translation> + </message> + <message> + <source>Expected character data.</source> + <translation>S'esperaven dades del carà cter.</translation> + </message> + <message> + <source>Recursive entity detected.</source> + <translation>S'ha detectat una entitat recursiva.</translation> + </message> + <message> + <source>Start tag expected.</source> + <translation>S'esperava l'inici de marca.</translation> + </message> + <message> + <source>XML declaration not at start of document.</source> + <translation>Hi ha una declaració XML que no està al començament del document.</translation> + </message> + <message> + <source>NDATA in parameter entity declaration.</source> + <translation>NDATA en la declaració de l'entitat d'un parà metre.</translation> + </message> + <message> + <source>%1 is an invalid processing instruction name.</source> + <translation>%1 és un nom per processar la instrucció no và lid.</translation> + </message> + <message> + <source>Invalid processing instruction name.</source> + <translation>Nom per processar la instrucció no và lid.</translation> + </message> + <message> + <source>Illegal namespace declaration.</source> + <translation>Declaració 'namespace' il·legal.</translation> + </message> + <message> + <source>Invalid XML name.</source> + <translation>Nom XML no và lid.</translation> + </message> + <message> + <source>Opening and ending tag mismatch.</source> + <translation>L'obertura i el tancament de la marca no concorden.</translation> + </message> + <message> + <source>Reference to unparsed entity '%1'.</source> + <translation>Referència a l'entitat no analitzada '%1'.</translation> + </message> + <message> + <source>Entity '%1' not declared.</source> + <translation>Entitat '%1' no declarada.</translation> + </message> + <message> + <source>Reference to external entity '%1' in attribute value.</source> + <translation>Referència a l'entitat externa '%1' en valor atribut.</translation> + </message> + <message> + <source>Invalid character reference.</source> + <translation>Referència de carà cter no và lida.</translation> + </message> + <message> + <source>Encountered incorrectly encoded content.</source> + <translation>S'ha trobat contingut codificat incorrectament.</translation> + </message> + <message> + <source>The standalone pseudo attribute must appear after the encoding.</source> + <translation>El pseudo atribut 'standalone' ha d'aparèixer després de la codificació.</translation> + </message> + <message> + <source>%1 is an invalid PUBLIC identifier.</source> + <translation>%1 és un identificador PUBLIC no và lid.</translation> + </message> +</context> +<context> + <name>QtXmlPatterns</name> + <message> + <source>An %1-attribute with value %2 has already been declared.</source> + <translation>Ja s'ha declarat un atribut %1 amb un valor %2.</translation> + </message> + <message> + <source>An %1-attribute must have a valid %2 as value, which %3 isn't.</source> + <translation>Un atribut %1 ha de tindre com a valor và lid %2, cosa que %3 no és.</translation> + </message> + <message> + <source>Network timeout.</source> + <translation>La connexió ha excedit el temps.</translation> + </message> + <message> + <source>Element %1 can't be serialized because it appears outside the document element.</source> + <translation>No es pot llistar l'element %1 perquè pareix que es troba fora l'element document.</translation> + </message> + <message> + <source>Attribute %1 can't be serialized because it appears at the top level.</source> + <translation>No es pot llistar l'atribut %1 perquè pareix que es troba a dalt de tot.</translation> + </message> + <message> + <source>Year %1 is invalid because it begins with %2.</source> + <translation>L'any %1 no és và lid perquè comença amb %2.</translation> + </message> + <message> + <source>Day %1 is outside the range %2..%3.</source> + <translation>El dia %1 es troba fora del rang %2..%3.</translation> + </message> + <message> + <source>Month %1 is outside the range %2..%3.</source> + <translation>El mes %1 es troba fora del rang %2..%3.</translation> + </message> + <message> + <source>Overflow: Can't represent date %1.</source> + <translation>Desbordament: no es pot representar la data %1.</translation> + </message> + <message> + <source>Day %1 is invalid for month %2.</source> + <translation>El dia %1 no és và lid per al mes %2.</translation> + </message> + <message> + <source>Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; </source> + <translation>Temps 24:%1:%2.%3 no és và lid. L''hora és 24, però els minuts, segons i milisegons no són tots 0; </translation> + </message> + <message> + <source>Time %1:%2:%3.%4 is invalid.</source> + <translation>Temps %1:%2.%3.%4 no és và lid.</translation> + </message> + <message> + <source>Overflow: Date can't be represented.</source> + <translation>Desbordament: no es pot representar la data.</translation> + </message> + <message> + <source>At least one component must be present.</source> + <translation>Com a mÃnim un dels elements ha de ser present.</translation> + </message> + <message> + <source>At least one time component must appear after the %1-delimiter.</source> + <translation>Com a mÃnim un component de l'hora ha d'aparèixer després del delimitador %1.</translation> + </message> + <message> + <source>No operand in an integer division, %1, can be %2.</source> + <translation>Sense operants en una divisó d'enters, %1, pot ser %2.</translation> + </message> + <message> + <source>The first operand in an integer division, %1, cannot be infinity (%2).</source> + <translation>El primer operant en una divisió d'enters, %1, no pot ser infinit (%2).</translation> + </message> + <message> + <source>The second operand in a division, %1, cannot be zero (%2).</source> + <translation>El segon operant en una divisió, %1, no pot ser cero (%2).</translation> + </message> + <message> + <source>%1 is not a valid value of type %2.</source> + <translation>%1 no és un valor và lid del tipus %2.</translation> + </message> + <message> + <source>When casting to %1 from %2, the source value cannot be %3.</source> + <translation>Quan s'emet %1 des de %2, el valor font no pot ser %3.</translation> + </message> + <message> + <source>Integer division (%1) by zero (%2) is undefined.</source> + <translation>La divisió entera (%1) per cero (%2) no està definida.</translation> + </message> + <message> + <source>Division (%1) by zero (%2) is undefined.</source> + <translation>La divisió (%1) per cero (%2) no està definida.</translation> + </message> + <message> + <source>Modulus division (%1) by zero (%2) is undefined.</source> + <translation>La divisió modular (%1) per cero (%2) no està definida.</translation> + </message> + <message> + <source>Dividing a value of type %1 by %2 (not-a-number) is not allowed.</source> + <translation>No està permés dividir un valor del tipus %1 per un del tipus %2 (no és un número).</translation> + </message> + <message> + <source>Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed.</source> + <translation>No està permesa la divisió d'un valor del tipus %1 per un del tipus %2 o %3 (per sobre o sota de cero).</translation> + </message> + <message> + <source>Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed.</source> + <translation>No està permesa la multiplicació d'un valor del tipus %1 per un del tipus %2 o %3 (més o menys infinit).</translation> + </message> + <message> + <source>A value of type %1 cannot have an Effective Boolean Value.</source> + <translation>Un valor del tipus %1 no pot tindre un valor booleà efectiu.</translation> + </message> + <message> + <source>Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values.</source> + <translation>Un valor booleà efectiu no pot calcular-se per a una seqüència contenint dos o més valors atòmics.</translation> + </message> + <message> + <source>Value %1 of type %2 exceeds maximum (%3).</source> + <translation>El valor %1 del tipus %2 excedeix el mà xim (%3).</translation> + </message> + <message> + <source>Value %1 of type %2 is below minimum (%3).</source> + <translation>El valor %1 del tipus %2 es troba per sota del mÃnim (%3).</translation> + </message> + <message> + <source>A value of type %1 must contain an even number of digits. The value %2 does not.</source> + <translation>Un valor del tipus %1 ha de contindre un valor senar de dÃgits. El valor %2 no el conté.</translation> + </message> + <message> + <source>%1 is not valid as a value of type %2.</source> + <translation>%1 no és và lid com a valor del tipus %2.</translation> + </message> + <message> + <source>Operator %1 cannot be used on type %2.</source> + <translation>L'operador %1 no pot fer-se servir en el tipus %2.</translation> + </message> + <message> + <source>Operator %1 cannot be used on atomic values of type %2 and %3.</source> + <translation>L'operador %1 no pot fer-se servir en valors atòmics del tipus %2 i %3.</translation> + </message> + <message> + <source>The namespace URI in the name for a computed attribute cannot be %1.</source> + <translation>L'URI del nom per a un atribut computat no pot ser %1.</translation> + </message> + <message> + <source>The name for a computed attribute cannot have the namespace URI %1 with the local name %2.</source> + <translation>El nom per a un valor computat no pot tindre una URI %1 amb un nom local %2.</translation> + </message> + <message> + <source>Type error in cast, expected %1, received %2.</source> + <translation>S'ha produït un error, s'esperava %1 i s'ha rebut %2.</translation> + </message> + <message> + <source>When casting to %1 or types derived from it, the source value must be of the same type, or it must be a string literal. Type %2 is not allowed.</source> + <translation>Quan s'emet a %1 o a tipus derivats, la font del valor ha de ser del mateix tipus, o una cadena literal. El tipus %2 no està permés.</translation> + </message> + <message> + <source>No casting is possible with %1 as the target type.</source> + <translation>No hi ha possibilitat d'emissió amb %1 com a tipus objectiu.</translation> + </message> + <message> + <source>It is not possible to cast from %1 to %2.</source> + <translation>No és possible emitir des de %1 a %2.</translation> + </message> + <message> + <source>Casting to %1 is not possible because it is an abstract type, and can therefore never be instantiated.</source> + <translation>No és possible l'emissió a %1 perquè és un tipus abstract, i no podrà ser mai instanciat.</translation> + </message> + <message> + <source>It's not possible to cast the value %1 of type %2 to %3</source> + <translation>No és possible emitir el valor %1 del tipus %2 a %3</translation> + </message> + <message> + <source>Failure when casting from %1 to %2: %3</source> + <translation>S'ha produït una fallada quan s'emetia des de %1 a %2: %3</translation> + </message> + <message> + <source>A comment cannot contain %1</source> + <translation>Un comentari no pot contindre %1</translation> + </message> + <message> + <source>A comment cannot end with a %1.</source> + <translation>Un comentari no pot acabar amb %1.</translation> + </message> + <message> + <source>No comparisons can be done involving the type %1.</source> + <translation>No es poden fer comparacions amb el tipus %1.</translation> + </message> + <message> + <source>Operator %1 is not available between atomic values of type %2 and %3.</source> + <translation>L'operador %1 no està disponible per a valors atòmics del tipus %2 i %3.</translation> + </message> + <message> + <source>An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place.</source> + <translation>Un node atribut no pot ser un fill d'un node document. Per tant, l'atribut %1 està fora de lloc.</translation> + </message> + <message> + <source>A library module cannot be evaluated directly. It must be imported from a main module.</source> + <translation>Un mòdul de biblioteca no pot evaluar-se directament. Ha de ser importat des d'un mòdul principal.</translation> + </message> + <message> + <source>A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type.</source> + <translation>Un valor del tipus %1 no pot ser un predicat. Un predicat ha de tindre un tipus numèric o un tipus valor booleà efectiu.</translation> + </message> + <message> + <source>A positional predicate must evaluate to a single numeric value.</source> + <translation>Un predicat posicioanl ha d'evaluar un únic valor numèric.</translation> + </message> + <message> + <source>The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, is %2 invalid.</source> + <translation>El nom objectiu en una instració de processat no pot ser %1 en cap combinació en majúscules o minúscules. Per tant, no és và lid %2.</translation> + </message> + <message> + <source>%1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3.</source> + <translation>%1 no és un nom objectiu và lid en una instrucció de processat. Ha de ser un valor %2, e.x. %3.</translation> + </message> + <message> + <source>The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two.</source> + <translation>L'últim pas a una ruta ha de contindre nodes o valors atòmics. No pot ser una barreja dels dos.</translation> + </message> + <message> + <source>The data of a processing instruction cannot contain the string %1</source> + <translation>Les dades d'una instrucció de processat no poden contindre la cadena %1</translation> + </message> + <message> + <source>No namespace binding exists for the prefix %1</source> + <translation>No existeix cap vinculació per al prefix %1</translation> + </message> + <message> + <source>No namespace binding exists for the prefix %1 in %2</source> + <translation>No existeix cap vinculació per al prefix %1 a %2</translation> + </message> + <message> + <source>%1 is an invalid %2</source> + <translation>%1 és un %2 no và lid</translation> + </message> + <message numerus="yes"> + <source>%1 takes at most %n argument(s). %2 is therefore invalid.</source> + <translation> + <numerusform>%1 fa servir com a mà xim %n(s) argument. Per tant, %2 no és và lid.</numerusform> + <numerusform>%1 fa servir com a mà xim %n(s) arguments. Per tant, %2 no és và lid.</numerusform> + <numerusform>%1 fa servir com a mà xim %n(s) arguments. Per tant, %2 no és và lid.</numerusform> + </translation> + </message> + <message numerus="yes"> + <source>%1 requires at least %n argument(s). %2 is therefore invalid.</source> + <translation> + <numerusform>%1 requereix com a mÃnim %n argument. Per tant, %2 no és và lid.</numerusform> + <numerusform>%1 requereix com a mÃnim %n arguments. Per tant, %2 no és và lid.</numerusform> + <numerusform>%1 requereix com a mÃnim %n arguments. Per tant, %2 no és và lid.</numerusform> + </translation> + </message> + <message> + <source>The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration.</source> + <translation>El primer argument per a %1 no pot ser del tipus %2. Ha de ser un tipus numèric, xs:anymesdurada o xs:diahoradurada.</translation> + </message> + <message> + <source>The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5.</source> + <translation>El primer argument per a %1 no pot ser del tipus %2. Ha de ser del tipus %3, %4 o %5.</translation> + </message> + <message> + <source>The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5.</source> + <translation>El segon argument per a %1 no pot ser del tipus %2. Ha de ser del tipus %3, %4 o %5.</translation> + </message> + <message> + <source>%1 is not a valid XML 1.0 character.</source> + <translation>%1 no és un carà cter XML 1.0 và lid.</translation> + </message> + <message> + <source>The first argument to %1 cannot be of type %2.</source> + <translation>El primer argument per a %1 no pot ser del tipus %2.</translation> + </message> + <message> + <source>If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same.</source> + <translation>Si els dos valors tenen retards de zona, han de tindre el mateix retard de zona. %1 i %2 no tenen el mateix.</translation> + </message> + <message> + <source>%1 was called.</source> + <translation>Es va cridar %1.</translation> + </message> + <message> + <source>%1 must be followed by %2 or %3, not at the end of the replacement string.</source> + <translation>%1 ha de ser continuat per %2 o %3, no un final de la cadena de reemplaç.</translation> + </message> + <message> + <source>In the replacement string, %1 must be followed by at least one digit when not escaped.</source> + <translation>A la cadena de reemplaç, %1 ha d'estar seguit per almenys un dÃgit quan no s'ometi.</translation> + </message> + <message> + <source>In the replacement string, %1 can only be used to escape itself or %2, not %3</source> + <translation>A la cadena de reemplaç, %1 només pot fer-se servir per omissió o %2, no per %3</translation> + </message> + <message> + <source>%1 matches newline characters</source> + <translation>%1 coincideix amb carà cters de nova lÃnia</translation> + </message> + <message> + <source>%1 and %2 match the start and end of a line.</source> + <translation>%1 i %2 coincideixen a l'inici i al final de lÃnia.</translation> + </message> + <message> + <source>Matches are case insensitive</source> + <translation>Coincideixen les majúscules</translation> + </message> + <message> + <source>Whitespace characters are removed, except when they appear in character classes</source> + <translation>Els espais en blanc s'eliminen, excepte quan apareixen en classes de carà cter</translation> + </message> + <message> + <source>%1 is an invalid regular expression pattern: %2</source> + <translation>%1 no és un patró d'expressió regular: %2</translation> + </message> + <message> + <source>%1 is an invalid flag for regular expressions. Valid flags are:</source> + <translation>%1 és un indicador no và lid per a expressions regulars. Indicadors và lids són:</translation> + </message> + <message> + <source>If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified.</source> + <translation>Si el primer argument és una seqüència buida o una cadena de mida cero (sense espais), no es pot especificar un prefix. S'ha especificat el prefix %1.</translation> + </message> + <message> + <source>It will not be possible to retrieve %1.</source> + <translation>No serà possible obtindre %1.</translation> + </message> + <message> + <source>The root node of the second argument to function %1 must be a document node. %2 is not a document node.</source> + <translation>El node root del segon argument de la funció %1 ha de ser un node document. %2 no és un node document.</translation> + </message> + <message> + <source>The default collection is undefined</source> + <translation>No està definida la col·lecció per defecte</translation> + </message> + <message> + <source>%1 cannot be retrieved</source> + <translation>No s'ha pogut obtindre %1</translation> + </message> + <message> + <source>The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization).</source> + <translation>No està suportat el formulari de normalització %1. El formularis suportats són %2, %3, %4 i %5, i buit, i.e. una cadena buida (sense normalització).</translation> + </message> + <message> + <source>A zone offset must be in the range %1..%2 inclusive. %3 is out of range.</source> + <translation>Una zona de retard ha d'estar en el rang %1..%2 inclosos. %3 està fora del rang.</translation> + </message> + <message> + <source>%1 is not a whole number of minutes.</source> + <translation>%1 no és un valor enter de minuts.</translation> + </message> + <message> + <source>Required cardinality is %1; got cardinality %2.</source> + <translation>Es requereix un cardinal %1; es va enviar el cardinal %2.</translation> + </message> + <message> + <source>The item %1 did not match the required type %2.</source> + <translation>L'Ãtem %1 no coincideix amb el tipus requerit %2.</translation> + </message> + <message> + <source>%1 is an unknown schema type.</source> + <translation>%1 és un tipus esquema desconegut.</translation> + </message> + <message> + <source>Only one %1 declaration can occur in the query prolog.</source> + <translation>Només una declaració %1 pot aparèixer en el pròleg de consulta.</translation> + </message> + <message> + <source>The initialization of variable %1 depends on itself</source> + <translation>La inicialització de la variable %1 depèn d'ella mateixa</translation> + </message> + <message> + <source>No variable by name %1 exists</source> + <translation>No existeix cap variable amb el nom %1</translation> + </message> + <message> + <source>The variable %1 is unused</source> + <translation>No es fa servir la variable %1</translation> + </message> + <message> + <source>Version %1 is not supported. The supported XQuery version is 1.0.</source> + <translation>No està suportada la versió %1. La versió suportada d'XQuery és l'1.0.</translation> + </message> + <message> + <source>The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2.</source> + <translation>La codificació %1 no és và lida. Només ha de contindre carà cters llatins, no pot contindre espais i ha de coincidir amb l'expressió regular %2.</translation> + </message> + <message> + <source>No function with signature %1 is available</source> + <translation>No hi ha cap funció disponible am la signatura %1</translation> + </message> + <message> + <source>A default namespace declaration must occur before function, variable, and option declarations.</source> + <translation>Una declaració nomespai per defecte ha d'ocòrrer abans de la funció, variable i declaracions d'opció.</translation> + </message> + <message> + <source>Namespace declarations must occur before function, variable, and option declarations.</source> + <translation>Una declaració nomespai ha d'ocòrrer abans de la funció, variable i declaracions d'opció.</translation> + </message> + <message> + <source>Module imports must occur before function, variable, and option declarations.</source> + <translation>La importació de mòduls ha d'ocòrrer abans de la funció, variable i declaracions d'opció.</translation> + </message> + <message> + <source>It is not possible to redeclare prefix %1.</source> + <translation>No es pot tornar a declarar el prefix %1.</translation> + </message> + <message> + <source>Only the prefix %1 can be declared to bind the namespace %2. By default, it is already bound to the prefix %1.</source> + <translation>Només el prefix %1 pot ser declarat per enllaçar el nomespai %2. Per defecte, ja està enllaçat al prefix %1.</translation> + </message> + <message> + <source>Prefix %1 is already declared in the prolog.</source> + <translation>El prefix %1 ja està declarat al pròleg.</translation> + </message> + <message> + <source>The name of an option must have a prefix. There is no default namespace for options.</source> + <translation>El nom d'una opció ha de tindre un prefix. No hi ha nomespai per defecte per a opcions.</translation> + </message> + <message> + <source>The Schema Import feature is not supported, and therefore %1 declarations cannot occur.</source> + <translation>No està suportada la caracterÃstica d'importació d'esquema, i per tant les delcaracions %1 no ocorreran.</translation> + </message> + <message> + <source>The target namespace of a %1 cannot be empty.</source> + <translation>El nomespai objectiu d'un %1 no pot ser buit.</translation> + </message> + <message> + <source>The module import feature is not supported</source> + <translation>La importació de mòduls no està suportada</translation> + </message> + <message> + <source>A variable by name %1 has already been declared in the prolog.</source> + <translation>Ja s'ha declarat una variable amb el nom %1 al pròleg.</translation> + </message> + <message> + <source>No value is available for the external variable by name %1.</source> + <translation>No hi ha cap valor disponible per a la variable externa amb el nom %1.</translation> + </message> + <message> + <source>The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this)</source> + <translation>El nomespai per a una funció definida per l'usuari no pot estar buit (proveu amb el prefix predefinit %1 que existeix per a casos com este)</translation> + </message> + <message> + <source>The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases.</source> + <translation>El nomespai %1 està reservat; a més, les funcions definides per l'usuari no haurien de fer-lo servir. Proveu el prefix predefinit %2 que existeix per a casos com este.</translation> + </message> + <message> + <source>The namespace of a user defined function in a library module must be equivalent to the module namespace. In other words, it should be %1 instead of %2</source> + <translation>El nomespai d'una funció definida per l'usuari en un mòdul de biblioteca ha de ser equivalent al mòdul namespace. En altres paraules, hauria de ser %1 en lloc de %2</translation> + </message> + <message> + <source>A function already exists with the signature %1.</source> + <translation>Ja existeix una funció amb la signatura %1.</translation> + </message> + <message> + <source>No external functions are supported. All supported functions can be used directly, without first declaring them as external</source> + <translation>No estan suportades funcions externes. Totes les funcions suportades es poden utilitzar direcctament, sense haver-les de declarar primerament com a externes</translation> + </message> + <message> + <source>An argument by name %1 has already been declared. Every argument name must be unique.</source> + <translation>Un argument amb el nom %1 ja ha estat declarat. Tots els noms d'arguments han de ser únics.</translation> + </message> + <message> + <source>The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide.</source> + <translation>El nom d'una variable lligada a una expressió for ha de ser diferent d'una variableposicional. Per tant, les dues variables anomnades %1 xoquen.</translation> + </message> + <message> + <source>The Schema Validation Feature is not supported. Hence, %1-expressions may not be used.</source> + <translation>La CaracterÃstica de validació esquemà tica no està suportada. Per tant, les expressions %1 no es poden utilitzar.</translation> + </message> + <message> + <source>None of the pragma expressions are supported. Therefore, a fallback expression must be present</source> + <translation>Cap de les expressions pragma no està suportada. A mes, una expressió fallback ha d'estar present</translation> + </message> + <message> + <source>The %1-axis is unsupported in XQuery</source> + <translation>L'eix %1 no està suportat a XQuery</translation> + </message> + <message> + <source>%1 is not a valid numeric literal.</source> + <translation>%1 no és un literal numèric và lid.</translation> + </message> + <message> + <source>No function by name %1 is available.</source> + <translation>No hi ha cap funció disponible amb el nom %1.</translation> + </message> + <message> + <source>The namespace URI cannot be the empty string when binding to a prefix, %1.</source> + <translation>El nomespai URI no pot ser una cadena buida quan estiga vinculat a un prefix, %1.</translation> + </message> + <message> + <source>%1 is an invalid namespace URI.</source> + <translation>%1 no és un nomespai URI và lid.</translation> + </message> + <message> + <source>It is not possible to bind to the prefix %1</source> + <translation>No és possible la vinculació al prefix %1</translation> + </message> + <message> + <source>Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared).</source> + <translation>El nomespai %1 nomé pot vincular-se a %2 (i està , en qualsevol cas, predeclarat).</translation> + </message> + <message> + <source>Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared).</source> + <translation>El prefix %1 nomé pot vincular-se a %2 (i està , en qualsevol cas, predeclarat).</translation> + </message> + <message> + <source>Two namespace declaration attributes have the same name: %1.</source> + <translation>Dos atributs de declaració nomespai tenen el mateix nom: %1.</translation> + </message> + <message> + <source>The namespace URI must be a constant and cannot use enclosed expressions.</source> + <translation>El nomespai URI ha de ser una constant i no pot fer servir expressions tancades.</translation> + </message> + <message> + <source>An attribute by name %1 has already appeared on this element.</source> + <translation>Ja ha aparegut un atribut am el nom%1 en este element.</translation> + </message> + <message> + <source>A direct element constructor is not well-formed. %1 is ended with %2.</source> + <translation>Un constructor d'element directe no s'ha format correctament. %1 s'ha finalitzat amb %2.</translation> + </message> + <message> + <source>The name %1 does not refer to any schema type.</source> + <translation>El nom %1 no es refereix a cap tipus d'esquema.</translation> + </message> + <message> + <source>%1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works.</source> + <translation>%1 és un tipus complexe. La fundició a tipus complexes no és possible. Tot i aixÃ, la fundició a tipus atòmics com %2 sà que funciona.</translation> + </message> + <message> + <source>%1 is not an atomic type. Casting is only possible to atomic types.</source> + <translation>%1 no és un tipus atòmic. La fundició només és possible per a tipus atòmics.</translation> + </message> + <message> + <source>%1 is not a valid name for a processing-instruction. Therefore this name test will never match.</source> + <translation>%1 no és un nom và lid per a una instrucció de processat. A més este nom de prova mai coincidirà .</translation> + </message> + <message> + <source>%1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported.</source> + <translation>%1 no és una declaració d'atribut in-scope. Tingueu en compte que la caracterÃstica d'importació d'esquemes no està suportada.</translation> + </message> + <message> + <source>The name of an extension expression must be in a namespace.</source> + <translation>El nom d'una expressió extensió ha d'estar en un nomespai.</translation> + </message> + <message> + <source>empty</source> + <translation>buit</translation> + </message> + <message> + <source>zero or one</source> + <translation>cero o u</translation> + </message> + <message> + <source>exactly one</source> + <translation>exactament u</translation> + </message> + <message> + <source>one or more</source> + <translation>u o més</translation> + </message> + <message> + <source>zero or more</source> + <translation>cero o més</translation> + </message> + <message> + <source>Required type is %1, but %2 was found.</source> + <translation>El tipus requerit és %1, però s'ha trobat %2.</translation> + </message> + <message> + <source>Promoting %1 to %2 may cause loss of precision.</source> + <translation>Si es promou %1 a %2 es pot produir una pèrdua de precissió.</translation> + </message> + <message> + <source>The focus is undefined.</source> + <translation>El focus no està definit.</translation> + </message> + <message> + <source>It's not possible to add attributes after any other kind of node.</source> + <translation>No és possible afegir atributs després de qualsevol tipus de node.</translation> + </message> + <message> + <source>An attribute by name %1 has already been created.</source> + <translation>Ja s'ha declarat un atribut am el nom %1.</translation> + </message> + <message> + <source>Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported.</source> + <translation>Només està suportat l'Unicode Codepoint Collation (%1). %2 no està suportat.</translation> + </message> +</context> +<context> + <name>VolumeSlider</name> + <message> + <source>Muted</source> + <translation>Silenciat</translation> + </message> + <message> + <source>Volume: %1%</source> + <translation>Volum: %1%</translation> + </message> +</context> +<context> + <name>WebCore::PlatformScrollbar</name> + <message> + <source>Scroll here</source> + <translation>Desplaça acÃ</translation> + </message> + <message> + <source>Left edge</source> + <translation>Vora esquerra</translation> + </message> + <message> + <source>Top</source> + <translation>Superior</translation> + </message> + <message> + <source>Right edge</source> + <translation>Vora dreta</translation> + </message> + <message> + <source>Bottom</source> + <translation>Inferior</translation> + </message> + <message> + <source>Page left</source> + <translation>Pà gina esquerra</translation> + </message> + <message> + <source>Page up</source> + <translation>Pà gina amunt</translation> + </message> + <message> + <source>Page right</source> + <translation>Pà gina dreta</translation> + </message> + <message> + <source>Page down</source> + <translation>Pà gina avall</translation> + </message> + <message> + <source>Scroll left</source> + <translation>Desplaça a l'esquerra</translation> + </message> + <message> + <source>Scroll up</source> + <translation>Desplaça amunt</translation> + </message> + <message> + <source>Scroll right</source> + <translation>Desplaça a la dreta</translation> + </message> + <message> + <source>Scroll down</source> + <translation>Desplaça avall</translation> + </message> +</context> +</TS> diff --git a/src/VBox/Frontends/VirtualBox/src/VBoxAboutDlg.cpp b/src/VBox/Frontends/VirtualBox/src/VBoxAboutDlg.cpp index 67ba2ae82..554452b48 100644 --- a/src/VBox/Frontends/VirtualBox/src/VBoxAboutDlg.cpp +++ b/src/VBox/Frontends/VirtualBox/src/VBoxAboutDlg.cpp @@ -24,6 +24,7 @@ #include "VBoxGlobal.h" #include <iprt/path.h> +#include <VBox/version.h> /* VBOX_VENDOR */ /* Qt includes */ #include <QDir> @@ -70,7 +71,7 @@ void VBoxAboutDlg::retranslateUi() #endif #if VBOX_OSE mAboutText = aboutText + " " + versionText.arg (mVersion) + "\n" + - QString ("%1 2004-2009 Sun Microsystems, Inc.").arg (QChar (0xa9)); + QString ("%1 2004-" VBOX_C_YEAR " " VBOX_VENDOR).arg (QChar (0xa9)); #else /* VBOX_OSE */ mAboutText = aboutText + "\n" + versionText.arg (mVersion); diff --git a/src/VBox/Frontends/VirtualBox/src/VBoxConsoleView.cpp b/src/VBox/Frontends/VirtualBox/src/VBoxConsoleView.cpp index 833e73eeb..c182bed88 100644 --- a/src/VBox/Frontends/VirtualBox/src/VBoxConsoleView.cpp +++ b/src/VBox/Frontends/VirtualBox/src/VBoxConsoleView.cpp @@ -1346,6 +1346,8 @@ bool VBoxConsoleView::event (QEvent *e) mIgnoreFrameBufferResize = false; } + mMainWnd->onDisplayResize (re->width(), re->height()); + return true; } @@ -2343,7 +2345,14 @@ bool VBoxConsoleView::x11Event (XEvent *event) flags |= KeyPrint; break; case XK_Pause: - flags |= KeyPause; + if (event->xkey.state & ControlMask) /* Break */ + { + ks = XK_Break; + flags |= KeyExtended; + scan = 0x46; + } + else + flags |= KeyPause; break; } @@ -4152,7 +4161,7 @@ void VBoxConsoleView::calculateDesktopGeometry() * screen, this will exclude space taken up by desktop taskbars * and things, but this is unfortunately not true for the more * complex case of a desktop spanning multiple screens. */ - QRect desktop = QApplication::desktop()->availableGeometry (this); + QRect desktop = availableGeometry(); /* The area taken up by the console window on the desktop, * including window frame, title and menu bar and whatnot. */ QRect frame = mMainWnd->frameGeometry(); @@ -4193,6 +4202,13 @@ void VBoxConsoleView::maybeRestrictMinimumSize() } } +QRect VBoxConsoleView::availableGeometry() const +{ + return mMainWnd->isWindowFullScreen() ? + QApplication::desktop()->screenGeometry(this) : + QApplication::desktop()->availableGeometry(this); +} + int VBoxConsoleView::contentsWidth() const { return mFrameBuf->width(); diff --git a/src/VBox/Frontends/VirtualBox/src/VBoxConsoleView.h b/src/VBox/Frontends/VirtualBox/src/VBoxConsoleView.h index 21e324ec8..16fa5a0ff 100644 --- a/src/VBox/Frontends/VirtualBox/src/VBoxConsoleView.h +++ b/src/VBox/Frontends/VirtualBox/src/VBoxConsoleView.h @@ -261,6 +261,7 @@ private: void storeConsoleSize (int aWidth, int aHeight); void calculateDesktopGeometry(); void maybeRestrictMinimumSize(); + QRect availableGeometry() const; VBoxConsoleWnd *mMainWnd; diff --git a/src/VBox/Frontends/VirtualBox/src/VBoxConsoleWnd.cpp b/src/VBox/Frontends/VirtualBox/src/VBoxConsoleWnd.cpp index 62d28e5ae..da42b21cc 100644 --- a/src/VBox/Frontends/VirtualBox/src/VBoxConsoleWnd.cpp +++ b/src/VBox/Frontends/VirtualBox/src/VBoxConsoleWnd.cpp @@ -1229,6 +1229,18 @@ void VBoxConsoleWnd::clearMask() #endif } +void VBoxConsoleWnd::onDisplayResize (ulong aHeight, ulong aWidth) +{ + if (mIsSeamless && QApplication::desktop()->availableGeometry (this).size() != QSize (aHeight, aWidth)) + { + mVmSeamlessAction->setChecked (false); + /* should be cleared already, but just in case */ + if (mIsSeamless) + toggleFullscreenMode (false, true); + } +} + + bool VBoxConsoleWnd::event (QEvent *aEvent) { switch (aEvent->type()) @@ -1447,7 +1459,7 @@ void VBoxConsoleWnd::closeEvent (QCloseEvent *aEvent) if (console.isOk()) { /* Show the power down progress dialog */ - vboxProblem().showModalProgressDialog (progress, machine.GetName(), this, 0); + vboxProblem().showModalProgressDialog (progress, machine.GetName(), this); if (progress.GetResultCode() != 0) vboxProblem().cannotStopMachine (progress); else @@ -2790,6 +2802,16 @@ void VBoxConsoleWnd::unlockActionsSwitch() } mConsole->setMouseCoalescingEnabled (true); #endif + +#ifdef Q_WS_X11 + if (vboxGlobal().isKWinManaged() && !mIsSeamless && !mIsFullscreen) + { + /* Workaround for a KWin bug to let console window to exit + * seamless mode correctly. */ + setWindowFlags(Qt::Window); + setVisible(true); + } +#endif } void VBoxConsoleWnd::mtExitMode() @@ -3493,6 +3515,7 @@ bool VBoxConsoleWnd::toggleFullscreenMode (bool aOn, bool aSeamless) if (wasHidden) hide(); #endif + return true; } diff --git a/src/VBox/Frontends/VirtualBox/src/VBoxConsoleWnd.h b/src/VBox/Frontends/VirtualBox/src/VBoxConsoleWnd.h index 2f3b7553e..bb5556765 100644 --- a/src/VBox/Frontends/VirtualBox/src/VBoxConsoleWnd.h +++ b/src/VBox/Frontends/VirtualBox/src/VBoxConsoleWnd.h @@ -111,6 +111,9 @@ public: void setMask (const QRegion &aRegion); void clearMask(); + /* informs that the guest display is resized */ + void onDisplayResize (ulong aHeight, ulong aWidth); + signals: void closing(); diff --git a/src/VBox/Frontends/VirtualBox/src/X11/VBoxX11Helper.cpp b/src/VBox/Frontends/VirtualBox/src/X11/VBoxX11Helper.cpp index 4281bee1d..97123a498 100644 --- a/src/VBox/Frontends/VirtualBox/src/X11/VBoxX11Helper.cpp +++ b/src/VBox/Frontends/VirtualBox/src/X11/VBoxX11Helper.cpp @@ -23,10 +23,12 @@ #include "VBoxX11Helper.h" #include <iprt/cdefs.h> +#include <iprt/string.h> #include <QX11Info> /* rhel3 build hack */ RT_C_DECLS_BEGIN +#include <X11/Xatom.h> #include <X11/Xlib.h> #include <X11/extensions/dpms.h> RT_C_DECLS_END @@ -83,3 +85,48 @@ void X11ScreenSaverSettingsRestore() if (gX11DpmsState && gX11ScreenSaverDpmsAvailable) DPMSEnable(display); } + +/** + * Determine if the current Window manager is KWin (KDE) + */ +bool X11IsWindowManagerKWin() +{ + Atom typeReturned; + Atom utf8Atom; + int formatReturned; + unsigned long ulNitemsReturned; + unsigned long ulDummy; + unsigned char *pcData = NULL; + bool fIsKWinManaged = false; + Display *display = QX11Info::display(); + Atom propNameAtom; + Window WMWindow = None; + + propNameAtom = XInternAtom(display, "_NET_SUPPORTING_WM_CHECK", True); + if (XGetWindowProperty(display, QX11Info::appRootWindow(), propNameAtom, + 0, 512, False, XA_WINDOW, &typeReturned, + &formatReturned, &ulNitemsReturned, &ulDummy, &pcData) + == Success) + { + + if (typeReturned == XA_WINDOW && formatReturned == 32) + WMWindow = *((Window*) pcData); + if (pcData) + XFree(pcData); + if (WMWindow != None) + { + propNameAtom = XInternAtom(display, "_NET_WM_NAME", True); + utf8Atom = XInternAtom(display, "UTF8_STRING", True); + if (XGetWindowProperty(QX11Info::display(), WMWindow, propNameAtom, + 0, 512, False, utf8Atom, &typeReturned, + &formatReturned, &ulNitemsReturned, &ulDummy, &pcData) + == Success) + { + fIsKWinManaged = RTStrCmp((const char*)pcData, "KWin") == 0; + if (pcData) + XFree(pcData); + } + } + } + return fIsKWinManaged; +} diff --git a/src/VBox/Frontends/VirtualBox/src/X11/VBoxX11Helper.h b/src/VBox/Frontends/VirtualBox/src/X11/VBoxX11Helper.h index 8e597cf35..b98ba50a2 100644 --- a/src/VBox/Frontends/VirtualBox/src/X11/VBoxX11Helper.h +++ b/src/VBox/Frontends/VirtualBox/src/X11/VBoxX11Helper.h @@ -26,5 +26,6 @@ void X11ScreenSaverSettingsInit(); void X11ScreenSaverSettingsSave(); void X11ScreenSaverSettingsRestore(); +bool X11IsWindowManagerKWin(); #endif diff --git a/src/VBox/Frontends/VirtualBox/src/darwin/Info.plist b/src/VBox/Frontends/VirtualBox/src/darwin/Info.plist index d32e42085..52dc7bcbc 100644 --- a/src/VBox/Frontends/VirtualBox/src/darwin/Info.plist +++ b/src/VBox/Frontends/VirtualBox/src/darwin/Info.plist @@ -10,7 +10,7 @@ <key>CFBundleExecutable</key> <string>VirtualBox</string> <key>CFBundleVersion</key> <string>@VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@</string> <key>CFBundleShortVersionString</key> <string>@VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@</string> - <key>CFBundleGetInfoString</key> <string>VirtualBox @VBOX_VERSION_STRING@, © 2007-2008 Sun Microsystems, Inc.</string> + <key>CFBundleGetInfoString</key> <string>VirtualBox @VBOX_VERSION_STRING@, © 2007-@VBOX_C_YEAR@ @VBOX_VENDOR@</string> <key>CFBundleIconFile</key> <string>virtualbox</string> <key>CFBundleInfoDictionaryVersion</key> <string>6.0</string> <key>LSCanProvideIMVideoDataSource</key> <true/> diff --git a/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp b/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp index 128d69658..7ddf57b27 100644 --- a/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp +++ b/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp @@ -22,6 +22,7 @@ #include "VBoxGlobal.h" #include <VBox/VBoxHDD.h> +#include <VBox/version.h> #include "VBoxDefs.h" #include "VBoxSelectorWnd.h" @@ -61,13 +62,13 @@ #include <math.h> #ifdef Q_WS_X11 -#ifndef VBOX_OSE -# include "VBoxLicenseViewer.h" -#endif /* VBOX_OSE */ - -#include <QTextBrowser> -#include <QScrollBar> -#include <QX11Info> +# ifndef VBOX_OSE +# include "VBoxLicenseViewer.h" +# endif /* VBOX_OSE */ +# include <QTextBrowser> +# include <QScrollBar> +# include <QX11Info> +# include "VBoxX11Helper.h" #endif #ifdef Q_WS_MAC @@ -588,6 +589,7 @@ VBoxGlobal::VBoxGlobal() , mIncreasedWindowCounter (false) #endif , mMediaEnumThread (NULL) + , mIsKWinManaged (false) , mVerString ("1.0") { } @@ -2653,7 +2655,7 @@ QString VBoxGlobal::languageCountryEnglish() const */ QString VBoxGlobal::languageTranslators() const { - return qApp->translate ("@@@", "Sun Microsystems, Inc.", + return qApp->translate ("@@@", VBOX_VENDOR, "Comma-separated list of translators"); } @@ -4788,6 +4790,10 @@ void VBoxGlobal::init() vm_render_mode_str = RTStrDup (virtualBox() .GetExtraData (VBoxDefs::GUI_RenderMode).toAscii().constData()); +#ifdef Q_WS_X11 + mIsKWinManaged = X11IsWindowManagerKWin(); +#endif + #ifdef VBOX_WITH_DEBUGGER_GUI # ifdef VBOX_WITH_DEBUGGER_GUI_MENU mDbgEnabled = true; diff --git a/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h b/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h index b6d4da3ad..667224380 100644 --- a/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h +++ b/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h @@ -323,6 +323,7 @@ public: VBoxDefs::RenderMode vmRenderMode() const { return vm_render_mode; } const char *vmRenderModeStr() const { return vm_render_mode_str; } + bool isKWinManaged() const { return mIsKWinManaged; } #ifdef VBOX_WITH_DEBUGGER_GUI bool isDebuggerEnabled() const { return mDbgEnabled; } @@ -917,6 +918,7 @@ private: VBoxDefs::RenderMode vm_render_mode; const char * vm_render_mode_str; + bool mIsKWinManaged; #ifdef VBOX_WITH_DEBUGGER_GUI /** Whether the debugger should be accessible or not. diff --git a/src/VBox/Frontends/VirtualBox/src/main.cpp b/src/VBox/Frontends/VirtualBox/src/main.cpp index 7109b23a5..3c5ca5ebf 100644 --- a/src/VBox/Frontends/VirtualBox/src/main.cpp +++ b/src/VBox/Frontends/VirtualBox/src/main.cpp @@ -55,6 +55,7 @@ #include <iprt/process.h> #include <iprt/stream.h> #include <VBox/err.h> +#include <VBox/version.h> #ifdef VBOX_WITH_HARDENING # include <VBox/sup.h> #endif @@ -249,8 +250,8 @@ static void showHelp() dflt = "image"; #endif - RTPrintf("Sun VirtualBox Graphical User Interface %s\n" - "(C) 2005-2009 Sun Microsystems, Inc.\n" + RTPrintf(VBOX_PRODUCT " Graphical User Interface %s\n" + "(C) 2005-2010 " VBOX_VENDOR "\n" "All rights reserved.\n" "\n" "Usage:\n" diff --git a/src/VBox/Frontends/VirtualBox/src/settings/global/VBoxGLSettingsLanguage.cpp b/src/VBox/Frontends/VirtualBox/src/settings/global/VBoxGLSettingsLanguage.cpp index 535209c06..17e873ce8 100644 --- a/src/VBox/Frontends/VirtualBox/src/settings/global/VBoxGLSettingsLanguage.cpp +++ b/src/VBox/Frontends/VirtualBox/src/settings/global/VBoxGLSettingsLanguage.cpp @@ -32,6 +32,7 @@ #include <iprt/err.h> #include <iprt/param.h> #include <iprt/path.h> +#include <VBox/version.h> extern const char *gVBoxLangSubDir; extern const char *gVBoxLangFileBase; @@ -69,7 +70,7 @@ public: "(empty if native country name is empty)"); QString translatorsName = tratra (aTranslator, - "@@@", "Sun Microsystems, Inc.", "Comma-separated list of translators"); + "@@@", VBOX_VENDOR, "Comma-separated list of translators"); QString itemName = nativeLanguage; QString langName = englishLanguage; diff --git a/src/VBox/GuestHost/OpenGL/Makefile.kmk b/src/VBox/GuestHost/OpenGL/Makefile.kmk index e5bee0561..459c4c66b 100644 --- a/src/VBox/GuestHost/OpenGL/Makefile.kmk +++ b/src/VBox/GuestHost/OpenGL/Makefile.kmk @@ -46,6 +46,10 @@ endif VBoxOGLcrutil_TEMPLATE = VBOXCROGLR3GUESTDLL VBoxOGLcrutil_SDKS.win = DXSDK VBoxOGLcrutil_INTERMEDIATES = $(VBOX_PATH_CROGL_GENFILES)/cr_opcodes.h +if1of ($(KBUILD_TARGET),linux solaris) + VBoxOGLcrutil_INCS += \ + $(VBOX_MESA_INCS) +endif VBoxOGLcrutil_SOURCES = \ util/bbox.c \ util/bufpool.c \ @@ -119,6 +123,10 @@ $(VBOX_PATH_CROGL_GENFILES)/debug_opcodes.c: $(PATH_SUB_CURRENT)/util/debug_opco VBoxOGLcrpacker_TEMPLATE = VBOXCROGLR3GUESTLIB VBoxOGLcrpacker_INCS = \ packer +if1of ($(KBUILD_TARGET),linux solaris) + VBoxOGLcrpacker_INCS += \ + $(VBOX_MESA_INCS) +endif VBoxOGLcrpacker_INTERMEDIATES = \ $(VBOX_PATH_CROGL_GENFILES)/cr_packfunctions.h \ $(VBOX_PATH_CROGL_GENFILES)/cr_opcodes.h \ @@ -249,6 +257,10 @@ $(VBOX_PATH_CROGL_GENFILES)/%_swap.c: $(PATH_SUB_CURRENT)/packer/%.c $(PATH_SUB_ VBoxOGLspuload_TEMPLATE = VBOXCROGLR3GUESTLIB VBoxOGLspuload_INTERMEDIATES = \ $(VBOX_PATH_CROGL_GENFILES)/spu_dispatch_table.h +if1of ($(KBUILD_TARGET),linux solaris) + VBoxOGLspuload_INCS += \ + $(VBOX_MESA_INCS) +endif VBoxOGLspuload_SOURCES = \ spu_loader/spuinit.c \ spu_loader/spuload.c \ @@ -300,6 +312,10 @@ $(VBOX_PATH_CROGL_GENFILES)/spu_dispatch_table.h: $(PATH_SUB_CURRENT)/spu_loader VBoxOGLcrstate_TEMPLATE = VBOXCROGLR3GUESTLIB VBoxOGLcrstate_INCS = \ state_tracker +if1of ($(KBUILD_TARGET),linux solaris) + VBoxOGLcrstate_INCS += \ + $(VBOX_MESA_INCS) +endif VBoxOGLcrstate_INTERMEDIATES = \ $(VBOX_PATH_CROGL_GENFILES)/state/cr_statefuncs.h \ $(VBOX_PATH_CROGL_GENFILES)/state/cr_currentpointers.h \ @@ -463,6 +479,10 @@ $(VBOX_PATH_CROGL_GENFILES)/state/cr_statefuncs.h: $(addprefix $(PATH_SUB_CURREN VBoxOGLerrorspu_TEMPLATE = VBOXCROGLR3GUESTDLL VBoxOGLerrorspu_INTERMEDIATES = \ $(VBOX_PATH_CROGL_GENFILES)/spu_dispatch_table.h +if1of ($(KBUILD_TARGET),linux solaris) + VBoxOGLerrorspu_INCS += \ + $(VBOX_MESA_INCS) +endif VBoxOGLerrorspu_SOURCES = \ $(VBOX_PATH_CROGL_GENFILES)/errorspu.c \ error/errorspu_init.c diff --git a/src/VBox/GuestHost/OpenGL/packer/pack_client.c b/src/VBox/GuestHost/OpenGL/packer/pack_client.c index b1f29565d..e91c2d5a6 100644 --- a/src/VBox/GuestHost/OpenGL/packer/pack_client.c +++ b/src/VBox/GuestHost/OpenGL/packer/pack_client.c @@ -1034,7 +1034,7 @@ static void crPackLockClientPointer(GLint first, GLint count, unsigned char **pp } WRITE_DATA_AI(int, index); - cptr = cp->p + first*cp->bytesPerIndex; + cptr = cp->p + first*cp->stride; if (cp->bytesPerIndex==cp->stride) { crMemcpy(data_ptr, cptr, count*cp->bytesPerIndex); diff --git a/src/VBox/GuestHost/OpenGL/state_tracker/state_glsl.c b/src/VBox/GuestHost/OpenGL/state_tracker/state_glsl.c index 419f134e7..2a0f9ca25 100644 --- a/src/VBox/GuestHost/OpenGL/state_tracker/state_glsl.c +++ b/src/VBox/GuestHost/OpenGL/state_tracker/state_glsl.c @@ -984,7 +984,7 @@ static void crStateGLSLSyncShadersCB(unsigned long key, void *data1, void *data2 if (pShader->source) { - diff_api.ShaderSource(pShader->hwid, 1, &pShader->source, NULL); + diff_api.ShaderSource(pShader->hwid, 1, (const char**)&pShader->source, NULL); if (pShader->compiled) diff_api.CompileShader(pShader->hwid); crFree(pShader->source); @@ -1003,7 +1003,7 @@ static void crStateAttachShaderCB(unsigned long key, void *data1, void *data2) if (pShader->source) { - diff_api.ShaderSource(pShader->hwid, 1, &pShader->source, NULL); + diff_api.ShaderSource(pShader->hwid, 1, (const char**)&pShader->source, NULL); if (pShader->compiled) diff_api.CompileShader(pShader->hwid); } diff --git a/src/VBox/GuestHost/OpenGL/state_tracker/state_init.c b/src/VBox/GuestHost/OpenGL/state_tracker/state_init.c index e4de1ecfb..71e270ac1 100644 --- a/src/VBox/GuestHost/OpenGL/state_tracker/state_init.c +++ b/src/VBox/GuestHost/OpenGL/state_tracker/state_init.c @@ -46,6 +46,9 @@ crStateAllocShared(void) static void DeleteTextureCallback(void *texObj) { +#ifndef IN_GUEST + diff_api.DeleteTextures(1, &((CRTextureObj *)texObj)->name); +#endif crStateDeleteTextureObject((CRTextureObj *) texObj); } diff --git a/src/VBox/HostDrivers/Support/SUPDrvInternal.h b/src/VBox/HostDrivers/Support/SUPDrvInternal.h index be6d5195a..516b2f9da 100644 --- a/src/VBox/HostDrivers/Support/SUPDrvInternal.h +++ b/src/VBox/HostDrivers/Support/SUPDrvInternal.h @@ -1,4 +1,4 @@ -/* $Revision: 53446 $ */ +/* $Revision: 56351 $ */ /** @file * VirtualBox Support Driver - Internal header. */ @@ -80,7 +80,9 @@ RT_C_DECLS_END #elif defined(RT_OS_LINUX) -# include <linux/autoconf.h> +# ifndef AUTOCONF_INCLUDED +# include <linux/autoconf.h> +# endif # include <linux/version.h> # if defined(CONFIG_MODVERSIONS) && !defined(MODVERSIONS) # define MODVERSIONS diff --git a/src/VBox/HostDrivers/Support/SUPLibInternal.h b/src/VBox/HostDrivers/Support/SUPLibInternal.h index 7a79a0c67..db7ca7f5a 100644 --- a/src/VBox/HostDrivers/Support/SUPLibInternal.h +++ b/src/VBox/HostDrivers/Support/SUPLibInternal.h @@ -51,6 +51,11 @@ # define SUPLIB_DLL_SUFF ".so" #endif +#ifdef RT_OS_SOLARIS +/** Number of dummy files to open (2:ip4, 1:ip6, 1:extra) see #4650 */ +#define SUPLIB_FLT_DUMMYFILES 4 +#endif + /** @def SUPLIB_EXE_SUFF * The (typical) executable suffix. */ #if defined(RT_OS_OS2) || defined(RT_OS_WINDOWS) @@ -187,6 +192,9 @@ typedef struct SUPLIBDATA #elif defined(RT_OS_LINUX) /** Indicates whether madvise(,,MADV_DONTFORK) works. */ bool fSysMadviseWorks; +#elif defined(RT_OS_SOLARIS) + /** Extra dummy file descriptors to prevent growing file-descriptor table on clean up (see #4650) */ + int hDummy[SUPLIB_FLT_DUMMYFILES]; #elif defined(RT_OS_WINDOWS) #endif } SUPLIBDATA; diff --git a/src/VBox/HostDrivers/Support/SUPR3HardenedMain.cpp b/src/VBox/HostDrivers/Support/SUPR3HardenedMain.cpp index 094e6b577..901d64ab7 100644 --- a/src/VBox/HostDrivers/Support/SUPR3HardenedMain.cpp +++ b/src/VBox/HostDrivers/Support/SUPR3HardenedMain.cpp @@ -66,6 +66,9 @@ # ifndef CAP_TO_MASK # define CAP_TO_MASK(cap) RT_BIT(cap) # endif +# elif defined(RT_OS_FREEBSD) +# include <sys/param.h> +# include <sys/sysctl.h> # elif defined(RT_OS_SOLARIS) # include <priv.h> # endif @@ -137,6 +140,7 @@ static uint32_t g_uCaps; # endif #endif + /******************************************************************************* * Internal Functions * *******************************************************************************/ @@ -320,12 +324,25 @@ static void supR3HardenedGetFullExePath(void) #if defined(RT_OS_LINUX) || defined(RT_OS_FREEBSD) || defined(RT_OS_SOLARIS) # ifdef RT_OS_LINUX int cchLink = readlink("/proc/self/exe", &g_szSupLibHardenedExePath[0], sizeof(g_szSupLibHardenedExePath) - 1); + # elif defined(RT_OS_SOLARIS) char szFileBuf[PATH_MAX + 1]; sprintf(szFileBuf, "/proc/%ld/path/a.out", (long)getpid()); int cchLink = readlink(szFileBuf, &g_szSupLibHardenedExePath[0], sizeof(g_szSupLibHardenedExePath) - 1); -# else /* RT_OS_FREEBSD: */ - int cchLink = readlink("/proc/curproc/file", &g_szSupLibHardenedExePath[0], sizeof(g_szSupLibHardenedExePath) - 1); + +# else /* RT_OS_FREEBSD */ + int aiName[4]; + aiName[0] = CTL_KERN; + aiName[1] = KERN_PROC; + aiName[2] = KERN_PROC_PATHNAME; + aiName[3] = getpid(); + + size_t cbPath = sizeof(g_szSupLibHardenedExePath); + if (sysctl(aiName, RT_ELEMENTS(aiName), g_szSupLibHardenedExePath, &cbPath, NULL, 0) < 0) + supR3HardenedFatal("supR3HardenedExecDir: sysctl failed\n"); + g_szSupLibHardenedExePath[sizeof(g_szSupLibHardenedExePath) - 1] = '\0'; + int cchLink = strlen(g_szSupLibHardenedExePath); /* paranoid? can't we use cbPath? */ + # endif if (cchLink < 0 || cchLink == sizeof(g_szSupLibHardenedExePath) - 1) supR3HardenedFatal("supR3HardenedExecDir: couldn't read \"%s\", errno=%d cchLink=%d\n", diff --git a/src/VBox/HostDrivers/Support/solaris/SUPLib-solaris.cpp b/src/VBox/HostDrivers/Support/solaris/SUPLib-solaris.cpp index 4e18d1821..a0baa04e2 100644 --- a/src/VBox/HostDrivers/Support/solaris/SUPLib-solaris.cpp +++ b/src/VBox/HostDrivers/Support/solaris/SUPLib-solaris.cpp @@ -81,6 +81,26 @@ int suplibOsInit(PSUPLIBDATA pThis, bool fPreInited) if (fPreInited) return VINF_SUCCESS; + /* + * Open dummy files to preallocate file descriptors, see #4650. + */ + for (int i = 0; i < SUPLIB_FLT_DUMMYFILES; i++) + { + pThis->hDummy[i] = -1; + int hDummy = open("/dev/null", O_RDWR, 0); + if (hDummy >= 0) + { + if (fcntl(hDummy, F_SETFD, FD_CLOEXEC) == 0) + pThis->hDummy[i] = hDummy; + else + { + close(hDummy); + LogRel(("Failed to set close on exec [%d] /dev/null! errno=%d\n", i, errno)); + } + } + else + LogRel(("Failed to open[%d] /dev/null! errno=%d\n", i, errno)); + } /* * Try to open the device. @@ -127,6 +147,18 @@ int suplibOsInit(PSUPLIBDATA pThis, bool fPreInited) int suplibOsTerm(PSUPLIBDATA pThis) { /* + * Close the dummy files first. + */ + for (int i = 0; i < SUPLIB_FLT_DUMMYFILES; i++) + { + if (pThis->hDummy[i] != -1) + { + close(pThis->hDummy[i]); + pThis->hDummy[i] = -1; + } + } + + /* * Check if we're initialized */ if (pThis->hDevice != NIL_RTFILE) diff --git a/src/VBox/HostDrivers/Support/win/VBoxDrv.inf b/src/VBox/HostDrivers/Support/win/VBoxDrv.inf index 0702d4cd7..54a55762f 100644 --- a/src/VBox/HostDrivers/Support/win/VBoxDrv.inf +++ b/src/VBox/HostDrivers/Support/win/VBoxDrv.inf @@ -4,29 +4,29 @@ ;
;
-; Copyright (C) 2006-2007 Sun Microsystems, Inc.
-;
-; This file is part of VirtualBox Open Source Edition (OSE), as
-; available from http://www.virtualbox.org. This file is free software;
-; you can redistribute it and/or modify it under the terms of the GNU
-; General Public License (GPL) as published by the Free Software
-; Foundation, in version 2 as it comes in the "COPYING" file of the
-; VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-;
-; The contents of this file may alternatively be used under the terms
-; of the Common Development and Distribution License Version 1.0
-; (CDDL) only, as it comes in the "COPYING.CDDL" file of the
-; VirtualBox OSE distribution, in which case the provisions of the
-; CDDL are applicable instead of those of the GPL.
-;
-; You may elect to license modified versions of this file under the
-; terms and conditions of either the GPL or the CDDL or both.
-;
-; Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
-; Clara, CA 95054 USA or visit http://www.sun.com if you need
-; additional information or have any questions.
-;
+; Copyright (C) 2006-2007 Sun Microsystems, Inc. +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL) only, as it comes in the "COPYING.CDDL" file of the +; VirtualBox OSE distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; +; Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa +; Clara, CA 95054 USA or visit http://www.sun.com if you need +; additional information or have any questions. +; [Version]
Signature="$Windows NT$"
diff --git a/src/VBox/HostDrivers/VBoxNetAdp/solaris/vboxnet.conf b/src/VBox/HostDrivers/VBoxNetAdp/solaris/vboxnet.conf index 070a3704f..df8b3a090 100644 --- a/src/VBox/HostDrivers/VBoxNetAdp/solaris/vboxnet.conf +++ b/src/VBox/HostDrivers/VBoxNetAdp/solaris/vboxnet.conf @@ -22,5 +22,5 @@ # subdirectory (32-bit drivers goes into the same # directory). # -name="vboxnet" parent="pseudo"; +name="vboxnet" parent="pseudo" instance=0; diff --git a/src/VBox/HostServices/SharedFolders/vbsf.cpp b/src/VBox/HostServices/SharedFolders/vbsf.cpp index 8f6b13fd6..ac4a1d34e 100644 --- a/src/VBox/HostServices/SharedFolders/vbsf.cpp +++ b/src/VBox/HostServices/SharedFolders/vbsf.cpp @@ -261,7 +261,6 @@ static int vbsfBuildFullPath (SHFLCLIENTDATA *pClient, SHFLROOT root, PSHFLSTRIN if (BIT_FLAG(pClient->fu32Flags, SHFL_CF_UTF8)) { - int rc; char *utf8Root; /* Verify that the path is under the root directory. */ @@ -497,7 +496,7 @@ static int vbsfBuildFullPath (SHFLCLIENTDATA *pClient, SHFLROOT root, PSHFLSTRIN } /** @todo don't check when creating files or directories; waste of time */ - rc = RTPathQueryInfo(pszFullPath, &info, RTFSOBJATTRADD_NOTHING); + rc = RTPathQueryInfoEx(pszFullPath, &info, RTFSOBJATTRADD_NOTHING, RTPATH_F_FOLLOW_LINK); if (rc == VERR_FILE_NOT_FOUND || rc == VERR_PATH_NOT_FOUND) { uint32_t len = (uint32_t)strlen(pszFullPath); @@ -511,7 +510,7 @@ static int vbsfBuildFullPath (SHFLCLIENTDATA *pClient, SHFLROOT root, PSHFLSTRIN if (*src == RTPATH_DELIMITER) { *src = 0; - rc = RTPathQueryInfo (pszFullPath, &info, RTFSOBJATTRADD_NOTHING); + rc = RTPathQueryInfoEx(pszFullPath, &info, RTFSOBJATTRADD_NOTHING, RTPATH_F_FOLLOW_LINK); *src = RTPATH_DELIMITER; if (rc == VINF_SUCCESS) { @@ -547,7 +546,7 @@ static int vbsfBuildFullPath (SHFLCLIENTDATA *pClient, SHFLROOT root, PSHFLSTRIN { fEndOfString = false; *end = 0; - rc = RTPathQueryInfo(src, &info, RTFSOBJATTRADD_NOTHING); + rc = RTPathQueryInfoEx(src, &info, RTFSOBJATTRADD_NOTHING, RTPATH_F_FOLLOW_LINK); Assert(rc == VINF_SUCCESS || rc == VERR_FILE_NOT_FOUND || rc == VERR_PATH_NOT_FOUND); } else @@ -887,7 +886,7 @@ static int vbsfOpenFile (const char *pszPath, SHFLCREATEPARMS *pParms) RTFSOBJINFO info; /** @todo Possible race left here. */ - if (RT_SUCCESS(RTPathQueryInfo (pszPath, &info, RTFSOBJATTRADD_NOTHING))) + if (RT_SUCCESS(RTPathQueryInfoEx(pszPath, &info, RTFSOBJATTRADD_NOTHING, RTPATH_F_FOLLOW_LINK))) { #ifdef RT_OS_WINDOWS info.Attr.fMode |= 0111; @@ -1160,7 +1159,7 @@ static int vbsfLookupFile(char *pszPath, SHFLCREATEPARMS *pParms) RTFSOBJINFO info; int rc; - rc = RTPathQueryInfo (pszPath, &info, RTFSOBJATTRADD_NOTHING); + rc = RTPathQueryInfoEx(pszPath, &info, RTFSOBJATTRADD_NOTHING, RTPATH_F_FOLLOW_LINK); LogFlow(("SHFL_CF_LOOKUP\n")); /* Client just wants to know if the object exists. */ switch (rc) @@ -1252,8 +1251,8 @@ int vbsfCreate (SHFLCLIENTDATA *pClient, SHFLROOT root, SHFLSTRING *pPath, uint3 /* Query path information. */ RTFSOBJINFO info; - rc = RTPathQueryInfo (pszFullPath, &info, RTFSOBJATTRADD_NOTHING); - LogFlow(("RTPathQueryInfo returned %Rrc\n", rc)); + rc = RTPathQueryInfoEx(pszFullPath, &info, RTFSOBJATTRADD_NOTHING, RTPATH_F_FOLLOW_LINK); + LogFlow(("RTPathQueryInfoEx returned %Rrc\n", rc)); if (RT_SUCCESS(rc)) { diff --git a/src/VBox/HostServices/SharedOpenGL/Makefile.kmk b/src/VBox/HostServices/SharedOpenGL/Makefile.kmk index e5a8b9543..c4c8f62c6 100644 --- a/src/VBox/HostServices/SharedOpenGL/Makefile.kmk +++ b/src/VBox/HostServices/SharedOpenGL/Makefile.kmk @@ -26,10 +26,12 @@ include $(KBUILD_PATH)/subheader.kmk # # Target lists. # +ifdef VBOX_WITH_MAIN DLLS += VBoxSharedCrOpenGL VBoxOGLrenderspu LIBRARIES += VBoxOGLcrserverlib VBoxOGLcrunpacker BLDDIRS += \ $(VBOX_PATH_CROGL_GENFILES)/ +endif ifeq ($(KBUILD_TARGET),darwin) # diff --git a/src/VBox/HostServices/SharedOpenGL/render/renderspu_cocoa.c b/src/VBox/HostServices/SharedOpenGL/render/renderspu_cocoa.c index 2c2bb58c6..a73b59129 100644 --- a/src/VBox/HostServices/SharedOpenGL/render/renderspu_cocoa.c +++ b/src/VBox/HostServices/SharedOpenGL/render/renderspu_cocoa.c @@ -22,6 +22,9 @@ #include <OpenGL/OpenGL.h> #include "renderspu.h" +#include <iprt/process.h> +#include <iprt/string.h> +#include <iprt/path.h> GLboolean renderspu_SystemInitVisual(VisualInfo *pVisInfo) { @@ -66,6 +69,13 @@ GLboolean renderspu_SystemVBoxCreateWindow(VisualInfo *pVisInfo, GLboolean fShow CRASSERT(pVisInfo); CRASSERT(pWinInfo); + /* VirtualBox is the only frontend which support 3D right now. */ + char pszName[256]; + if (RTProcGetExecutableName(pszName, sizeof(pszName))) + /* Check for VirtualBox and VirtualBoxVM */ + if (RTStrNICmp(RTPathFilename(pszName), "VirtualBox", 10) != 0) + return GL_FALSE; + pWinInfo->visual = pVisInfo; pWinInfo->window = NULL; pWinInfo->nativeWindow = NULL; diff --git a/src/VBox/HostServices/SharedOpenGL/render/renderspu_init.c b/src/VBox/HostServices/SharedOpenGL/render/renderspu_init.c index 7226cca79..4a7f070c5 100644 --- a/src/VBox/HostServices/SharedOpenGL/render/renderspu_init.c +++ b/src/VBox/HostServices/SharedOpenGL/render/renderspu_init.c @@ -25,7 +25,7 @@ SPUFunctions render_functions = { }; RenderSPU render_spu; -uint64_t render_spu_parent_window_id; +uint64_t render_spu_parent_window_id = 0; #ifdef CHROMIUM_THREADSAFE CRtsd _RenderTSD; diff --git a/src/VBox/Installer/linux/Makefile.kmk b/src/VBox/Installer/linux/Makefile.kmk index 6b17d9b2d..060bcd35b 100644 --- a/src/VBox/Installer/linux/Makefile.kmk +++ b/src/VBox/Installer/linux/Makefile.kmk @@ -189,10 +189,10 @@ ifdef VBOX_WITH_VRDP VBOX_LNX_STRIP_BIN += \ VBoxVRDP.so \ VRDPAuth.so - VBOX_LNX_NO_STRIP += \ - rdesktop-vrdp.tar.gz ifdef VBOX_WITH_VRDP_RDESKTOP VBOX_LNX_NO_STRIP += \ + rdesktop-vrdp.tar.gz + VBOX_LNX_NO_STRIP += \ rdesktop-vrdp-keymaps VBOX_LNX_STRIP_BIN += \ rdesktop-vrdp diff --git a/src/VBox/Installer/linux/vboxdrv.sh.in b/src/VBox/Installer/linux/vboxdrv.sh.in index 40070a7b4..60ed46465 100755 --- a/src/VBox/Installer/linux/vboxdrv.sh.in +++ b/src/VBox/Installer/linux/vboxdrv.sh.in @@ -36,6 +36,11 @@ GROUPNAME=vboxusers LOG="/var/log/vbox-install.log" NOLSB=%NOLSB% DEBIAN=%DEBIAN% +MODPROBE=/sbin/modprobe + +if $MODPROBE -c | grep -q '^allow_unsupported_modules *0'; then + MODPROBE="$MODPROBE --allow-unsupported-modules" +fi [ -f /lib/lsb/init-functions ] || NOLSB=yes [ -f /etc/vbox/vbox.cfg ] && . /etc/vbox/vbox.cfg @@ -166,7 +171,7 @@ start() if [ -e /proc/sys/kernel/perf_counter_paranoid ]; then echo 2 > /proc/sys/kernel/perf_counter_paranoid fi - if ! modprobe vboxdrv > /dev/null 2>&1; then + if ! $MODPROBE vboxdrv > /dev/null 2>&1; then failure "modprobe vboxdrv failed. Please use 'dmesg' to find out why" fi sleep .2 @@ -198,10 +203,10 @@ start() rmmod vboxdrv 2>/dev/null failure "Cannot change owner $GROUPNAME for device $DEVICE" fi - if ! modprobe vboxnetflt > /dev/null 2>&1; then + if ! $MODPROBE vboxnetflt > /dev/null 2>&1; then failure "modprobe vboxnetflt failed. Please use 'dmesg' to find out why" fi - if ! modprobe vboxnetadp > /dev/null 2>&1; then + if ! $MODPROBE vboxnetadp > /dev/null 2>&1; then failure "modprobe vboxnetadp failed. Please use 'dmesg' to find out why" fi succ_msg diff --git a/src/VBox/Installer/solaris/preremove.sh b/src/VBox/Installer/solaris/preremove.sh index cae11d30c..868cf60e1 100755 --- a/src/VBox/Installer/solaris/preremove.sh +++ b/src/VBox/Installer/solaris/preremove.sh @@ -19,7 +19,7 @@ currentzone=`zonename` if test "$currentzone" = "global"; then - echo "Removing VirtualBox drivers and services..." + echo "Removing VirtualBox services and drivers..." /opt/VirtualBox/vboxconfig.sh --preremove if test "$?" -eq 0; then echo "Done." diff --git a/src/VBox/Installer/solaris/vboxconfig.sh b/src/VBox/Installer/solaris/vboxconfig.sh index c0089ccfd..dc9ca94ea 100755 --- a/src/VBox/Installer/solaris/vboxconfig.sh +++ b/src/VBox/Installer/solaris/vboxconfig.sh @@ -42,6 +42,7 @@ BIN_BOOTADM=/sbin/bootadm BIN_SVCADM=/usr/sbin/svcadm BIN_SVCCFG=/usr/sbin/svccfg BIN_IFCONFIG=/sbin/ifconfig +BIN_ID=/usr/bin/id # "vboxdrv" is also used in sed lines here (change those as well if it ever changes) MOD_VBOXDRV=vboxdrv @@ -120,7 +121,9 @@ find_bins() # Search only for binaries that might be in different locations BIN_IFCONFIG=`which ifconfig 2> /dev/null` BIN_SVCS=`which svcs 2> /dev/null` + BIN_ID=`which id 2> /dev/null` + check_bin_path "$BIN_ID" check_bin_path "$BIN_ADDDRV" check_bin_path "$BIN_REMDRV" check_bin_path "$BIN_MODLOAD" @@ -138,18 +141,10 @@ find_bins() # !! failure is always fatal check_root() { - idbin=/usr/xpg4/bin/id - if test ! -x "$idbin"; then - found=`which id 2> /dev/null` - if test ! -x "$found"; then - errorprint "Failed to find a suitable user id executable." - exit 1 - else - idbin=$found - fi - fi - - if test `$idbin -u` -ne 0; then + # Don't use "-u" option as some id binaries don't support it, instead + # rely on "uid=101(username) gid=10(groupname) groups=10(staff)" output + curuid=`$BIN_ID | cut -f 2 -d '=' | cut -f 1 -d '('` + if test "$curuid" -ne 0; then errorprint "This script must be run with administrator privileges." exit 1 fi @@ -197,7 +192,9 @@ module_added() exit 1 fi - loadentry=`cat /etc/name_to_major | grep $1` + # Add a space at end of module name to make sure we have a perfect match to avoid + # any substring matches: e.g "vboxusb" & "vboxusbmon" + loadentry=`cat /etc/name_to_major | grep "$1 "` if test -z "$loadentry"; then return 1 fi @@ -214,8 +211,8 @@ module_loaded() fi modname=$1 - # modinfo should now work properly since we prevent module autounloading - loadentry=`$BIN_MODINFO | grep $modname` + # modinfo should now work properly since we prevent module autounloading. + loadentry=`$BIN_MODINFO | grep "$modname "` if test -z "$loadentry"; then return 1 fi @@ -305,13 +302,13 @@ unload_module() modname=$1 moddesc=$2 fatal=$3 - modid=`$BIN_MODINFO | grep $modname | cut -f 1 -d ' ' ` + modid=`$BIN_MODINFO | grep "$modname " | cut -f 1 -d ' ' ` if test -n "$modid"; then $BIN_MODUNLOAD -i $modid if test $? -eq 0; then subprint "Unloaded: $moddesc module" else - subprint "Unloading: $moddesc ...FAILED!" + subprint "Unloading: $moddesc module ...FAILED!" if test "$fatal" = "$FATALOP"; then exit 1 fi diff --git a/src/VBox/Main/ApplianceImpl.cpp b/src/VBox/Main/ApplianceImpl.cpp index c6b06a49d..3effb154b 100644 --- a/src/VBox/Main/ApplianceImpl.cpp +++ b/src/VBox/Main/ApplianceImpl.cpp @@ -67,17 +67,17 @@ struct Appliance::LocationInfo // opaque private instance data of Appliance class struct Appliance::Data { - Data() - : pReader(NULL) {} + Data() + : pReader(NULL) {} - ~Data() - { - if (pReader) - { - delete pReader; - pReader = NULL; - } - } + ~Data() + { + if (pReader) + { + delete pReader; + pReader = NULL; + } + } LocationInfo locInfo; /* The location info for the currently processed OVF */ @@ -756,7 +756,7 @@ struct Appliance::TaskExportOVF: Appliance::TaskOVF struct MyHardDiskAttachment { - Guid uuid; + Bstr bstrUuid; ComPtr<IMachine> pMachine; Bstr controllerType; int32_t lChannel; @@ -945,6 +945,10 @@ int Appliance::readFS(TaskImportOVF *pTask) rc = setError(VBOX_E_FILE_ERROR, x.what()); } + catch(HRESULT aRC) + { + rc = aRC; + } pTask->rc = rc; @@ -1097,7 +1101,7 @@ int Appliance::importFS(TaskImportOVF *pTask) // a list of images that we created/imported list<MyHardDiskAttachment> llHardDiskAttachments; list< ComPtr<IMedium> > llHardDisksCreated; - list<Guid> llMachinesRegistered; + list<Bstr> llMachinesRegistered; // list of string UUIDs ComPtr<ISession> session; bool fSessionOpen = false; @@ -1108,7 +1112,7 @@ int Appliance::importFS(TaskImportOVF *pTask) // this is safe to access because this thread only gets started // if pReader != NULL - /* If an manifest file exists, verify the content. Therefor we need all + /* If an manifest file exists, verify the content. Therefore we need all * files which are referenced by the OVF & the OVF itself */ Utf8Str strMfFile = manifestFileName(pTask->locInfo.strPath); list<Utf8Str> filesList; @@ -1506,13 +1510,12 @@ int Appliance::importFS(TaskImportOVF *pTask) rc = mVirtualBox->RegisterMachine(pNewMachine); if (FAILED(rc)) throw rc; - Bstr newMachineId_; - rc = pNewMachine->COMGETTER(Id)(newMachineId_.asOutParam()); + Bstr bstrNewMachineId; + rc = pNewMachine->COMGETTER(Id)(bstrNewMachineId.asOutParam()); if (FAILED(rc)) throw rc; - Guid newMachineId(newMachineId_); // store new machine for roll-back in case of errors - llMachinesRegistered.push_back(newMachineId); + llMachinesRegistered.push_back(bstrNewMachineId); // Add floppies and CD-ROMs to the appropriate controllers. std::list<VirtualSystemDescriptionEntry*> vsdeFloppy = vsdescThis->findByType(VirtualSystemDescriptionType_Floppy); @@ -1531,7 +1534,7 @@ int Appliance::importFS(TaskImportOVF *pTask) { /* In order to attach things we need to open a session * for the new machine */ - rc = mVirtualBox->OpenSession(session, newMachineId_); + rc = mVirtualBox->OpenSession(session, bstrNewMachineId); if (FAILED(rc)) throw rc; fSessionOpen = true; @@ -1552,7 +1555,7 @@ int Appliance::importFS(TaskImportOVF *pTask) // this is for rollback later MyHardDiskAttachment mhda; - mhda.uuid = newMachineId; + mhda.bstrUuid = bstrNewMachineId; mhda.pMachine = pNewMachine; mhda.controllerType = bstrName; mhda.lChannel = 0; @@ -1598,7 +1601,7 @@ int Appliance::importFS(TaskImportOVF *pTask) // this is for rollback later MyHardDiskAttachment mhda; - mhda.uuid = newMachineId; + mhda.bstrUuid = bstrNewMachineId; mhda.pMachine = pNewMachine; ConvertDiskAttachmentValues(*pController, @@ -1649,7 +1652,7 @@ int Appliance::importFS(TaskImportOVF *pTask) { /* In order to attach hard disks we need to open a session * for the new machine */ - rc = mVirtualBox->OpenSession(session, newMachineId_); + rc = mVirtualBox->OpenSession(session, bstrNewMachineId); if (FAILED(rc)) throw rc; fSessionOpen = true; @@ -1785,7 +1788,7 @@ int Appliance::importFS(TaskImportOVF *pTask) // this is for rollback later MyHardDiskAttachment mhda; - mhda.uuid = newMachineId; + mhda.bstrUuid = bstrNewMachineId; mhda.pMachine = pNewMachine; ConvertDiskAttachmentValues(hdc, @@ -1850,7 +1853,8 @@ int Appliance::importFS(TaskImportOVF *pTask) ++itM) { const MyHardDiskAttachment &mhda = *itM; - rc2 = mVirtualBox->OpenSession(session, Bstr(mhda.uuid)); + Bstr bstrUuid(mhda.bstrUuid); // make a copy, Windows can't handle const Bstr + rc2 = mVirtualBox->OpenSession(session, bstrUuid); if (SUCCEEDED(rc2)) { ComPtr<IMachine> sMachine; @@ -1877,14 +1881,14 @@ int Appliance::importFS(TaskImportOVF *pTask) } // finally, deregister and remove all machines - list<Guid>::iterator itID; + list<Bstr>::iterator itID; for (itID = llMachinesRegistered.begin(); itID != llMachinesRegistered.end(); ++itID) { - const Guid &guid = *itID; + Bstr bstrGuid = *itID; // make a copy, Windows can't handle const Bstr ComPtr<IMachine> failedMachine; - rc2 = mVirtualBox->UnregisterMachine(guid.toUtf16(), failedMachine.asOutParam()); + rc2 = mVirtualBox->UnregisterMachine(bstrGuid, failedMachine.asOutParam()); if (SUCCEEDED(rc2)) rc2 = failedMachine->DeleteSettings(); } diff --git a/src/VBox/Main/ConsoleImpl.cpp b/src/VBox/Main/ConsoleImpl.cpp index c334ca472..b521d8527 100644 --- a/src/VBox/Main/ConsoleImpl.cpp +++ b/src/VBox/Main/ConsoleImpl.cpp @@ -286,14 +286,14 @@ HRESULT Console::FinalConstruct() { LogFlowThisFunc(("\n")); - memset(mapFDLeds, 0, sizeof(mapFDLeds)); - memset(mapIDELeds, 0, sizeof(mapIDELeds)); - memset(mapSATALeds, 0, sizeof(mapSATALeds)); - memset(mapSCSILeds, 0, sizeof(mapSCSILeds)); + memset(mapStorageLeds, 0, sizeof(mapStorageLeds)); memset(mapNetworkLeds, 0, sizeof(mapNetworkLeds)); memset(&mapUSBLed, 0, sizeof(mapUSBLed)); memset(&mapSharedFolderLed, 0, sizeof(mapSharedFolderLed)); + for (unsigned i = 0; i < RT_ELEMENTS(maStorageDevType); ++ i) + maStorageDevType[i] = DeviceType_Null; + return S_OK; } @@ -2175,27 +2175,12 @@ STDMETHODIMP Console::GetDeviceActivity(DeviceType_T aDeviceType, switch (aDeviceType) { case DeviceType_Floppy: - { - for (unsigned i = 0; i < RT_ELEMENTS(mapFDLeds); ++i) - SumLed.u32 |= readAndClearLed(mapFDLeds[i]); - break; - } - case DeviceType_DVD: - { - SumLed.u32 |= readAndClearLed(mapIDELeds[2]); - break; - } - case DeviceType_HardDisk: { - SumLed.u32 |= readAndClearLed(mapIDELeds[0]); - SumLed.u32 |= readAndClearLed(mapIDELeds[1]); - SumLed.u32 |= readAndClearLed(mapIDELeds[3]); - for (unsigned i = 0; i < RT_ELEMENTS(mapSATALeds); ++i) - SumLed.u32 |= readAndClearLed(mapSATALeds[i]); - for (unsigned i = 0; i < RT_ELEMENTS(mapSCSILeds); ++i) - SumLed.u32 |= readAndClearLed(mapSCSILeds[i]); + for (unsigned i = 0; i < RT_ELEMENTS(mapStorageLeds); ++i) + if (maStorageDevType[i] == aDeviceType) + SumLed.u32 |= readAndClearLed(mapStorageLeds[i]); break; } @@ -7278,7 +7263,7 @@ static DECLCALLBACK(int) reconfigureMedium(PVM pVM, ULONG lInstance, rc = CFGMR3InsertNode(pCfg, "VDConfig", &pVDC); RC_CHECK(); for (size_t i = 0; i < names.size(); ++ i) { - if (values[i]) + if (values[i] && *values[i]) { Utf8Str name = names[i]; Utf8Str value = values[i]; @@ -7319,11 +7304,11 @@ static DECLCALLBACK(int) reconfigureMedium(PVM pVM, ULONG lInstance, rc = CFGMR3InsertNode(pCur, "VDConfig", &pVDC); RC_CHECK(); for (size_t i = 0; i < aNames.size(); ++ i) { - if (aValues[i]) + if (aValues[i] && *aValues[i]) { Utf8Str name = aNames[i]; Utf8Str value = aValues[i]; - rc = CFGMR3InsertString(pVDC, name.c_str(), value.c_str()); + rc = CFGMR3InsertString(pVDC, name.c_str(), value.c_str()); RC_CHECK(); if ( !(name.compare("HostIPStack")) && !(value.compare("0"))) fHostIP = false; diff --git a/src/VBox/Main/ConsoleImpl2.cpp b/src/VBox/Main/ConsoleImpl2.cpp index ee1bbd23d..c49d11534 100644 --- a/src/VBox/Main/ConsoleImpl2.cpp +++ b/src/VBox/Main/ConsoleImpl2.cpp @@ -823,6 +823,8 @@ DECLCALLBACK(int) Console::configConstructor(PVM pVM, void *pvConsole) for (size_t i = 0; i < ctrls.size(); ++ i) { + DeviceType_T *paLedDevType = NULL; + StorageControllerType_T enmCtrlType; rc = ctrls[i]->COMGETTER(ControllerType)(&enmCtrlType); H(); AssertRelease((unsigned)enmCtrlType < RT_ELEMENTS(aCtrlNodes)); @@ -866,9 +868,11 @@ DECLCALLBACK(int) Console::configConstructor(PVM pVM, void *pvConsole) rc = CFGMR3InsertNode(pCtlInst, "LUN#999", &pLunL0); RC_CHECK(); rc = CFGMR3InsertString(pLunL0, "Driver", "MainStatus"); RC_CHECK(); rc = CFGMR3InsertNode(pLunL0, "Config", &pCfg); RC_CHECK(); - rc = CFGMR3InsertInteger(pCfg, "papLeds", (uintptr_t)&pConsole->mapSCSILeds[0]); RC_CHECK(); + rc = CFGMR3InsertInteger(pCfg, "papLeds", (uintptr_t)&pConsole->mapStorageLeds[iLedScsi]); RC_CHECK(); rc = CFGMR3InsertInteger(pCfg, "First", 0); RC_CHECK(); + Assert(cLedScsi >= 16); rc = CFGMR3InsertInteger(pCfg, "Last", 15); RC_CHECK(); + paLedDevType = &pConsole->maStorageDevType[iLedScsi]; break; } @@ -883,9 +887,11 @@ DECLCALLBACK(int) Console::configConstructor(PVM pVM, void *pvConsole) rc = CFGMR3InsertNode(pCtlInst, "LUN#999", &pLunL0); RC_CHECK(); rc = CFGMR3InsertString(pLunL0, "Driver", "MainStatus"); RC_CHECK(); rc = CFGMR3InsertNode(pLunL0, "Config", &pCfg); RC_CHECK(); - rc = CFGMR3InsertInteger(pCfg, "papLeds", (uintptr_t)&pConsole->mapSCSILeds[0]); RC_CHECK(); + rc = CFGMR3InsertInteger(pCfg, "papLeds", (uintptr_t)&pConsole->mapStorageLeds[iLedScsi]); RC_CHECK(); rc = CFGMR3InsertInteger(pCfg, "First", 0); RC_CHECK(); + Assert(cLedScsi >= 16); rc = CFGMR3InsertInteger(pCfg, "Last", 15); RC_CHECK(); + paLedDevType = &pConsole->maStorageDevType[iLedScsi]; break; } @@ -926,10 +932,11 @@ DECLCALLBACK(int) Console::configConstructor(PVM pVM, void *pvConsole) rc = CFGMR3InsertNode(pCtlInst, "LUN#999", &pLunL0); RC_CHECK(); rc = CFGMR3InsertString(pLunL0, "Driver", "MainStatus"); RC_CHECK(); rc = CFGMR3InsertNode(pLunL0, "Config", &pCfg); RC_CHECK(); - AssertRelease(cPorts <= RT_ELEMENTS(pConsole->mapSATALeds)); - rc = CFGMR3InsertInteger(pCfg, "papLeds", (uintptr_t)&pConsole->mapSATALeds[0]); RC_CHECK(); + AssertRelease(cPorts <= cLedSata); + rc = CFGMR3InsertInteger(pCfg, "papLeds", (uintptr_t)&pConsole->mapStorageLeds[iLedSata]); RC_CHECK(); rc = CFGMR3InsertInteger(pCfg, "First", 0); RC_CHECK(); rc = CFGMR3InsertInteger(pCfg, "Last", cPorts - 1); RC_CHECK(); + paLedDevType = &pConsole->maStorageDevType[iLedSata]; break; } @@ -950,9 +957,11 @@ DECLCALLBACK(int) Console::configConstructor(PVM pVM, void *pvConsole) rc = CFGMR3InsertNode(pCtlInst, "LUN#999", &pLunL0); RC_CHECK(); rc = CFGMR3InsertString(pLunL0, "Driver", "MainStatus"); RC_CHECK(); rc = CFGMR3InsertNode(pLunL0, "Config", &pCfg); RC_CHECK(); - rc = CFGMR3InsertInteger(pCfg, "papLeds", (uintptr_t)&pConsole->mapIDELeds[0]);RC_CHECK(); + rc = CFGMR3InsertInteger(pCfg, "papLeds", (uintptr_t)&pConsole->mapStorageLeds[iLedIde]); RC_CHECK(); rc = CFGMR3InsertInteger(pCfg, "First", 0); RC_CHECK(); + Assert(cLedIde >= 4); rc = CFGMR3InsertInteger(pCfg, "Last", 3); RC_CHECK(); + paLedDevType = &pConsole->maStorageDevType[iLedIde]; /* IDE flavors */ aCtrlNodes[StorageControllerType_PIIX3] = pDev; @@ -976,9 +985,11 @@ DECLCALLBACK(int) Console::configConstructor(PVM pVM, void *pvConsole) rc = CFGMR3InsertNode(pCtlInst, "LUN#999", &pLunL0); RC_CHECK(); rc = CFGMR3InsertString(pLunL0, "Driver", "MainStatus"); RC_CHECK(); rc = CFGMR3InsertNode(pLunL0, "Config", &pCfg); RC_CHECK(); - rc = CFGMR3InsertInteger(pCfg, "papLeds", (uintptr_t)&pConsole->mapFDLeds[0]); RC_CHECK(); + rc = CFGMR3InsertInteger(pCfg, "papLeds", (uintptr_t)&pConsole->mapStorageLeds[iLedFloppy]); RC_CHECK(); rc = CFGMR3InsertInteger(pCfg, "First", 0); RC_CHECK(); + Assert(cLedFloppy >= 1); rc = CFGMR3InsertInteger(pCfg, "Last", 0); RC_CHECK(); + paLedDevType = &pConsole->maStorageDevType[iLedFloppy]; break; } @@ -1118,7 +1129,7 @@ DECLCALLBACK(int) Console::configConstructor(PVM pVM, void *pvConsole) { Utf8Str name = names[ii]; Utf8Str value = values[ii]; - rc = CFGMR3InsertString(pVDC, name.c_str(), value.c_str()); AssertRC(rc); /** @todo r=bird: why not RC_CHECK() here? (I added the AssertRC.)*/ + rc = CFGMR3InsertString(pVDC, name.c_str(), value.c_str()); RC_CHECK(); if ( name.compare("HostIPStack") == 0 && value.compare("0") == 0) fHostIP = false; @@ -1157,11 +1168,11 @@ DECLCALLBACK(int) Console::configConstructor(PVM pVM, void *pvConsole) rc = CFGMR3InsertNode(pCur, "VDConfig", &pVDC); RC_CHECK(); for (size_t ii = 0; ii < aNames.size(); ++ii) { - if (aValues[ii]) + if (aValues[ii] && *aValues[ii]) { Utf8Str name = aNames[ii]; Utf8Str value = aValues[ii]; - rc = CFGMR3InsertString(pVDC, name.c_str(), value.c_str()); AssertRC(rc); /** @todo r=bird: why not RC_HCECK here? (I added the AssertRC.)*/ + rc = CFGMR3InsertString(pVDC, name.c_str(), value.c_str()); RC_CHECK(); if ( name.compare("HostIPStack") == 0 && value.compare("0") == 0) fHostIP = false; @@ -1182,6 +1193,9 @@ DECLCALLBACK(int) Console::configConstructor(PVM pVM, void *pvConsole) } } } + + if (paLedDevType) + paLedDevType[uLUN] = lType; } H(); } diff --git a/src/VBox/Main/DisplayImpl.cpp b/src/VBox/Main/DisplayImpl.cpp index 07c4aa791..f4ca9d71f 100644 --- a/src/VBox/Main/DisplayImpl.cpp +++ b/src/VBox/Main/DisplayImpl.cpp @@ -514,7 +514,10 @@ Display::displaySSMLoadScreenshot(PSSMHANDLE pSSM, void *pvUser, uint32_t uVersi LogFlowFunc(("[%d] type %d, size %d bytes\n", i, typeOfBlock, cbBlock)); - if (cbBlock != 0) + /* Note: displaySSMSaveScreenshot writes size of a block = 8 and + * does not write any data if the image size was 0. + */ + if (cbBlock > 2 * sizeof (uint32_t)) { rc = SSMR3Skip(pSSM, cbBlock); AssertRCBreak(rc); diff --git a/src/VBox/Main/MachineDebuggerImpl.cpp b/src/VBox/Main/MachineDebuggerImpl.cpp index 3cddef0be..a94a8d450 100644 --- a/src/VBox/Main/MachineDebuggerImpl.cpp +++ b/src/VBox/Main/MachineDebuggerImpl.cpp @@ -655,7 +655,7 @@ STDMETHODIMP MachineDebugger::ResetStats (IN_BSTR aPattern) Console::SafeVMPtrQuiet pVM (mParent); if (!pVM.isOk()) - return E_FAIL; + return setError(VBOX_E_INVALID_VM_STATE, "Machine is not running"); STAMR3Reset (pVM, Utf8Str (aPattern).raw()); @@ -673,7 +673,7 @@ STDMETHODIMP MachineDebugger::DumpStats (IN_BSTR aPattern) Console::SafeVMPtrQuiet pVM (mParent); if (!pVM.isOk()) - return E_FAIL; + return setError(VBOX_E_INVALID_VM_STATE, "Machine is not running"); STAMR3Dump (pVM, Utf8Str (aPattern).raw()); @@ -693,7 +693,7 @@ STDMETHODIMP MachineDebugger::GetStats (IN_BSTR aPattern, BOOL aWithDescriptions Console::SafeVMPtrQuiet pVM (mParent); if (!pVM.isOk()) - return E_FAIL; + return setError(VBOX_E_INVALID_VM_STATE, "Machine is not running"); char *pszSnapshot; int vrc = STAMR3Snapshot (pVM, Utf8Str (aPattern).raw(), &pszSnapshot, NULL, diff --git a/src/VBox/Main/MachineImpl.cpp b/src/VBox/Main/MachineImpl.cpp index 26ba9ff23..fb2792d06 100644 --- a/src/VBox/Main/MachineImpl.cpp +++ b/src/VBox/Main/MachineImpl.cpp @@ -162,8 +162,8 @@ Machine::HWData::HWData() mAccelerate2DVideoEnabled = false; mMonitorCount = 1; mHWVirtExEnabled = true; - mHWVirtExNestedPagingEnabled = false; - mHWVirtExVPIDEnabled = false; + mHWVirtExNestedPagingEnabled = true; + mHWVirtExVPIDEnabled = true; #if defined(RT_OS_DARWIN) || defined(RT_OS_WINDOWS) mHWVirtExExclusive = false; #else @@ -633,13 +633,7 @@ void Machine::uninit() LogFlowThisFunc(("initFailed()=%d\n", autoUninitSpan.initFailed())); LogFlowThisFunc(("mRegistered=%d\n", mData->mRegistered)); - /* Enter this object lock because there may be a SessionMachine instance - * somewhere around, that shares our data and lock but doesn't use our - * addCaller()/removeCaller(), and it may be also accessing the same data - * members. mParent lock is necessary as well because of - * SessionMachine::uninit(), etc. - */ - AutoMultiWriteLock2 alock (mParent, this); + AutoMultiWriteLock2 alock(mParent, this); if (!mData->mSession.mMachine.isNull()) { @@ -655,16 +649,14 @@ void Machine::uninit() * after we return from this method (it expects the Machine instance is * still valid). We'll call it ourselves below. */ - LogWarningThisFunc(("Session machine is not NULL (%p), " - "the direct session is still open!\n", - (SessionMachine *) mData->mSession.mMachine)); + LogWarningThisFunc(("Session machine is not NULL (%p), the direct session is still open!\n", + (SessionMachine*)mData->mSession.mMachine)); - if (Global::IsOnlineOrTransient (mData->mMachineState)) + if (Global::IsOnlineOrTransient(mData->mMachineState)) { LogWarningThisFunc(("Setting state to Aborted!\n")); /* set machine state using SessionMachine reimplementation */ - static_cast <Machine *> (mData->mSession.mMachine) - ->setMachineState (MachineState_Aborted); + static_cast<Machine*>(mData->mSession.mMachine)->setMachineState (MachineState_Aborted); } /* @@ -673,7 +665,7 @@ void Machine::uninit() */ mData->mSession.mMachine->uninit(); /* SessionMachine::uninit() must set mSession.mMachine to null */ - Assert (mData->mSession.mMachine.isNull()); + Assert(mData->mSession.mMachine.isNull()); } /* the lock is no more necessary (SessionMachine is uninitialized) */ @@ -3295,6 +3287,19 @@ STDMETHODIMP Machine::GetSnapshot (IN_BSTR aId, ISnapshot **aSnapshot) AutoReadLock alock(this); Guid uuid(aId); + /* Todo: fix this properly by perhaps introducing an isValid method for the Guid class */ + if ( (aId) + && (*aId != '\0') // an empty Bstr means "get root snapshot", so don't fail on that + && (uuid.isEmpty())) + { + RTUUID uuidTemp; + /* Either it's a null UUID or the conversion failed. (null uuid has a special meaning in findSnapshot) */ + if (RT_FAILURE(RTUuidFromUtf16(&uuidTemp, aId))) + return setError(E_FAIL, + tr("Could not find a snapshot with UUID {%ls}"), + aId); + } + ComObjPtr<Snapshot> snapshot; HRESULT rc = findSnapshot(uuid, snapshot, true /* aSetError */); @@ -4018,7 +4023,10 @@ static int readSavedDisplayScreenshot(Utf8Str *pStateFilePath, uint32_t u32Type, } else { - if (cbBlock != 0) + /* displaySSMSaveScreenshot did not write any data, if + * cbBlock was == 2 * sizeof (uint32_t). + */ + if (cbBlock > 2 * sizeof (uint32_t)) { rc = SSMR3Skip(pSSM, cbBlock); AssertRCBreak(rc); @@ -4835,24 +4843,10 @@ HRESULT Machine::openExistingSession (IInternalSessionControl *aControl) ComAssertRet (!mData->mSession.mDirectControl.isNull(), E_FAIL); - /* - * Get the console from the direct session (note that we don't leave the - * lock here because GetRemoteConsole must not call us back). - */ - ComPtr<IConsole> console; - HRESULT rc = mData->mSession.mDirectControl-> - GetRemoteConsole (console.asOutParam()); - if (FAILED (rc)) - { - /* The failure may occur w/o any error info (from RPC), so provide one */ - return setError (VBOX_E_VM_ERROR, - tr ("Failed to get a console object from the direct session (%Rrc)"), rc); - } - - ComAssertRet (!console.isNull(), E_FAIL); - - ComObjPtr<SessionMachine> sessionMachine = mData->mSession.mMachine; - AssertReturn(!sessionMachine.isNull(), E_FAIL); + // copy member variables before leaving lock + ComPtr<IInternalSessionControl> pDirectControl = mData->mSession.mDirectControl; + ComObjPtr<SessionMachine> pSessionMachine = mData->mSession.mMachine; + AssertReturn(!pSessionMachine.isNull(), E_FAIL); /* * Leave the lock before calling the client process. It's safe here @@ -4862,9 +4856,21 @@ HRESULT Machine::openExistingSession (IInternalSessionControl *aControl) */ alock.leave(); + // get the console from the direct session (this is a remote call) + ComPtr<IConsole> pConsole; + LogFlowThisFunc(("Calling GetRemoteConsole()...\n")); + HRESULT rc = pDirectControl->GetRemoteConsole(pConsole.asOutParam()); + LogFlowThisFunc(("GetRemoteConsole() returned %08X\n", rc)); + if (FAILED (rc)) + /* The failure may occur w/o any error info (from RPC), so provide one */ + return setError (VBOX_E_VM_ERROR, + tr ("Failed to get a console object from the direct session (%Rrc)"), rc); + + ComAssertRet(!pConsole.isNull(), E_FAIL); + /* attach the remote session to the machine */ LogFlowThisFunc(("Calling AssignRemoteMachine()...\n")); - rc = aControl->AssignRemoteMachine (sessionMachine, console); + rc = aControl->AssignRemoteMachine(pSessionMachine, pConsole); LogFlowThisFunc(("AssignRemoteMachine() returned %08X\n", rc)); /* The failure may occur w/o any error info (from RPC), so provide one */ @@ -4886,7 +4892,7 @@ HRESULT Machine::openExistingSession (IInternalSessionControl *aControl) } /* store the control in the list */ - mData->mSession.mRemoteControls.push_back (aControl); + mData->mSession.mRemoteControls.push_back(aControl); LogFlowThisFuncLeave(); return S_OK; @@ -5538,9 +5544,14 @@ void Machine::uninitDataAndChildObjects() if (mType == IsMachine) { - /* reset some important fields of mData */ + // clean up the snapshots list (Snapshot::uninit() will handle the snapshot's children recursively) + if (mData->mFirstSnapshot) + { + mData->mFirstSnapshot->uninit(); + mData->mFirstSnapshot.setNull(); + } + mData->mCurrentSnapshot.setNull(); - mData->mFirstSnapshot.setNull(); } /* free data structures (the essential mData structure is not freed here @@ -9699,7 +9710,7 @@ HRESULT SessionMachine::onSharedFolderChange() * Returns @c true if this machine's USB controller reports it has a matching * filter for the given USB device and @c false otherwise. * - * @note Locks this object for reading. + * @note Caller must have requested machine write lock. */ bool SessionMachine::hasMatchingUSBFilter (const ComObjPtr<HostUSBDevice> &aDevice, ULONG *aMaskedIfs) { @@ -9709,7 +9720,7 @@ bool SessionMachine::hasMatchingUSBFilter (const ComObjPtr<HostUSBDevice> &aDevi if (!autoCaller.isOk()) return false; - AutoReadLock alock(this); + AssertReturn(isWriteLockOnCurrentThread(), false); #ifdef VBOX_WITH_USB switch (mData->mMachineState) diff --git a/src/VBox/Main/Makefile.kmk b/src/VBox/Main/Makefile.kmk index 075cef616..c48836ca8 100644 --- a/src/VBox/Main/Makefile.kmk +++ b/src/VBox/Main/Makefile.kmk @@ -457,7 +457,9 @@ $(VBOX_XML_SCHEMADEFS_CPP): $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(KBUIL OTHER_CLEAN += $(VBOX_XML_SCHEMADEFS_H) $(VBOX_XML_SCHEMADEFS_CPP) -if (defined(VBOX_WITH_CROGL) || defined(VBOX_WITH_VIDEOHWACCEL)) && !defined(VBOX_WITH_DEBUG_VCC_CRT) +if ( defined(VBOX_WITH_QTGUI) \ + && (defined(VBOX_WITH_CROGL) || defined(VBOX_WITH_VIDEOHWACCEL)) \ + && !defined(VBOX_WITH_DEBUG_VCC_CRT)) ifneq ($(KBUILD_TARGET),darwin) # # VBoxTestOGL - OpenGL support test app. diff --git a/src/VBox/Main/MediumAttachmentImpl.cpp b/src/VBox/Main/MediumAttachmentImpl.cpp index fdb7db8bc..e02b37a0c 100644 --- a/src/VBox/Main/MediumAttachmentImpl.cpp +++ b/src/VBox/Main/MediumAttachmentImpl.cpp @@ -82,8 +82,8 @@ HRESULT MediumAttachment::init(Machine *aParent, unconst(m->port) = aPort; unconst(m->device) = aDevice; unconst(m->type) = aType; - unconst(m->passthrough) = aPassthrough; + m->passthrough = aPassthrough; /* Newly created attachments never have an implicitly created medium * associated with them. Implicit diff image creation happens later. */ m->implicit = false; diff --git a/src/VBox/Main/MediumImpl.cpp b/src/VBox/Main/MediumImpl.cpp index 1eb54b37d..81b94e385 100644 --- a/src/VBox/Main/MediumImpl.cpp +++ b/src/VBox/Main/MediumImpl.cpp @@ -1257,7 +1257,7 @@ HRESULT Medium::init(VirtualBox *aVirtualBox, * @note All children of this hard disk get uninitialized by calling their * uninit() methods. * - * @note Locks getTreeLock() for writing, VirtualBox for writing. + * @note Caller must hold the tree lock of the medium tree this medium is on. */ void Medium::uninit() { @@ -1628,11 +1628,11 @@ STDMETHODIMP Medium::COMGETTER(LogicalSize)(ULONG64 *aLogicalSize) AutoCaller autoCaller(this); CheckComRCReturnRC(autoCaller.rc()); - AutoReadLock alock(this); - /* we access mParent */ AutoReadLock treeLock(this->getTreeLock()); + AutoReadLock alock(this); + if (mParent.isNull()) { *aLogicalSize = m->logicalSize; @@ -2963,11 +2963,11 @@ bool Medium::isReadOnly() AutoCaller autoCaller(this); AssertComRCReturn(autoCaller.rc(), false); - AutoReadLock alock(this); - /* we access children */ AutoReadLock treeLock(this->getTreeLock()); + AutoReadLock alock(this); + switch (m->type) { case MediumType_Normal: @@ -3010,11 +3010,11 @@ HRESULT Medium::saveSettings(settings::Medium &data) AutoCaller autoCaller(this); CheckComRCReturnRC(autoCaller.rc()); - AutoReadLock alock(this); - /* we access mParent */ AutoReadLock treeLock(this->getTreeLock()); + AutoReadLock alock(this); + data.uuid = m->id; data.strLocation = m->strLocation; data.strFormat = m->strFormat; @@ -3115,7 +3115,8 @@ HRESULT Medium::compareLocationTo(const char *aLocation, int &aResult) /** * Checks that this hard disk may be discarded and performs necessary state - * changes. + * changes. Must not be called for writethrough disks because there is nothing + * to discard then. * * This method is to be called prior to calling the #discard() to perform * necessary consistency checks and place involved hard disks to appropriate @@ -3142,7 +3143,9 @@ HRESULT Medium::prepareDiscard(MergeChain * &aChain) /* we access mParent & children() */ AutoReadLock treeLock(this->getTreeLock()); - AssertReturn(m->type == MediumType_Normal, E_FAIL); + // Medium must not be writethrough at this point + AssertReturn( m->type == MediumType_Normal + || m->type == MediumType_Immutable, E_FAIL); if (getChildren().size() == 0) { diff --git a/src/VBox/Main/NetworkAdapterImpl.cpp b/src/VBox/Main/NetworkAdapterImpl.cpp index ca012fa3b..0632659eb 100644 --- a/src/VBox/Main/NetworkAdapterImpl.cpp +++ b/src/VBox/Main/NetworkAdapterImpl.cpp @@ -906,8 +906,6 @@ HRESULT NetworkAdapter::loadSettings(const settings::NetworkAdapter &data) AutoCaller autoCaller(this); AssertComRCReturnRC(autoCaller.rc()); - AutoWriteLock alock(this); - /* Note: we assume that the default values for attributes of optional * nodes are assigned in the Data::Data() constructor and don't do it * here. It implies that this method may only be called after constructing diff --git a/src/VBox/Main/SnapshotImpl.cpp b/src/VBox/Main/SnapshotImpl.cpp index 6fcebc5d3..5201401e3 100644 --- a/src/VBox/Main/SnapshotImpl.cpp +++ b/src/VBox/Main/SnapshotImpl.cpp @@ -1988,8 +1988,11 @@ STDMETHODIMP SessionMachine::DeleteSnapshot(IConsole *aInitiator, ComObjPtr<Medium> pHD = pAttach->getMedium(); Assert(pHD); AutoReadLock mlock(pHD); - if (pHD->getType() == MediumType_Normal) + + MediumType_T type = pHD->getType(); + if (type != MediumType_Writethrough) // writethrough images are unaffected by snapshots, so do nothing for them { + // normal or immutable: then this will need to be discarded ++ulOpCount; ulTotalWeight += (ULONG)(pHD->getSize() / _1M); } @@ -2141,7 +2144,18 @@ void SessionMachine::deleteSnapshotHandler(DeleteSnapshotTask &aTask) { Assert(pAttach->getMedium()); ComObjPtr<Medium> pHD = pAttach->getMedium(); - // do not lock, prepareDiscared() has a write lock which will hang otherwise + + { + // writethrough images are unaffected by snapshots, so do nothing for them + AutoReadLock medlock(pHD); + MediumType_T type = pHD->getType(); + if (type == MediumType_Writethrough) + continue; + } + + // image is normal or immutable: then this will need to be discarded + + // do not lock medium now, prepareDiscard() has a write lock which will hang otherwise #ifdef DEBUG pHD->dumpBackRefs(); diff --git a/src/VBox/Main/USBControllerImpl.cpp b/src/VBox/Main/USBControllerImpl.cpp index ec4067aa9..24bf919d2 100644 --- a/src/VBox/Main/USBControllerImpl.cpp +++ b/src/VBox/Main/USBControllerImpl.cpp @@ -554,15 +554,13 @@ STDMETHODIMP USBController::RemoveDeviceFilter (ULONG aPosition, * * @param aMachineNode <Machine> node. * - * @note Locks this object for writing. + * @note Does not lock "this" as Machine::loadHardware, which calls this, does not lock either. */ HRESULT USBController::loadSettings(const settings::USBController &data) { AutoCaller autoCaller(this); AssertComRCReturnRC(autoCaller.rc()); - AutoWriteLock alock(this); - /* Note: we assume that the default values for attributes of optional * nodes are assigned in the Data::Data() constructor and don't do it * here. It implies that this method may only be called after constructing diff --git a/src/VBox/Main/VMMDevInterface.cpp b/src/VBox/Main/VMMDevInterface.cpp index 721a6ad8b..9f82ffc51 100644 --- a/src/VBox/Main/VMMDevInterface.cpp +++ b/src/VBox/Main/VMMDevInterface.cpp @@ -101,6 +101,13 @@ VMMDev::VMMDev(Console *console) : mpDrv(NULL) VMMDev::~VMMDev() { +#ifdef VBOX_WITH_HGCM + if (hgcmIsActive()) + { + ASMAtomicWriteBool(&m_fHGCMActive, false); + HGCMHostShutdown(); + } +#endif /* VBOX_WITH_HGCM */ RTSemEventDestroy (mCredentialsEvent); if (mpDrv) mpDrv->pVMMDev = NULL; diff --git a/src/VBox/Main/generic/OpenGLTestApp.cpp b/src/VBox/Main/generic/OpenGLTestApp.cpp index bb97095be..0b7056c78 100644 --- a/src/VBox/Main/generic/OpenGLTestApp.cpp +++ b/src/VBox/Main/generic/OpenGLTestApp.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2009 Sun Microsystems, Inc. + * Copyright (C) 2009-2010 Sun Microsystems, Inc. * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -184,7 +184,7 @@ static int vboxInitLogging(const char *pszFilename, bool bGenNameSuffix) /* register this logger as the release logger */ RTLogRelSetDefaultInstance(loggerRelease); - + return VINF_SUCCESS; } @@ -285,8 +285,8 @@ int main(int argc, char **argv) break; #endif case 'h': - RTPrintf("VirtualBox Helper for testing 2D/3D OpenGL capabilities %u.%u.%u\n" - "(C) 2009 Sun Microsystems, Inc.\n" + RTPrintf(VBOX_PRODUCT " Helper for testing 2D/3D OpenGL capabilities %u.%u.%u\n" + "(C) 2009-" VBOX_C_YEAR " " VBOX_VENDOR "\n" "All rights reserved.\n" "\n" "Parameters:\n" diff --git a/src/VBox/Main/include/ConsoleImpl.h b/src/VBox/Main/include/ConsoleImpl.h index 46269b529..447fe8387 100644 --- a/src/VBox/Main/include/ConsoleImpl.h +++ b/src/VBox/Main/include/ConsoleImpl.h @@ -575,16 +575,26 @@ private: VMMDev * const mVMMDev; AudioSniffer * const mAudioSniffer; - PPDMLED mapFDLeds[2]; - PPDMLED mapIDELeds[4]; - PPDMLED mapSATALeds[30]; - PPDMLED mapSCSILeds[16]; - PPDMLED mapNetworkLeds[SchemaDefs::NetworkAdapterCount]; - PPDMLED mapSharedFolderLed; - PPDMLED mapUSBLed[2]; + enum + { + iLedFloppy = 0, + cLedFloppy = 1, + iLedIde = iLedFloppy + cLedFloppy, + cLedIde = 4, + iLedSata = iLedIde + cLedIde, + cLedSata = 30, + iLedScsi = iLedSata + cLedSata, + cLedScsi = 16, + cLedStorage = cLedFloppy + cLedIde + cLedSata + cLedScsi, + }; + DeviceType_T maStorageDevType[cLedStorage]; + PPDMLED mapStorageLeds[cLedStorage]; + PPDMLED mapNetworkLeds[SchemaDefs::NetworkAdapterCount]; + PPDMLED mapSharedFolderLed; + PPDMLED mapUSBLed[2]; #if !defined(VBOX_WITH_NETFLT) && (defined(RT_OS_LINUX) || defined(RT_OS_FREEBSD)) - Utf8Str maTAPDeviceName[8]; - RTFILE maTapFD[8]; + Utf8Str maTAPDeviceName[8]; + RTFILE maTapFD[8]; #endif bool mVMStateChangeCallbackDisabled; diff --git a/src/VBox/Main/webservice/vboxweb.cpp b/src/VBox/Main/webservice/vboxweb.cpp index 3210233e0..9c8131d63 100644 --- a/src/VBox/Main/webservice/vboxweb.cpp +++ b/src/VBox/Main/webservice/vboxweb.cpp @@ -5,7 +5,7 @@ * (plus static gSOAP server code) to implement the actual webservice * server, to which clients can connect. * - * Copyright (C) 2006-2009 Sun Microsystems, Inc. + * Copyright (C) 2006-2010 Sun Microsystems, Inc. * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -264,9 +264,9 @@ int main(int argc, char* argv[]) // intialize runtime RTR3Init(); - RTStrmPrintf(g_pStdErr, "Sun VirtualBox Webservice Version %s\n" - "(C) 2005-2009 Sun Microsystems, Inc.\n" - "All rights reserved.\n", VBOX_VERSION_STRING); + RTStrmPrintf(g_pStdErr, VBOX_PRODUCT " Webservice Version " VBOX_VERSION_STRING "\n" + "(C) 2005-" VBOX_C_YEAR " " VBOX_VENDOR "\n" + "All rights reserved.\n"); int c; RTGETOPTUNION ValueUnion; diff --git a/src/VBox/Main/xml/Settings.cpp b/src/VBox/Main/xml/Settings.cpp index 190929a23..e2fbe1d23 100644 --- a/src/VBox/Main/xml/Settings.cpp +++ b/src/VBox/Main/xml/Settings.cpp @@ -1249,8 +1249,8 @@ Hardware::Hardware() : strVersion("1"), fHardwareVirt(true), fHardwareVirtExclusive(HWVIRTEXCLUSIVEDEFAULT), - fNestedPaging(false), - fVPID(false), + fNestedPaging(true), + fVPID(true), fSyntheticCpu(false), fPAE(false), cCPUs(1), @@ -1955,7 +1955,7 @@ void MachineConfigFile::readStorageControllers(const xml::ElementNode &elmStorag throw ConfigFileError(this, pelmController, N_("Required StorageController/@name attribute is missing")); // canonicalize storage controller names for configs in the switchover // period. - if (m->sv <= SettingsVersion_v1_9) + if (m->sv < SettingsVersion_v1_9) { if (sctl.strName == "IDE") sctl.strName = "IDE Controller"; @@ -2914,8 +2914,7 @@ void MachineConfigFile::writeStorageControllers(xml::ElementNode &elmParent, case DeviceType_DVD: pcszType = "DVD"; - if (att.fPassThrough) - pelmDevice->setAttribute("passthrough", att.fPassThrough); + pelmDevice->setAttribute("passthrough", att.fPassThrough); break; case DeviceType_Floppy: diff --git a/src/VBox/Main/xpcom/server.cpp b/src/VBox/Main/xpcom/server.cpp index 0b110fbda..576a2ac27 100644 --- a/src/VBox/Main/xpcom/server.cpp +++ b/src/VBox/Main/xpcom/server.cpp @@ -1017,12 +1017,12 @@ int main(int argc, char **argv) int iSize; iSize = RTStrPrintf(szBuf, sizeof(szBuf), - "Sun VirtualBox XPCOM Server Version " + VBOX_PRODUCT" XPCOM Server Version " VBOX_VERSION_STRING); for (int i = iSize; i > 0; i--) putchar('*'); RTPrintf("\n%s\n", szBuf); - RTPrintf("(C) 2008-2009 Sun Microsystems, Inc.\n" + RTPrintf("(C) 2008-" VBOX_C_YEAR " " VBOX_VENDOR "\n" "All rights reserved.\n"); #ifdef DEBUG RTPrintf("Debug version.\n"); diff --git a/src/VBox/Makefile.kmk b/src/VBox/Makefile.kmk index 9831b23de..a9a2041af 100644 --- a/src/VBox/Makefile.kmk +++ b/src/VBox/Makefile.kmk @@ -63,7 +63,7 @@ else ifdef VBOX_WITH_VRDP include $(PATH_SUB_CURRENT)/RDP/Makefile.kmk endif - ifdef VBOX_WITH_CROGL + if defined(VBOX_WITH_CROGL) || defined(VBOX_WITH_HGSMI) || defined(VBOX_WITH_HGCM) include $(PATH_SUB_CURRENT)/GuestHost/Makefile.kmk endif ifdef VBOX_WITH_ADDITIONS diff --git a/src/VBox/RDP/client/rdesktop.c b/src/VBox/RDP/client/rdesktop.c index 9dba52050..8996f7534 100644 --- a/src/VBox/RDP/client/rdesktop.c +++ b/src/VBox/RDP/client/rdesktop.c @@ -39,6 +39,10 @@ #include <errno.h> #include "rdesktop.h" +#ifdef VBOX +# include <VBox/version.h> +#endif + #ifdef HAVE_LOCALE_H #include <locale.h> #endif @@ -146,7 +150,7 @@ usage(char *program) { fprintf(stderr, "rdesktop: A Remote Desktop Protocol client.\n"); fprintf(stderr, "Version " VERSION ". Copyright (C) 1999-2008 Matthew Chapman.\n"); - fprintf(stderr, "Modified for VirtualBox by Sun Microsystems, Inc.\n"); + fprintf(stderr, "Modified for VirtualBox by " VBOX_VENDOR "\n"); fprintf(stderr, "See http://www.rdesktop.org/ for more information.\n\n"); fprintf(stderr, "Usage: %s [options] server[:port]\n", program); diff --git a/src/VBox/Runtime/VBox/log-vbox.cpp b/src/VBox/Runtime/VBox/log-vbox.cpp index 5e1f19808..bdb28ae6f 100644 --- a/src/VBox/Runtime/VBox/log-vbox.cpp +++ b/src/VBox/Runtime/VBox/log-vbox.cpp @@ -135,6 +135,12 @@ # include <Windows.h> # elif defined(RT_OS_LINUX) # include <unistd.h> +# elif defined(RT_OS_FREEBSD) +# include <sys/param.h> +# include <sys/sysctl.h> +# include <sys/user.h> +# include <stdlib.h> +# include <unistd.h> # elif defined(RT_OS_SOLARIS) # define _STRUCTURED_PROC 1 # undef _FILE_OFFSET_BITS /* procfs doesn't like this */ @@ -157,6 +163,7 @@ # include <iprt/path.h> # include <iprt/process.h> # include <iprt/string.h> +# include <iprt/mem.h> # include <stdio.h> #endif @@ -339,12 +346,8 @@ RTDECL(PRTLOGGER) RTLogDefaultInit(void) fclose(pFile); } -# elif defined(RT_OS_LINUX) || defined(RT_OS_FREEBSD) -# ifdef RT_OS_LINUX +# elif defined(RT_OS_LINUX) FILE *pFile = fopen("/proc/self/cmdline", "r"); -# else /* RT_OS_FREEBSD: */ - FILE *pFile = fopen("/proc/curproc/cmdline", "r"); -# endif if (pFile) { /* braindead */ @@ -371,6 +374,40 @@ RTDECL(PRTLOGGER) RTLogDefaultInit(void) fclose(pFile); } +# elif defined(RT_OS_FREEBSD) + /* Retrieve the required length first */ + int aiName[4]; + aiName[0] = CTL_KERN; + aiName[1] = KERN_PROC; + aiName[2] = KERN_PROC_ARGS; /* Introduced in FreeBSD 4.0 */ + aiName[3] = getpid(); + size_t cchArgs = 0; + int rcBSD = sysctl(aiName, RT_ELEMENTS(aiName), NULL, &cchArgs, NULL, 0); + if (cchArgs > 0) + { + char *pszArgFileBuf = (char *)RTMemAllocZ(cchArgs + 1 /* Safety */); + if (pszArgFileBuf) + { + /* Retrieve the argument list */ + rcBSD = sysctl(aiName, RT_ELEMENTS(aiName), pszArgFileBuf, &cchArgs, NULL, 0); + if (!rcBSD) + { + unsigned iArg = 0; + size_t off = 0; + while (off < cchArgs) + { + size_t cchArg = strlen(&pszArgFileBuf[off]); + RTLogLoggerEx(pLogger, 0, ~0U, "Arg[%u]: %s\n", iArg, &pszArgFileBuf[off]); + + /* advance */ + off += cchArg + 1; + iArg++; + } + } + RTMemFree(pszArgFileBuf); + } + } + # elif defined(RT_OS_L4) || defined(RT_OS_OS2) || defined(RT_OS_DARWIN) /* commandline? */ # else diff --git a/src/VBox/Runtime/common/checksum/RTSha1Digest.cpp b/src/VBox/Runtime/common/checksum/RTSha1Digest.cpp index f7b611771..f032de349 100644 --- a/src/VBox/Runtime/common/checksum/RTSha1Digest.cpp +++ b/src/VBox/Runtime/common/checksum/RTSha1Digest.cpp @@ -63,7 +63,7 @@ RTR3DECL(int) RTSha1Digest(const char *pszFile, char **ppszDigest) /* Open the file to calculate a SHA1 sum of */ PRTSTREAM pStream; - int rc = RTStrmOpen(pszFile, "r+b", &pStream); + int rc = RTStrmOpen(pszFile, "rb", &pStream); if (RT_FAILURE(rc)) return rc; diff --git a/src/VBox/Runtime/common/misc/tar.cpp b/src/VBox/Runtime/common/misc/tar.cpp index e0bd78a17..670c61dea 100644 --- a/src/VBox/Runtime/common/misc/tar.cpp +++ b/src/VBox/Runtime/common/misc/tar.cpp @@ -296,7 +296,7 @@ static int rtTarCopyFileTo(RTFILE hFile, const char *pszSrcName) /* Make sure the called doesn't mix truncated tar files with the * official end indicated by rtTarCalcChkSum. */ if (rc == VERR_EOF) - rc == VERR_FILE_IO_ERROR; + rc = VERR_FILE_IO_ERROR; } } diff --git a/src/VBox/Runtime/generic/RTFileReadAll-generic.cpp b/src/VBox/Runtime/generic/RTFileReadAll-generic.cpp index 6f3957f79..9c33ffe4c 100644 --- a/src/VBox/Runtime/generic/RTFileReadAll-generic.cpp +++ b/src/VBox/Runtime/generic/RTFileReadAll-generic.cpp @@ -38,7 +38,7 @@ RTDECL(int) RTFileReadAll(const char *pszFilename, void **ppvFile, size_t *pcbFile) { - return RTFileReadAllEx(pszFilename, 0, RTFOFF_MAX, 0, ppvFile, pcbFile); + return RTFileReadAllEx(pszFilename, 0, RTFOFF_MAX, RTFILE_RDALL_O_DENY_NONE, ppvFile, pcbFile); } RT_EXPORT_SYMBOL(RTFileReadAll); diff --git a/src/VBox/Runtime/include/internal/iprt.h b/src/VBox/Runtime/include/internal/iprt.h index 177de5833..2bdebc0ff 100644 --- a/src/VBox/Runtime/include/internal/iprt.h +++ b/src/VBox/Runtime/include/internal/iprt.h @@ -43,7 +43,9 @@ && defined(MODULE) \ && !defined(RT_NO_EXPORT_SYMBOL) # define bool linux_bool /* see r0drv/linux/the-linux-kernel.h */ -# include <linux/autoconf.h> +# ifndef AUTOCONF_INCLUDED +# include <linux/autoconf.h> +# endif # if defined(CONFIG_MODVERSIONS) && !defined(MODVERSIONS) # include <linux/version.h> # define MODVERSIONS diff --git a/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h b/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h index 7b935e499..3c141b7e5 100644 --- a/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h +++ b/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h @@ -38,7 +38,9 @@ #include <iprt/types.h> #define bool linux_bool -#include <linux/autoconf.h> +#ifndef AUTOCONF_INCLUDED +# include <linux/autoconf.h> +#endif #include <linux/version.h> /* We only support 2.4 and 2.6 series kernels */ @@ -201,9 +203,9 @@ DECLINLINE(unsigned long) msecs_to_jiffies(unsigned int cMillies) /* * This sucks soooo badly on x86! Why don't they export __PAGE_KERNEL_EXEC so PAGE_KERNEL_EXEC would be usable? */ -#if defined(RT_ARCH_AMD64) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 8) && defined(RT_ARCH_AMD64) # define MY_PAGE_KERNEL_EXEC PAGE_KERNEL_EXEC -#elif defined(PAGE_KERNEL_EXEC) && defined(CONFIG_X86_PAE) +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 8) && defined(PAGE_KERNEL_EXEC) && defined(CONFIG_X86_PAE) # ifdef __PAGE_KERNEL_EXEC /* >= 2.6.27 */ # define MY_PAGE_KERNEL_EXEC __pgprot(cpu_has_pge ? __PAGE_KERNEL_EXEC | _PAGE_GLOBAL : __PAGE_KERNEL_EXEC) diff --git a/src/VBox/Runtime/r3/freebsd/rtProcInitExePath-freebsd.cpp b/src/VBox/Runtime/r3/freebsd/rtProcInitExePath-freebsd.cpp index 602f284aa..e3c3a395b 100644 --- a/src/VBox/Runtime/r3/freebsd/rtProcInitExePath-freebsd.cpp +++ b/src/VBox/Runtime/r3/freebsd/rtProcInitExePath-freebsd.cpp @@ -32,6 +32,8 @@ * Header Files * *******************************************************************************/ #define LOG_GROUP RTLOGGROUP_PROCESS +#include <sys/param.h> +#include <sys/sysctl.h> #include <unistd.h> #include <errno.h> #include <dlfcn.h> @@ -47,6 +49,36 @@ DECLHIDDEN(int) rtProcInitExePath(char *pszPath, size_t cchPath) { +#ifdef KERN_PROC_PATHNAME + int aiName[4]; + aiName[0] = CTL_KERN; + aiName[1] = KERN_PROC; + aiName[2] = KERN_PROC_PATHNAME; /* This was introduced in FreeBSD 6.0, thus the #ifdef above. */ + aiName[3] = -1; /* Shorthand for the current process. */ + + size_t cchExePath = cchPath; + if (sysctl(aiName, RT_ELEMENTS(aiName), pszPath, &cchExePath, NULL, 0) == 0) + { + + char *pszTmp = NULL; + int rc = rtPathFromNative(&pszTmp, pszPath); + AssertMsgRCReturn(rc, ("rc=%Rrc pszPath=\"%s\"\nhex: %.*Rhsx\n", rc, pszPath, cchExePath, pszPath), rc); + + size_t cch = strlen(pszTmp); + AssertReturn(cch <= cchPath, VERR_BUFFER_OVERFLOW); + + memcpy(pszPath, pszTmp, cch + 1); + RTStrFree(pszTmp); + + return VINF_SUCCESS; + } + + int rc = RTErrConvertFromErrno(errno); + AssertMsgFailed(("rc=%Rrc errno=%d cchExePath=%d\n", rc, errno, cchExePath)); + return rc; + +#else + /* * Read the /proc/curproc/file link, convert to native and return it. */ @@ -102,5 +134,6 @@ DECLHIDDEN(int) rtProcInitExePath(char *pszPath, size_t cchPath) int rc = RTErrConvertFromErrno(err); AssertMsgFailed(("rc=%Rrc err=%d cchLink=%d hExe=%p\n", rc, err, cchLink, hExe)); return rc; +#endif } diff --git a/src/VBox/Runtime/r3/linux/semevent-linux.cpp b/src/VBox/Runtime/r3/linux/semevent-linux.cpp index 4d93acd85..8a328454b 100644 --- a/src/VBox/Runtime/r3/linux/semevent-linux.cpp +++ b/src/VBox/Runtime/r3/linux/semevent-linux.cpp @@ -204,8 +204,8 @@ static int rtSemEventWait(RTSEMEVENT EventSem, unsigned cMillies, bool fAutoResu if (!cMillies) return VERR_TIMEOUT; ts.tv_sec = cMillies / 1000; - ts.tv_nsec = (cMillies % 1000) * 1000000; - u64End = RTTimeSystemNanoTS() + cMillies * 1000000; + ts.tv_nsec = (cMillies % 1000) * UINT32_C(1000000); + u64End = RTTimeSystemNanoTS() + cMillies * UINT64_C(1000000); pTimeout = &ts; } @@ -259,8 +259,8 @@ static int rtSemEventWait(RTSEMEVENT EventSem, unsigned cMillies, bool fAutoResu rc = VERR_TIMEOUT; break; } - ts.tv_sec = i64Diff / 1000000000; - ts.tv_nsec = i64Diff % 1000000000; + ts.tv_sec = (uint64_t)i64Diff / UINT32_C(1000000000); + ts.tv_nsec = (uint64_t)i64Diff % UINT32_C(1000000000); } } diff --git a/src/VBox/Runtime/r3/linux/semeventmulti-linux.cpp b/src/VBox/Runtime/r3/linux/semeventmulti-linux.cpp index 67c4a5d80..711a12673 100644 --- a/src/VBox/Runtime/r3/linux/semeventmulti-linux.cpp +++ b/src/VBox/Runtime/r3/linux/semeventmulti-linux.cpp @@ -223,8 +223,8 @@ static int rtSemEventMultiWait(RTSEMEVENTMULTI EventMultiSem, unsigned cMillies, if (!cMillies) return VERR_TIMEOUT; ts.tv_sec = cMillies / 1000; - ts.tv_nsec = (cMillies % 1000) * 1000000; - u64End = RTTimeSystemNanoTS() + cMillies * 1000000; + ts.tv_nsec = (cMillies % 1000) * UINT32_C(1000000); + u64End = RTTimeSystemNanoTS() + cMillies * UINT64_C(1000000); pTimeout = &ts; } @@ -248,8 +248,8 @@ static int rtSemEventMultiWait(RTSEMEVENTMULTI EventMultiSem, unsigned cMillies, int64_t i64Diff = u64End - RTTimeSystemNanoTS(); if (i64Diff < 1000) return VERR_TIMEOUT; - ts.tv_sec = i64Diff / 1000000000; - ts.tv_nsec = i64Diff % 1000000000; + ts.tv_sec = (uint64_t)i64Diff / UINT32_C(1000000000); + ts.tv_nsec = (uint64_t)i64Diff % UINT32_C(1000000000); } long rc = sys_futex(&pThis->iState, FUTEX_WAIT, 1, pTimeout, NULL, 0); if (RT_UNLIKELY(pThis->iMagic != RTSEMEVENTMULTI_MAGIC)) diff --git a/src/VBox/Runtime/r3/linux/semmutex-linux.cpp b/src/VBox/Runtime/r3/linux/semmutex-linux.cpp index 1c82af275..36d781a6d 100644 --- a/src/VBox/Runtime/r3/linux/semmutex-linux.cpp +++ b/src/VBox/Runtime/r3/linux/semmutex-linux.cpp @@ -177,8 +177,8 @@ static int rtsemMutexRequest(RTSEMMUTEX MutexSem, unsigned cMillies, bool fAutoR if (cMillies != RT_INDEFINITE_WAIT) { ts.tv_sec = cMillies / 1000; - ts.tv_nsec = (cMillies % 1000) * 1000000; - u64End = RTTimeSystemNanoTS() + cMillies * 1000000; + ts.tv_nsec = (cMillies % 1000) * UINT32_C(1000000); + u64End = RTTimeSystemNanoTS() + cMillies * UINT64_C(1000000); pTimeout = &ts; } @@ -238,8 +238,8 @@ static int rtsemMutexRequest(RTSEMMUTEX MutexSem, unsigned cMillies, bool fAutoR rc = VERR_TIMEOUT; break; } - ts.tv_sec = i64Diff / 1000000000; - ts.tv_nsec = i64Diff % 1000000000; + ts.tv_sec = (uint64_t)i64Diff / UINT32_C(1000000000); + ts.tv_nsec = (uint64_t)i64Diff % UINT32_C(1000000000); } } diff --git a/src/VBox/Runtime/r3/posix/semeventmulti-posix.cpp b/src/VBox/Runtime/r3/posix/semeventmulti-posix.cpp index cf446f83c..006152ee6 100644 --- a/src/VBox/Runtime/r3/posix/semeventmulti-posix.cpp +++ b/src/VBox/Runtime/r3/posix/semeventmulti-posix.cpp @@ -412,7 +412,6 @@ static int rtSemEventMultiWait(RTSEMEVENTMULTI EventMultiSem, unsigned cMillies, /* check state. */ if (pThis->u32State == EVENTMULTI_STATE_SIGNALED) { - ASMAtomicXchgU32(&pThis->u32State, EVENTMULTI_STATE_NOT_SIGNALED); ASMAtomicDecU32(&pThis->cWaiters); rc = pthread_mutex_unlock(&pThis->Mutex); AssertMsg(!rc, ("Failed to unlock event multi sem %p, rc=%d.\n", EventMultiSem, rc)); NOREF(rc); diff --git a/src/VBox/VMM/CPUM.cpp b/src/VBox/VMM/CPUM.cpp index 6cea217ed..c1ba167a5 100644 --- a/src/VBox/VMM/CPUM.cpp +++ b/src/VBox/VMM/CPUM.cpp @@ -103,7 +103,9 @@ static CPUMCPUVENDOR cpumR3DetectVendor(uint32_t uEAX, uint32_t uEBX, uint32_t u static int cpumR3CpuIdInit(PVM pVM); static DECLCALLBACK(int) cpumR3LiveExec(PVM pVM, PSSMHANDLE pSSM, uint32_t uPass); static DECLCALLBACK(int) cpumR3SaveExec(PVM pVM, PSSMHANDLE pSSM); +static DECLCALLBACK(int) cpumR3LoadPrep(PVM pVM, PSSMHANDLE pSSM); static DECLCALLBACK(int) cpumR3LoadExec(PVM pVM, PSSMHANDLE pSSM, uint32_t uVersion, uint32_t uPass); +static DECLCALLBACK(int) cpumR3LoadDone(PVM pVM, PSSMHANDLE pSSM); static DECLCALLBACK(void) cpumR3InfoAll(PVM pVM, PCDBGFINFOHLP pHlp, const char *pszArgs); static DECLCALLBACK(void) cpumR3InfoGuest(PVM pVM, PCDBGFINFOHLP pHlp, const char *pszArgs); static DECLCALLBACK(void) cpumR3InfoGuestInstr(PVM pVM, PCDBGFINFOHLP pHlp, const char *pszArgs); @@ -213,7 +215,7 @@ VMMR3DECL(int) CPUMR3Init(PVM pVM) int rc = SSMR3RegisterInternal(pVM, "cpum", 1, CPUM_SAVED_STATE_VERSION, sizeof(CPUM), NULL, cpumR3LiveExec, NULL, NULL, cpumR3SaveExec, NULL, - NULL, cpumR3LoadExec, NULL); + cpumR3LoadPrep, cpumR3LoadExec, cpumR3LoadDone); if (RT_FAILURE(rc)) return rc; @@ -1074,16 +1076,16 @@ static int cpumR3LoadCpuId(PVM pVM, PSSMHANDLE pSSM, uint32_t uVersion) if (fStrictCpuIdChecks) \ return SSMR3SetLoadError(pSSM, VERR_SSM_LOAD_CPUID_MISMATCH, RT_SRC_POS, \ N_(#bit " mismatch: host=%d saved=%d"), \ - aHostRaw##set [1].reg & (bit), aRaw##set [1].reg & (bit) ); \ + !!(aHostRaw##set [1].reg & (bit)), !!(aRaw##set [1].reg & (bit)) ); \ LogRel(("CPUM: " #bit" differs: host=%d saved=%d\n", \ - aHostRaw##set [1].reg & (bit), aRaw##set [1].reg & (bit) )); \ + !!(aHostRaw##set [1].reg & (bit)), !!(aRaw##set [1].reg & (bit)) )); \ } \ } while (0) #define CPUID_RAW_FEATURE_WRN(set, reg, bit) \ do { \ if ((aHostRaw##set [1].reg & bit) != (aRaw##set [1].reg & bit)) \ LogRel(("CPUM: " #bit" differs: host=%d saved=%d\n", \ - aHostRaw##set [1].reg & (bit), aRaw##set [1].reg & (bit) )); \ + !!(aHostRaw##set [1].reg & (bit)), !!(aRaw##set [1].reg & (bit)) )); \ } while (0) #define CPUID_RAW_FEATURE_IGN(set, reg, bit) do { } while (0) @@ -1304,7 +1306,7 @@ static int cpumR3LoadCpuId(PVM pVM, PSSMHANDLE pSSM, uint32_t uVersion) * This can be skipped. */ bool fStrictCpuIdChecks; - CFGMR3QueryBoolDef(CFGMR3GetChild(CFGMR3GetRoot(pVM), "CPUM"), "StrictCpuIdChecks", &fStrictCpuIdChecks, false); + CFGMR3QueryBoolDef(CFGMR3GetChild(CFGMR3GetRoot(pVM), "CPUM"), "StrictCpuIdChecks", &fStrictCpuIdChecks, true); @@ -1866,13 +1868,17 @@ static void cpumR3LoadCPUM1_6(PVM pVM, CPUMCTX_VER1_6 *pCpumctx16) /** - * Execute state load operation. - * - * @returns VBox status code. - * @param pVM VM Handle. - * @param pSSM SSM operation handle. - * @param uVersion Data layout version. - * @param uPass The data pass. + * @copydoc FNSSMINTLOADPREP + */ +static DECLCALLBACK(int) cpumR3LoadPrep(PVM pVM, PSSMHANDLE pSSM) +{ + pVM->cpum.s.fPendingRestore = true; + return VINF_SUCCESS; +} + + +/** + * @copydoc FNSSMINTLOADEXEC */ static DECLCALLBACK(int) cpumR3LoadExec(PVM pVM, PSSMHANDLE pSSM, uint32_t uVersion, uint32_t uPass) { @@ -1951,6 +1957,8 @@ static DECLCALLBACK(int) cpumR3LoadExec(PVM pVM, PSSMHANDLE pSSM, uint32_t uVers } } + pVM->cpum.s.fPendingRestore = false; + /* * Guest CPUIDs. */ @@ -2072,6 +2080,37 @@ static DECLCALLBACK(int) cpumR3LoadExec(PVM pVM, PSSMHANDLE pSSM, uint32_t uVers /** + * @copydoc FNSSMINTLOADPREP + */ +static DECLCALLBACK(int) cpumR3LoadDone(PVM pVM, PSSMHANDLE pSSM) +{ + if (RT_FAILURE(SSMR3HandleGetStatus(pSSM))) + return VINF_SUCCESS; + + /* just check this since we can. */ /** @todo Add a SSM unit flag for indicating that it's mandatory during a restore. */ + if (pVM->cpum.s.fPendingRestore) + { + LogRel(("CPUM: Missing state!\n")); + return VERR_INTERNAL_ERROR_2; + } + + return VINF_SUCCESS; +} + + +/** + * Checks if the CPUM state restore is still pending. + * + * @returns true / false. + * @param pVM The VM handle. + */ +VMMDECL(bool) CPUMR3IsStateRestorePending(PVM pVM) +{ + return pVM->cpum.s.fPendingRestore; +} + + +/** * Formats the EFLAGS value into mnemonics. * * @param pszEFlags Where to write the mnemonics. (Assumes sufficient buffer space.) @@ -3461,7 +3500,7 @@ VMMR3DECL(void) CPUMR3DisasmInstr(PVM pVM, PVMCPU pVCpu, PCPUMCTX pCtx, RTGCPTR */ VMMR3DECL(void) CPUMR3SaveEntryCtx(PVM pVM) { - /* @todo SMP support!! */ + /** @todo SMP support!! */ pVM->cpum.s.GuestEntry = *CPUMQueryGuestCtxPtr(VMMGetCpu(pVM)); } diff --git a/src/VBox/VMM/CPUMInternal.h b/src/VBox/VMM/CPUMInternal.h index 293090e95..1b5e84c30 100644 --- a/src/VBox/VMM/CPUMInternal.h +++ b/src/VBox/VMM/CPUMInternal.h @@ -301,7 +301,10 @@ typedef struct CPUM bool fRawEntered; /** Synthetic CPU type? */ bool fSyntheticCpu; - uint8_t abPadding[2 + (HC_ARCH_BITS == 64) * 4]; + /** Indiciates that a state restore is pending. + * This is used to verify load order dependencies (PGM). */ + bool fPendingRestore; + uint8_t abPadding[1 + (HC_ARCH_BITS == 64) * 4]; /** The standard set of CpuId leafs. */ CPUMCPUID aGuestCpuIdStd[6]; diff --git a/src/VBox/VMM/CPUMInternal.mac b/src/VBox/VMM/CPUMInternal.mac index 111223d1f..5be8c57f5 100644 --- a/src/VBox/VMM/CPUMInternal.mac +++ b/src/VBox/VMM/CPUMInternal.mac @@ -72,10 +72,11 @@ struc CPUM ; entered rawmode? .fRawEntered resb 1 .fSyntheticCpu resb 1 + .fPendingRestore resb 1 %if RTHCPTR_CB == 8 - .abPadding resb 6 + .abPadding resb 5 %else - .abPadding resb 2 + .abPadding resb 1 %endif ; CPUID leafs diff --git a/src/VBox/VMM/EM.cpp b/src/VBox/VMM/EM.cpp index cb08c956f..f14a27835 100644 --- a/src/VBox/VMM/EM.cpp +++ b/src/VBox/VMM/EM.cpp @@ -88,7 +88,6 @@ static const char *emR3GetStateName(EMSTATE enmState); static int emR3Debug(PVM pVM, PVMCPU pVCpu, int rc); static int emR3RemStep(PVM pVM, PVMCPU pVCpu); static int emR3RemExecute(PVM pVM, PVMCPU pVCpu, bool *pfFFDone); -DECLINLINE(int) emR3RawExecuteInstruction(PVM pVM, PVMCPU pVCpu, const char *pszPrefix, int rcGC = VINF_SUCCESS); int emR3HighPriorityPostForcedActions(PVM pVM, PVMCPU pVCpu, int rc); @@ -381,7 +380,6 @@ VMMR3DECL(int) EMR3Init(PVM pVM) /* these should be considered for release statistics. */ EM_REG_COUNTER(&pVCpu->em.s.StatIOEmu, "/PROF/CPU%d/EM/Emulation/IO", "Profiling of emR3RawExecuteIOInstruction."); EM_REG_COUNTER(&pVCpu->em.s.StatPrivEmu, "/PROF/CPU%d/EM/Emulation/Priv", "Profiling of emR3RawPrivileged."); - EM_REG_COUNTER(&pVCpu->em.s.StatMiscEmu, "/PROF/CPU%d/EM/Emulation/Misc", "Profiling of emR3RawExecuteInstruction."); EM_REG_PROFILE(&pVCpu->em.s.StatHwAccEntry, "/PROF/CPU%d/EM/HwAccEnter", "Profiling Hardware Accelerated Mode entry overhead."); EM_REG_PROFILE(&pVCpu->em.s.StatHwAccExec, "/PROF/CPU%d/EM/HwAccExec", "Profiling Hardware Accelerated Mode execution."); EM_REG_PROFILE(&pVCpu->em.s.StatREMEmu, "/PROF/CPU%d/EM/REMEmuSingle", "Profiling single instruction REM execution."); @@ -850,6 +848,25 @@ static int emR3RemStep(PVM pVM, PVMCPU pVCpu) /** + * emR3RemExecute helper that syncs the state back from REM and leave the REM + * critical section. + * + * @returns false - new fInREMState value. + * @param pVM The VM handle. + * @param pVCpu The virtual CPU handle. + */ +DECLINLINE(bool) emR3RemExecuteSyncBack(PVM pVM, PVMCPU pVCpu) +{ + STAM_PROFILE_START(&pVCpu->em.s.StatREMSync, a); + REMR3StateBack(pVM, pVCpu); + STAM_PROFILE_STOP(&pVCpu->em.s.StatREMSync, a); + + EMRemUnlock(pVM); + return false; +} + + +/** * Executes recompiled code. * * This function contains the recompiler version of the inner @@ -883,35 +900,37 @@ static int emR3RemExecute(PVM pVM, PVMCPU pVCpu, bool *pfFFDone) ("cs:eip=%RX16:%RX32\n", CPUMGetGuestCS(pVCpu), CPUMGetGuestEIP(pVCpu))); #endif - /* Big lock, but you are not supposed to own any lock when coming in here. */ - EMRemLock(pVM); - /* * Spin till we get a forced action which returns anything but VINF_SUCCESS * or the REM suggests raw-mode execution. */ *pfFFDone = false; bool fInREMState = false; - int rc = VINF_SUCCESS; - - /* Flush the recompiler TLB if the VCPU has changed. */ - if (pVM->em.s.idLastRemCpu != pVCpu->idCpu) - { - REMFlushTBs(pVM); - /* Also sync the entire state. */ - CPUMSetChangedFlags(pVCpu, CPUM_CHANGED_ALL); - } - pVM->em.s.idLastRemCpu = pVCpu->idCpu; - + int rc = VINF_SUCCESS; for (;;) { /* - * Update REM state if not already in sync. + * Lock REM and update the state if not already in sync. + * + * Note! Big lock, but you are not supposed to own any lock when + * coming in here. */ if (!fInREMState) { + EMRemLock(pVM); STAM_PROFILE_START(&pVCpu->em.s.StatREMSync, b); + + /* Flush the recompiler translation blocks if the VCPU has changed, + also force a full CPU state resync. */ + if (pVM->em.s.idLastRemCpu != pVCpu->idCpu) + { + REMFlushTBs(pVM); + CPUMSetChangedFlags(pVCpu, CPUM_CHANGED_ALL); + } + pVM->em.s.idLastRemCpu = pVCpu->idCpu; + rc = REMR3State(pVM, pVCpu); + STAM_PROFILE_STOP(&pVCpu->em.s.StatREMSync, b); if (RT_FAILURE(rc)) break; @@ -939,15 +958,18 @@ static int emR3RemExecute(PVM pVM, PVMCPU pVCpu, bool *pfFFDone) /* - * Deal with high priority post execution FFs before doing anything else. + * Deal with high priority post execution FFs before doing anything + * else. Sync back the state and leave the lock to be on the safe side. */ if ( VM_FF_ISPENDING(pVM, VM_FF_HIGH_PRIORITY_POST_MASK) || VMCPU_FF_ISPENDING(pVCpu, VMCPU_FF_HIGH_PRIORITY_POST_MASK)) + { + fInREMState = emR3RemExecuteSyncBack(pVM, pVCpu); rc = emR3HighPriorityPostForcedActions(pVM, pVCpu, rc); + } /* * Process the returned status code. - * (Try keep this short! Call functions!) */ if (rc != VINF_SUCCESS) { @@ -967,7 +989,9 @@ static int emR3RemExecute(PVM pVM, PVMCPU pVCpu, bool *pfFFDone) /* * Check and execute forced actions. - * Sync back the VM state before calling any of these. + * + * Sync back the VM state and leave the lock before calling any of + * these, you never know what's going to happen here. */ #ifdef VBOX_HIGH_RES_TIMERS_HACK TMTimerPollVoid(pVM, pVCpu); @@ -978,12 +1002,7 @@ static int emR3RemExecute(PVM pVM, PVMCPU pVCpu, bool *pfFFDone) { l_REMDoForcedActions: if (fInREMState) - { - STAM_PROFILE_START(&pVCpu->em.s.StatREMSync, d); - REMR3StateBack(pVM, pVCpu); - STAM_PROFILE_STOP(&pVCpu->em.s.StatREMSync, d); - fInREMState = false; - } + fInREMState = emR3RemExecuteSyncBack(pVM, pVCpu); STAM_REL_PROFILE_ADV_SUSPEND(&pVCpu->em.s.StatREMTotal, a); rc = emR3ForcedActions(pVM, pVCpu, rc); STAM_REL_PROFILE_ADV_RESUME(&pVCpu->em.s.StatREMTotal, a); @@ -1002,12 +1021,7 @@ l_REMDoForcedActions: * Returning. Sync back the VM state if required. */ if (fInREMState) - { - STAM_PROFILE_START(&pVCpu->em.s.StatREMSync, e); - REMR3StateBack(pVM, pVCpu); - STAM_PROFILE_STOP(&pVCpu->em.s.StatREMSync, e); - } - EMRemUnlock(pVM); + fInREMState = emR3RemExecuteSyncBack(pVM, pVCpu); STAM_REL_PROFILE_ADV_STOP(&pVCpu->em.s.StatREMTotal, a); return rc; diff --git a/src/VBox/VMM/EMHandleRCTmpl.h b/src/VBox/VMM/EMHandleRCTmpl.h index f710a0472..99c9f33fc 100644 --- a/src/VBox/VMM/EMHandleRCTmpl.h +++ b/src/VBox/VMM/EMHandleRCTmpl.h @@ -148,6 +148,16 @@ int emR3HwaccmHandleRC(PVM pVM, PVMCPU pVCpu, PCPUMCTX pCtx, int rc) break; /* + * PGM pool flush pending (guest SMP only) + * + * Todo: jumping back and forth between ring 0 and 3 can burn a lot of cycles if the EMT thread that's supposed to handle + * the flush is currently not active (e.g. waiting to be scheduled) -> fix this properly! + */ + case VINF_PGM_POOL_FLUSH_PENDING: + rc = VINF_SUCCESS; + break; + + /* * Paging mode change. */ case VINF_PGM_CHANGE_MODE: diff --git a/src/VBox/VMM/EMInternal.h b/src/VBox/VMM/EMInternal.h index ac07d4ad9..c938d6c14 100644 --- a/src/VBox/VMM/EMInternal.h +++ b/src/VBox/VMM/EMInternal.h @@ -379,8 +379,6 @@ typedef struct EMCPU STAMPROFILE StatIOEmu; /** R3: Profiling of emR3RawPrivileged. */ STAMPROFILE StatPrivEmu; - /** R3: Profiling of emR3RawExecuteInstruction. */ - STAMPROFILE StatMiscEmu; /** R3: Number of time emR3HwAccExecute is called. */ STAMCOUNTER StatHwAccExecuteEntry; diff --git a/src/VBox/VMM/HWACCM.cpp b/src/VBox/VMM/HWACCM.cpp index 3211ebd0b..423785332 100644 --- a/src/VBox/VMM/HWACCM.cpp +++ b/src/VBox/VMM/HWACCM.cpp @@ -45,6 +45,7 @@ #include <VBox/log.h> #include <iprt/asm.h> #include <iprt/string.h> +#include <iprt/env.h> #include <iprt/thread.h> /******************************************************************************* @@ -652,13 +653,42 @@ VMMR3DECL(int) HWACCMR3InitFinalizeR0(PVM pVM) { int rc; + /* Hack to allow users to work around broken BIOSes that incorrectly set EFER.SVME, which makes us believe somebody else + * is already using AMD-V. + */ + if ( !pVM->hwaccm.s.vmx.fSupported + && !pVM->hwaccm.s.svm.fSupported + && pVM->hwaccm.s.lLastError == VERR_SVM_IN_USE /* implies functional AMD-V */ + && RTEnvGet("VBOX_HWVIRTEX_IGNORE_SVM_IN_USE")) + { + LogRel(("HWACCM: VBOX_HWVIRTEX_IGNORE_SVM_IN_USE active!\n")); + pVM->hwaccm.s.svm.fSupported = true; + pVM->hwaccm.s.svm.fIgnoreInUseError = true; + } + else if ( !pVM->hwaccm.s.vmx.fSupported && !pVM->hwaccm.s.svm.fSupported) { LogRel(("HWACCM: No VT-x or AMD-V CPU extension found. Reason %Rrc\n", pVM->hwaccm.s.lLastError)); LogRel(("HWACCM: VMX MSR_IA32_FEATURE_CONTROL=%RX64\n", pVM->hwaccm.s.vmx.msr.feature_ctrl)); if (VMMIsHwVirtExtForced(pVM)) - return VM_SET_ERROR(pVM, VERR_VMX_NO_VMX, "VT-x is not available."); + { + switch (pVM->hwaccm.s.lLastError) + { + case VERR_VMX_NO_VMX: + return VM_SET_ERROR(pVM, VERR_VMX_NO_VMX, "VT-x is not available."); + case VERR_VMX_IN_VMX_ROOT_MODE: + return VM_SET_ERROR(pVM, VERR_VMX_IN_VMX_ROOT_MODE, "VT-x is being used by another hypervisor."); + case VERR_SVM_IN_USE: + return VM_SET_ERROR(pVM, VERR_SVM_IN_USE, "AMD-V is being used by another hypervisor."); + case VERR_SVM_NO_SVM: + return VM_SET_ERROR(pVM, VERR_SVM_NO_SVM, "AMD-V is not available."); + case VERR_SVM_DISABLED: + return VM_SET_ERROR(pVM, VERR_SVM_DISABLED, "AMD-V is disabled in the BIOS."); + default: + return pVM->hwaccm.s.lLastError; + } + } return VINF_SUCCESS; } @@ -1097,6 +1127,13 @@ VMMR3DECL(int) HWACCMR3InitFinalizeR0(PVM pVM) CPUMSetGuestCpuIdFeature(pVM, CPUMCPUIDFEATURE_LAHF); CPUMSetGuestCpuIdFeature(pVM, CPUMCPUIDFEATURE_NXE); } + else + /* Turn on NXE if PAE has been enabled *and* the host has turned on NXE (we reuse the host EFER in the switcher) */ + /* Todo: this needs to be fixed properly!! */ + if ( CPUMGetGuestCpuIdFeature(pVM, CPUMCPUIDFEATURE_PAE) + && (pVM->hwaccm.s.vmx.hostEFER & MSR_K6_EFER_NXE)) + CPUMSetGuestCpuIdFeature(pVM, CPUMCPUIDFEATURE_NXE); + LogRel((pVM->hwaccm.s.fAllow64BitGuests ? "HWACCM: 32-bit and 64-bit guests supported.\n" : "HWACCM: 32-bit guests supported.\n")); @@ -1237,6 +1274,10 @@ VMMR3DECL(int) HWACCMR3InitFinalizeR0(PVM pVM) CPUMSetGuestCpuIdFeature(pVM, CPUMCPUIDFEATURE_NXE); CPUMSetGuestCpuIdFeature(pVM, CPUMCPUIDFEATURE_LAHF); } + else + /* Turn on NXE if PAE has been enabled. */ + if (CPUMGetGuestCpuIdFeature(pVM, CPUMCPUIDFEATURE_PAE)) + CPUMSetGuestCpuIdFeature(pVM, CPUMCPUIDFEATURE_NXE); #endif LogRel((pVM->hwaccm.s.fAllow64BitGuests ? "HWACCM: 32-bit and 64-bit guest supported.\n" diff --git a/src/VBox/VMM/HWACCMInternal.h b/src/VBox/VMM/HWACCMInternal.h index 055b2ab41..5c436ba32 100644 --- a/src/VBox/VMM/HWACCMInternal.h +++ b/src/VBox/VMM/HWACCMInternal.h @@ -173,6 +173,9 @@ typedef struct /** Configured for VT-x or AMD-V. */ bool fConfigured; + /** Set if the VBOX_HWVIRTEX_IGNORE_SVM_IN_USE hack is active. */ + bool fIgnoreAMDVInUseError; + /** In use by our code. (for power suspend) */ volatile bool fInUse; } HWACCM_CPUINFO; @@ -373,6 +376,9 @@ typedef struct HWACCM /** Host CR4 value (set by ring-0 VMX init) */ uint64_t hostCR4; + /** Host EFER value (set by ring-0 VMX init) */ + uint64_t hostEFER; + /** VMX MSR values */ struct { @@ -405,7 +411,8 @@ typedef struct HWACCM bool fEnabled; /** Set if erratum 170 affects the AMD cpu. */ bool fAlwaysFlushTLB; - bool u8Alignment; + /** Set when the hack to ignore VERR_SVM_IN_USE is active. */ + bool fIgnoreInUseError; /** R0 memory object for the IO bitmap (12kb). */ RTR0MEMOBJ pMemObjIOBitmap; diff --git a/src/VBox/VMM/PATM/PATM.cpp b/src/VBox/VMM/PATM/PATM.cpp index 531251811..8a449b0ef 100644 --- a/src/VBox/VMM/PATM/PATM.cpp +++ b/src/VBox/VMM/PATM/PATM.cpp @@ -5952,6 +5952,49 @@ static int patmR3HandleDirtyInstr(PVM pVM, PCPUMCTX pCtx, PPATMPATCHREC pPatch, pCurPatchInstrHC += CpuNew.opsize; pCurPatchInstrGC += CpuNew.opsize; cbLeft -= CpuNew.opsize; + + /* Check if we expanded a complex guest instruction into a patch stream (e.g. call) */ + if (!cbLeft) + { + /* If the next patch instruction doesn't correspond to the next guest instruction, then we have some extra room to fill. */ + if (RTAvlU32Get(&pPatch->patch.Patch2GuestAddrTree, pCurPatchInstrGC - pVM->patm.s.pPatchMemGC) == NULL) + { + pRec = (PRECPATCHTOGUEST)RTAvlU32GetBestFit(&pPatch->patch.Patch2GuestAddrTree, pCurPatchInstrGC - pVM->patm.s.pPatchMemGC, true); + if (pRec) + { + unsigned cbFiller = pRec->Core.Key + pVM->patm.s.pPatchMemGC - pCurPatchInstrGC; + uint8_t *pPatchFillHC = patmPatchGCPtr2PatchHCPtr(pVM, pCurPatchInstrGC); + + Assert(!pRec->fDirty); + + Log(("Room left in patched instruction stream (%d bytes)\n", cbFiller)); + if (cbFiller >= SIZEOF_NEARJUMP32) + { + pPatchFillHC[0] = 0xE9; + *(uint32_t *)&pPatchFillHC[1] = cbFiller - SIZEOF_NEARJUMP32; +#ifdef DEBUG + char szBuf[256]; + szBuf[0] = '\0'; + DBGFR3DisasInstrEx(pVM, pVCpu->idCpu, pCtx->cs, pCurPatchInstrGC, 0, szBuf, sizeof(szBuf), NULL); + Log(("FILL: %s\n", szBuf)); +#endif + } + else + { + for (unsigned i = 0; i < cbFiller; i++) + { + pPatchFillHC[i] = 0x90; /* NOP */ +#ifdef DEBUG + char szBuf[256]; + szBuf[0] = '\0'; + DBGFR3DisasInstrEx(pVM, pVCpu->idCpu, pCtx->cs, pCurPatchInstrGC, 0, szBuf, sizeof(szBuf), NULL); + Log(("FILL: %s\n", szBuf)); +#endif + } + } + } + } + } } } else diff --git a/src/VBox/VMM/PATM/PATMSSM.cpp b/src/VBox/VMM/PATM/PATMSSM.cpp index d395b0dee..c6d2c94d2 100644 --- a/src/VBox/VMM/PATM/PATMSSM.cpp +++ b/src/VBox/VMM/PATM/PATMSSM.cpp @@ -1148,17 +1148,21 @@ static void patmCorrectFixup(PVM pVM, unsigned ulSSMVersion, PATM &patmInfo, PPA *pFixup = (*pFixup - patmInfo.pPatchMemGC) + pVM->patm.s.pPatchMemGC; } else + /* Boldly ASSUMES: + * 1. That pCPUMCtxGC is in the VM structure and that its location is + * at the first page of the same 4 MB chunk. + * 2. That the forced actions were in the first 32 bytes of the VM + * structure. + * 3. That the CPUM leafs are less than 8KB into the structure. */ if ( ulSSMVersion <= PATM_SSM_VERSION_FIXUP_HACK - && *pFixup >= pVM->pVMRC - && *pFixup < pVM->pVMRC + 32) + && *pFixup - (patmInfo.pCPUMCtxGC & UINT32_C(0xffc00000)) < UINT32_C(32)) { - LogFlow(("Changing fLocalForcedActions fixup from %x to %x\n", *pFixup, pVM->pVMRC + RT_OFFSETOF(VM, aCpus[0].fLocalForcedActions))); + LogFlow(("Changing fLocalForcedActions fixup from %RRv to %RRv\n", *pFixup, pVM->pVMRC + RT_OFFSETOF(VM, aCpus[0].fLocalForcedActions))); *pFixup = pVM->pVMRC + RT_OFFSETOF(VM, aCpus[0].fLocalForcedActions); } else if ( ulSSMVersion <= PATM_SSM_VERSION_FIXUP_HACK - && *pFixup >= pVM->pVMRC - && *pFixup < pVM->pVMRC + 8192) + && *pFixup - (patmInfo.pCPUMCtxGC & UINT32_C(0xffc00000)) < UINT32_C(8192)) { static int cCpuidFixup = 0; #ifdef LOG_ENABLED @@ -1180,7 +1184,7 @@ static void patmCorrectFixup(PVM pVM, unsigned ulSSMVersion, PATM &patmInfo, PPA *pFixup = CPUMR3GetGuestCpuIdCentaurRCPtr(pVM); break; } - LogFlow(("Changing cpuid fixup %d from %x to %x\n", cCpuidFixup, oldFixup, *pFixup)); + LogFlow(("Changing cpuid fixup %d from %RRv to %RRv\n", cCpuidFixup, oldFixup, *pFixup)); cCpuidFixup++; } else diff --git a/src/VBox/VMM/PGM.cpp b/src/VBox/VMM/PGM.cpp index bcd1d9c81..a8012130e 100644 --- a/src/VBox/VMM/PGM.cpp +++ b/src/VBox/VMM/PGM.cpp @@ -637,7 +637,6 @@ static PGMMODE pgmR3CalcShadowMode(PVM pVM, PGMMODE enmGuestMode, SUP #ifdef VBOX_WITH_DEBUGGER /** @todo Convert the first two commands to 'info' items. */ static DECLCALLBACK(int) pgmR3CmdRam(PCDBGCCMD pCmd, PDBGCCMDHLP pCmdHlp, PVM pVM, PCDBGCVAR paArgs, unsigned cArgs, PDBGCVAR pResult); -static DECLCALLBACK(int) pgmR3CmdMap(PCDBGCCMD pCmd, PDBGCCMDHLP pCmdHlp, PVM pVM, PCDBGCVAR paArgs, unsigned cArgs, PDBGCVAR pResult); static DECLCALLBACK(int) pgmR3CmdError(PCDBGCCMD pCmd, PDBGCCMDHLP pCmdHlp, PVM pVM, PCDBGCVAR paArgs, unsigned cArgs, PDBGCVAR pResult); static DECLCALLBACK(int) pgmR3CmdSync(PCDBGCCMD pCmd, PDBGCCMDHLP pCmdHlp, PVM pVM, PCDBGCVAR paArgs, unsigned cArgs, PDBGCVAR pResult); static DECLCALLBACK(int) pgmR3CmdSyncAlways(PCDBGCCMD pCmd, PDBGCCMDHLP pCmdHlp, PVM pVM, PCDBGCVAR paArgs, unsigned cArgs, PDBGCVAR pResult); @@ -671,7 +670,6 @@ static const DBGCCMD g_aCmds[] = { /* pszCmd, cArgsMin, cArgsMax, paArgDesc, cArgDescs, pResultDesc, fFlags, pfnHandler pszSyntax, ....pszDescription */ { "pgmram", 0, 0, NULL, 0, NULL, 0, pgmR3CmdRam, "", "Display the ram ranges." }, - { "pgmmap", 0, 0, NULL, 0, NULL, 0, pgmR3CmdMap, "", "Display the mapping ranges." }, { "pgmsync", 0, 0, NULL, 0, NULL, 0, pgmR3CmdSync, "", "Sync the CR3 page." }, { "pgmerror", 0, 1, &g_aPgmErrorArgs[0], 1, NULL, 0, pgmR3CmdError, "", "Enables inject runtime of errors into parts of PGM." }, { "pgmerroroff", 0, 1, &g_aPgmErrorArgs[0], 1, NULL, 0, pgmR3CmdError, "", "Disables inject runtime errors into parts of PGM." }, @@ -2193,11 +2191,13 @@ VMMR3DECL(void) PGMR3Reset(PVM pVM) /* * Unfix any fixed mappings and disable CR3 monitoring. */ - pVM->pgm.s.fMappingsFixed = false; - pVM->pgm.s.GCPtrMappingFixed = 0; - pVM->pgm.s.cbMappingFixed = 0; + pVM->pgm.s.fMappingsFixed = false; + pVM->pgm.s.fMappingsFixedRestored = false; + pVM->pgm.s.GCPtrMappingFixed = NIL_RTGCPTR; + pVM->pgm.s.cbMappingFixed = 0; - /* Exit the guest paging mode before the pgm pool gets reset. + /* + * Exit the guest paging mode before the pgm pool gets reset. * Important to clean up the amd64 case. */ for (VMCPUID i = 0; i < pVM->cCpus; i++) @@ -4003,50 +4003,6 @@ static DECLCALLBACK(int) pgmR3CmdRam(PCDBGCCMD pCmd, PDBGCCMDHLP pCmdHlp, PVM pV /** - * The '.pgmmap' command. - * - * @returns VBox status. - * @param pCmd Pointer to the command descriptor (as registered). - * @param pCmdHlp Pointer to command helper functions. - * @param pVM Pointer to the current VM (if any). - * @param paArgs Pointer to (readonly) array of arguments. - * @param cArgs Number of arguments in the array. - */ -static DECLCALLBACK(int) pgmR3CmdMap(PCDBGCCMD pCmd, PDBGCCMDHLP pCmdHlp, PVM pVM, PCDBGCVAR paArgs, unsigned cArgs, PDBGCVAR pResult) -{ - /* - * Validate input. - */ - if (!pVM) - return pCmdHlp->pfnPrintf(pCmdHlp, NULL, "error: The command requires a VM to be selected.\n"); - if (!pVM->pgm.s.pMappingsR3) - return pCmdHlp->pfnPrintf(pCmdHlp, NULL, "Sorry, no mappings are registered.\n"); - - /* - * Print message about the fixedness of the mappings. - */ - int rc = pCmdHlp->pfnPrintf(pCmdHlp, NULL, pVM->pgm.s.fMappingsFixed ? "The mappings are FIXED.\n" : "The mappings are FLOATING.\n"); - if (RT_FAILURE(rc)) - return rc; - - /* - * Dump the ranges. - */ - PPGMMAPPING pCur; - for (pCur = pVM->pgm.s.pMappingsR3; pCur; pCur = pCur->pNextR3) - { - rc = pCmdHlp->pfnPrintf(pCmdHlp, NULL, - "%08x - %08x %s\n", - pCur->GCPtr, pCur->GCPtrLast, pCur->pszDesc); - if (RT_FAILURE(rc)) - return rc; - } - - return VINF_SUCCESS; -} - - -/** * The '.pgmerror' and '.pgmerroroff' commands. * * @returns VBox status. diff --git a/src/VBox/VMM/PGMInternal.h b/src/VBox/VMM/PGMInternal.h index f1ddde580..f7004e7da 100644 --- a/src/VBox/VMM/PGMInternal.h +++ b/src/VBox/VMM/PGMInternal.h @@ -56,6 +56,14 @@ */ /** + * Indicates that there are no guest mappings to care about. + * Currently on raw-mode related code uses mappings, i.e. RC and R3 code. + */ +#ifdef IN_RING0 +# define PGM_WITHOUT_MAPPINGS +#endif + +/** * Solve page is out of sync issues inside Guest Context (in PGMGC.cpp). * Comment it if it will break something. */ @@ -2581,13 +2589,19 @@ typedef struct PGM /** Indicates that PGMR3FinalizeMappings has been called and that further * PGMR3MapIntermediate calls will be rejected. */ bool fFinalizedMappings; - /** If set no conflict checks are required. (boolean) */ + /** If set no conflict checks are required. */ bool fMappingsFixed; - /** If set, then no mappings are put into the shadow page table. (boolean) */ - bool fDisableMappings; - /** Size of fixed mapping */ + /** If set if restored as fixed but we were unable to re-fixate at the old + * location because of room or address incompatibilities. */ + bool fMappingsFixedRestored; + /** If set, then no mappings are put into the shadow page table. + * Use pgmMapAreMappingsEnabled() instead of direct access. */ + bool fMappingsDisabled; + /** Size of fixed mapping. + * This is valid if either fMappingsFixed or fMappingsFixedRestored is set. */ uint32_t cbMappingFixed; - /** Base address (GC) of fixed mapping */ + /** Base address (GC) of fixed mapping. + * This is valid if either fMappingsFixed or fMappingsFixedRestored is set. */ RTGCPTR GCPtrMappingFixed; /** The address of the previous RAM range mapping. */ RTGCPTR GCPtrPrevRamRangeMapping; @@ -3310,10 +3324,11 @@ RT_C_DECLS_BEGIN int pgmLock(PVM pVM); void pgmUnlock(PVM pVM); +int pgmR3MappingsFixInternal(PVM pVM, RTGCPTR GCPtrBase, uint32_t cb); int pgmR3SyncPTResolveConflict(PVM pVM, PPGMMAPPING pMapping, PX86PD pPDSrc, RTGCPTR GCPtrOldMapping); int pgmR3SyncPTResolveConflictPAE(PVM pVM, PPGMMAPPING pMapping, RTGCPTR GCPtrOldMapping); PPGMMAPPING pgmGetMapping(PVM pVM, RTGCPTR GCPtr); -void pgmR3MapRelocate(PVM pVM, PPGMMAPPING pMapping, RTGCPTR GCPtrOldMapping, RTGCPTR GCPtrNewMapping); +int pgmMapResolveConflicts(PVM pVM); DECLCALLBACK(void) pgmR3MapInfo(PVM pVM, PCDBGFINFOHLP pHlp, const char *pszArgs); void pgmR3HandlerPhysicalUpdateAll(PVM pVM); @@ -4961,20 +4976,40 @@ DECLINLINE(bool) pgmPoolIsPageLocked(PPGM pPGM, PPGMPOOLPAGE pPage) return false; } + /** - * Tells if mappings are to be put into the shadow page table or not + * Tells if mappings are to be put into the shadow page table or not. * * @returns boolean result * @param pVM VM handle. */ -DECLINLINE(bool) pgmMapAreMappingsEnabled(PPGM pPGM) +DECL_FORCE_INLINE(bool) pgmMapAreMappingsEnabled(PPGM pPGM) { -#ifdef IN_RING0 +#ifdef PGM_WITHOUT_MAPPINGS + /* There are no mappings in VT-x and AMD-V mode. */ + Assert(pPGM->fMappingsDisabled); + return false; +#else + return !pPGM->fMappingsDisabled; +#endif +} + + +/** + * Checks if the mappings are floating and enabled. + * + * @returns true / false. + * @param pVM The VM handle. + */ +DECL_FORCE_INLINE(bool) pgmMapAreMappingsFloating(PPGM pPGM) +{ +#ifdef PGM_WITHOUT_MAPPINGS /* There are no mappings in VT-x and AMD-V mode. */ - Assert(pPGM->fDisableMappings); + Assert(pPGM->fMappingsDisabled); return false; #else - return !pPGM->fDisableMappings; + return !pPGM->fMappingsDisabled + && !pPGM->fMappingsFixed; #endif } diff --git a/src/VBox/VMM/PGMMap.cpp b/src/VBox/VMM/PGMMap.cpp index 819bf9ea1..d1a513c9f 100644 --- a/src/VBox/VMM/PGMMap.cpp +++ b/src/VBox/VMM/PGMMap.cpp @@ -73,21 +73,12 @@ VMMR3DECL(int) PGMR3MapPT(PVM pVM, RTGCPTR GCPtr, uint32_t cb, uint32_t fFlags, } cb = RT_ALIGN_32(cb, _4M); RTGCPTR GCPtrLast = GCPtr + cb - 1; - if (GCPtrLast < GCPtr) - { - AssertMsgFailed(("Range wraps! GCPtr=%x GCPtrLast=%x\n", GCPtr, GCPtrLast)); - return VERR_INVALID_PARAMETER; - } - if (pVM->pgm.s.fMappingsFixed) - { - AssertMsgFailed(("Mappings are fixed! It's not possible to add new mappings at this time!\n")); - return VERR_PGM_MAPPINGS_FIXED; - } - if (!pfnRelocate) - { - AssertMsgFailed(("Callback is required\n")); - return VERR_INVALID_PARAMETER; - } + + AssertMsgReturn(GCPtrLast >= GCPtr, ("Range wraps! GCPtr=%x GCPtrLast=%x\n", GCPtr, GCPtrLast), + VERR_INVALID_PARAMETER); + AssertMsgReturn(!pVM->pgm.s.fMappingsFixed, ("Mappings are fixed! It's not possible to add new mappings at this time!\n"), + VERR_PGM_MAPPINGS_FIXED); + AssertPtrReturn(pfnRelocate, VERR_INVALID_PARAMETER); /* * Find list location. @@ -141,9 +132,9 @@ VMMR3DECL(int) PGMR3MapPT(PVM pVM, RTGCPTR GCPtr, uint32_t cb, uint32_t fFlags, pNew->GCPtr = GCPtr; pNew->GCPtrLast = GCPtrLast; pNew->cb = cb; - pNew->pszDesc = pszDesc; pNew->pfnRelocate = pfnRelocate; pNew->pvUser = pvUser; + pNew->pszDesc = pszDesc; pNew->cPTs = cPTs; /* @@ -267,7 +258,8 @@ VMMR3DECL(int) PGMR3UnmapPT(PVM pVM, RTGCPTR GCPtr) * and free the page tables and node memory. */ MMHyperFree(pVM, pCur->aPTs[0].pPTR3); - pgmR3MapClearPDEs(pVM, pCur, pCur->GCPtr >> X86_PD_SHIFT); + if (pCur->GCPtr != NIL_RTGCPTR) + pgmR3MapClearPDEs(pVM, pCur, pCur->GCPtr >> X86_PD_SHIFT); MMHyperFree(pVM, pCur); for (VMCPUID i = 0; i < pVM->cCpus; i++) @@ -413,12 +405,14 @@ VMMR3DECL(int) PGMR3FinalizeMappings(PVM pVM) /* * Loop until all mappings have been finalized. */ - /*unsigned iPDNext = UINT32_C(0xc0000000) >> X86_PD_SHIFT;*/ /* makes CSAM/PATM freak out booting linux. :-/ */ #if 0 + unsigned iPDNext = UINT32_C(0xc0000000) >> X86_PD_SHIFT; /* makes CSAM/PATM freak out booting linux. :-/ */ +#elif 0 unsigned iPDNext = MM_HYPER_AREA_ADDRESS >> X86_PD_SHIFT; #else unsigned iPDNext = 1 << X86_PD_SHIFT; /* no hint, map them from the top. */ #endif + PPGMMAPPING pCur; do { @@ -503,7 +497,7 @@ VMMR3DECL(int) PGMR3MappingsSize(PVM pVM, uint32_t *pcb) /** - * Fixes the guest context mappings in a range reserved from the Guest OS. + * Fixates the guest context mappings in a range reserved from the Guest OS. * * @returns VBox status code. * @param pVM The VM. @@ -512,38 +506,56 @@ VMMR3DECL(int) PGMR3MappingsSize(PVM pVM, uint32_t *pcb) */ VMMR3DECL(int) PGMR3MappingsFix(PVM pVM, RTGCPTR GCPtrBase, uint32_t cb) { - Log(("PGMR3MappingsFix: GCPtrBase=%#x cb=%#x\n", GCPtrBase, cb)); - - /* Ignore the additions mapping fix call in VT-x/AMD-V. */ - if ( pVM->pgm.s.fMappingsFixed - && HWACCMIsEnabled(pVM)) - return VINF_SUCCESS; - - /* Only applies to VCPU 0 as we don't support SMP guests with raw mode. */ - Assert(pVM->cCpus == 1); - - PVMCPU pVCpu = &pVM->aCpus[0]; + Log(("PGMR3MappingsFix: GCPtrBase=%RGv cb=%#x (fMappingsFixed=%RTbool fMappingsDisabled=%RTbool)\n", + GCPtrBase, cb, pVM->pgm.s.fMappingsFixed, pVM->pgm.s.fMappingsDisabled)); /* - * This is all or nothing at all. So, a tiny bit of paranoia first. + * Ignore the additions mapping fix call if disabled. */ - if (GCPtrBase & X86_PAGE_4M_OFFSET_MASK) - { - AssertMsgFailed(("GCPtrBase (%#x) has to be aligned on a 4MB address!\n", GCPtrBase)); - return VERR_INVALID_PARAMETER; - } - if (!cb || (cb & X86_PAGE_4M_OFFSET_MASK)) + if (!pgmMapAreMappingsEnabled(&pVM->pgm.s)) { - AssertMsgFailed(("cb (%#x) is 0 or not aligned on a 4MB address!\n", cb)); - return VERR_INVALID_PARAMETER; + Assert(HWACCMIsEnabled(pVM)); + return VINF_SUCCESS; } /* + * Only applies to VCPU 0 as we don't support SMP guests with raw mode. + */ + Assert(pVM->cCpus == 1); + PVMCPU pVCpu = &pVM->aCpus[0]; + + /* * Before we do anything we'll do a forced PD sync to try make sure any * pending relocations because of these mappings have been resolved. */ PGMSyncCR3(pVCpu, CPUMGetGuestCR0(pVCpu), CPUMGetGuestCR3(pVCpu), CPUMGetGuestCR4(pVCpu), true); + return pgmR3MappingsFixInternal(pVM, GCPtrBase, cb); +} + + +/** + * Internal worker for PGMR3MappingsFix and pgmR3Load. + * + * (This does not perform a SyncCR3 before the fixation like PGMR3MappingsFix.) + * + * @returns VBox status code. + * @param pVM The VM. + * @param GCPtrBase The address of the reserved range of guest memory. + * @param cb The size of the range starting at GCPtrBase. + */ +int pgmR3MappingsFixInternal(PVM pVM, RTGCPTR GCPtrBase, uint32_t cb) +{ + /* + * Check input arguments and pre-conditions. + */ + AssertMsgReturn(!(GCPtrBase & X86_PAGE_4M_OFFSET_MASK), ("GCPtrBase (%#x) has to be aligned on a 4MB address!\n", GCPtrBase), + VERR_INVALID_PARAMETER); + AssertMsgReturn(cb && !(cb & X86_PAGE_4M_OFFSET_MASK), ("cb (%#x) is 0 or not aligned on a 4MB address!\n", cb), + VERR_INVALID_PARAMETER); + AssertReturn(pgmMapAreMappingsEnabled(&pVM->pgm.s), VERR_INTERNAL_ERROR_3); + AssertReturn(pVM->cCpus == 1, VERR_INTERNAL_ERROR_4); + /* * Check that it's not conflicting with a core code mapping in the intermediate page table. */ @@ -573,6 +585,7 @@ VMMR3DECL(int) PGMR3MappingsFix(PVM pVM, RTGCPTR GCPtrBase, uint32_t cb) /* * In PAE / PAE mode, make sure we don't cross page directories. */ + PVMCPU pVCpu = &pVM->aCpus[0]; if ( ( pVCpu->pgm.s.enmGuestMode == PGMMODE_PAE || pVCpu->pgm.s.enmGuestMode == PGMMODE_PAE_NX) && ( pVCpu->pgm.s.enmShadowMode == PGMMODE_PAE @@ -618,14 +631,14 @@ VMMR3DECL(int) PGMR3MappingsFix(PVM pVM, RTGCPTR GCPtrBase, uint32_t cb) pCur = pVM->pgm.s.pMappingsR3; while (pCur) { - unsigned iPDOld = pCur->GCPtr >> X86_PD_SHIFT; - iPDNew = GCPtrCur >> X86_PD_SHIFT; + RTGCPTR const GCPtrOld = pCur->GCPtr; /* * Relocate the page table(s). */ - pgmR3MapClearPDEs(pVM, pCur, iPDOld); - pgmR3MapSetPDEs(pVM, pCur, iPDNew); + if (pCur->GCPtr != NIL_RTGCPTR) + pgmR3MapClearPDEs(pVM, pCur, GCPtrOld >> X86_PD_SHIFT); + pgmR3MapSetPDEs(pVM, pCur, GCPtrCur >> X86_PD_SHIFT); /* * Update the entry. @@ -636,7 +649,7 @@ VMMR3DECL(int) PGMR3MappingsFix(PVM pVM, RTGCPTR GCPtrBase, uint32_t cb) /* * Callback to execute the relocation. */ - pCur->pfnRelocate(pVM, iPDOld << X86_PD_SHIFT, iPDNew << X86_PD_SHIFT, PGMRELOCATECALL_RELOCATE, pCur->pvUser); + pCur->pfnRelocate(pVM, GCPtrOld, GCPtrCur, PGMRELOCATECALL_RELOCATE, pCur->pvUser); /* * Advance. @@ -646,11 +659,12 @@ VMMR3DECL(int) PGMR3MappingsFix(PVM pVM, RTGCPTR GCPtrBase, uint32_t cb) } /* - * Mark the mappings as fixed and return. + * Mark the mappings as fixed at this new location and return. */ - pVM->pgm.s.fMappingsFixed = true; - pVM->pgm.s.GCPtrMappingFixed = GCPtrBase; - pVM->pgm.s.cbMappingFixed = cb; + pVM->pgm.s.fMappingsFixed = true; + pVM->pgm.s.fMappingsFixedRestored = false; + pVM->pgm.s.GCPtrMappingFixed = GCPtrBase; + pVM->pgm.s.cbMappingFixed = cb; for (VMCPUID i = 0; i < pVM->cCpus; i++) { @@ -661,33 +675,38 @@ VMMR3DECL(int) PGMR3MappingsFix(PVM pVM, RTGCPTR GCPtrBase, uint32_t cb) return VINF_SUCCESS; } + /** - * Disable the hypervisor mappings in the shadow page tables (doesn't touch the intermediate table!) + * Interface for disabling the guest mappings when switching to HWACCM mode + * during VM creation and VM reset. + * + * (This doesn't touch the intermediate table!) * * @returns VBox status code. * @param pVM The VM. */ VMMR3DECL(int) PGMR3MappingsDisable(PVM pVM) { - uint32_t cb; - int rc = PGMR3MappingsSize(pVM, &cb); - AssertRCReturn(rc, rc); - - /* Only applies to VCPU 0. */ - PVMCPU pVCpu = &pVM->aCpus[0]; + AssertReturn(!pVM->pgm.s.fMappingsFixed, VERR_INTERNAL_ERROR_4); + AssertReturn(!pVM->pgm.s.fMappingsFixedRestored, VERR_INTERNAL_ERROR_4); + if (pVM->pgm.s.fMappingsDisabled) + return VINF_SUCCESS; - pgmLock(pVM); /* to avoid assertions */ - rc = pgmMapDeactivateCR3(pVM, pVCpu->pgm.s.pShwPageCR3R3); - pgmUnlock(pVM); - AssertRCReturn(rc, rc); + /* + * Deactivate (only applies to Virtual CPU #0). + */ + if (pVM->aCpus[0].pgm.s.pShwPageCR3R3) + { + pgmLock(pVM); /* to avoid assertions */ + int rc = pgmMapDeactivateCR3(pVM, pVM->aCpus[0].pgm.s.pShwPageCR3R3); + pgmUnlock(pVM); + AssertRCReturn(rc, rc); + } /* - * Mark the mappings as fixed (using fake values) and disabled. + * Mark the mappings as disabled and trigger a CR3 re-sync. */ - pVM->pgm.s.fDisableMappings = true; - pVM->pgm.s.fMappingsFixed = true; - pVM->pgm.s.GCPtrMappingFixed = MM_HYPER_AREA_ADDRESS; - pVM->pgm.s.cbMappingFixed = cb; + pVM->pgm.s.fMappingsDisabled = true; for (VMCPUID i = 0; i < pVM->cCpus; i++) { PVMCPU pVCpu = &pVM->aCpus[i]; @@ -700,35 +719,55 @@ VMMR3DECL(int) PGMR3MappingsDisable(PVM pVM) /** * Unfixes the mappings. - * After calling this function mapping conflict detection will be enabled. + * + * Unless PGMR3MappingsDisable is in effect, mapping conflict detection will be + * enabled after this call. If the mappings are fixed, a full CR3 resync will + * take place afterwards. * * @returns VBox status code. * @param pVM The VM. */ VMMR3DECL(int) PGMR3MappingsUnfix(PVM pVM) { - Log(("PGMR3MappingsUnfix: fMappingsFixed=%d\n", pVM->pgm.s.fMappingsFixed)); + Log(("PGMR3MappingsUnfix: fMappingsFixed=%RTbool fMappingsDisabled=%RTbool\n", pVM->pgm.s.fMappingsFixed, pVM->pgm.s.fMappingsDisabled)); + if ( pgmMapAreMappingsEnabled(&pVM->pgm.s) + && ( pVM->pgm.s.fMappingsFixed + || pVM->pgm.s.fMappingsFixedRestored) + ) + { + bool const fResyncCR3 = pVM->pgm.s.fMappingsFixed; - /* Ignore in VT-x/AMD-V mode. */ - if (HWACCMIsEnabled(pVM)) - return VINF_SUCCESS; + pVM->pgm.s.fMappingsFixed = false; + pVM->pgm.s.fMappingsFixedRestored = false; + pVM->pgm.s.GCPtrMappingFixed = 0; + pVM->pgm.s.cbMappingFixed = 0; - pVM->pgm.s.fMappingsFixed = false; - pVM->pgm.s.GCPtrMappingFixed = 0; - pVM->pgm.s.cbMappingFixed = 0; - for (VMCPUID i = 0; i < pVM->cCpus; i++) - { - PVMCPU pVCpu = &pVM->aCpus[i]; - VMCPU_FF_SET(pVCpu, VMCPU_FF_PGM_SYNC_CR3); + if (fResyncCR3) + for (VMCPUID i = 0; i < pVM->cCpus; i++) + VMCPU_FF_SET(&pVM->aCpus[i], VMCPU_FF_PGM_SYNC_CR3); } return VINF_SUCCESS; } /** + * Checks if the mappings needs re-fixing after a restore. + * + * @returns true if they need, false if not. + * @param pVM The VM handle. + */ +VMMR3DECL(bool) PGMR3MappingsNeedReFixing(PVM pVM) +{ + VM_ASSERT_VALID_EXT_RETURN(pVM, false); + return pVM->pgm.s.fMappingsFixedRestored; +} + + +/** * Map pages into the intermediate context (switcher code). - * These pages are mapped at both the give virtual address and at - * the physical address (for identity mapping). + * + * These pages are mapped at both the give virtual address and at the physical + * address (for identity mapping). * * @returns VBox status code. * @param pVM The virtual machine. @@ -956,6 +995,7 @@ static void pgmR3MapClearPDEs(PVM pVM, PPGMMAPPING pMap, unsigned iOldPDE) * 32-bit. */ pVM->pgm.s.pInterPD->a[iOldPDE].u = 0; + /* * PAE. */ @@ -1029,21 +1069,22 @@ static void pgmR3MapSetPDEs(PVM pVM, PPGMMAPPING pMap, unsigned iNewPDE) * @param pVM VM handle. * @param pMapping The mapping to relocate. * @param GCPtrOldMapping The address of the start of the old mapping. + * NIL_RTGCPTR if not currently mapped. * @param GCPtrNewMapping The address of the start of the new mapping. */ -void pgmR3MapRelocate(PVM pVM, PPGMMAPPING pMapping, RTGCPTR GCPtrOldMapping, RTGCPTR GCPtrNewMapping) +static void pgmR3MapRelocate(PVM pVM, PPGMMAPPING pMapping, RTGCPTR GCPtrOldMapping, RTGCPTR GCPtrNewMapping) { - unsigned iPDOld = GCPtrOldMapping >> X86_PD_SHIFT; - unsigned iPDNew = GCPtrNewMapping >> X86_PD_SHIFT; - Log(("PGM: Relocating %s from %RGv to %RGv\n", pMapping->pszDesc, GCPtrOldMapping, GCPtrNewMapping)); - AssertMsg(((unsigned)iPDOld << X86_PD_SHIFT) == pMapping->GCPtr, ("%RGv vs %RGv\n", (RTGCPTR)((unsigned)iPDOld << X86_PD_SHIFT), pMapping->GCPtr)); + AssertMsg(GCPtrOldMapping == pMapping->GCPtr, ("%RGv vs %RGv\n", GCPtrOldMapping, pMapping->GCPtr)); + AssertMsg((GCPtrOldMapping >> X86_PD_SHIFT) < X86_PG_ENTRIES, ("%RGv\n", GCPtrOldMapping)); + AssertMsg((GCPtrNewMapping >> X86_PD_SHIFT) < X86_PG_ENTRIES, ("%RGv\n", GCPtrOldMapping)); /* * Relocate the page table(s). */ - pgmR3MapClearPDEs(pVM, pMapping, iPDOld); - pgmR3MapSetPDEs(pVM, pMapping, iPDNew); + if (GCPtrOldMapping != NIL_RTGCPTR) + pgmR3MapClearPDEs(pVM, pMapping, GCPtrOldMapping >> X86_PD_SHIFT); + pgmR3MapSetPDEs(pVM, pMapping, GCPtrNewMapping >> X86_PD_SHIFT); /* * Update and resort the mapping list. @@ -1061,7 +1102,7 @@ void pgmR3MapRelocate(PVM pVM, PPGMMAPPING pMapping, RTGCPTR GCPtrOldMapping, RT Assert(pCur); /* Find mapping which >= than pMapping. */ - RTGCPTR GCPtrNew = iPDNew << X86_PD_SHIFT; + RTGCPTR GCPtrNew = GCPtrNewMapping; PPGMMAPPING pPrev = NULL; pCur = pVM->pgm.s.pMappingsR3; while (pCur && pCur->GCPtr < GCPtrNew) @@ -1120,7 +1161,7 @@ void pgmR3MapRelocate(PVM pVM, PPGMMAPPING pMapping, RTGCPTR GCPtrOldMapping, RT /* * Callback to execute the relocation. */ - pMapping->pfnRelocate(pVM, iPDOld << X86_PD_SHIFT, iPDNew << X86_PD_SHIFT, PGMRELOCATECALL_RELOCATE, pMapping->pvUser); + pMapping->pfnRelocate(pVM, GCPtrOldMapping, GCPtrNewMapping, PGMRELOCATECALL_RELOCATE, pMapping->pvUser); } @@ -1203,7 +1244,7 @@ int pgmR3SyncPTResolveConflict(PVM pVM, PPGMMAPPING pMapping, PX86PD pPDSrc, RTG /* * Ask for the mapping. */ - RTGCPTR GCPtrNewMapping = iPDNew << X86_PD_SHIFT; + RTGCPTR GCPtrNewMapping = (RTGCPTR32)iPDNew << X86_PD_SHIFT; if (pMapping->pfnRelocate(pVM, GCPtrOldMapping, GCPtrNewMapping, PGMRELOCATECALL_SUGGEST, pMapping->pvUser)) { @@ -1291,7 +1332,7 @@ int pgmR3SyncPTResolveConflictPAE(PVM pVM, PPGMMAPPING pMapping, RTGCPTR GCPtrOl /* * Ask for the mapping. */ - RTGCPTR GCPtrNewMapping = ((RTGCPTR32)iPDPTE << X86_PDPT_SHIFT) + (iPDNew << X86_PD_PAE_SHIFT); + RTGCPTR GCPtrNewMapping = ((RTGCPTR32)iPDPTE << X86_PDPT_SHIFT) + ((RTGCPTR32)iPDNew << X86_PD_PAE_SHIFT); if (pMapping->pfnRelocate(pVM, GCPtrOldMapping, GCPtrNewMapping, PGMRELOCATECALL_SUGGEST, pMapping->pvUser)) { @@ -1401,11 +1442,32 @@ VMMR3DECL(int) PGMR3MapRead(PVM pVM, void *pvDst, RTGCPTR GCPtrSrc, size_t cb) */ DECLCALLBACK(void) pgmR3MapInfo(PVM pVM, PCDBGFINFOHLP pHlp, const char *pszArgs) { - pHlp->pfnPrintf(pHlp, pVM->pgm.s.fMappingsFixed - ? "\nThe mappings are FIXED.\n" - : "\nThe mappings are FLOATING.\n"); + if (pVM->pgm.s.fMappingsDisabled) + pHlp->pfnPrintf(pHlp, "\nThe mappings are DISABLED.\n"); + else if (pVM->pgm.s.fMappingsFixed) + pHlp->pfnPrintf(pHlp, "\nThe mappings are FIXED: %RGv-%RGv\n", + pVM->pgm.s.GCPtrMappingFixed, pVM->pgm.s.GCPtrMappingFixed + pVM->pgm.s.cbMappingFixed - 1); + else if (pVM->pgm.s.fMappingsFixedRestored) + pHlp->pfnPrintf(pHlp, "\nThe mappings are FLOATING-RESTORED-FIXED: %RGv-%RGv\n", + pVM->pgm.s.GCPtrMappingFixed, pVM->pgm.s.GCPtrMappingFixed + pVM->pgm.s.cbMappingFixed - 1); + else + pHlp->pfnPrintf(pHlp, "\nThe mappings are FLOATING.\n"); + PPGMMAPPING pCur; for (pCur = pVM->pgm.s.pMappingsR3; pCur; pCur = pCur->pNextR3) + { pHlp->pfnPrintf(pHlp, "%RGv - %RGv %s\n", pCur->GCPtr, pCur->GCPtrLast, pCur->pszDesc); + if (pCur->cConflicts > 0) + { + pHlp->pfnPrintf(pHlp, " %u conflict%s: ", pCur->cConflicts, pCur->cConflicts == 1 ? "" : "s"); + uint32_t cLeft = RT_MIN(pCur->cConflicts, RT_ELEMENTS(pCur->aGCPtrConflicts)); + uint32_t i = pCur->cConflicts; + while (cLeft-- > 0) + { + i = (i - 1) & (PGMMAPPING_CONFLICT_MAX - 1); + pHlp->pfnPrintf(pHlp, cLeft ? "%RGv, " : "%RGv\n", pCur->aGCPtrConflicts[i]); + } + } + } } diff --git a/src/VBox/VMM/PGMPhys.cpp b/src/VBox/VMM/PGMPhys.cpp index fb0f9c504..7dcdb21a0 100644 --- a/src/VBox/VMM/PGMPhys.cpp +++ b/src/VBox/VMM/PGMPhys.cpp @@ -2233,7 +2233,7 @@ VMMR3DECL(int) PGMR3PhysRomRegister(PVM pVM, PPDMDEVINS pDevIns, RTGCPHYS GCPhys /* * Update the base memory reservation if necessary. */ - uint32_t cExtraBaseCost = fRamExists ? cPages : 0; + uint32_t cExtraBaseCost = fRamExists ? 0 : cPages; if (fFlags & PGMPHYS_ROM_FLAGS_SHADOWED) cExtraBaseCost += cPages; if (cExtraBaseCost) diff --git a/src/VBox/VMM/PGMPool.cpp b/src/VBox/VMM/PGMPool.cpp index a947f24e5..5f550b237 100644 --- a/src/VBox/VMM/PGMPool.cpp +++ b/src/VBox/VMM/PGMPool.cpp @@ -679,6 +679,7 @@ static DECLCALLBACK(VBOXSTRICTRC) pgmR3PoolClearAllRendezvous(PVM pVM, PVMCPU pV case PGMPOOLKIND_PAE_PT_FOR_PAE_2MB: case PGMPOOLKIND_32BIT_PT_FOR_PHYS: case PGMPOOLKIND_PAE_PT_FOR_PHYS: + case PGMPOOLKIND_EPT_PT_FOR_PHYS: { #ifdef PGMPOOL_WITH_USER_TRACKING if (pPage->cPresent) @@ -775,10 +776,10 @@ static DECLCALLBACK(VBOXSTRICTRC) pgmR3PoolClearAllRendezvous(PVM pVM, PVMCPU pV /* Clear the PGM_SYNC_CLEAR_PGM_POOL flag on all VCPUs to prevent redundant flushes. */ for (VMCPUID idCpu = 0; idCpu < pVM->cCpus; idCpu++) - { - PVMCPU pVCpu = &pVM->aCpus[idCpu]; - pVCpu->pgm.s.fSyncFlags &= ~PGM_SYNC_CLEAR_PGM_POOL; - } + pVM->aCpus[idCpu].pgm.s.fSyncFlags &= ~PGM_SYNC_CLEAR_PGM_POOL; + + /* Flush job finished. */ + VM_FF_CLEAR(pVM, VM_FF_PGM_POOL_FLUSH_PENDING); pPool->cPresent = 0; pgmUnlock(pVM); diff --git a/src/VBox/VMM/PGMSavedState.cpp b/src/VBox/VMM/PGMSavedState.cpp index 25ae351d0..8ce00ed7b 100644 --- a/src/VBox/VMM/PGMSavedState.cpp +++ b/src/VBox/VMM/PGMSavedState.cpp @@ -46,7 +46,8 @@ /******************************************************************************* * Defined Constants And Macros * *******************************************************************************/ -/** Saved state data unit version. */ +/** Saved state data unit version. + * @todo remove the guest mappings from the saved state at next version change! */ #define PGM_SAVED_STATE_VERSION 11 /** Saved state data unit version used during 3.1 development, misses the RAM * config. */ @@ -1939,13 +1940,13 @@ static DECLCALLBACK(int) pgmR3SaveExec(PVM pVM, PSSMHANDLE pSSM) /* * Save basic data (required / unaffected by relocation). */ + bool const fMappingsFixed = pVM->pgm.s.fMappingsFixed; + pVM->pgm.s.fMappingsFixed |= pVM->pgm.s.fMappingsFixedRestored; SSMR3PutStruct(pSSM, pPGM, &s_aPGMFields[0]); + pVM->pgm.s.fMappingsFixed = fMappingsFixed; for (VMCPUID idCpu = 0; idCpu < pVM->cCpus; idCpu++) - { - PVMCPU pVCpu = &pVM->aCpus[idCpu]; - SSMR3PutStruct(pSSM, &pVCpu->pgm.s, &s_aPGMCpuFields[0]); - } + SSMR3PutStruct(pSSM, &pVM->aCpus[idCpu].pgm.s, &s_aPGMCpuFields[0]); /* * The guest mappings. @@ -2786,7 +2787,7 @@ static int pgmR3LoadFinalLocked(PVM pVM, PSSMHANDLE pSSM, uint32_t uVersion) SSMR3GetU32(pSSM, &pPGM->cbMappingFixed); uint32_t cbRamSizeIgnored; - rc = SSMR3GetU32(pSSM, &cbRamSizeIgnored); + rc = SSMR3GetU32(pSSM, &cbRamSizeIgnored); if (RT_FAILURE(rc)) return rc; SSMR3GetGCPhys(pSSM, &pVM->aCpus[0].pgm.s.GCPhysA20Mask); @@ -2811,65 +2812,27 @@ static int pgmR3LoadFinalLocked(PVM pVM, PSSMHANDLE pSSM, uint32_t uVersion) } /* - * The guest mappings. + * The guest mappings - skipped now, see re-fixation in the caller. */ uint32_t i = 0; for (;; i++) { - /* Check the seqence number / separator. */ - rc = SSMR3GetU32(pSSM, &u32Sep); + rc = SSMR3GetU32(pSSM, &u32Sep); /* seqence number */ if (RT_FAILURE(rc)) return rc; if (u32Sep == ~0U) break; - if (u32Sep != i) - { - AssertMsgFailed(("u32Sep=%#x (last)\n", u32Sep)); - return VERR_SSM_DATA_UNIT_FORMAT_CHANGED; - } + AssertMsgReturn(u32Sep == i, ("u32Sep=%#x i=%#x\n", u32Sep, i), VERR_SSM_DATA_UNIT_FORMAT_CHANGED); - /* get the mapping details. */ char szDesc[256]; - szDesc[0] = '\0'; rc = SSMR3GetStrZ(pSSM, szDesc, sizeof(szDesc)); if (RT_FAILURE(rc)) return rc; - RTGCPTR GCPtr; - SSMR3GetGCPtr(pSSM, &GCPtr); - RTGCPTR cPTs; - rc = SSMR3GetGCUIntPtr(pSSM, &cPTs); + RTGCPTR GCPtrIgnore; + SSMR3GetGCPtr(pSSM, &GCPtrIgnore); /* GCPtr */ + rc = SSMR3GetGCPtr(pSSM, &GCPtrIgnore); /* cPTs */ if (RT_FAILURE(rc)) return rc; - - /* find matching range. */ - PPGMMAPPING pMapping; - for (pMapping = pPGM->pMappingsR3; pMapping; pMapping = pMapping->pNextR3) - { - if ( pMapping->cPTs == cPTs - && !strcmp(pMapping->pszDesc, szDesc)) - break; -#ifdef DEBUG_sandervl - if ( !strcmp(szDesc, "Hypervisor Memory Area") - && HWACCMIsEnabled(pVM)) - break; -#endif - } - if (!pMapping) - return SSMR3SetCfgError(pSSM, RT_SRC_POS, N_("Couldn't find mapping: cPTs=%#x szDesc=%s (GCPtr=%RGv)"), - cPTs, szDesc, GCPtr); - - /* relocate it. */ - if ( pMapping->GCPtr != GCPtr -#ifdef DEBUG_sandervl - && !(!strcmp(szDesc, "Hypervisor Memory Area") && HWACCMIsEnabled(pVM)) -#endif - ) - { - AssertMsg((GCPtr >> X86_PD_SHIFT << X86_PD_SHIFT) == GCPtr, ("GCPtr=%RGv\n", GCPtr)); - pgmR3MapRelocate(pVM, pMapping, pMapping->GCPtr, GCPtr); - } - else - Log(("pgmR3Load: '%s' needed no relocation (%RGv)\n", szDesc, GCPtr)); } /* @@ -2893,9 +2856,11 @@ static int pgmR3LoadFinalLocked(PVM pVM, PSSMHANDLE pSSM, uint32_t uVersion) return rc; } - return pgmR3LoadMemory(pVM, pSSM, SSM_PASS_FINAL); + rc = pgmR3LoadMemory(pVM, pSSM, SSM_PASS_FINAL); } - return pgmR3LoadMemoryOld(pVM, pSSM, uVersion); + else + rc = pgmR3LoadMemoryOld(pVM, pSSM, uVersion); + return rc; } @@ -2972,20 +2937,25 @@ static DECLCALLBACK(int) pgmR3Load(PVM pVM, PSSMHANDLE pSSM, uint32_t uVersion, PVMCPU pVCpu = &pVM->aCpus[i]; VMCPU_FF_SET(pVCpu, VMCPU_FF_PGM_SYNC_CR3_NON_GLOBAL); VMCPU_FF_SET(pVCpu, VMCPU_FF_PGM_SYNC_CR3); - pVCpu->pgm.s.fSyncFlags |= PGM_SYNC_UPDATE_PAGE_BIT_VIRTUAL; } pgmR3HandlerPhysicalUpdateAll(pVM); + /* + * Change the paging mode and restore PGMCPU::GCPhysCR3. + * (The latter requires the CPUM state to be restored already.) + */ + if (CPUMR3IsStateRestorePending(pVM)) + return SSMR3SetLoadError(pSSM, VERR_WRONG_ORDER, RT_SRC_POS, + N_("PGM was unexpectedly restored before CPUM")); + for (VMCPUID i = 0; i < pVM->cCpus; i++) { PVMCPU pVCpu = &pVM->aCpus[i]; - /* - * Change the paging mode. - */ rc = PGMR3ChangeMode(pVM, pVCpu, pVCpu->pgm.s.enmGuestMode); + AssertLogRelRCReturn(rc, rc); /* Restore pVM->pgm.s.GCPhysCR3. */ Assert(pVCpu->pgm.s.GCPhysCR3 == NIL_RTGCPHYS); @@ -2999,6 +2969,62 @@ static DECLCALLBACK(int) pgmR3Load(PVM pVM, PSSMHANDLE pSSM, uint32_t uVersion, GCPhysCR3 = (GCPhysCR3 & X86_CR3_PAGE_MASK); pVCpu->pgm.s.GCPhysCR3 = GCPhysCR3; } + + /* + * Try re-fixate the guest mappings. + */ + pVM->pgm.s.fMappingsFixedRestored = false; + if ( pVM->pgm.s.fMappingsFixed + && pgmMapAreMappingsEnabled(&pVM->pgm.s)) + { + RTGCPTR GCPtrFixed = pVM->pgm.s.GCPtrMappingFixed; + uint32_t cbFixed = pVM->pgm.s.cbMappingFixed; + pVM->pgm.s.fMappingsFixed = false; + + uint32_t cbRequired; + int rc2 = PGMR3MappingsSize(pVM, &cbRequired); AssertRC(rc2); + if ( RT_SUCCESS(rc2) + && cbRequired > cbFixed) + rc2 = VERR_OUT_OF_RANGE; + if (RT_SUCCESS(rc2)) + rc2 = pgmR3MappingsFixInternal(pVM, GCPtrFixed, cbFixed); + if (RT_FAILURE(rc2)) + { + LogRel(("PGM: Unable to re-fixate the guest mappings at %RGv-%RGv: rc=%Rrc (cbRequired=%#x)\n", + GCPtrFixed, GCPtrFixed + cbFixed, rc2, cbRequired)); + pVM->pgm.s.fMappingsFixed = false; + pVM->pgm.s.fMappingsFixedRestored = true; + pVM->pgm.s.GCPtrMappingFixed = GCPtrFixed; + pVM->pgm.s.cbMappingFixed = cbFixed; + } + } + else + { + /* We used to set fixed + disabled while we only use disabled now, + so wipe the state to avoid any confusion. */ + pVM->pgm.s.fMappingsFixed = false; + pVM->pgm.s.GCPtrMappingFixed = NIL_RTGCPTR; + pVM->pgm.s.cbMappingFixed = 0; + } + + /* + * If we have floating mappings, do a CR3 sync now to make sure the HMA + * doesn't conflict with guest code / data and thereby cause trouble + * when restoring other components like PATM. + */ + if (pgmMapAreMappingsFloating(&pVM->pgm.s)) + { + PVMCPU pVCpu = &pVM->aCpus[0]; + rc = PGMSyncCR3(pVCpu, CPUMGetGuestCR0(pVCpu), CPUMGetGuestCR3(pVCpu), CPUMGetGuestCR4(pVCpu), true); + if (RT_FAILURE(rc)) + return SSMR3SetLoadError(pSSM, VERR_WRONG_ORDER, RT_SRC_POS, + N_("PGMSyncCR3 failed unexpectedly with rc=%Rrc"), rc); + + /* Make sure to re-sync before executing code. */ + VMCPU_FF_SET(pVCpu, VMCPU_FF_PGM_SYNC_CR3_NON_GLOBAL); + VMCPU_FF_SET(pVCpu, VMCPU_FF_PGM_SYNC_CR3); + pVCpu->pgm.s.fSyncFlags |= PGM_SYNC_UPDATE_PAGE_BIT_VIRTUAL; + } } } diff --git a/src/VBox/VMM/VM.cpp b/src/VBox/VMM/VM.cpp index 8b4d54405..7ee00b5aa 100644 --- a/src/VBox/VMM/VM.cpp +++ b/src/VBox/VMM/VM.cpp @@ -1018,7 +1018,7 @@ static int vmR3InitRing0(PVM pVM) if (RT_SUCCESS(rc)) rc = vmR3InitDoCompleted(pVM, VMINITCOMPLETED_RING0); - /** todo: move this to the VMINITCOMPLETED_RING0 notification handler once implemented */ + /** @todo Move this to the VMINITCOMPLETED_RING0 notification handler. */ if (RT_SUCCESS(rc)) rc = HWACCMR3InitFinalizeR0(pVM); diff --git a/src/VBox/VMM/VMM.cpp b/src/VBox/VMM/VMM.cpp index 60913a70a..fe9e9450c 100644 --- a/src/VBox/VMM/VMM.cpp +++ b/src/VBox/VMM/VMM.cpp @@ -401,6 +401,7 @@ static void vmmR3InitRegisterStats(PVM pVM) STAM_REG(pVM, &pVM->vmm.s.StatRZRetInterruptPending, STAMTYPE_COUNTER, "/VMM/RZRet/InterruptPending", STAMUNIT_OCCURENCES, "Number of VINF_EM_RAW_INTERRUPT_PENDING returns."); STAM_REG(pVM, &pVM->vmm.s.StatRZRetPATMDuplicateFn, STAMTYPE_COUNTER, "/VMM/RZRet/PATMDuplicateFn", STAMUNIT_OCCURENCES, "Number of VINF_PATM_DUPLICATE_FUNCTION returns."); STAM_REG(pVM, &pVM->vmm.s.StatRZRetPGMChangeMode, STAMTYPE_COUNTER, "/VMM/RZRet/PGMChangeMode", STAMUNIT_OCCURENCES, "Number of VINF_PGM_CHANGE_MODE returns."); + STAM_REG(pVM, &pVM->vmm.s.StatRZRetPGMFlushPending, STAMTYPE_COUNTER, "/VMM/RZRet/PGMFlushPending", STAMUNIT_OCCURENCES, "Number of VINF_PGM_POOL_FLUSH_PENDING returns."); STAM_REG(pVM, &pVM->vmm.s.StatRZRetPendingRequest, STAMTYPE_COUNTER, "/VMM/RZRet/PendingRequest", STAMUNIT_OCCURENCES, "Number of VINF_EM_PENDING_REQUEST returns."); STAM_REG(pVM, &pVM->vmm.s.StatRZRetPatchTPR, STAMTYPE_COUNTER, "/VMM/RZRet/PatchTPR", STAMUNIT_OCCURENCES, "Number of VINF_EM_HWACCM_PATCH_TPR_INSTR returns."); STAM_REG(pVM, &pVM->vmm.s.StatRZRetCallRing3, STAMTYPE_COUNTER, "/VMM/RZCallR3/Misc", STAMUNIT_OCCURENCES, "Number of Other ring-3 calls."); diff --git a/src/VBox/VMM/VMMAll/PGMAll.cpp b/src/VBox/VMM/VMMAll/PGMAll.cpp index 719ede37b..555e029ee 100644 --- a/src/VBox/VMM/VMMAll/PGMAll.cpp +++ b/src/VBox/VMM/VMMAll/PGMAll.cpp @@ -722,7 +722,7 @@ VMMDECL(int) PGMInvalidatePage(PVMCPU pVCpu, RTGCPTR GCPtrPage) /* * Check for conflicts and pending CR3 monitoring updates. */ - if (!pVM->pgm.s.fMappingsFixed) + if (pgmMapAreMappingsFloating(&pVM->pgm.s)) { if ( pgmGetMapping(pVM, GCPtrPage) && PGMGstGetPage(pVCpu, GCPtrPage, NULL, NULL) != VERR_PAGE_TABLE_NOT_PRESENT) @@ -751,6 +751,9 @@ VMMDECL(int) PGMInvalidatePage(PVMCPU pVCpu, RTGCPTR GCPtrPage) pgmUnlock(pVM); STAM_PROFILE_STOP(&pVCpu->pgm.s.CTX_MID_Z(Stat,InvalidatePage), a); + /* Invalidate the TLB entry; might already be done by InvalidatePage (@todo) */ + PGM_INVL_PG(pVCpu, GCPtrPage); + #ifdef IN_RING3 /* * Check if we have a pending update of the CR3 monitoring. @@ -759,7 +762,7 @@ VMMDECL(int) PGMInvalidatePage(PVMCPU pVCpu, RTGCPTR GCPtrPage) && (pVCpu->pgm.s.fSyncFlags & PGM_SYNC_MONITOR_CR3)) { pVCpu->pgm.s.fSyncFlags &= ~PGM_SYNC_MONITOR_CR3; - Assert(!pVM->pgm.s.fMappingsFixed); + Assert(!pVM->pgm.s.fMappingsFixed); Assert(!pVM->pgm.s.fMappingsDisabled); } /* @@ -770,6 +773,14 @@ VMMDECL(int) PGMInvalidatePage(PVMCPU pVCpu, RTGCPTR GCPtrPage) */ CSAMR3FlushPage(pVM, GCPtrPage); #endif /* IN_RING3 */ + + /* Ignore all irrelevant error codes. */ + if ( rc == VERR_PAGE_NOT_PRESENT + || rc == VERR_PAGE_TABLE_NOT_PRESENT + || rc == VERR_PAGE_DIRECTORY_PTR_NOT_PRESENT + || rc == VERR_PAGE_MAP_LEVEL4_NOT_PRESENT) + rc = VINF_SUCCESS; + return rc; } @@ -1681,10 +1692,8 @@ VMMDECL(int) PGMFlushTLB(PVMCPU pVCpu, uint64_t cr3, bool fGlobal) rc = PGM_BTH_PFN(MapCR3, pVCpu)(pVCpu, GCPhysCR3); if (RT_LIKELY(rc == VINF_SUCCESS)) { - if (!pVM->pgm.s.fMappingsFixed) - { + if (pgmMapAreMappingsFloating(&pVM->pgm.s)) pVCpu->pgm.s.fSyncFlags &= ~PGM_SYNC_MONITOR_CR3; - } } else { @@ -1692,7 +1701,7 @@ VMMDECL(int) PGMFlushTLB(PVMCPU pVCpu, uint64_t cr3, bool fGlobal) Assert(VMCPU_FF_ISPENDING(pVCpu, VMCPU_FF_PGM_SYNC_CR3_NON_GLOBAL | VMCPU_FF_PGM_SYNC_CR3)); pVCpu->pgm.s.GCPhysCR3 = GCPhysOldCR3; pVCpu->pgm.s.fSyncFlags |= PGM_SYNC_MAP_CR3; - if (!pVM->pgm.s.fMappingsFixed) + if (pgmMapAreMappingsFloating(&pVM->pgm.s)) pVCpu->pgm.s.fSyncFlags |= PGM_SYNC_MONITOR_CR3; } @@ -1718,7 +1727,7 @@ VMMDECL(int) PGMFlushTLB(PVMCPU pVCpu, uint64_t cr3, bool fGlobal) if (pVCpu->pgm.s.fSyncFlags & PGM_SYNC_MONITOR_CR3) { pVCpu->pgm.s.fSyncFlags &= ~PGM_SYNC_MONITOR_CR3; - Assert(!pVM->pgm.s.fMappingsFixed); + Assert(!pVM->pgm.s.fMappingsFixed); Assert(!pVM->pgm.s.fMappingsDisabled); } if (fGlobal) STAM_COUNTER_INC(&pVCpu->pgm.s.CTX_MID_Z(Stat,FlushTLBSameCR3Global)); @@ -1755,9 +1764,9 @@ VMMDECL(int) PGMUpdateCR3(PVMCPU pVCpu, uint64_t cr3) LogFlow(("PGMUpdateCR3: cr3=%RX64 OldCr3=%RX64\n", cr3, pVCpu->pgm.s.GCPhysCR3)); /* We assume we're only called in nested paging mode. */ - Assert(pVM->pgm.s.fMappingsFixed); - Assert(!(pVCpu->pgm.s.fSyncFlags & PGM_SYNC_MONITOR_CR3)); Assert(HWACCMIsNestedPagingActive(pVM) || pVCpu->pgm.s.enmShadowMode == PGMMODE_EPT); + Assert(pVM->pgm.s.fMappingsDisabled); + Assert(!(pVCpu->pgm.s.fSyncFlags & PGM_SYNC_MONITOR_CR3)); /* * Remap the CR3 content and adjust the monitoring if CR3 was actually changed. @@ -1904,7 +1913,7 @@ VMMDECL(int) PGMSyncCR3(PVMCPU pVCpu, uint64_t cr0, uint64_t cr3, uint64_t cr4, if (pVCpu->pgm.s.fSyncFlags & PGM_SYNC_MONITOR_CR3) { pVCpu->pgm.s.fSyncFlags &= ~PGM_SYNC_MONITOR_CR3; - Assert(!pVM->pgm.s.fMappingsFixed); + Assert(!pVM->pgm.s.fMappingsFixed); Assert(!pVM->pgm.s.fMappingsDisabled); } } diff --git a/src/VBox/VMM/VMMAll/PGMAllBth.h b/src/VBox/VMM/VMMAll/PGMAllBth.h index c342280c3..267f17aa1 100644 --- a/src/VBox/VMM/VMMAll/PGMAllBth.h +++ b/src/VBox/VMM/VMMAll/PGMAllBth.h @@ -64,10 +64,6 @@ RT_C_DECLS_END # error "Invalid combination; AMD64 guest implies AMD64 shadow and vice versa" #endif -#ifdef IN_RING0 /* no mappings in VT-x and AMD-V mode */ -# define PGM_WITHOUT_MAPPINGS -#endif - #ifndef IN_RING3 /** @@ -292,7 +288,7 @@ PGM_BTH_DECL(int, Trap0eHandler)(PVMCPU pVCpu, RTGCUINT uErr, PCPUMCTXCORE pRegF /* * The first thing we check is if we've got an undetected conflict. */ - if (!pVM->pgm.s.fMappingsFixed) + if (pgmMapAreMappingsFloating(&pVM->pgm.s)) { unsigned iPT = pMapping->cb >> GST_PD_SHIFT; while (iPT-- > 0) @@ -2625,9 +2621,7 @@ PGM_BTH_DECL(int, SyncPT)(PVMCPU pVCpu, unsigned iPDSrc, PGSTPD pPDSrc, RTGCPTR PdeDst = *pPdeDst; # endif } -# else /* PGM_WITHOUT_MAPPINGS */ - Assert(!pgmMapAreMappingsEnabled(&pVM->pgm.s)); -# endif /* PGM_WITHOUT_MAPPINGS */ +# endif /* !PGM_WITHOUT_MAPPINGS */ Assert(!PdeDst.n.u1Present); /* We're only supposed to call SyncPT on PDE!P and conflicts.*/ # if defined(IN_RC) @@ -3478,7 +3472,7 @@ PGM_BTH_DECL(int, SyncCR3)(PVMCPU pVCpu, uint64_t cr0, uint64_t cr3, uint64_t cr PGM_GST_NAME(HandlerVirtualUpdate)(pVM, cr4); STAM_PROFILE_STOP(&pVCpu->pgm.s.CTX_MID_Z(Stat,SyncCR3Handlers), h); pgmUnlock(pVM); -#endif +#endif /* !NESTED && !EPT */ #if PGM_SHW_TYPE == PGM_TYPE_NESTED || PGM_SHW_TYPE == PGM_TYPE_EPT /* @@ -3486,6 +3480,7 @@ PGM_BTH_DECL(int, SyncCR3)(PVMCPU pVCpu, uint64_t cr0, uint64_t cr3, uint64_t cr */ /** @todo check if this is really necessary; the call does it as well... */ HWACCMFlushTLB(pVCpu); + Assert(!pgmMapAreMappingsEnabled(&pVM->pgm.s)); return VINF_SUCCESS; #elif PGM_SHW_TYPE == PGM_TYPE_AMD64 @@ -3493,25 +3488,28 @@ PGM_BTH_DECL(int, SyncCR3)(PVMCPU pVCpu, uint64_t cr0, uint64_t cr3, uint64_t cr * AMD64 (Shw & Gst) - No need to check all paging levels; we zero * out the shadow parts when the guest modifies its tables. */ + Assert(!pgmMapAreMappingsEnabled(&pVM->pgm.s)); return VINF_SUCCESS; #else /* PGM_SHW_TYPE != PGM_TYPE_NESTED && PGM_SHW_TYPE != PGM_TYPE_EPT && PGM_SHW_TYPE != PGM_TYPE_AMD64 */ -# ifdef PGM_WITHOUT_MAPPINGS - Assert(pVM->pgm.s.fMappingsFixed); - return VINF_SUCCESS; -# else - /* Nothing to do when mappings are fixed. */ - if (pVM->pgm.s.fMappingsFixed) - return VINF_SUCCESS; - - int rc = PGMMapResolveConflicts(pVM); - Assert(rc == VINF_SUCCESS || rc == VINF_PGM_SYNC_CR3); - if (rc == VINF_PGM_SYNC_CR3) +# ifndef PGM_WITHOUT_MAPPINGS + /* + * Check for and resolve conflicts with our guest mappings if they + * are enabled and not fixed. + */ + if (pgmMapAreMappingsFloating(&pVM->pgm.s)) { - LogFlow(("SyncCR3: detected conflict -> VINF_PGM_SYNC_CR3\n")); - return VINF_PGM_SYNC_CR3; + int rc = pgmMapResolveConflicts(pVM); + Assert(rc == VINF_SUCCESS || rc == VINF_PGM_SYNC_CR3); + if (rc == VINF_PGM_SYNC_CR3) + { + LogFlow(("SyncCR3: detected conflict -> VINF_PGM_SYNC_CR3\n")); + return VINF_PGM_SYNC_CR3; + } } +# else + Assert(!pgmMapAreMappingsEnabled(&pVM->pgm.s)); # endif return VINF_SUCCESS; #endif /* PGM_SHW_TYPE != PGM_TYPE_NESTED && PGM_SHW_TYPE != PGM_TYPE_EPT && PGM_SHW_TYPE != PGM_TYPE_AMD64 */ diff --git a/src/VBox/VMM/VMMAll/PGMAllMap.cpp b/src/VBox/VMM/VMMAll/PGMAllMap.cpp index 389034d75..42d12ffbf 100644 --- a/src/VBox/VMM/VMMAll/PGMAllMap.cpp +++ b/src/VBox/VMM/VMMAll/PGMAllMap.cpp @@ -388,6 +388,9 @@ void pgmMapClearShadowPDEs(PVM pVM, PPGMPOOLPAGE pShwPageCR3, PPGMMAPPING pMap, { Log(("pgmMapClearShadowPDEs: old pde %x (cPTs=%x) (mappings enabled %d) fDeactivateCR3=%RTbool\n", iOldPDE, pMap->cPTs, pgmMapAreMappingsEnabled(&pVM->pgm.s), fDeactivateCR3)); + /* + * Skip this if disabled or if it doesn't apply. + */ if ( !pgmMapAreMappingsEnabled(&pVM->pgm.s) || pVM->cCpus > 1) return; @@ -601,9 +604,8 @@ VMMDECL(void) PGMMapCheck(PVM pVM) if (!pgmMapAreMappingsEnabled(&pVM->pgm.s)) return; - Assert(pVM->cCpus == 1); - /* This only applies to raw mode where we only support 1 VCPU. */ + Assert(pVM->cCpus == 1); PVMCPU pVCpu = VMMGetCpu0(pVM); Assert(pVCpu->pgm.s.CTX_SUFF(pShwPageCR3)); @@ -632,14 +634,15 @@ VMMDECL(void) PGMMapCheck(PVM pVM) int pgmMapActivateCR3(PVM pVM, PPGMPOOLPAGE pShwPageCR3) { /* - * Can skip this if mappings are disabled. + * Skip this if disabled or if it doesn't apply. */ if ( !pgmMapAreMappingsEnabled(&pVM->pgm.s) || pVM->cCpus > 1) return VINF_SUCCESS; - /* Note. A log flush (in RC) can cause problems when called from MapCR3 (inconsistent state will trigger assertions). */ - Log4(("pgmMapActivateCR3: fixed mappings=%d idxShwPageCR3=%#x\n", pVM->pgm.s.fMappingsFixed, pShwPageCR3 ? pShwPageCR3->idx : NIL_PGMPOOL_IDX)); + /* Note! This might not be logged successfully in RC because we usually + cannot flush the log at this point. */ + Log4(("pgmMapActivateCR3: fixed mappings=%RTbool idxShwPageCR3=%#x\n", pVM->pgm.s.fMappingsFixed, pShwPageCR3 ? pShwPageCR3->idx : NIL_PGMPOOL_IDX)); #ifdef VBOX_STRICT PVMCPU pVCpu = VMMGetCpu0(pVM); @@ -668,7 +671,7 @@ int pgmMapActivateCR3(PVM pVM, PPGMPOOLPAGE pShwPageCR3) int pgmMapDeactivateCR3(PVM pVM, PPGMPOOLPAGE pShwPageCR3) { /* - * Can skip this if mappings are disabled. + * Skip this if disabled or if it doesn't apply. */ if ( !pgmMapAreMappingsEnabled(&pVM->pgm.s) || pVM->cCpus > 1) @@ -701,7 +704,7 @@ VMMDECL(bool) PGMMapHasConflicts(PVM pVM) /* * Can skip this if mappings are safely fixed. */ - if (pVM->pgm.s.fMappingsFixed) + if (!pgmMapAreMappingsFloating(&pVM->pgm.s)) return false; Assert(pVM->cCpus == 1); @@ -787,25 +790,21 @@ VMMDECL(bool) PGMMapHasConflicts(PVM pVM) /** - * Checks and resolves (ring 3 only) guest conflicts with VMM GC mappings. + * Checks and resolves (ring 3 only) guest conflicts with the guest mappings. * * @returns VBox status. * @param pVM The virtual machine. */ -VMMDECL(int) PGMMapResolveConflicts(PVM pVM) +int pgmMapResolveConflicts(PVM pVM) { - /* - * Can skip this if mappings are safely fixed. - */ - if (pVM->pgm.s.fMappingsFixed) - return VINF_SUCCESS; - - Assert(pVM->cCpus == 1); + /* The caller is expected to check these two conditions. */ + Assert(!pVM->pgm.s.fMappingsFixed); + Assert(!pVM->pgm.s.fMappingsDisabled); /* This only applies to raw mode where we only support 1 VCPU. */ - PVMCPU pVCpu = &pVM->aCpus[0]; - - PGMMODE const enmGuestMode = PGMGetGuestMode(pVCpu); + Assert(pVM->cCpus == 1); + PVMCPU pVCpu = &pVM->aCpus[0]; + PGMMODE const enmGuestMode = PGMGetGuestMode(pVCpu); Assert(enmGuestMode <= PGMMODE_PAE_NX); if (enmGuestMode == PGMMODE_32_BIT) diff --git a/src/VBox/VMM/VMMAll/PGMAllPhys.cpp b/src/VBox/VMM/VMMAll/PGMAllPhys.cpp index 14a979a27..2fdbdca5f 100644 --- a/src/VBox/VMM/VMMAll/PGMAllPhys.cpp +++ b/src/VBox/VMM/VMMAll/PGMAllPhys.cpp @@ -654,7 +654,7 @@ static int pgmPhysPageMapCommon(PVM pVM, PPGMPAGE pPage, RTGCPHYS GCPhys, PPPGMP /* Lookup the MMIO2 range and use pvR3 to calc the address. */ PPGMRAMRANGE pRam = pgmPhysGetRange(&pVM->pgm.s, GCPhys); AssertMsgReturn(pRam || !pRam->pvR3, ("pRam=%p pPage=%R[pgmpage]\n", pRam, pPage), VERR_INTERNAL_ERROR_2); - *ppv = (void *)((uintptr_t)pRam->pvR3 + (GCPhys - pRam->GCPhys)); + *ppv = (void *)((uintptr_t)pRam->pvR3 + (GCPhys & ~(RTGCPHYS)PAGE_OFFSET_MASK) - pRam->GCPhys); } else if (PGM_PAGE_GET_TYPE(pPage) == PGMPAGETYPE_MMIO2_ALIAS_MMIO) { diff --git a/src/VBox/VMM/VMMAll/PGMAllPool.cpp b/src/VBox/VMM/VMMAll/PGMAllPool.cpp index 9592fecbc..3d8ecda37 100644 --- a/src/VBox/VMM/VMMAll/PGMAllPool.cpp +++ b/src/VBox/VMM/VMMAll/PGMAllPool.cpp @@ -1172,6 +1172,7 @@ DECLEXPORT(int) pgmPoolAccessHandler(PVM pVM, RTGCUINT uErrorCode, PCPUMCTXCORE if (pPage->fDirty) { Assert(VMCPU_FF_ISSET(pVCpu, VMCPU_FF_TLB_FLUSH)); + pgmUnlock(pVM); return VINF_SUCCESS; /* SMP guest case where we were blocking on the pgm lock while the same page was being marked dirty. */ } #endif @@ -2647,6 +2648,14 @@ int pgmPoolSyncCR3(PVMCPU pVCpu) { LogFlow(("SyncCR3: PGM_SYNC_CLEAR_PGM_POOL is set -> VINF_PGM_SYNC_CR3\n")); VMCPU_FF_SET(pVCpu, VMCPU_FF_PGM_SYNC_CR3); /** @todo no need to do global sync, right? */ + + /* Make sure all other VCPUs return to ring 3. */ + if (pVM->cCpus > 1) + { + VM_FF_SET(pVM, VM_FF_PGM_POOL_FLUSH_PENDING); + PGM_INVL_ALL_VCPU_TLBS(pVM); + } + return VINF_PGM_SYNC_CR3; } # endif /* !IN_RING3 */ diff --git a/src/VBox/VMM/VMMAll/REMAll.cpp b/src/VBox/VMM/VMMAll/REMAll.cpp index 392c60242..aa683c0bd 100644 --- a/src/VBox/VMM/VMMAll/REMAll.cpp +++ b/src/VBox/VMM/VMMAll/REMAll.cpp @@ -232,6 +232,7 @@ VMMDECL(void) REMNotifyHandlerPhysicalFlushIfAlmostFull(PVM pVM, PVMCPU pVCpu) VMMRZCallRing3NoCpu(pVM, VMMCALLRING3_REM_REPLAY_HANDLER_NOTIFICATIONS, 0); AssertRelease(pVM->rem.s.idxPendingList == UINT32_MAX); + AssertRelease(pVM->rem.s.idxFreeList != UINT32_MAX); } #endif /* IN_RC */ diff --git a/src/VBox/VMM/VMMInternal.h b/src/VBox/VMM/VMMInternal.h index 31a6afa76..7ebc99054 100644 --- a/src/VBox/VMM/VMMInternal.h +++ b/src/VBox/VMM/VMMInternal.h @@ -373,6 +373,7 @@ typedef struct VMM STAMCOUNTER StatRZRetPATMDuplicateFn; STAMCOUNTER StatRZRetPGMChangeMode; STAMCOUNTER StatRZRetPendingRequest; + STAMCOUNTER StatRZRetPGMFlushPending; STAMCOUNTER StatRZRetPatchTPR; STAMCOUNTER StatRZCallPDMLock; STAMCOUNTER StatRZCallLogFlush; diff --git a/src/VBox/VMM/VMMR0/HWACCMR0.cpp b/src/VBox/VMM/VMMR0/HWACCMR0.cpp index 5973cc52b..e236eb519 100644 --- a/src/VBox/VMM/VMMR0/HWACCMR0.cpp +++ b/src/VBox/VMM/VMMR0/HWACCMR0.cpp @@ -89,6 +89,9 @@ static struct /** Host CR4 value (set by ring-0 VMX init) */ uint64_t hostCR4; + /** Host EFER value (set by ring-0 VMX init) */ + uint64_t hostEFER; + /** VMX MSR values */ struct { @@ -148,7 +151,8 @@ static struct */ VMMR0DECL(int) HWACCMR0Init(void) { - int rc; + int rc; + bool fAMDVPresent = false; memset(&HWACCMR0Globals, 0, sizeof(HWACCMR0Globals)); HWACCMR0Globals.enmHwAccmState = HWACCMSTATE_UNINITIALIZED; @@ -268,6 +272,7 @@ VMMR0DECL(int) HWACCMR0Init(void) if (!HWACCMR0Globals.vmx.fUsingSUPR0EnableVTx) { HWACCMR0Globals.vmx.hostCR4 = ASMGetCR4(); + HWACCMR0Globals.vmx.hostEFER = ASMRdMsr(MSR_K6_EFER); rc = RTR0MemObjAllocCont(&pScatchMemObj, 1 << PAGE_SHIFT, true /* executable R0 mapping */); if (RT_FAILURE(rc)) @@ -353,6 +358,11 @@ VMMR0DECL(int) HWACCMR0Init(void) int aRc[RTCPUSET_MAX_CPUS]; RTCPUID idCpu = 0; + fAMDVPresent = true; + + /* Query AMD features. */ + ASMCpuId(0x8000000A, &HWACCMR0Globals.svm.u32Rev, &HWACCMR0Globals.uMaxASID, &u32Dummy, &HWACCMR0Globals.svm.u32Features); + /* We need to check if AMD-V has been properly initialized on all CPUs. Some BIOSes might do a poor job. */ memset(aRc, 0, sizeof(aRc)); rc = RTMpOnAll(HWACCMR0InitCPU, (void *)u32VendorEBX, aRc); @@ -367,8 +377,6 @@ VMMR0DECL(int) HWACCMR0Init(void) #endif if (RT_SUCCESS(rc)) { - /* Query AMD features. */ - ASMCpuId(0x8000000A, &HWACCMR0Globals.svm.u32Rev, &HWACCMR0Globals.uMaxASID, &u32Dummy, &HWACCMR0Globals.svm.u32Features); /* Read the HWCR msr for diagnostics. */ HWACCMR0Globals.svm.msrHWCR = ASMRdMsr(MSR_K8_HWCR); HWACCMR0Globals.svm.fSupported = true; @@ -399,7 +407,7 @@ VMMR0DECL(int) HWACCMR0Init(void) HWACCMR0Globals.pfnSetupVM = VMXR0SetupVM; } else - if (HWACCMR0Globals.svm.fSupported) + if (fAMDVPresent) { HWACCMR0Globals.pfnEnterSession = SVMR0Enter; HWACCMR0Globals.pfnLeaveSession = SVMR0Leave; @@ -477,7 +485,7 @@ VMMR0DECL(int) HWACCMR0Term(void) if (!HWACCMR0Globals.vmx.fUsingSUPR0EnableVTx) { rc = RTPowerNotificationDeregister(hwaccmR0PowerCallback, 0); - Assert(RT_SUCCESS(rc)); + AssertRC(rc); } else rc = VINF_SUCCESS; @@ -898,6 +906,7 @@ VMMR0DECL(int) HWACCMR0InitVM(PVM pVM) pVM->hwaccm.s.vmx.msr.feature_ctrl = HWACCMR0Globals.vmx.msr.feature_ctrl; pVM->hwaccm.s.vmx.hostCR4 = HWACCMR0Globals.vmx.hostCR4; + pVM->hwaccm.s.vmx.hostEFER = HWACCMR0Globals.vmx.hostEFER; pVM->hwaccm.s.vmx.msr.vmx_basic_info = HWACCMR0Globals.vmx.msr.vmx_basic_info; pVM->hwaccm.s.vmx.msr.vmx_pin_ctls = HWACCMR0Globals.vmx.msr.vmx_pin_ctls; pVM->hwaccm.s.vmx.msr.vmx_proc_ctls = HWACCMR0Globals.vmx.msr.vmx_proc_ctls; diff --git a/src/VBox/VMM/VMMR0/HWSVMR0.cpp b/src/VBox/VMM/VMMR0/HWSVMR0.cpp index 85c4cca07..53190b444 100644 --- a/src/VBox/VMM/VMMR0/HWSVMR0.cpp +++ b/src/VBox/VMM/VMMR0/HWSVMR0.cpp @@ -77,7 +77,17 @@ VMMR0DECL(int) SVMR0EnableCpu(PHWACCM_CPUINFO pCpu, PVM pVM, void *pvPageCpu, RT /* We must turn on AMD-V and setup the host state physical address, as those MSRs are per-cpu/core. */ uint64_t val = ASMRdMsr(MSR_K6_EFER); if (val & MSR_K6_EFER_SVME) - return VERR_SVM_IN_USE; + { + /* If the VBOX_HWVIRTEX_IGNORE_SVM_IN_USE hack is active, then we blindly use AMD-V. */ + if ( pVM + && pVM->hwaccm.s.svm.fIgnoreInUseError) + { + pCpu->fIgnoreAMDVInUseError = true; + } + + if (!pCpu->fIgnoreAMDVInUseError) + return VERR_SVM_IN_USE; + } /* Turn on AMD-V in the EFER MSR. */ ASMWrMsr(MSR_K6_EFER, val | MSR_K6_EFER_SVME); @@ -561,7 +571,6 @@ static int SVMR0CheckPendingInterrupt(PVM pVM, PVMCPU pVCpu, SVM_VMCB *pVMCB, CP ) { uint8_t u8Vector; - int rc; TRPMEVENT enmType; SVM_EVENT Event; RTGCUINT u32ErrorCode; @@ -1016,29 +1025,53 @@ ResumeExecution: #endif /* Check for pending actions that force us to go back to ring 3. */ + if ( VM_FF_ISPENDING(pVM, VM_FF_HWACCM_TO_R3_MASK | VM_FF_REQUEST | VM_FF_PGM_POOL_FLUSH_PENDING) + || VMCPU_FF_ISPENDING(pVCpu, VMCPU_FF_HWACCM_TO_R3_MASK | VMCPU_FF_PGM_SYNC_CR3 | VMCPU_FF_PGM_SYNC_CR3_NON_GLOBAL | VMCPU_FF_REQUEST)) + { + /* Check if a sync operation is pending. */ + if (VMCPU_FF_ISPENDING(pVCpu, VMCPU_FF_PGM_SYNC_CR3 | VMCPU_FF_PGM_SYNC_CR3_NON_GLOBAL)) + { + rc = PGMSyncCR3(pVCpu, pCtx->cr0, pCtx->cr3, pCtx->cr4, VMCPU_FF_ISSET(pVCpu, VMCPU_FF_PGM_SYNC_CR3)); + AssertRC(rc); + if (rc != VINF_SUCCESS) + { + Log(("Pending pool sync is forcing us back to ring 3; rc=%d\n", rc)); + goto end; + } + } + #ifdef DEBUG - /* Intercept X86_XCPT_DB if stepping is enabled */ - if (!DBGFIsStepping(pVCpu)) + /* Intercept X86_XCPT_DB if stepping is enabled */ + if (!DBGFIsStepping(pVCpu)) #endif - { - if ( VM_FF_ISPENDING(pVM, VM_FF_HWACCM_TO_R3_MASK) - || VMCPU_FF_ISPENDING(pVCpu, VMCPU_FF_HWACCM_TO_R3_MASK)) { - VMCPU_FF_CLEAR(pVCpu, VMCPU_FF_TO_R3); - STAM_COUNTER_INC(&pVCpu->hwaccm.s.StatSwitchToR3); + if ( VM_FF_ISPENDING(pVM, VM_FF_HWACCM_TO_R3_MASK) + || VMCPU_FF_ISPENDING(pVCpu, VMCPU_FF_HWACCM_TO_R3_MASK)) + { + VMCPU_FF_CLEAR(pVCpu, VMCPU_FF_TO_R3); + STAM_COUNTER_INC(&pVCpu->hwaccm.s.StatSwitchToR3); + STAM_PROFILE_ADV_STOP(&pVCpu->hwaccm.s.StatEntry, x); + rc = RT_UNLIKELY(VM_FF_ISPENDING(pVM, VM_FF_PGM_NO_MEMORY)) ? VINF_EM_NO_MEMORY : VINF_EM_RAW_TO_R3; + goto end; + } + } + + /* Pending request packets might contain actions that need immediate attention, such as pending hardware interrupts. */ + if ( VM_FF_ISPENDING(pVM, VM_FF_REQUEST) + || VMCPU_FF_ISPENDING(pVCpu, VMCPU_FF_REQUEST)) + { STAM_PROFILE_ADV_STOP(&pVCpu->hwaccm.s.StatEntry, x); - rc = RT_UNLIKELY(VM_FF_ISPENDING(pVM, VM_FF_PGM_NO_MEMORY)) ? VINF_EM_NO_MEMORY : VINF_EM_RAW_TO_R3; + rc = VINF_EM_PENDING_REQUEST; goto end; } - } - /* Pending request packets might contain actions that need immediate attention, such as pending hardware interrupts. */ - if ( VM_FF_ISPENDING(pVM, VM_FF_REQUEST) - || VMCPU_FF_ISPENDING(pVCpu, VMCPU_FF_REQUEST)) - { - STAM_PROFILE_ADV_STOP(&pVCpu->hwaccm.s.StatEntry, x); - rc = VINF_EM_PENDING_REQUEST; - goto end; + /* Check if a pgm pool flush is in progress. */ + if (VM_FF_ISPENDING(pVM, VM_FF_PGM_POOL_FLUSH_PENDING)) + { + STAM_PROFILE_ADV_STOP(&pVCpu->hwaccm.s.StatEntry, x); + rc = VINF_PGM_POOL_FLUSH_PENDING; + goto end; + } } #ifdef VBOX_WITH_VMMR0_DISABLE_PREEMPTION @@ -1080,8 +1113,8 @@ ResumeExecution: bool fPending; /* TPR caching in CR8 */ - int rc = PDMApicGetTPR(pVCpu, &u8LastTPR, &fPending); - AssertRC(rc); + int rc2 = PDMApicGetTPR(pVCpu, &u8LastTPR, &fPending); + AssertRC(rc2); if (pVM->hwaccm.s.fTPRPatchingActive) { @@ -1702,7 +1735,6 @@ ResumeExecution: STAM_COUNTER_INC(&pVCpu->hwaccm.s.StatExitShadowPF); TRPMResetTrap(pVCpu); - STAM_PROFILE_ADV_STOP(&pVCpu->hwaccm.s.StatExit1, x); goto ResumeExecution; } @@ -2025,19 +2057,6 @@ ResumeExecution: default: AssertFailed(); } - /* Check if a sync operation is pending. */ - if ( rc == VINF_SUCCESS /* don't bother if we are going to ring 3 anyway */ - && VMCPU_FF_ISPENDING(pVCpu, VMCPU_FF_PGM_SYNC_CR3 | VMCPU_FF_PGM_SYNC_CR3_NON_GLOBAL)) - { - rc = PGMSyncCR3(pVCpu, pCtx->cr0, pCtx->cr3, pCtx->cr4, VMCPU_FF_ISSET(pVCpu, VMCPU_FF_PGM_SYNC_CR3)); - AssertRC(rc); - - STAM_COUNTER_INC(&pVCpu->hwaccm.s.StatFlushTLBCRxChange); - - /* Must be set by PGMSyncCR3 */ - AssertMsg(rc == VINF_SUCCESS || rc == VINF_PGM_SYNC_CR3 || PGMGetGuestMode(pVCpu) <= PGMMODE_PROTECTED || pVCpu->hwaccm.s.fForceTLBFlush, - ("rc=%Rrc mode=%d fForceTLBFlush=%RTbool\n", rc, PGMGetGuestMode(pVCpu), pVCpu->hwaccm.s.fForceTLBFlush)); - } if (rc == VINF_SUCCESS) { /* EIP has been updated already. */ @@ -2677,12 +2696,8 @@ static int svmR0InterpretInvlPg(PVMCPU pVCpu, PDISCPUSTATE pCpu, PCPUMCTXCORE pR */ rc = PGMInvalidatePage(pVCpu, addr); if (RT_SUCCESS(rc)) - { - /* Manually invalidate the page for the VM's TLB. */ - Log(("SVMR0InvlpgA %RGv ASID=%d\n", addr, uASID)); - SVMR0InvlpgA(addr, uASID); return VINF_SUCCESS; - } + AssertRC(rc); return rc; } @@ -2724,9 +2739,8 @@ static int svmR0InterpretInvpg(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame, ui Assert(cbOp == pDis->opsize); rc = svmR0InterpretInvlPg(pVCpu, pDis, pRegFrame, uASID); if (RT_SUCCESS(rc)) - { pRegFrame->rip += cbOp; /* Move on to the next instruction. */ - } + return rc; } } diff --git a/src/VBox/VMM/VMMR0/HWVMXR0.cpp b/src/VBox/VMM/VMMR0/HWVMXR0.cpp index b6053be4e..51afab42a 100644 --- a/src/VBox/VMM/VMMR0/HWVMXR0.cpp +++ b/src/VBox/VMM/VMMR0/HWVMXR0.cpp @@ -2407,27 +2407,53 @@ ResumeExecution: #endif /* Check for pending actions that force us to go back to ring 3. */ + if ( VM_FF_ISPENDING(pVM, VM_FF_HWACCM_TO_R3_MASK | VM_FF_REQUEST | VM_FF_PGM_POOL_FLUSH_PENDING) + || VMCPU_FF_ISPENDING(pVCpu, VMCPU_FF_HWACCM_TO_R3_MASK | VMCPU_FF_PGM_SYNC_CR3 | VMCPU_FF_PGM_SYNC_CR3_NON_GLOBAL | VMCPU_FF_REQUEST)) + { + /* Check if a sync operation is pending. */ + if (VMCPU_FF_ISPENDING(pVCpu, VMCPU_FF_PGM_SYNC_CR3 | VMCPU_FF_PGM_SYNC_CR3_NON_GLOBAL)) + { + rc = PGMSyncCR3(pVCpu, pCtx->cr0, pCtx->cr3, pCtx->cr4, VMCPU_FF_ISSET(pVCpu, VMCPU_FF_PGM_SYNC_CR3)); + AssertRC(rc); + if (rc != VINF_SUCCESS) + { + Log(("Pending pool sync is forcing us back to ring 3; rc=%d\n", rc)); + goto end; + } + } + #ifdef DEBUG - /* Intercept X86_XCPT_DB if stepping is enabled */ - if (!DBGFIsStepping(pVCpu)) + /* Intercept X86_XCPT_DB if stepping is enabled */ + if (!DBGFIsStepping(pVCpu)) #endif - { - if ( VM_FF_ISPENDING(pVM, VM_FF_HWACCM_TO_R3_MASK) - || VMCPU_FF_ISPENDING(pVCpu, VMCPU_FF_HWACCM_TO_R3_MASK)) { - VMCPU_FF_CLEAR(pVCpu, VMCPU_FF_TO_R3); - STAM_COUNTER_INC(&pVCpu->hwaccm.s.StatSwitchToR3); - rc = RT_UNLIKELY(VM_FF_ISPENDING(pVM, VM_FF_PGM_NO_MEMORY)) ? VINF_EM_NO_MEMORY : VINF_EM_RAW_TO_R3; + if ( VM_FF_ISPENDING(pVM, VM_FF_HWACCM_TO_R3_MASK) + || VMCPU_FF_ISPENDING(pVCpu, VMCPU_FF_HWACCM_TO_R3_MASK)) + { + VMCPU_FF_CLEAR(pVCpu, VMCPU_FF_TO_R3); + STAM_COUNTER_INC(&pVCpu->hwaccm.s.StatSwitchToR3); + STAM_PROFILE_ADV_STOP(&pVCpu->hwaccm.s.StatEntry, x); + rc = RT_UNLIKELY(VM_FF_ISPENDING(pVM, VM_FF_PGM_NO_MEMORY)) ? VINF_EM_NO_MEMORY : VINF_EM_RAW_TO_R3; + goto end; + } + } + + /* Pending request packets might contain actions that need immediate attention, such as pending hardware interrupts. */ + if ( VM_FF_ISPENDING(pVM, VM_FF_REQUEST) + || VMCPU_FF_ISPENDING(pVCpu, VMCPU_FF_REQUEST)) + { + STAM_PROFILE_ADV_STOP(&pVCpu->hwaccm.s.StatEntry, x); + rc = VINF_EM_PENDING_REQUEST; goto end; } - } - /* Pending request packets might contain actions that need immediate attention, such as pending hardware interrupts. */ - if ( VM_FF_ISPENDING(pVM, VM_FF_REQUEST) - || VMCPU_FF_ISPENDING(pVCpu, VMCPU_FF_REQUEST)) - { - rc = VINF_EM_PENDING_REQUEST; - goto end; + /* Check if a pgm pool flush is in progress. */ + if (VM_FF_ISPENDING(pVM, VM_FF_PGM_POOL_FLUSH_PENDING)) + { + STAM_PROFILE_ADV_STOP(&pVCpu->hwaccm.s.StatEntry, x); + rc = VINF_PGM_POOL_FLUSH_PENDING; + goto end; + } } #ifdef VBOX_WITH_VMMR0_DISABLE_PREEMPTION @@ -2889,7 +2915,6 @@ ResumeExecution: STAM_COUNTER_INC(&pVCpu->hwaccm.s.StatExitShadowPF); TRPMResetTrap(pVCpu); - STAM_PROFILE_ADV_STOP(&pVCpu->hwaccm.s.StatExit2Sub3, y3); goto ResumeExecution; } @@ -3377,7 +3402,6 @@ ResumeExecution: STAM_COUNTER_INC(&pVCpu->hwaccm.s.StatExitReasonNPF); TRPMResetTrap(pVCpu); - goto ResumeExecution; } @@ -3565,13 +3589,6 @@ ResumeExecution: AssertFailed(); break; } - /* Check if a sync operation is pending. */ - if ( rc == VINF_SUCCESS /* don't bother if we are going to ring 3 anyway */ - && VMCPU_FF_ISPENDING(pVCpu, VMCPU_FF_PGM_SYNC_CR3 | VMCPU_FF_PGM_SYNC_CR3_NON_GLOBAL)) - { - rc = PGMSyncCR3(pVCpu, pCtx->cr0, pCtx->cr3, pCtx->cr4, VMCPU_FF_ISSET(pVCpu, VMCPU_FF_PGM_SYNC_CR3)); - AssertRC(rc); - } break; case VMX_EXIT_QUALIFICATION_CRX_ACCESS_READ: diff --git a/src/VBox/VMM/VMMR0/VMMR0.cpp b/src/VBox/VMM/VMMR0/VMMR0.cpp index 3f08a64a9..a89e556f1 100644 --- a/src/VBox/VMM/VMMR0/VMMR0.cpp +++ b/src/VBox/VMM/VMMR0/VMMR0.cpp @@ -464,6 +464,9 @@ static void vmmR0RecordRC(PVM pVM, PVMCPU pVCpu, int rc) case VINF_PGM_CHANGE_MODE: STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetPGMChangeMode); break; + case VINF_PGM_POOL_FLUSH_PENDING: + STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetPGMFlushPending); + break; case VINF_EM_PENDING_REQUEST: STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetPendingRequest); break; @@ -1263,16 +1266,19 @@ DECLEXPORT(bool) RTCALL RTAssertShouldPanic(void) { PVMCPU pVCpu = VMMGetCpu(pVM); + if (pVCpu) + { #ifdef RT_ARCH_X86 - if ( pVCpu->vmm.s.CallRing3JmpBufR0.eip - && !pVCpu->vmm.s.CallRing3JmpBufR0.fInRing3Call) + if ( pVCpu->vmm.s.CallRing3JmpBufR0.eip + && !pVCpu->vmm.s.CallRing3JmpBufR0.fInRing3Call) #else - if ( pVCpu->vmm.s.CallRing3JmpBufR0.rip - && !pVCpu->vmm.s.CallRing3JmpBufR0.fInRing3Call) + if ( pVCpu->vmm.s.CallRing3JmpBufR0.rip + && !pVCpu->vmm.s.CallRing3JmpBufR0.fInRing3Call) #endif - { - int rc = VMMRZCallRing3(pVM, pVCpu, VMMCALLRING3_VM_R0_ASSERTION, 0); - return RT_FAILURE_NP(rc); + { + int rc = VMMRZCallRing3(pVM, pVCpu, VMMCALLRING3_VM_R0_ASSERTION, 0); + return RT_FAILURE_NP(rc); + } } } #ifdef RT_OS_LINUX diff --git a/src/VBox/VMM/testcase/tstVMStructGC.cpp b/src/VBox/VMM/testcase/tstVMStructGC.cpp index c8dc22788..c0d3fa5e9 100644 --- a/src/VBox/VMM/testcase/tstVMStructGC.cpp +++ b/src/VBox/VMM/testcase/tstVMStructGC.cpp @@ -526,6 +526,8 @@ int main() GEN_CHECK_OFF(PGM, pMappingsR0); GEN_CHECK_OFF(PGM, fFinalizedMappings); GEN_CHECK_OFF(PGM, fMappingsFixed); + GEN_CHECK_OFF(PGM, fMappingsFixedRestored); + GEN_CHECK_OFF(PGM, fMappingsDisabled); GEN_CHECK_OFF(PGM, GCPtrMappingFixed); GEN_CHECK_OFF(PGM, cbMappingFixed); GEN_CHECK_OFF(PGM, pInterPD); diff --git a/src/libs/xpcom18a4/xpcom/threads/plevent.c b/src/libs/xpcom18a4/xpcom/threads/plevent.c index 035690289..742193df6 100644 --- a/src/libs/xpcom18a4/xpcom/threads/plevent.c +++ b/src/libs/xpcom18a4/xpcom/threads/plevent.c @@ -1215,6 +1215,13 @@ _pl_NativeNotify(PLEventQueue* self) PRInt32 count; unsigned char buf[] = { NOTIFY_TOKEN }; +# ifdef VBOX + /* Don't write two chars, because we'll only acknowledge one and that'll + cause trouble for anyone selecting/polling on the read descriptor. */ + if (self->notified) + return PR_SUCCESS; +# endif + PR_LOG(event_lm, PR_LOG_DEBUG, ("_pl_NativeNotify: self=%p", self)); diff --git a/src/recompiler/target-i386/op_helper.c b/src/recompiler/target-i386/op_helper.c index fc72fe128..05c436229 100644 --- a/src/recompiler/target-i386/op_helper.c +++ b/src/recompiler/target-i386/op_helper.c @@ -523,6 +523,10 @@ static void switch_tss(int tss_selector, stl_kernel(env->tr.base + (0x28 + 7 * 4), EDI); for(i = 0; i < 6; i++) stw_kernel(env->tr.base + (0x48 + i * 4), env->segs[i].selector); +#ifdef VBOX + /* Must store the ldt as it gets reloaded and might have been changed. */ + stw_kernel(env->tr.base + 0x60, env->ldt.selector); +#endif #if defined(VBOX) && defined(DEBUG) printf("TSS 32 bits switch\n"); printf("Saving CS=%08X\n", env->segs[R_CS].selector); @@ -541,6 +545,10 @@ static void switch_tss(int tss_selector, stw_kernel(env->tr.base + (0x12 + 7 * 2), EDI); for(i = 0; i < 4; i++) stw_kernel(env->tr.base + (0x22 + i * 4), env->segs[i].selector); +#ifdef VBOX + /* Must store the ldt as it gets reloaded and might have been changed. */ + stw_kernel(env->tr.base + 0x2a, env->ldt.selector); +#endif } /* now if an exception occurs, it will occurs in the next task |