Merge patch branch changes to main.

This commit is contained in:
Virtually Nick
2024-08-25 08:36:43 -04:00
18 changed files with 123 additions and 77 deletions

View File

@@ -30,6 +30,7 @@ angular.module('clipboard').directive('guacClipboard', ['$injector',
const ClipboardData = $injector.get('ClipboardData'); const ClipboardData = $injector.get('ClipboardData');
// Required services // Required services
const $window = $injector.get('$window');
const clipboardService = $injector.get('clipboardService'); const clipboardService = $injector.get('clipboardService');
/** /**
@@ -53,24 +54,28 @@ angular.module('clipboard').directive('guacClipboard', ['$injector',
* editor via this DOM element rather than updating a model so that we * editor via this DOM element rather than updating a model so that we
* are prepared for future support of rich text contents. * are prepared for future support of rich text contents.
* *
* @type Element * @type {!Element}
*/ */
var element = $element[0].querySelectorAll('.clipboard.active')[0]; var element = $element[0].querySelectorAll('.clipboard')[0];
/** /**
* When isActive is set to true then the Clipboard data will be * Whether clipboard contents should be displayed in the clipboard
* displayed in the Clipboard Editor. When false, the Clipboard Editor * editor. If false, clipboard contents will not be displayed until
* will not be displayed with Clipboard data. * the user manually reveals them.
* *
* @type Boolean * @type {!boolean}
*/ */
$scope.isActive = false; $scope.contentsShown = false;
/** /**
* Updates clipboard editor to be active. * Reveals the contents of the clipboard editor, automatically
* assigning input focus to the editor if possible.
*/ */
$scope.setActive = function setActive() { $scope.showContents = function showContents() {
$scope.isActive = true; $scope.contentsShown = true;
$window.setTimeout(function setFocus() {
element.focus();
}, 0);
}; };
/** /**

View File

@@ -58,13 +58,50 @@
overflow: hidden; overflow: hidden;
} }
#clipboard-settings .clipboard.active { .clipboard-editor {
position: relative;
}
.clipboard-editor .clipboard {
overflow: auto; overflow: auto;
font-size: 1em; font-size: 1em;
} }
#clipboard-settings .clipboard.inactive { .clipboard-editor .clipboard.clipboard-contents-hidden {
color: transparent;
overflow: hidden;
}
.clipboard-editor .clipboard-contents-hidden-hint {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
cursor: pointer;
display: flex;
align-items: center;
}
.clipboard-editor .clipboard-contents-hidden-hint .clipboard-contents-hidden-hint-text {
flex: 1;
background: rgba(0, 0, 0, 0.125);
color: #888;
padding: 0.5em;
overflow: hidden; overflow: hidden;
font-size: 0.9em; font-size: 0.9em;
opacity: 0.5; text-align: center;
font-style: italic;
}
.clipboard-editor .clipboard-contents-hidden-hint:hover .clipboard-contents-hidden-hint-text {
text-decoration: underline;
} }

View File

@@ -1,4 +1,12 @@
<div> <div class="clipboard-editor">
<textarea ng-show="isActive" class="clipboard active"></textarea> <textarea class="clipboard"
<textarea ng-show="!isActive" class="clipboard inactive" ng-focus="setActive()">{{'CLIENT.TEXT_CLIPBOARD_AWAITING_FOCUS' | translate}}</textarea> ng-class="{
'clipboard-contents-hidden' : !contentsShown
}"
ng-disabled="!contentsShown"></textarea>
<div class="clipboard-contents-hidden-hint"
ng-click="showContents()"
ng-show="!contentsShown">
<p class="clipboard-contents-hidden-hint-text">{{ 'CLIENT.ACTION_SHOW_CLIPBOARD' | translate }}</p>
</div>
</div> </div>

View File

@@ -62,12 +62,14 @@ angular.module('home').controller('homeController', ['$scope', '$injector',
]; ];
/** /**
* Returns true if recent connections should be displayed on the Guacamole * Returns whether the "Recent Connections" section should be displayed on
* home page, otherwise false. * the home screen.
* *
* @returns {!boolean} * @returns {!boolean}
* true if recent connections should be displayed on the home screen,
* false otherwise.
*/ */
$scope.willShowRecentConnections = function willShowRecentConnections() { $scope.isRecentConnectionsVisible = function isRecentConnectionsVisible() {
return preferenceService.preferences.showRecentConnections; return preferenceService.preferences.showRecentConnections;
}; };

View File

@@ -74,16 +74,6 @@ angular.module('home').directive('guacRecentConnections', [function guacRecentCo
&& guacHistory.removeEntry(recentConnection.entry.id)); && guacHistory.removeEntry(recentConnection.entry.id));
}; };
/**
* Returns whether or not recent connections should be displayed.
*
* @returns {!boolean}
* true if recent connections should be displayed, otherwise false.
*/
$scope.willShowRecentConnections = function willShowRecentConnections() {
return preferenceService.preferences.showRecentConnections;
};
/** /**
* Returns whether recent connections are available for display. * Returns whether recent connections are available for display.
* *

View File

@@ -77,9 +77,12 @@ a.home-connection, .empty.balancer a.home-connection-group {
display: none; display: none;
} }
.header-app-name { .recent-connections .connection .remove-recent {
font-size: 0.85em; visibility: hidden;
box-shadow: none; }
.recent-connections .connection:hover .remove-recent {
visibility: visible;
} }
.recent-connections .connection .remove-recent::after { .recent-connections .connection .remove-recent::after {
@@ -90,11 +93,10 @@ a.home-connection, .empty.balancer a.home-connection-group {
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: contain; background-size: contain;
background-position: center center; background-position: center center;
background-image: url('images/x.svg'); background-image: url('images/x-black.svg');
} }
.recent-connections .connection .remove-recent { .recent-connections .connection .remove-recent {
background-color: red;
height: 1em; height: 1em;
width: 1em; width: 1em;
position: absolute; position: absolute;

View File

@@ -1,4 +1,4 @@
<div class="recent-connections" ng-show="willShowRecentConnections()"> <div class="recent-connections">
<!-- Text displayed if no recent connections exist --> <!-- Text displayed if no recent connections exist -->
<p class="placeholder" ng-hide="hasRecentConnections()">{{'HOME.INFO_NO_RECENT_CONNECTIONS' | translate}}</p> <p class="placeholder" ng-hide="hasRecentConnections()">{{'HOME.INFO_NO_RECENT_CONNECTIONS' | translate}}</p>

View File

@@ -2,16 +2,14 @@
<div class="connection-list-ui"> <div class="connection-list-ui">
<div class="header header-app-name"> <!-- The recent connections for this user -->
<h2 id="section-header-app-name">{{'APP.NAME' | translate}}</h2> <div class="header" ng-show="isRecentConnectionsVisible()">
<h2 id="section-header-recent-connections">{{'HOME.SECTION_HEADER_RECENT_CONNECTIONS' | translate}}</h2>
<guac-user-menu></guac-user-menu> <guac-user-menu></guac-user-menu>
</div> </div>
<guac-recent-connections
<!-- The recent connections for this user --> root-groups="rootConnectionGroups"
<div class="header" ng-show="willShowRecentConnections()"> ng-show="isRecentConnectionsVisible()"></guac-recent-connections>
<h2 id="section-header-recent-connections">{{'HOME.SECTION_HEADER_RECENT_CONNECTIONS' | translate}}</h2>
</div>
<guac-recent-connections root-groups="rootConnectionGroups" ng-show="willShowRecentConnections()"></guac-recent-connections>
<!-- All connections for this user --> <!-- All connections for this user -->
<div class="header"> <div class="header">
@@ -21,6 +19,7 @@
placeholder="'HOME.FIELD_PLACEHOLDER_FILTER' | translate" placeholder="'HOME.FIELD_PLACEHOLDER_FILTER' | translate"
connection-properties="filteredConnectionProperties" connection-properties="filteredConnectionProperties"
connection-group-properties="filteredConnectionGroupProperties"></guac-group-list-filter> connection-group-properties="filteredConnectionGroupProperties"></guac-group-list-filter>
<guac-user-menu></guac-user-menu>
</div> </div>
<div class="all-connections"> <div class="all-connections">
<guac-group-list <guac-group-list

View File

@@ -78,9 +78,8 @@ h2 {
margin-bottom: 0; margin-bottom: 0;
} }
.header ~ * .header, .header:not(.ng-hide) ~ * .header,
.header ~ .header { .header:not(.ng-hide) ~ .header {
margin-top: 0;
border-top: 1px solid rgba(0, 0, 0, 0.125); border-top: 1px solid rgba(0, 0, 0, 0.125);
} }
@@ -106,3 +105,7 @@ h2 {
border-left: 1px solid rgba(0, 0, 0, 0.125); border-left: 1px solid rgba(0, 0, 0, 0.125);
background-color: transparent; background-color: transparent;
} }
.header:not(.ng-hide) ~ .header .user-menu {
display: none;
}

View File

@@ -5,7 +5,25 @@
<p>{{'SETTINGS_PREFERENCES.HELP_LOCALE' | translate}}</p> <p>{{'SETTINGS_PREFERENCES.HELP_LOCALE' | translate}}</p>
<guac-form content="localeFields" model="preferences" namespace="'SETTINGS_PREFERENCES'"></guac-form> <guac-form content="localeFields" model="preferences" namespace="'SETTINGS_PREFERENCES'"></guac-form>
</div> </div>
<!-- Appearance -->
<h2 class="header">{{'SETTINGS_PREFERENCES.SECTION_HEADER_APPEARANCE' | translate}}</h2>
<div class="settings section appearance">
<p>{{'SETTINGS_PREFERENCES.HELP_APPEARANCE' | translate}}</p>
<div class='form'>
<table class='fields'>
<tr>
<th>{{'SETTINGS_PREFERENCES.FIELD_HEADER_SHOW_RECENT_CONNECTIONS' | translate}}</th>
<td><input ng-model="preferences.showRecentConnections" type="checkbox"/></td>
</tr>
<tr>
<th>{{'SETTINGS_PREFERENCES.FIELD_HEADER_NUMBER_RECENT_CONNECTIONS' | translate}}</th>
<td><input ng-model="preferences.numberOfRecentConnections" type="number" min="1" max="20"/></td>
</tr>
</table>
</div>
</div>
<!-- Password update --> <!-- Password update -->
<h2 class="header" ng-show="canUpdateSelf">{{'SETTINGS_PREFERENCES.SECTION_HEADER_UPDATE_PASSWORD' | translate}}</h2> <h2 class="header" ng-show="canUpdateSelf">{{'SETTINGS_PREFERENCES.SECTION_HEADER_UPDATE_PASSWORD' | translate}}</h2>
<div class="settings section update-password" ng-show="canUpdateSelf"> <div class="settings section update-password" ng-show="canUpdateSelf">
@@ -89,24 +107,6 @@
</div> </div>
</div> </div>
<!-- Recent connections -->
<h2 class="header">{{'SETTINGS_PREFERENCES.SECTION_HEADER_RECENT_CONNECTIONS' | translate}}</h2>
<div class="settings section recent">
<p>{{'SETTINGS_PREFERENCES.HELP_RECENT_CONNECTIONS' | translate}}</p>
<div class='form'>
<table class='fields'>
<tr>
<th>{{'SETTINGS_PREFERENCES.FIELD_HEADER_SHOW_RECENT_CONNECTIONS' | translate}}</th>
<td><input ng-model="preferences.showRecentConnections" type="checkbox"/></td>
</tr>
<tr>
<th>{{'SETTINGS_PREFERENCES.FIELD_HEADER_NUMBER_RECENT_CONNECTIONS' | translate}}</th>
<td><input ng-model="preferences.numberOfRecentConnections" type="number" min="1" max="20"/></td>
</tr>
</table>
</div>
</div>
<!-- User attributes section --> <!-- User attributes section -->
<div class="attributes" ng-show="canUpdateSelf && attributes.length"> <div class="attributes" ng-show="canUpdateSelf && attributes.length">
<guac-form namespace="'USER_ATTRIBUTES'" content="attributes" <guac-form namespace="'USER_ATTRIBUTES'" content="attributes"

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64"><g style="fill:#000;fill-opacity:1"><path d="M-203.492 487.824h325.537v71.505h-325.537z" style="fill:#000;stroke:none;fill-opacity:1" transform="rotate(-45 -70.224 18.065)scale(.19138)"/><path d="M-686.345 4.971h325.537v71.505h-325.537z" style="fill:#000;stroke:none;fill-opacity:1" transform="scale(-.19138 .19138)rotate(-45 -192.713 -326.21)"/></g></svg>

After

Width:  |  Height:  |  Size: 419 B

View File

@@ -59,6 +59,7 @@
"ACTION_DISCONNECT" : "Desconnecta", "ACTION_DISCONNECT" : "Desconnecta",
"ACTION_RECONNECT" : "Torneu a connectar", "ACTION_RECONNECT" : "Torneu a connectar",
"ACTION_SHOW_CLIPBOARD" : "Feu clic per veure les dades del porta-retalls.",
"ACTION_UPLOAD_FILES" : "Carregueu fitxers", "ACTION_UPLOAD_FILES" : "Carregueu fitxers",
"DIALOG_HEADER_CONNECTING" : "Connectant", "DIALOG_HEADER_CONNECTING" : "Connectant",
@@ -143,7 +144,6 @@
"TEXT_CLIENT_STATUS_DISCONNECTED" : "Heu estat desconnectats.", "TEXT_CLIENT_STATUS_DISCONNECTED" : "Heu estat desconnectats.",
"TEXT_CLIENT_STATUS_UNSTABLE" : "La connexió de xarxa al servidor Guacamole sembla inestable.", "TEXT_CLIENT_STATUS_UNSTABLE" : "La connexió de xarxa al servidor Guacamole sembla inestable.",
"TEXT_CLIENT_STATUS_WAITING" : "Connectat a Guacamole. Esperant resposta ...", "TEXT_CLIENT_STATUS_WAITING" : "Connectat a Guacamole. Esperant resposta ...",
"TEXT_CLIPBOARD_AWAITING_FOCUS" : "Feu clic per veure les dades del porta-retalls...",
"TEXT_FILE_TRANSFER_PROGRESS" : "{PROGRESS} {UNIT, select, b{B} kb{KB} mb{MB} gb{GB} other{}}", "TEXT_FILE_TRANSFER_PROGRESS" : "{PROGRESS} {UNIT, select, b{B} kb{KB} mb{MB} gb{GB} other{}}",
"TEXT_RECONNECT_COUNTDOWN" : "Re-conectant en {REMAINING} {REMAINING, plural, one{segon} other{segons}}...", "TEXT_RECONNECT_COUNTDOWN" : "Re-conectant en {REMAINING} {REMAINING, plural, one{segon} other{segons}}...",
"TEXT_USER_JOINED" : "{USERNAME} s'ha afegit a la connexió.", "TEXT_USER_JOINED" : "{USERNAME} s'ha afegit a la connexió.",

View File

@@ -71,6 +71,7 @@
"ACTION_RECONNECT" : "Znovu připojit", "ACTION_RECONNECT" : "Znovu připojit",
"ACTION_SAVE_FILE" : "@:APP.ACTION_SAVE", "ACTION_SAVE_FILE" : "@:APP.ACTION_SAVE",
"ACTION_SHARE" : "@:APP.ACTION_SHARE", "ACTION_SHARE" : "@:APP.ACTION_SHARE",
"ACTION_SHOW_CLIPBOARD" : "Kliknutím zobrazíte obsah schránky.",
"ACTION_UPLOAD_FILES" : "Nahrát soubory", "ACTION_UPLOAD_FILES" : "Nahrát soubory",
"DIALOG_HEADER_CONNECTING" : "Připojování", "DIALOG_HEADER_CONNECTING" : "Připojování",
@@ -163,7 +164,6 @@
"TEXT_USER_LEFT" : "{USERNAME} opustil spojení.", "TEXT_USER_LEFT" : "{USERNAME} opustil spojení.",
"TEXT_RECONNECT_COUNTDOWN" : "Znovu připojuji {REMAINING} {REMAINING, plural, one{sekundu} other{sekund}}...", "TEXT_RECONNECT_COUNTDOWN" : "Znovu připojuji {REMAINING} {REMAINING, plural, one{sekundu} other{sekund}}...",
"TEXT_FILE_TRANSFER_PROGRESS" : "{PROGRESS} {UNIT, select, b{B} kb{KB} mb{MB} gb{GB} other{}}", "TEXT_FILE_TRANSFER_PROGRESS" : "{PROGRESS} {UNIT, select, b{B} kb{KB} mb{MB} gb{GB} other{}}",
"TEXT_CLIPBOARD_AWAITING_FOCUS" : "Kliknutím zobrazíte obsah schránky...",
"URL_OSK_LAYOUT" : "layouts/en-us-qwerty.json" "URL_OSK_LAYOUT" : "layouts/en-us-qwerty.json"

View File

@@ -71,6 +71,7 @@
"ACTION_RECONNECT" : "Neu verbinden", "ACTION_RECONNECT" : "Neu verbinden",
"ACTION_SAVE_FILE" : "@:APP.ACTION_SAVE", "ACTION_SAVE_FILE" : "@:APP.ACTION_SAVE",
"ACTION_SHARE" : "@:APP.ACTION_SHARE", "ACTION_SHARE" : "@:APP.ACTION_SHARE",
"ACTION_SHOW_CLIPBOARD" : "Klicken um Zwischenablage anzuzeigen.",
"ACTION_UPLOAD_FILES" : "Dateien hochladen", "ACTION_UPLOAD_FILES" : "Dateien hochladen",
"DIALOG_HEADER_CONNECTING" : "Verbinden", "DIALOG_HEADER_CONNECTING" : "Verbinden",
@@ -163,7 +164,6 @@
"TEXT_USER_LEFT" : "{USERNAME} hat die Verbindung verlassen.", "TEXT_USER_LEFT" : "{USERNAME} hat die Verbindung verlassen.",
"TEXT_RECONNECT_COUNTDOWN" : "Neuverbindung in {REMAINING} {REMAINING, plural, one{Sekunde} other{Sekunden}}...", "TEXT_RECONNECT_COUNTDOWN" : "Neuverbindung in {REMAINING} {REMAINING, plural, one{Sekunde} other{Sekunden}}...",
"TEXT_FILE_TRANSFER_PROGRESS" : "{PROGRESS} {UNIT, select, b{B} kb{KB} mb{MB} gb{GB} other{}}", "TEXT_FILE_TRANSFER_PROGRESS" : "{PROGRESS} {UNIT, select, b{B} kb{KB} mb{MB} gb{GB} other{}}",
"TEXT_CLIPBOARD_AWAITING_FOCUS" : "Klicken um Zwischenablage anzuzeigen...",
"URL_OSK_LAYOUT" : "layouts/de-de-qwertz.json" "URL_OSK_LAYOUT" : "layouts/de-de-qwertz.json"

View File

@@ -76,6 +76,7 @@
"ACTION_RECONNECT" : "Reconnect", "ACTION_RECONNECT" : "Reconnect",
"ACTION_SAVE_FILE" : "@:APP.ACTION_SAVE", "ACTION_SAVE_FILE" : "@:APP.ACTION_SAVE",
"ACTION_SHARE" : "@:APP.ACTION_SHARE", "ACTION_SHARE" : "@:APP.ACTION_SHARE",
"ACTION_SHOW_CLIPBOARD" : "Click to view clipboard contents.",
"ACTION_UPLOAD_FILES" : "Upload Files", "ACTION_UPLOAD_FILES" : "Upload Files",
"DIALOG_HEADER_CONNECTING" : "Connecting", "DIALOG_HEADER_CONNECTING" : "Connecting",
@@ -168,7 +169,6 @@
"TEXT_USER_LEFT" : "{USERNAME} has left the connection.", "TEXT_USER_LEFT" : "{USERNAME} has left the connection.",
"TEXT_RECONNECT_COUNTDOWN" : "Reconnecting in {REMAINING} {REMAINING, plural, one{second} other{seconds}}...", "TEXT_RECONNECT_COUNTDOWN" : "Reconnecting in {REMAINING} {REMAINING, plural, one{second} other{seconds}}...",
"TEXT_FILE_TRANSFER_PROGRESS" : "{PROGRESS} {UNIT, select, b{B} kb{KB} mb{MB} gb{GB} other{}}", "TEXT_FILE_TRANSFER_PROGRESS" : "{PROGRESS} {UNIT, select, b{B} kb{KB} mb{MB} gb{GB} other{}}",
"TEXT_CLIPBOARD_AWAITING_FOCUS" : "Click to view clipboard data...",
"URL_OSK_LAYOUT" : "layouts/en-us-qwerty.json" "URL_OSK_LAYOUT" : "layouts/en-us-qwerty.json"
@@ -1075,6 +1075,7 @@
"FIELD_HEADER_TIMEZONE" : "Timezone:", "FIELD_HEADER_TIMEZONE" : "Timezone:",
"FIELD_HEADER_USERNAME" : "Username:", "FIELD_HEADER_USERNAME" : "Username:",
"HELP_APPEARANCE" : "Here you can enable or disable whether the \"Recent Connections\" section is shown on the home screen, and adjust the number of recent connections included.",
"HELP_DEFAULT_INPUT_METHOD" : "The default input method determines how keyboard events are received by Guacamole. Changing this setting may be necessary when using a mobile device, or when typing through an IME. This setting can be overridden on a per-connection basis within the Guacamole menu.", "HELP_DEFAULT_INPUT_METHOD" : "The default input method determines how keyboard events are received by Guacamole. Changing this setting may be necessary when using a mobile device, or when typing through an IME. This setting can be overridden on a per-connection basis within the Guacamole menu.",
"HELP_DEFAULT_MOUSE_MODE" : "The default mouse emulation mode determines how the remote mouse will behave in new connections with respect to touches. This setting can be overridden on a per-connection basis within the Guacamole menu.", "HELP_DEFAULT_MOUSE_MODE" : "The default mouse emulation mode determines how the remote mouse will behave in new connections with respect to touches. This setting can be overridden on a per-connection basis within the Guacamole menu.",
"HELP_INPUT_METHOD_NONE" : "@:CLIENT.HELP_INPUT_METHOD_NONE", "HELP_INPUT_METHOD_NONE" : "@:CLIENT.HELP_INPUT_METHOD_NONE",
@@ -1083,7 +1084,6 @@
"HELP_LOCALE" : "Options below are related to the locale of the user and will impact how various parts of the interface are displayed.", "HELP_LOCALE" : "Options below are related to the locale of the user and will impact how various parts of the interface are displayed.",
"HELP_MOUSE_MODE_ABSOLUTE" : "@:CLIENT.HELP_MOUSE_MODE_ABSOLUTE", "HELP_MOUSE_MODE_ABSOLUTE" : "@:CLIENT.HELP_MOUSE_MODE_ABSOLUTE",
"HELP_MOUSE_MODE_RELATIVE" : "@:CLIENT.HELP_MOUSE_MODE_RELATIVE", "HELP_MOUSE_MODE_RELATIVE" : "@:CLIENT.HELP_MOUSE_MODE_RELATIVE",
"HELP_RECENT_CONNECTIONS" : "Here you can enable or disable recent conections in the Guacamole Home Page, and adjust the number of recent connections that will be displayed.",
"HELP_UPDATE_PASSWORD" : "If you wish to change your password, enter your current password and the desired new password below, and click \"Update Password\". The change will take effect immediately.", "HELP_UPDATE_PASSWORD" : "If you wish to change your password, enter your current password and the desired new password below, and click \"Update Password\". The change will take effect immediately.",
"INFO_PASSWORD_CHANGED" : "Password changed.", "INFO_PASSWORD_CHANGED" : "Password changed.",
@@ -1093,9 +1093,9 @@
"NAME_INPUT_METHOD_OSK" : "@:CLIENT.NAME_INPUT_METHOD_OSK", "NAME_INPUT_METHOD_OSK" : "@:CLIENT.NAME_INPUT_METHOD_OSK",
"NAME_INPUT_METHOD_TEXT" : "@:CLIENT.NAME_INPUT_METHOD_TEXT", "NAME_INPUT_METHOD_TEXT" : "@:CLIENT.NAME_INPUT_METHOD_TEXT",
"SECTION_HEADER_APPEARANCE" : "Appearance",
"SECTION_HEADER_DEFAULT_INPUT_METHOD" : "Default Input Method", "SECTION_HEADER_DEFAULT_INPUT_METHOD" : "Default Input Method",
"SECTION_HEADER_DEFAULT_MOUSE_MODE" : "Default Mouse Emulation Mode", "SECTION_HEADER_DEFAULT_MOUSE_MODE" : "Default Mouse Emulation Mode",
"SECTION_HEADER_RECENT_CONNECTIONS" : "Recent Connections Preferences",
"SECTION_HEADER_UPDATE_PASSWORD" : "Change Password" "SECTION_HEADER_UPDATE_PASSWORD" : "Change Password"
}, },

View File

@@ -64,6 +64,7 @@
"ACTION_CANCEL" : "@:APP.ACTION_CANCEL", "ACTION_CANCEL" : "@:APP.ACTION_CANCEL",
"ACTION_CLEAR_CLIENT_MESSAGES" : "@:APP.ACTION_CLEAR", "ACTION_CLEAR_CLIENT_MESSAGES" : "@:APP.ACTION_CLEAR",
"ACTION_CLEAR_COMPLETED_TRANSFERS" : "@:APP.ACTION_CLEAR", "ACTION_CLEAR_COMPLETED_TRANSFERS" : "@:APP.ACTION_CLEAR",
"ACTION_SHOW_CLIPBOARD" : "Cliquez pour afficher le contenu du presse-papiers.",
"ACTION_CONTINUE" : "@:APP.ACTION_CONTINUE", "ACTION_CONTINUE" : "@:APP.ACTION_CONTINUE",
"ACTION_DISCONNECT" : "Déconnecter", "ACTION_DISCONNECT" : "Déconnecter",
"ACTION_FULLSCREEN" : "Plein écran", "ACTION_FULLSCREEN" : "Plein écran",
@@ -165,7 +166,6 @@
"TEXT_USER_LEFT" : "{USERNAME} a quitté la connexion.", "TEXT_USER_LEFT" : "{USERNAME} a quitté la connexion.",
"TEXT_RECONNECT_COUNTDOWN" : "Reconnexion dans {REMAINING} {REMAINING, plural, one{seconde} other{secondes}}...", "TEXT_RECONNECT_COUNTDOWN" : "Reconnexion dans {REMAINING} {REMAINING, plural, one{seconde} other{secondes}}...",
"TEXT_FILE_TRANSFER_PROGRESS" : "{PROGRESS} {UNIT, select, b{B} kb{KB} mb{MB} gb{GB} other{}}", "TEXT_FILE_TRANSFER_PROGRESS" : "{PROGRESS} {UNIT, select, b{B} kb{KB} mb{MB} gb{GB} other{}}",
"TEXT_CLIPBOARD_AWAITING_FOCUS" : "Cliquez pour afficher le contenu du presse-papiers...",
"URL_OSK_LAYOUT" : "layouts/fr-fr-azerty.json" "URL_OSK_LAYOUT" : "layouts/fr-fr-azerty.json"
@@ -1045,6 +1045,7 @@
"FIELD_HEADER_TIMEZONE" : "Fuseau horaire:", "FIELD_HEADER_TIMEZONE" : "Fuseau horaire:",
"FIELD_HEADER_USERNAME" : "Identifiant:", "FIELD_HEADER_USERNAME" : "Identifiant:",
"HELP_APPEARANCE" : "Vous pouvez ici activer ou désactiver les connexions récentes sur la page d'accueil de Guacamole, et ajuster le nombre de connexions récentes qui seront affichées.",
"HELP_DEFAULT_INPUT_METHOD" : "La méthode de saisie par défaut détermine comment les événements clavier sont reçus par Guacamole. Modifier ce paramètre peut être nécessaire lors de l'utilisation d'un appareil mobile. Ce paramètre peut être remplacé pour chaque connexion dans le menu de Guacamole.", "HELP_DEFAULT_INPUT_METHOD" : "La méthode de saisie par défaut détermine comment les événements clavier sont reçus par Guacamole. Modifier ce paramètre peut être nécessaire lors de l'utilisation d'un appareil mobile. Ce paramètre peut être remplacé pour chaque connexion dans le menu de Guacamole.",
"HELP_DEFAULT_MOUSE_MODE" : "Le mode d'émulation de la souris par défaut détermine le comportement de la souris distante dans de nouvelles connexions par rapport aux touches. Ce paramètre peut être remplacé pour chaque connexion dans le menu Guacamole.", "HELP_DEFAULT_MOUSE_MODE" : "Le mode d'émulation de la souris par défaut détermine le comportement de la souris distante dans de nouvelles connexions par rapport aux touches. Ce paramètre peut être remplacé pour chaque connexion dans le menu Guacamole.",
"HELP_INPUT_METHOD_NONE" : "@:CLIENT.HELP_INPUT_METHOD_NONE", "HELP_INPUT_METHOD_NONE" : "@:CLIENT.HELP_INPUT_METHOD_NONE",
@@ -1053,7 +1054,6 @@
"HELP_LOCALE" : "Les options ci-dessous sont liées à la localisation de l'utilisateur et auront un impact sur l'affichage de différentes parties de l'interface.", "HELP_LOCALE" : "Les options ci-dessous sont liées à la localisation de l'utilisateur et auront un impact sur l'affichage de différentes parties de l'interface.",
"HELP_MOUSE_MODE_ABSOLUTE" : "@:CLIENT.HELP_MOUSE_MODE_ABSOLUTE", "HELP_MOUSE_MODE_ABSOLUTE" : "@:CLIENT.HELP_MOUSE_MODE_ABSOLUTE",
"HELP_MOUSE_MODE_RELATIVE" : "@:CLIENT.HELP_MOUSE_MODE_RELATIVE", "HELP_MOUSE_MODE_RELATIVE" : "@:CLIENT.HELP_MOUSE_MODE_RELATIVE",
"HELP_RECENT_CONNECTIONS" : "Vous pouvez ici activer ou désactiver les connexions récentes sur la page d'accueil de Guacamole, et ajuster le nombre de connexions récentes qui seront affichées.",
"HELP_UPDATE_PASSWORD" : "Si vous souhaitez changer votre mot de passe, saisissez votre mot de passe actuel ainsi que le nouveau mot de passe souhaité ci-dessous, puis cliquez sur \"Mettre à jour Mot de passe\". Le changement prendra effet immédiatement.", "HELP_UPDATE_PASSWORD" : "Si vous souhaitez changer votre mot de passe, saisissez votre mot de passe actuel ainsi que le nouveau mot de passe souhaité ci-dessous, puis cliquez sur \"Mettre à jour Mot de passe\". Le changement prendra effet immédiatement.",
"INFO_PASSWORD_CHANGED" : "Mot de passe modifié.", "INFO_PASSWORD_CHANGED" : "Mot de passe modifié.",
@@ -1065,7 +1065,6 @@
"SECTION_HEADER_DEFAULT_INPUT_METHOD" : "Méthode de saisie par défaut", "SECTION_HEADER_DEFAULT_INPUT_METHOD" : "Méthode de saisie par défaut",
"SECTION_HEADER_DEFAULT_MOUSE_MODE" : "Mode d'émulation de la souris par défaut", "SECTION_HEADER_DEFAULT_MOUSE_MODE" : "Mode d'émulation de la souris par défaut",
"SECTION_HEADER_RECENT_CONNECTIONS" : "Préférences des connexions récentes",
"SECTION_HEADER_UPDATE_PASSWORD" : "Modifier Mot de passe" "SECTION_HEADER_UPDATE_PASSWORD" : "Modifier Mot de passe"
}, },

View File

@@ -55,6 +55,7 @@
"ACTION_RECONNECT" : "再接続", "ACTION_RECONNECT" : "再接続",
"ACTION_SAVE_FILE" : "@:APP.ACTION_SAVE", "ACTION_SAVE_FILE" : "@:APP.ACTION_SAVE",
"ACTION_SHARE" : "@:APP.ACTION_SHARE", "ACTION_SHARE" : "@:APP.ACTION_SHARE",
"ACTION_SHOW_CLIPBOARD" : "クリックをしてコピー/カットされたテキストが表示されます。",
"ACTION_UPLOAD_FILES" : "ファイルアップロード", "ACTION_UPLOAD_FILES" : "ファイルアップロード",
"DIALOG_HEADER_CONNECTING" : "接続", "DIALOG_HEADER_CONNECTING" : "接続",
@@ -132,8 +133,7 @@
"TEXT_CLIENT_STATUS_DISCONNECTED" : "切断されました。", "TEXT_CLIENT_STATUS_DISCONNECTED" : "切断されました。",
"TEXT_CLIENT_STATUS_UNSTABLE" : "Guacamoleサーバへのネットワーク接続が不安定です。", "TEXT_CLIENT_STATUS_UNSTABLE" : "Guacamoleサーバへのネットワーク接続が不安定です。",
"TEXT_CLIENT_STATUS_WAITING" : "Guacamoleサーバに接続しました。応答を待っています", "TEXT_CLIENT_STATUS_WAITING" : "Guacamoleサーバに接続しました。応答を待っています",
"TEXT_RECONNECT_COUNTDOWN" : "再接続しています... {REMAINING} {REMAINING, plural, one{second} other{seconds}}...", "TEXT_RECONNECT_COUNTDOWN" : "再接続しています... {REMAINING} {REMAINING, plural, one{second} other{seconds}}..."
"TEXT_CLIPBOARD_AWAITING_FOCUS" : "クリックをしてコピー/カットされたテキストが表示されます..."
}, },

View File

@@ -72,6 +72,7 @@
"ACTION_RECONNECT" : "重新连接", "ACTION_RECONNECT" : "重新连接",
"ACTION_SAVE_FILE" : "@:APP.ACTION_SAVE", "ACTION_SAVE_FILE" : "@:APP.ACTION_SAVE",
"ACTION_SHARE" : "@:APP.ACTION_SHARE", "ACTION_SHARE" : "@:APP.ACTION_SHARE",
"ACTION_SHOW_CLIPBOARD" : "点击以查看剪贴板内容。",
"ACTION_UPLOAD_FILES" : "上传文件", "ACTION_UPLOAD_FILES" : "上传文件",
"DIALOG_HEADER_CONNECTING" : "正在连接", "DIALOG_HEADER_CONNECTING" : "正在连接",
@@ -164,7 +165,6 @@
"TEXT_USER_LEFT" : "用户 {USERNAME} 断开了连接。", "TEXT_USER_LEFT" : "用户 {USERNAME} 断开了连接。",
"TEXT_RECONNECT_COUNTDOWN" : "在 {REMAINING} 秒后重连...", "TEXT_RECONNECT_COUNTDOWN" : "在 {REMAINING} 秒后重连...",
"TEXT_FILE_TRANSFER_PROGRESS" : "{PROGRESS} {UNIT, select, b{B} kb{KB} mb{MB} gb{GB} other{}}", "TEXT_FILE_TRANSFER_PROGRESS" : "{PROGRESS} {UNIT, select, b{B} kb{KB} mb{MB} gb{GB} other{}}",
"TEXT_CLIPBOARD_AWAITING_FOCUS" : "点击以查看剪贴板内容...",
"URL_OSK_LAYOUT" : "layouts/en-us-qwerty.json" "URL_OSK_LAYOUT" : "layouts/en-us-qwerty.json"