i18n.patch
sunstone/views/index.erb (revision 89) | ||
---|---|---|
2 | 2 |
<html> |
3 | 3 |
<head> |
4 | 4 |
<title>OpenNebula Sunstone: Cloud Operations Center</title> |
5 |
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
|
|
5 |
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
6 | 6 | |
7 | 7 |
<!-- Vendor Libraries --> |
8 | 8 |
<link rel="stylesheet" type="text/css" href="vendor/dataTables/demo_table_jui.css" /> |
... | ... | |
11 | 11 |
<link rel="stylesheet" type="text/css" href="vendor/jQueryLayout/layout-default-latest.css" /> |
12 | 12 |
<link rel="stylesheet" href="vendor/noVNC/include/plain.css"> |
13 | 13 | |
14 |
<script type="text/javascript" src="vendor/jQuery/jquery-1.4.4.min.js"></script> |
|
14 |
<script type="text/javascript" src="vendor/jQuery/jquery-1.4.4.min.js"></script>
|
|
15 | 15 |
<script type="text/javascript" src="vendor/jGrowl/jquery.jgrowl_minimized.js"></script> |
16 | 16 |
<script type="text/javascript" src="vendor/jQueryUI/jquery-ui-1.8.7.custom.min.js"></script> |
17 | 17 |
<script type="text/javascript" src="vendor/jQueryLayout/jquery.layout.min-1.2.0.js"></script> |
18 | 18 |
<script type="text/javascript" src="vendor/dataTables/jquery.dataTables.min.js"></script> |
19 | 19 |
<script language="javascript" type="text/javascript" src="vendor/flot/jquery.flot.min.js"></script> |
20 |
<script type="text/javascript" src="js/locale.js"></script> |
|
21 |
<!--Languages--> |
|
22 |
<%if settings.config[:lang]%> |
|
23 |
<script type="text/javascript" src="/locale/<%=settings.config[:lang]%>.js"></script> |
|
24 |
<%end%> |
|
25 |
<!--endLanguages--> |
|
20 | 26 | |
21 | 27 |
<!-- End Vendor Libraries --> |
22 | 28 | |
... | ... | |
42 | 48 | |
43 | 49 |
</head> |
44 | 50 |
<body> |
51 | ||
45 | 52 |
<div class="outer-center"> |
46 | 53 |
<div class="inner-center"> |
47 | 54 |
</div> |
sunstone/public/locale/ru.js (revision 89) | ||
---|---|---|
1 |
//Переведено ЗАО «ВИВОСС и ОИ», 2011 |
|
2 | ||
3 |
datatable_lang = "ru_datatable.txt" |
|
4 |
locale={ |
|
5 |
"information":"информация", |
|
6 |
"#VMS":"Кол-во ВМ", |
|
7 |
"+ New Group":"Создать группу", |
|
8 |
"+ New":"Добавить", |
|
9 |
". No disk id or image name specified":". Не указано название образа или № диска", |
|
10 |
"ACL Rules":"Правила контроля доступа", |
|
11 |
"ACL String preview:":"Предпросмотр правила:", |
|
12 |
"ACLs":"Списки контроля", |
|
13 |
"ACPI":"ACPI", |
|
14 |
//"ACTIVE":"", |
|
15 |
"Accept (default)":"Принять (по умолчанию)", |
|
16 |
"Acl create":"Список контроля создан", |
|
17 |
"Acl delete":"Удален список контроля с номером ", |
|
18 |
"Acl":"Список контроля доступа", |
|
19 |
"Add Graphics":"Добавить графические устройства", |
|
20 |
"Add Hypervisor raw options":"Добавить исходные опции гипервизора", |
|
21 |
"Add context variables":"Добавить контекстные переменные", |
|
22 |
"Add custom variables":"Добавить пользовательские переменные", |
|
23 |
"Add disk/image":"Добавить диск/образ", |
|
24 |
"Add disks/images":"Добавить диски/образы", |
|
25 |
"Add inputs":"Добавить устройства ввода", |
|
26 |
"Add lease":"Добавить адрес", |
|
27 |
"Add network":"Добавить сеть", |
|
28 |
"Add placement options":"Добавить опции размещения", |
|
29 |
"Add to group":"Включить в группу", |
|
30 |
"Add":"Добавить", |
|
31 |
"Advanced mode":"Расширенный режим", |
|
32 |
"Affected resources":"Затрагиваемые правилом ресурсы", |
|
33 |
"All":"Все", |
|
34 |
"Allowed operations":"Разрешенные действия", |
|
35 |
"Amount of RAM required for the VM, in Megabytes.":"Объем ОЗУ (в МБ), необходимый для ВМ.", |
|
36 |
"Applies to":"Применено к", |
|
37 |
"ARCH":"Архитектура", |
|
38 |
"Architecture:":"Архитектура:", |
|
39 |
"Arguments for the booting kernel":"Параметры для загрузки ядра", |
|
40 |
"BOOT":"Тип ус-ва загрузки", |
|
41 |
"BRIDGE":"Шлюз", |
|
42 |
"BUS":"Тип шины", |
|
43 |
"Block":"Block", |
|
44 |
"Boolean expression that rules out provisioning hosts from list of machines suitable to run this VM":"Логическое выражение, исключающее элементы из списка узлов, подходящих для запуска данной ВМ", |
|
45 |
"Boot device type":"Тип устройства загрузки", |
|
46 |
"Boot method:":"Метод загрузки:", |
|
47 |
"Boot/OS options":"Загрузка и тип ОС", |
|
48 |
"Boot:":"Загрузка:", |
|
49 |
"Bootloader:":"Загрузчик:", |
|
50 |
"Bridge":"Шлюз", |
|
51 |
"Bus:":"Тип шины:", |
|
52 |
"CD-ROM":"CD-ROM", |
|
53 |
"CLONE":"Образ клонируется", |
|
54 |
"CPU Monitoring information":"Мониторинг ЦП", |
|
55 |
"CPU Use":"Использование ЦП", |
|
56 |
"CPU architecture to virtualization":"Архитектура ЦП для виртуализации", |
|
57 |
"CPU":"ЦП", |
|
58 |
"CPUSPEED":"Тактовая частота ЦП", |
|
59 |
"Cancel":"Отменить", |
|
60 |
"Canvas not supported.":"Canvas не поддерживается.", |
|
61 |
"Capacity options":"Настройки производительности", |
|
62 |
"Capacity":"Производительность", |
|
63 |
"Change group":"Сменить группу", |
|
64 |
"Change owner":"Сменить владельца", |
|
65 |
"Clone this image":"Клонировать образ", |
|
66 |
"Clone:":"Образ клонируется:", |
|
67 |
"Confirmation of action":"Подтверждение действия", |
|
68 |
"Context variable name and value must be filled in":"Поля «Имя переменной» и «Значение» должны быть заполнены", |
|
69 |
"Context":"Контекст", |
|
70 |
"Create ACL":"Создать список контроля", |
|
71 |
"Create VM Template":"Создать шаблон ВМ", |
|
72 |
"Create Virtual Machine":"Создать виртуальную машину", |
|
73 |
"Create Virtual Network":"Создать виртуальную сеть", |
|
74 |
"Create an empty datablock":"Создать пустой блок данных", //!! |
|
75 |
"Create group":"Создать группу", |
|
76 |
"Create host":"Создать узел", |
|
77 |
"Create user":"Создать пользователя", |
|
78 |
"Create":"Создать", |
|
79 |
"Current NICs:":"Текущие контроллеры сет. интерфейса:", |
|
80 |
"Current disks:":"Текущие диски:", |
|
81 |
"Current inputs:":"Текущие УВВ:", |
|
82 |
"Current leases:":"Текущие адреса:", |
|
83 |
"Current variables:":"Текущее значение:", |
|
84 |
"Custom variable name and value must be filled in":"Поля «Имя переменной» и «Значение» должны быть заполнены", |
|
85 |
"Custom variables":"Пользовательские переменные", |
|
86 |
"DESCRIPTION":"Краткое описание", |
|
87 |
"DEV_PREFIX":"Префикс устройства", |
|
88 |
//"DISABLED":"", |
|
89 |
"DISK":"Сведения о диске", |
|
90 |
"DISK_ID":"№ диска", |
|
91 |
"DRIVER":"Драйвер", |
|
92 |
"Dashboard":"Инф. панель", |
|
93 |
"Data:":"Данные:", |
|
94 |
"Datablock":"Блок данных", |
|
95 |
"Default":"По умолчанию", |
|
96 |
"Delete from group":"Исключить из группы", |
|
97 |
"Delete host":"Удалить узел", |
|
98 |
"Delete":"Удалить", |
|
99 |
"Deploy # VMs:":"Кол-во экземпляров ВМ для размещения:", |
|
100 |
"Deploy ID":"№ размещения", |
|
101 |
"Deploy":"Разместить на узле", |
|
102 |
"Description:":"Описание:", |
|
103 |
"Device prefix:":"Префикс устройства:", |
|
104 |
"Device to be mounted as root":"Устройство, монтируемое как корневое", |
|
105 |
"Device to map image disk. If set, it will overwrite the default device mapping":"Устройство для образа диска. Если установлено, то оно перезапищет устройсво картографирования по умолчанию.", |
|
106 |
"Disable":"Отключить", |
|
107 |
"Disallow access to the VM through the specified ports in the TCP protocol":"Запретить доступ к ВМ через указанные порты для TCP протокола", |
|
108 |
"Disallow access to the VM through the specified ports in the UDP protocol":"Запретить доступ к ВМ через указанные порты для UDP протокола", |
|
109 |
"Disk file location path or URL":"Путь расположения файла диска или URL", |
|
110 |
"Disk type":"Тип диска", |
|
111 |
"Disk":"Диск", |
|
112 |
"Disks":"Диски", |
|
113 |
"Do you want to proceed?":"Хотите продолжить?", |
|
114 |
"Driver default":"Драйвер по умолчанию", |
|
115 |
"Driver:":"Драйвер:", |
|
116 |
"Drivers":"Драйверы", |
|
117 |
"Drop":"Сбросить", |
|
118 |
"Dummy":"Заглушка", |
|
119 |
"EC2":"EC2", |
|
120 |
"ERROR":"Сведения об ошибках", |
|
121 |
"Enable":"Включить", |
|
122 |
"Error":"Ошибка", |
|
123 |
"FEATURES":"Особенности", |
|
124 |
//"FIXED":"", |
|
125 |
"FREECPU":"Незадействованный ресурс ЦП", |
|
126 |
"FREEMEMORY":"Свободно ОЗУ", |
|
127 |
"FS type:":"Тип ФС:", |
|
128 |
"FS":"FS", |
|
129 |
"Features":"Особенности", |
|
130 |
"Fields marked with":"Поля помеченные", |
|
131 |
"File":"Файл", |
|
132 |
"Filesystem type for the fs images":"Тип файловой системы для образов ФС", |
|
133 |
"Fixed network":"Фиксированные адреса", |
|
134 |
"Floppy":"Floppy", |
|
135 |
"Fold / Unfold all sections":"Свернуть/развернуть все разделы", |
|
136 |
"Format:":"Формат:", |
|
137 |
"GRAPHICS":"Параметры графического доступа", |
|
138 |
"Get Information":"Получить информацию", |
|
139 |
"Get Pool of my/group\'s resources":"Получить пул доступных мне/группе ресурсов", |
|
140 |
"Get Pool of resources":"Получить пул ресурсов", |
|
141 |
"Graphics type:":"Тип ГУ:", |
|
142 |
"Graphics":"Графические устройства", |
|
143 |
"Group create":"Группа создана", |
|
144 |
"Group delete":"Группа удалена", |
|
145 |
"Group name:":"Название группы:", |
|
146 |
"Group":"Группа пользователей", |
|
147 |
"Groups":"Группы", |
|
148 |
"HOSTNAME":"Название узла", |
|
149 |
"HW address associated with the network interface":"MAC-адрес, связанный с сетевым интерфейсом", |
|
150 |
"HYPERVISOR":"Гипервизор", |
|
151 |
"Hardware that will emulate this network interface. With Xen this is the type attribute of the vif.":"Аппаратное устройствое, которое будет отвечать за эмуляцию сетевого интерфейса. Для Xen это атрибут vif.", |
|
152 |
"Historical monitoring information":"Мониторинг состояния", |
|
153 |
"Hold":"Запретить размещение", |
|
154 |
"Host information":"Состояние узла", |
|
155 |
"Host parameters":"Параметры узла", |
|
156 |
"Host shares":"Ресурсы узла", |
|
157 |
"Host template":"Шаблон узла", |
|
158 |
"Host":"Узел", |
|
159 |
"Hostname":"Название узла", |
|
160 |
"Hosts (total/active)":"Узлы (всего/из них активных)", |
|
161 |
"Hosts CPU":"Загрузка ЦП", |
|
162 |
"Hosts memory":"Загрузка ОЗУ", |
|
163 |
"Hosts":"Узлы", |
|
164 |
"Human readable description of the image for other users.":"Краткое описание образа.", |
|
165 |
"ICMP policy":"Политика ICMP", |
|
166 |
"ID":"№", |
|
167 |
"IDE":"IDE", |
|
168 |
"IM MAD":"Модуль ср-ва мониторинга", |
|
169 |
"IMAGE":"Используемый образ", |
|
170 |
"IMAGE_ID":"№ образа", |
|
171 |
//"INIT":"", |
|
172 |
"IP to listen on":"IP-адрес для прослушивания", |
|
173 |
"IP":"IP-адрес", |
|
174 |
"IP:":"IP:", |
|
175 |
"Icmp:":"Icmp:", |
|
176 |
"Image information":"Информация об образе", |
|
177 |
"Image name:":"Название образа:", |
|
178 |
"Image template":"Шаблон образа", |
|
179 |
"Images (total/public)":"Образы (всего/из них открытых)", |
|
180 |
"Images":"Образы ВМ", |
|
181 |
"Image":"Образ", |
|
182 |
"Info":"Информация", |
|
183 |
"Information Manager:":"Cредство мониторинга:", |
|
184 |
"Information":"Информация", |
|
185 |
"information":" ", |
|
186 |
"Initrd:":"Диск нач. иниц.(initrd):", |
|
187 |
"Inputs":"Устройства ввода", |
|
188 |
"Instantiate":"Создать экземпляр ВМ", |
|
189 |
"KVM":"KVM", |
|
190 |
"Kernel commands:":"Команды ядра:", |
|
191 |
"Kernel:":"Ядро:", |
|
192 |
"Keyboard configuration locale to use in the VNC display":"Раскладка клавиатуры, используемая при работе с VNC-дисплеем", |
|
193 |
"Keymap":"Раскладка клавиатуры", |
|
194 |
"LCM State":"Текущее состояние ВМ", |
|
195 |
"LEASES":"АДРЕСА", |
|
196 |
"LISTEN":"Прослушивать IP", |
|
197 |
"Lease IP:":"IP-адрес:", |
|
198 |
"Lease MAC (opt):":"MAC-адрес (необяз.):", |
|
199 |
"Lease MAC:":"MAC-адрес:", |
|
200 |
"Leases information":"Сведения по имеющимся адресам виртуальной сети", |
|
201 |
"Listen IP:":"Прослушивать IP:", |
|
202 |
"Live migrate":"Перенести запущенную ВМ", |
|
203 |
"Loading":"Идет загрузка", |
|
204 |
"MAC":"MAC-адрес", |
|
205 |
"MAC:":"MAC-адрес:", |
|
206 |
"MEMORY":"Объем ОЗУ", |
|
207 |
"MESSAGE":"Сообщение", |
|
208 |
"MODELNAME":"Модель ЦП", |
|
209 |
//"MONITORED":"", |
|
210 |
//"MONITORING":"", |
|
211 |
"Make non persistent":"Сделать непостоянным", |
|
212 |
"Make persistent":"Сделать постоянным", |
|
213 |
"Manage":"Управлять", |
|
214 |
"Manual":"В ручную", |
|
215 |
"Max Mem":"Доступно ОЗУ", |
|
216 |
"Memory monitoring information":"Мониторинг ОЗУ", |
|
217 |
"Memory use":"Использование ОЗУ", |
|
218 |
"Memory":"Память", |
|
219 |
"Migrate":"Перенести ВМ", |
|
220 |
"Model:":"Модель:", |
|
221 |
"Monitoring information":"Мониторинг", |
|
222 |
"Mount image as read-only":"Монтировать образ только для чтения", |
|
223 |
"Mouse":"Мышь", |
|
224 |
"NAME":"Название", |
|
225 |
"Name for the context variable":"Имя контекстной переменной", |
|
226 |
"Name for the custom variable":"Имя пользовательской переменной", |
|
227 |
"Name for the tun device created for the VM":"Имя сетевого туннеля, созданного для ВМ", |
|
228 |
"Name of a shell script to be executed after creating the tun device for the VM":"shell-скрипт, который будет выполнен после создания сетевого туннеля для ВМ", |
|
229 |
"Name of the bridge the network device is going to be attached to":"Шлюз, с которым будет связано сетевое устройство", |
|
230 |
"Name of the image to use":"Название образа для использования", |
|
231 |
"Name of the network to attach this device":"Сеть, подключаемая к данному устройству", |
|
232 |
"Name that the Image will get. Every image must have a unique name.":"Название, которое получит образ. Каждый образ должен обладать уникальным названием.", |
|
233 |
"Name that the VM will get for description purposes. If NAME is not supplied a name generated by one will be in the form of one-<VID>.":"Название, которое получит ВМ. Если название не будет указано, то оно будет сгенерировано в формате one-<№ ВМ>.", |
|
234 |
"Name":"Название", |
|
235 |
"Net_RX":"Принято", |
|
236 |
"Net_TX":"Отправлено", |
|
237 |
"NETRX":"Принято по сети", |
|
238 |
"NETTX":"Отправлено по сети", |
|
239 |
"NETWORK":"Название вирт. сети", |
|
240 |
"NETWORK_ADDRESS":"Адрес сети", |
|
241 |
"NETWORK_ID":"№ вирт. сети", |
|
242 |
"NETWORK_SIZE":"Размер сети", |
|
243 |
"NIC":"Контроллер сетевого интерфейса", |
|
244 |
"NO":"нет", |
|
245 |
"Network Address:":"Адрес сети:", |
|
246 |
"Network reception":"Сеть: принято", |
|
247 |
"Network size:":"Размер сети:", |
|
248 |
"Network transmission":"Сеть: отправлено", |
|
249 |
"Network type:":"Тип сети:", |
|
250 |
"Network":"Сеть", |
|
251 |
"New: ":"Создать новый ресурс: ", |
|
252 |
"No disks defined":"Дисков не обнаружено", |
|
253 |
"No":"Нет", |
|
254 |
"None":"Никакой", |
|
255 |
"Number of virtual cpus. This value is optional, the default hypervisor behavior is used, usually one virtual CPU.":"Количество виртуальных процессоров. Это значение опционально, используется поведение гипервизора по умолчанию - один виртуальный ЦП.", |
|
256 |
"OK":"OK", |
|
257 |
"OS and Boot options":"Опции загрузки и ОС", |
|
258 |
"OS":"ОС", |
|
259 |
"Open VNC Session":"Открыть VNC-сессию", |
|
260 |
"Optional, please select":"Опционально, пожалуйста выберите", |
|
261 |
"Owned by group":"Принадлежит группе", |
|
262 |
"Owner":"Владелец", |
|
263 |
"PAE:":"PAE:", |
|
264 |
"PATH":"ПУТЬ", |
|
265 |
"PERSISTENT":"Постоянный", |
|
266 |
"PORT":"Номер порта доступа", |
|
267 |
"PS2":"PS/2", |
|
268 |
"Password for the VNC server":"Пароль для VNC сервера", |
|
269 |
"Password:":"Пароль:", |
|
270 |
"Path to the OS kernel to boot the image":"Путь к ядру ОС для загрузки образа", |
|
271 |
"Path to the bootloader executable":"Путь к исполняемому файлу загрузчика", |
|
272 |
"Path to the initrd image":"Путь к образу initrd", |
|
273 |
"Path to the original file that will be copied to the image repository. If not specified for a DATABLOCK type image, an empty image will be created.":"Путь к исходному файлу, который будет скопирован в хранилище образов. Если путь не указан для типа образа БЛОК ДАННЫХ, то будет создан пустой образ.", |
|
274 |
"Path vs. source:":"Исходные данные образа:", |
|
275 |
"Path:":"Путь к эталонному файлу образа:", |
|
276 |
"Percentage of CPU divided by 100 required for the Virtual Machine. Half a processor is written 0.5.":"Процент процессорного времени ЦП, предоставлемого ВМ, разделенный на 100. Например, для выделения половины процессорного времени следует указать 0.5.", |
|
277 |
"Permits access to the VM only through the specified ports in the TCP protocol":"Разрешить доступ к ВМ только через указанные порты протокола TCP", |
|
278 |
"Permits access to the VM only through the specified ports in the UDP protocol":"Разрешить доступ к ВМ только через указанные порты протокола UPD", |
|
279 |
"Persistence of the image":"Если образ является постоянным, то при каждом завершении работы с полученной на его основе виртуальной машиной все изменения будут сохранены в образе.\n\n Важно помнить, что сохранение выполнится только в случае завершения работы соответствующей ВМ при помощи операций «Выключить» и «Отменить».\n\nПостоянный образ всегда хранится в одном экземпляре.", |
|
280 |
"Persistent":"Постоянный", |
|
281 |
"Physical address extension mode allows 32-bit guests to address more than 4 GB of memory":"Режим расширенной физической адресации позволяет использовать 32-битным ВМ больше 4-х ГБ ", |
|
282 |
"Placement":"Размещение", |
|
283 |
"Please choose path if you have a file-based image. Choose source otherwise or create an empty datablock disk.":"«Путь к эталонному файлу образа» — образ создается путем копирования эталонного файла образа в хранилище образов.\n\n«Источник» — в данное поле следует указывать местоположение образа (в качестве образа будет использован ресурс, непосредственно указанный в поле «Источник», а не копия этого ресурса).", |
|
284 |
"Please choose":"Пожалуйста выберите", |
|
285 |
"Please provide a lease IP":"Необходимо указать IP-адрес", |
|
286 |
"Please provide a network address":"Укажите адрес сети", |
|
287 |
"Please provide a resource ID for the resource(s) in this rule":"Необходимо указать № ресурса(ов) для данного правила)", |
|
288 |
"Please select a group to which the selected resources belong to":"Необходимо выбрать группу пользователей, которой принадлежат выбранные ресурсы", |
|
289 |
"Please select at least one operation":"Необходимо выбрать по меньшей мере одну операцию", |
|
290 |
"Please select at least one resource":"Необходимо выбрать по меньшей мере один ресурс", |
|
291 |
"Please select":"Выберите", |
|
292 |
"Please specify to who this ACL applies":"Необходимо указать, к кому применять данный список контроля", |
|
293 |
"Please specify:":"Укажите:", |
|
294 |
"Please, choose and modify the template you want to update:":"Укажите шаблон, который хотите обновить:", |
|
295 |
"Port blacklist":"Список запрещенных портов", |
|
296 |
"Port for the VNC server":"Порт для сервера VNC", |
|
297 |
"Port whitelist":"Список разрешенных портов", |
|
298 |
"Port:":"Порт:", |
|
299 |
"Predefined":"По умолчанию", |
|
300 |
"Prefix for the emulated device this image will be mounted at. For instance, “hd”, “sd”. If omitted, the default value is the one defined in oned.conf (installation default is “hd”).":"Префикс эмулируемого устройства, на которое будет смонтирован образ. Например, «hd» и «sd». Если не указать префикс, его значение будет считано из конфигурационного файла oned.conf (значение по умолчанию — «hd»).", |
|
301 |
"Previous action":"Предыдущее действие", |
|
302 |
"Provide a path":"Указать путь к эталонному файлу образа", |
|
303 |
"Provide a source":"Указать источник для образа", |
|
304 |
"Public scope of the image":"Информация о доступности образа", |
|
305 |
"Public":"Открытый", |
|
306 |
"Publish":"Сделать открытым", |
|
307 |
"Quickstart":"Типовые операции", |
|
308 |
//"RANGED":"" |
|
309 |
"RAW":"RAW", |
|
310 |
"READONLY":"Доступен только на чтение", |
|
311 |
//"READY":"", |
|
312 |
"Ranged network":"Диапазон адресов", |
|
313 |
"Rank:":"Степень:", |
|
314 |
"Raw data to be passed directly to the hypervisor":"Исходные данные, передаваемые напрямую гипервизору", |
|
315 |
"Raw":"Исходная опция", |
|
316 |
"Read only:":"Только чтение:", |
|
317 |
"Refresh list":"Обновить список", |
|
318 |
"Register time":"Время регистрации", |
|
319 |
"Registration time":"Время регистрации", |
|
320 |
"Release":"Разрешить размещение", |
|
321 |
"Remove lease":"Удалить адрес", |
|
322 |
"Remove selected":"Удалить выбранные", |
|
323 |
"Request an specific IP from the Network":"Запросить определенный IP-адрес из сети", |
|
324 |
"Requirements:":"Требования:", |
|
325 |
"Reset":"Сбросить", |
|
326 |
"Resource ID / Owned by":"№ ресурса / Принадлежит", |
|
327 |
"Resource ID:":"№ ресурса:", |
|
328 |
"Resource subset:":"Подмножество ресурсов:", |
|
329 |
"Restart":"Перезапустить", |
|
330 |
"Resubmit":"Разместить повторно", |
|
331 |
"Resume":"Возобновить работу ВМ", |
|
332 |
"Retrieving...":"Извлечение...", |
|
333 |
"Root:":"Корень:", |
|
334 |
"Running VMs":"Запущено ВМ", |
|
335 |
"SAVE":"Сохранение изменений", |
|
336 |
"SCSI":"SCSI", |
|
337 |
"SDL":"SDL", |
|
338 |
"SHARED":"Общий каталог", |
|
339 |
"SOURCE":"Источник", |
|
340 |
"Save as":"Сохранить как", |
|
341 |
"Save this image after shutting down the VM":"Сохранить образ после выключения ВМ", |
|
342 |
"Save:":"Сохранить:", |
|
343 |
"Saveas for VM with ID":"Сохранить как для ВМ с №", |
|
344 |
"Script:":"Скрипт:", |
|
345 |
"Select a template":"Выберите шаблон", |
|
346 |
"Select boot method":"Выберите метод загрузки", |
|
347 |
"Select disk:":"Выберите диск:", |
|
348 |
"Select template:":"Использовать шаблон:", |
|
349 |
"Select the group from which to delete users:":"Выберите группу, из которой требуется исключить пользователей:", |
|
350 |
"Select the new ":"Выбрать новую группу", |
|
351 |
"Select the new group to add users:":"Выберите новую группу, в которую требуется включить пользователей:", |
|
352 |
"Select the new group:":"Выберите новую группу:", |
|
353 |
"Select the new owner:":"Выбрать нового владельца:", |
|
354 |
"Setup Networks":"Настройка сетей", |
|
355 |
"Shutdown":"Выключить", |
|
356 |
"Size in MB":"Размер в МБ", |
|
357 |
"Size of the datablock in MB.":"Размер блока данных в МБ.", |
|
358 |
"Size:":"Размер:", |
|
359 |
"Skipping VM ":"Пропуск ВМ ", |
|
360 |
"Source to be used in the DISK attribute. Useful for not file-based images.":"В качестве источника указывается местоположение образа, который планируется использовать непосредственно.", |
|
361 |
"Source":"Источник", |
|
362 |
"Specific ID":"Ресурс с конкретным №", |
|
363 |
"Specific image mapping driver. KVM: raw, qcow2. Xen:tap:aio:, file:. VMware unsupported":"Формат образа виртуального диска. Для KVM: raw, qcow2. Для Xen: tap:aio:, file:. Форматы VMware не поддерживаются", |
|
364 |
"Start Time":"Время запуска", |
|
365 |
"Start time":"Время запуска", |
|
366 |
"State":"Состояние", |
|
367 |
"Status":"Статус", |
|
368 |
"Stop":"Остановить", |
|
369 |
"Submitted":"Выполнено", |
|
370 |
"Summary of resources":"Использование ресурсов", |
|
371 |
"Suspend":"Приостановить работу ВМ", |
|
372 |
"Swap":"Swap", |
|
373 |
"TARGET":"Ус-во загрузки", |
|
374 |
"TEMPLATE_ID":"№ шаблона ВМ", |
|
375 |
"TM MAD":"Модуль ср-ва передачи", |
|
376 |
"TYPE":"Тип", |
|
377 |
"Tablet":"Планшетный ПК", |
|
378 |
"Target:":"Ус-во загрузки:", |
|
379 |
"Tcp black ports:":"Запрещенные TCP-порты:", |
|
380 |
"Tcp firewall mode:":"TCP режим брандмауэра:", |
|
381 |
"Tcp white ports:":"Разрешенные TCP-порты:", |
|
382 |
"Template information":"Сведения о шаблоне", |
|
383 |
"Template updated correctly":"Шаблон успешно обновлен", |
|
384 |
"Template":"Шаблон", |
|
385 |
"Templates":"Шаблоны ВМ", |
|
386 |
"There are mandatory fields missing in the OS Boot options section":"В разделе «Загрузка и тип ОС» не заполнены некоторые обязательные поля", |
|
387 |
"There are mandatory fields missing in the capacity section":"В разделе «Производительность» не заполнены некоторые обязательные поля", |
|
388 |
"There are mandatory parameters missing in this section":"В данном разделе указаны не все обязательные параметры", |
|
389 |
"There are mandatory parameters missing":"Указаны не все обязательные параметры", |
|
390 |
"This field sets which attribute will be used to sort the suitable hosts for this VM. Basically, it defines which hosts are more suitable than others":"В данном поле устанавливается значение атрибута, используемое для ранжирования узлов, пригодных для размещения ВМ. Значение атрибута определяет, какие из узлов лучше подходят для размещения ВМ.", |
|
391 |
"This rule applies to:":"Прим. правило к:", |
|
392 |
"This will cancel selected VMs":"Прервать работу выбранных ВМ", |
|
393 |
"This will change the main group of the selected users. Select the new group:":"Изменение основной группы для выбранных пользователей. Выберите новую группу:", |
|
394 |
"This will delete the selected VMs from the database":"Удалить выбранные ВМ и связанные с ними образы дисков из базы данных и хранилища образов", |
|
395 |
"This will deploy the selected VMs on the chosen host":"Разместить выбранные ВМ на определенном узле", |
|
396 |
"This will hold selected pending VMs from being deployed":"Приостановить процедуру размещения ВМ на узле", |
|
397 |
"This will initiate the shutdown process in the selected VMs":"Запустить процесс выключения выбранных ВМ", |
|
398 |
"This will live-migrate the selected VMs to the chosen host":"Перенести выбранные запущенные ВМ, не завершая их работы, с текущих узлов на выбранный", |
|
399 |
"This will migrate the selected VMs to the chosen host":"Перенести выбранные остановленные ВМ с текущих узлов на выбранный", |
|
400 |
"This will redeploy selected VMs (in UNKNOWN or BOOT state)":"Повторно выполнить процедуру размещения выбранных ВМ, находящихся в состоянии UNKNOWN или BOOT, на узле", |
|
401 |
"This will release held machines":"Продолжить ранее приостановленное размещение ВМ на узле", |
|
402 |
"This will resubmits VMs to PENDING state":"Повторно выполнить попытку размещения выбранных ВМ на одном из доступных узлов системы виртуализации (перевод в состояние PENDING)", |
|
403 |
"This will resume selected stopped or suspended VMs":"Возобновить работу выбранных остановленных или приостановленных ВМ", |
|
404 |
"This will stop selected VMs":"Остановить выбранные ВМ", |
|
405 |
"This will suspend selected machines":"Приостановить выбранные ВМ", |
|
406 |
"TIMESTAMP":"Время", |
|
407 |
"TOTALCPU":"Ресурс ЦП", |
|
408 |
"TOTALMEMORY":"Объем ОЗУ", |
|
409 |
"Total Leases":"Суммарное количество адресов", |
|
410 |
"Total VM count":"Количество виртуальных машин", |
|
411 |
"Transfer Manager:":"Средство передачи:", |
|
412 |
"Type of disk device to emulate.":"Тип эмулируемого дискового устройства", |
|
413 |
"Type of disk device to emulate: ide, scsi":"Тип эмулируемого дискового устройства: ide, scsi", |
|
414 |
"Type of file system to be built. This can be any value understood by mkfs unix command.":"Тип создаваемой ФС. Может быть указан любой тип, который используется в unix-команде mkfs.", |
|
415 |
"Type of the image, explained in detail in the following section. If omitted, the default value is the one defined in oned.conf (install default is OS).":"Тип. Если не указать тип образа, его значение будет считано из конфигурационного файла oned.conf (значение по умолчанию — «OS»).", |
|
416 |
"Type":"Тип", |
|
417 |
"USB":"USB", |
|
418 |
//"USED":"", |
|
419 |
"USEDCPU":"Использование ресурса ЦП", |
|
420 |
"USEDMEMORY":"Используемый объем ОЗУ", |
|
421 |
"USED_BY":"Экземпляров в использовании", |
|
422 |
"Udp black ports:":"Запрещенные UPD-порты:", |
|
423 |
"Udp firewall mode:":"UPD режим брандмауэра:", |
|
424 |
"Udp white ports:":"Разрешенные UPD-порты:", |
|
425 |
"Unpublish":"Отменить статус «Открытый»", |
|
426 |
"Update a template":"Обновить шаблон", |
|
427 |
"Update template":"Обновить шаблон", |
|
428 |
"Update":"Обновить", |
|
429 |
"Use":"Использовать", |
|
430 |
"Used CPU (allocated)":"Использовано ОЗУ(реально)", |
|
431 |
"Used CPU (real)":"Использовано ЦП(реально)", |
|
432 |
"Used CPU":"Используется ЦП", |
|
433 |
"Used Mem (allocated)":"Использовано ОЗУ(выделено)", |
|
434 |
"Used Mem (real)":"Использовано ОЗУ(реально)", |
|
435 |
"Used Memory":"Используется памяти", |
|
436 |
"Useful for power management, for example, normally required for graceful shutdown to work":"Требуется для корректного завершения работы ВМ средствами системы виртуализации", |
|
437 |
"User chgrp":"Изменение группы", |
|
438 |
"User create":"Пользователь создан", |
|
439 |
"User delete":"Пользователь удален", |
|
440 |
"User name and password must be filled in":"Необходимо указать и имя пользователя, и пароль", |
|
441 |
"User":"Пользователь", |
|
442 |
"Username:":"Имя пользователя:", |
|
443 |
"Users":"Пользователи", |
|
444 |
"VCPU":"Кол-во вирт. ЦП", |
|
445 |
"VCPU:":"Кол-во вирт. ЦП:", |
|
446 |
"VID":"№ ВМ", |
|
447 |
"VM Instance":"Экземпляр ВМ", |
|
448 |
"VM Instances (":"Экземпляры ВМ (", |
|
449 |
"VM MAD":"Модуль ср-ва виртуализации", |
|
450 |
"VM Name:":"Название ВМ:", |
|
451 |
"VM Network stats":"Статистика виртуальных сетей", |
|
452 |
"VM Save As":"ВМ сохранить как", |
|
453 |
"VM Template":"Шаблон ВМ", |
|
454 |
"VM Templates (total/public)":"Шаблоны ВМ (всего/из них открытых)", |
|
455 |
"VM Templates":"Шаблоны ВМ", |
|
456 |
"VM information":"Информация о ВМ", |
|
457 |
"VM log":"Журнал ВМ", |
|
458 |
"VM template":"Шаблон ВМ", |
|
459 |
"VM":"ВМ", |
|
460 |
"VMID":"№ ВМ", |
|
461 |
"VNC Access":"Доступ по VNC", |
|
462 |
"VNC Disabled":"VNC недоступно", |
|
463 |
"VNC Session":"VNC сессия", |
|
464 |
"VNC connection":"VNC соединение", |
|
465 |
"VNC":"VNC", |
|
466 |
"Value of the context variable":"Значение контекстной переменной", |
|
467 |
"Value of the custom variable":"Значение пользовательской перменной", |
|
468 |
"Value:":"Значение:", |
|
469 |
"Virtio (KVM)":"Virtio (KVM)", |
|
470 |
"Virtio":"Virtio", |
|
471 |
"Virtual Machine information":"Информация о виртуальной машине", |
|
472 |
"Virtual Machines":"Вирт. машины", |
|
473 |
"Virtual Network name missing!":"Отсутствует название виртуальной сети!", |
|
474 |
"Virtual Network template":"Шаблон виртуальной сети", |
|
475 |
"Virtual Networks (total/public)":"Виртуальные сети (всего/из них открытых)", |
|
476 |
"Virtual Networks":"Вирт. сети", |
|
477 |
"Virtual Network":"Виртуальная сеть", |
|
478 |
"Virtual Network information":"Информация о виртуальной сети", |
|
479 |
"Virtual network information":"Информация о виртуальной сети", |
|
480 |
"Virtual network template":"Шаблон виртуальной сети", |
|
481 |
"Virtualization Manager:":"Средство виртуализации:", |
|
482 |
"Wizard KVM":"Шаблон KVM", |
|
483 |
"Wizard VMware":"Шаблон VMware", |
|
484 |
"Wizard XEN":"Шаблон XEN", |
|
485 |
"Wizard":"Мастер настройки", |
|
486 |
"Write the Virtual Machine template here":"Отредактируйте параметры шаблона ВМ вручную", |
|
487 |
"Write the Virtual Network template here":"Отредактируйте параметры шаблона вирт. сети вручную", |
|
488 |
"Write the image template here":"Отредактируйте параметры шаблона образа ВМ вручную", |
|
489 |
"XEN":"XEN", |
|
490 |
"Xen templates must specify a boot method":"В шаблон Xen необходимо указывать метод загрузки", |
|
491 |
"YES":"да", |
|
492 |
"Yes":"Да", |
|
493 |
"You have not selected a template":"Вы не выбрали шаблон", |
|
494 |
"You have to confirm this action.":"Необходимо подтвердить данную операцию.", |
|
495 |
"You need to select something.":"Вы должны что-нибудь выбрать.", |
|
496 |
"active":"активных", |
|
497 |
"are mandatory":"обязательные", |
|
498 |
"cdrom":"cdrom", |
|
499 |
"cpu_usage":"использование", |
|
500 |
"disk id :":"диск №: ", |
|
501 |
"error":"ошибок", |
|
502 |
"failed":"дефектных", |
|
503 |
"fd":"fd", |
|
504 |
"hd":"hd", |
|
505 |
"id":"№", |
|
506 |
"max_cpu":"максимально", |
|
507 |
"max_mem":"максимально", |
|
508 |
"mem_usage":"использование", |
|
509 |
"net_rx":"принято", |
|
510 |
"net_tx":"отправлено", |
|
511 |
"network":"network", |
|
512 |
"no":"никак нет", |
|
513 |
"running":"запущенных", |
|
514 |
"total":"всего", |
|
515 |
"used_cpu":"использовано", |
|
516 |
"used_mem":"использовано", |
|
517 |
"yes":"да" |
|
518 |
}; |
sunstone/public/locale/ru_datatable.txt (revision 89) | ||
---|---|---|
1 |
{ |
|
2 |
"sProcessing": "Ждите. Выполняется обработка...", |
|
3 |
"sLengthMenu": "Показывать _MENU_ элементов списка", |
|
4 |
"sZeroRecords": "Список пуст", |
|
5 |
"sInfo": "Показаны элементы списка с _START_ по _END_ из _TOTAL_", |
|
6 |
"sInfoEmpty": "Список пуст", |
|
7 |
"sInfoFiltered": "(отфильтровано из _MAX_ элементов списка)", |
|
8 |
"sInfoPostFix": "", |
|
9 |
"sSearch": "Поиск:", |
|
10 |
"sUrl": "", |
|
11 |
"oPaginate": { |
|
12 |
"sFirst": "Первая", |
|
13 |
"sPrevious": "Предыдущая", |
|
14 |
"sNext": "Следующая", |
|
15 |
"sLast": "Последняя" |
|
16 |
} |
|
17 |
} |
sunstone/public/js/plugins/hosts-tab.js (revision 89) | ||
---|---|---|
19 | 19 |
var HOST_HISTORY_LENGTH = 40; |
20 | 20 |
var host_graphs = [ |
21 | 21 |
{ |
22 |
title : "CPU Monitoring information",
|
|
22 |
title : tr("CPU Monitoring information"),
|
|
23 | 23 |
monitor_resources : "cpu_usage,used_cpu,max_cpu", |
24 | 24 |
humanize_figures : false, |
25 | 25 |
history_length : HOST_HISTORY_LENGTH |
26 | 26 |
}, |
27 | 27 |
{ |
28 |
title: "Memory monitoring information",
|
|
28 |
title: tr("Memory monitoring information"),
|
|
29 | 29 |
monitor_resources : "mem_usage,used_mem,max_mem", |
30 | 30 |
humanize_figures : true, |
31 | 31 |
history_length : HOST_HISTORY_LENGTH |
... | ... | |
40 | 40 |
<table id="datatable_hosts" class="display">\ |
41 | 41 |
<thead>\ |
42 | 42 |
<tr>\ |
43 |
<th class="check"><input type="checkbox" class="check_all" value="">All</input></th>\
|
|
44 |
<th>ID</th>\
|
|
45 |
<th>Name</th>\
|
|
46 |
<th>Running VMs</th>\
|
|
47 |
<th>CPU Use</th>\
|
|
48 |
<th>Memory use</th>\
|
|
49 |
<th>Status</th>\
|
|
43 |
<th class="check"><input type="checkbox" class="check_all" value="">' + tr('All') + '</input></th>\
|
|
44 |
<th>' + tr('id') + '</th>\
|
|
45 |
<th>' + tr('Name') + '</th>\
|
|
46 |
<th>' + tr('Running VMs') + '</th>\
|
|
47 |
<th>' + tr('CPU Use') + '</th>\
|
|
48 |
<th>' + tr('Memory use') + '</th>\
|
|
49 |
<th>' + tr('Status') + '</th>\
|
|
50 | 50 |
</tr>\ |
51 | 51 |
</thead>\ |
52 | 52 |
<tbody id="tbodyhosts">\ |
... | ... | |
57 | 57 |
var create_host_tmpl = |
58 | 58 |
'<div class="create_form"><form id="create_host_form" action="">\ |
59 | 59 |
<fieldset>\ |
60 |
<legend style="display:none;">Host parameters</legend>\
|
|
61 |
<label for="name">Name: </label><input type="text" name="name" id="name" />\
|
|
60 |
<legend style="display:none;">' + tr('Host parameters') + '</legend>\
|
|
61 |
<label for="name">' + tr('Name') + ':</label><input type="text" name="name" id="name" />\
|
|
62 | 62 |
</fieldset>\ |
63 |
<h3>Drivers</h3>\
|
|
63 |
<h3>' + tr('Drivers') + '</h3>\
|
|
64 | 64 |
<fieldset>\ |
65 | 65 |
<div class="manager clear" id="vmm_mads">\ |
66 |
<label>Virtualization Manager:</label>\
|
|
66 |
<label>' + tr('Virtualization Manager:') + '</label>\
|
|
67 | 67 |
<select id="vmm_mad" name="vmm">\ |
68 |
<option value="vmm_kvm">KVM</option>\
|
|
69 |
<option value="vmm_xen">XEN</option>\
|
|
70 |
<option value="vmm_ec2">EC2</option>\
|
|
71 |
<option value="vmm_dummy">Dummy</option>\
|
|
68 |
<option value="vmm_kvm">' + tr('KVM') + '</option>\
|
|
69 |
<option value="vmm_xen">' + tr('XEN') + '</option>\
|
|
70 |
<option value="vmm_ec2">' + tr('EC2') + '</option>\
|
|
71 |
<option value="vmm_dummy">' + tr('Dummy') + '</option>\
|
|
72 | 72 |
</select>\ |
73 | 73 |
</div>\ |
74 | 74 |
<div class="manager clear" id="im_mads">\ |
75 |
<label>Information Manager:</label>\
|
|
75 |
<label>' + tr('Information Manager:') + '</label>\
|
|
76 | 76 |
<select id="im_mad" name="im">\ |
77 |
<option value="im_kvm">KVM</option>\
|
|
78 |
<option value="im_xen">XEN</option>\
|
|
79 |
<option value="im_ec2">EC2</option>\
|
|
80 |
<option value="im_dummy">Dummy</option>\
|
|
77 |
<option value="im_kvm">' + tr('KVM') + '</option>\
|
|
78 |
<option value="im_xen">' + tr('XEN') + '</option>\
|
|
79 |
<option value="im_ec2">' + tr('EC2') + '</option>\
|
|
80 |
<option value="im_dummy">' + tr('Dummy') + '</option>\
|
|
81 | 81 |
</select>\ |
82 | 82 |
</div>\ |
83 | 83 |
<div class="manager clear" id="tm_mads">\ |
84 |
<label>Transfer Manager:</label>\
|
|
84 |
<label>' + tr('Transfer Manager:') + '</label>\
|
|
85 | 85 |
<select id="tm_mad" name="tm">\ |
86 |
<option value="tm_shared">SHARED</option>\
|
|
87 |
<option value="tm_ssh">SSH</option>\
|
|
88 |
<option value="tm_dummy">Dummy</option>\
|
|
86 |
<option value="tm_shared">' + tr('SHARED') + '</option>\
|
|
87 |
<option value="tm_ssh">' + tr('SSH') + '</option>\
|
|
88 |
<option value="tm_dummy">' + tr('Dummy') + '</option>\
|
|
89 | 89 |
</select>\ |
90 | 90 |
</div>\ |
91 | 91 |
</fieldset>\ |
92 | 92 |
<fieldset>\ |
93 | 93 |
<div class="form_buttons">\ |
94 |
<div><button class="button" id="create_host_submit" value="OpenNebula.Host.create">Create</button>\
|
|
95 |
<button class="button" type="reset" value="reset">Reset</button></div>\
|
|
94 |
<div><button class="button" id="create_host_submit" value="OpenNebula.Host.create">' + tr('Create') + '</button>\
|
|
95 |
<button class="button" type="reset" value="reset">' + tr('Reset') + '</button></div>\
|
|
96 | 96 |
</div>\ |
97 | 97 |
</fieldset>\ |
98 | 98 |
</form></div>'; |
... | ... | |
233 | 233 |
type: "single", |
234 | 234 |
call: OpenNebula.Host.update, |
235 | 235 |
callback: function() { |
236 |
notifyMessage("Template updated correctly");
|
|
236 |
notifyMessage(tr("Template updated correctly"));
|
|
237 | 237 |
}, |
238 | 238 |
error: onError |
239 | 239 |
} |
... | ... | |
242 | 242 |
var host_buttons = { |
243 | 243 |
"Host.refresh" : { |
244 | 244 |
type: "image", |
245 |
text: "Refresh list",
|
|
245 |
text: tr("Refresh list"),
|
|
246 | 246 |
img: "images/Refresh-icon.png" |
247 | 247 |
}, |
248 | 248 |
"Host.create_dialog" : { |
249 | 249 |
type: "create_dialog", |
250 |
text: "+ New"
|
|
250 |
text: tr("+ New")
|
|
251 | 251 |
}, |
252 | 252 |
"Host.update_dialog" : { |
253 | 253 |
type: "action", |
254 |
text: "Update a template",
|
|
254 |
text: tr("Update a template"),
|
|
255 | 255 |
alwaysActive: true |
256 | 256 |
}, |
257 | 257 |
"Host.enable" : { |
258 | 258 |
type: "action", |
259 |
text: "Enable"
|
|
259 |
text: tr("Enable")
|
|
260 | 260 |
}, |
261 | 261 |
"Host.disable" : { |
262 | 262 |
type: "action", |
263 |
text: "Disable"
|
|
263 |
text: tr("Disable")
|
|
264 | 264 |
}, |
265 | 265 |
"Host.delete" : { |
266 | 266 |
type: "action", |
267 |
text: "Delete host"
|
|
267 |
text: tr("Delete host")
|
|
268 | 268 |
} |
269 | 269 |
}; |
270 | 270 | |
271 | 271 |
var host_info_panel = { |
272 | 272 |
"host_info_tab" : { |
273 |
title: "Host information",
|
|
273 |
title: tr("Host information"),
|
|
274 | 274 |
content:"" |
275 | 275 |
}, |
276 | 276 | |
277 | 277 |
"host_template_tab" : { |
278 |
title: "Host template",
|
|
278 |
title: tr("Host template"),
|
|
279 | 279 |
content: "" |
280 | 280 |
}, |
281 | 281 |
"host_monitoring_tab": { |
282 |
title: "Monitoring information",
|
|
282 |
title: tr("Monitoring information"),
|
|
283 | 283 |
content: "" |
284 | 284 |
} |
285 | 285 |
}; |
286 | 286 | |
287 | 287 | |
288 | 288 |
var hosts_tab = { |
289 |
title: 'Hosts',
|
|
289 |
title: tr('Hosts'),
|
|
290 | 290 |
content: hosts_tab_content, |
291 | 291 |
buttons: host_buttons |
292 | 292 |
} |
... | ... | |
420 | 420 | |
421 | 421 |
//Information tab |
422 | 422 |
var info_tab = { |
423 |
title : "Host information",
|
|
423 |
title : tr("Host information"),
|
|
424 | 424 |
content : |
425 | 425 |
'<table id="info_host_table" class="info_table">\ |
426 | 426 |
<thead>\ |
427 |
<tr><th colspan="2">Host information - '+host_info.NAME+'</th></tr>\
|
|
427 |
<tr><th colspan="2">' + tr('Host information') + ' - '+host_info.NAME+'</th></tr>\
|
|
428 | 428 |
</thead>\ |
429 | 429 |
<tbody>\ |
430 | 430 |
<tr>\ |
431 |
<td class="key_td">ID</td>\
|
|
431 |
<td class="key_td">' + tr('id') + '</td>\
|
|
432 | 432 |
<td class="value_td">'+host_info.ID+'</td>\ |
433 | 433 |
</tr>\ |
434 | 434 |
<tr>\ |
435 |
<td class="key_td">State</td>\
|
|
436 |
<td class="value_td">'+OpenNebula.Helper.resource_state("host",host_info.STATE)+'</td>\
|
|
435 |
<td class="key_td">' + tr('State') + '</td>\
|
|
436 |
<td class="value_td">'+tr(OpenNebula.Helper.resource_state("host",host_info.STATE))+'</td>\
|
|
437 | 437 |
</tr>\ |
438 | 438 |
<tr>\ |
439 |
<td class="key_td">IM MAD</td>\
|
|
439 |
<td class="key_td">' + tr('IM MAD') + '</td>\
|
|
440 | 440 |
<td class="value_td">'+host_info.IM_MAD+'</td>\ |
441 | 441 |
</tr>\ |
442 | 442 |
<tr>\ |
443 |
<td class="key_td">VM MAD</td>\
|
|
443 |
<td class="key_td">' + tr('VM MAD') + '</td>\
|
|
444 | 444 |
<td class="value_td">'+host_info.VM_MAD+'</td>\ |
445 | 445 |
</tr>\ |
446 | 446 |
<tr>\ |
447 |
<td class="key_td">TM MAD</td>\
|
|
447 |
<td class="key_td">' + tr('TM MAD') + '</td>\
|
|
448 | 448 |
<td class="value_td">'+host_info.TM_MAD+'</td>\ |
449 | 449 |
</tr>\ |
450 | 450 |
</tbody>\ |
451 | 451 |
</table>\ |
452 | 452 |
<table id="host_shares_table" class="info_table">\ |
453 | 453 |
<thead>\ |
454 |
<tr><th colspan="2">Host shares</th></tr>\
|
|
454 |
<tr><th colspan="2">' + tr('Host shares') + '</th></tr>\
|
|
455 | 455 |
</thead>\ |
456 | 456 |
<tbody>\ |
457 | 457 |
<tr>\ |
458 |
<td class="key_td">Max Mem</td>\
|
|
458 |
<td class="key_td">' + tr('Max Mem') + '</td>\
|
|
459 | 459 |
<td class="value_td">'+humanize_size(host_info.HOST_SHARE.MAX_MEM)+'</td>\ |
460 | 460 |
</tr>\ |
461 | 461 |
<tr>\ |
462 |
<td class="key_td">Used Mem (real)</td>\
|
|
462 |
<td class="key_td">' + tr('Used Mem (real)') + '</td>\
|
|
463 | 463 |
<td class="value_td">'+humanize_size(host_info.HOST_SHARE.USED_MEM)+'</td>\ |
464 | 464 |
</tr>\ |
465 | 465 |
<tr>\ |
466 |
<td class="key_td">Used Mem (allocated)</td>\
|
|
466 |
<td class="key_td">' + tr('Used Mem (allocated)') + '</td>\
|
|
467 | 467 |
<td class="value_td">'+humanize_size(host_info.HOST_SHARE.MAX_USAGE)+'</td>\ |
468 | 468 |
</tr>\ |
469 | 469 |
<tr>\ |
470 |
<td class="key_td">Used CPU (real)</td>\
|
|
470 |
<td class="key_td">' + tr('Used CPU (real)') + '</td>\
|
|
471 | 471 |
<td class="value_td">'+host_info.HOST_SHARE.USED_CPU+'</td>\ |
472 | 472 |
</tr>\ |
473 | 473 |
<tr>\ |
474 |
<td class="key_td">Used CPU (allocated)</td>\
|
|
474 |
<td class="key_td">' + tr('Used CPU (allocated)') + '</td>\
|
|
475 | 475 |
<td class="value_td">'+host_info.HOST_SHARE.CPU_USAGE+'</td>\ |
476 | 476 |
</tr>\ |
477 | 477 |
<tr>\ |
478 |
<td class="key_td">Running VMs</td>\
|
|
478 |
<td class="key_td">' + tr('Running VMs') + '</td>\
|
|
479 | 479 |
<td class="value_td">'+host_info.HOST_SHARE.RUNNING_VMS+'</td>\ |
480 | 480 |
</tr>\ |
481 | 481 |
</tbody>\ |
... | ... | |
484 | 484 | |
485 | 485 |
//Template tab |
486 | 486 |
var template_tab = { |
487 |
title : "Host template",
|
|
487 |
title : tr("Host template"),
|
|
488 | 488 |
content : |
489 | 489 |
'<table id="host_template_table" class="info_table" style="width:80%">\ |
490 |
<thead><tr><th colspan="2">Host template</th></tr></thead>'+
|
|
490 |
<thead><tr><th colspan="2">' + tr('Host template') + '</th></tr></thead>'+
|
|
491 | 491 |
prettyPrintJSON(host_info.TEMPLATE)+ |
492 | 492 |
'</table>' |
493 | 493 |
} |
494 | 494 | |
495 | 495 |
var monitor_tab = { |
496 |
title: "Monitoring information",
|
|
496 |
title: tr("Monitoring information"),
|
|
497 | 497 |
content : generateMonitoringDivs(host_graphs,"host_monitor_") |
498 | 498 |
} |
499 | 499 | |
... | ... | |
513 | 513 | |
514 | 514 |
//Prepares the host creation dialog |
515 | 515 |
function setupCreateHostDialog(){ |
516 |
dialogs_context.append('<div title="Create host" id="create_host_dialog"></div>');
|
|
516 |
dialogs_context.append('<div title=\"'+tr("Create host")+'\" id="create_host_dialog"></div>');
|
|
517 | 517 |
$create_host_dialog = $('div#create_host_dialog'); |
518 | 518 |
var dialog = $create_host_dialog; |
519 | 519 | |
... | ... | |
529 | 529 |
//Handle the form submission |
530 | 530 |
$('#create_host_form',dialog).submit(function(){ |
531 | 531 |
if (!($('#name',this).val().length)){ |
532 |
notifyError("Host name missing!");
|
|
532 |
notifyError(tr("Host name missing!"));
|
|
533 | 533 |
return false; |
534 | 534 |
} |
535 | 535 |
var host_json = { |
... | ... | |
596 | 596 |
{ "sWidth": "35px", "aTargets": [1] }, |
597 | 597 |
{ "sWidth": "100px", "aTargets": [6] }, |
598 | 598 |
{ "sWidth": "200px", "aTargets": [4,5] } |
599 |
] |
|
599 |
], |
|
600 |
"oLanguage": (datatable_lang != "") ? |
|
601 |
{ |
|
602 |
"sUrl": "/locale/"+datatable_lang |
|
603 |
} : "" |
|
600 | 604 |
}); |
601 | 605 | |
602 | 606 |
//preload it |
sunstone/public/js/plugins/users-tab.js (revision 89) | ||
---|---|---|
26 | 26 |
<table id="datatable_users" class="display">\ |
27 | 27 |
<thead>\ |
28 | 28 |
<tr>\ |
29 |
<th class="check"><input type="checkbox" class="check_all" value="">All</input></th>\
|
|
30 |
<th>ID</th>\
|
|
31 |
<th>Name</th>\
|
|
32 |
<th>Group</th>\
|
|
29 |
<th class="check"><input type="checkbox" class="check_all" value="">'+tr("All")+'</input></th>\
|
|
30 |
<th>'+tr("ID")+'</th>\
|
|
31 |
<th>'+tr("Name")+'</th>\
|
|
32 |
<th>'+tr("Group")+'</th>\
|
|
33 | 33 |
</tr>\ |
34 | 34 |
</thead>\ |
35 | 35 |
<tbody id="tbodyusers">\ |
... | ... | |
41 | 41 |
'<form id="create_user_form" action="">\ |
42 | 42 |
<fieldset>\ |
43 | 43 |
<div>\ |
44 |
<label for="username">Username:</label>\
|
|
44 |
<label for="username">'+tr("Username:")+'</label>\
|
|
45 | 45 |
<input type="text" name="username" id="username" /><br />\ |
46 |
<label for="pass">Password:</label>\
|
|
46 |
<label for="pass">'+tr("Password:")+'</label>\
|
|
47 | 47 |
<input type="password" name="pass" id="pass" />\ |
48 | 48 |
</div>\ |
49 | 49 |
</fieldset>\ |
50 | 50 |
<fieldset>\ |
51 | 51 |
<div class="form_buttons">\ |
52 |
<button class="button" id="create_user_submit" value="user/create">Create</button>\
|
|
53 |
<button class="button" type="reset" value="reset">Reset</button>\
|
|
52 |
<button class="button" id="create_user_submit" value="user/create">'+tr("Create")+'</button>\
|
|
53 |
<button class="button" type="reset" value="reset">'+tr("Reset")+'</button>\
|
|
54 | 54 |
</div>\ |
55 | 55 |
</fieldset>\ |
56 | 56 |
</form>'; |
... | ... | |
148 | 148 |
var user_buttons = { |
149 | 149 |
"User.refresh" : { |
150 | 150 |
type: "image", |
151 |
text: "Refresh list",
|
|
151 |
text: tr("Refresh list"),
|
|
152 | 152 |
img: "images/Refresh-icon.png" |
153 | 153 |
}, |
154 | 154 |
"User.create_dialog" : { |
155 | 155 |
type: "create_dialog", |
156 |
text: "+ New"
|
|
156 |
text: tr("+ New")
|
|
157 | 157 |
}, |
158 | 158 |
"User.chgrp" : { |
159 | 159 |
type: "confirm_with_select", |
160 |
text: "Change group",
|
|
160 |
text: tr("Change group"),
|
|
161 | 161 |
select: groups_sel, |
162 |
tip: "This will change the main group of the selected users. Select the new group:"
|
|
162 |
tip: tr("This will change the main group of the selected users. Select the new group:")
|
|
163 | 163 |
}, |
164 | 164 |
// "User.addgroup" : { |
165 | 165 |
// type: "confirm_with_select", |
166 |
// text: "Add to group",
|
|
166 |
// text: tr("Add to group"),
|
|
167 | 167 |
// select: function(){ return groups_select; }, |
168 |
// tip: "Select the new group to add users:",
|
|
168 |
// tip: tr("Select the new group to add users:"),
|
|
169 | 169 |
// condition: True |
170 | 170 |
// }, |
171 | 171 |
// "User.delgroup" : { |
172 | 172 |
// type: "confirm_with_select", |
173 |
// text: "Delete from group",
|
|
173 |
// text: tr("Delete from group"),
|
|
174 | 174 |
// select: function(){ return groups_select; }, |
175 | 175 |
// tip: "Select the group from which to delete users:", |
176 | 176 |
// condition: True |
177 | 177 |
// }, |
178 | 178 |
"User.delete" : { |
179 | 179 |
type: "action", |
180 |
text: "Delete"
|
|
180 |
text: tr("Delete")
|
|
181 | 181 |
} |
182 | 182 |
} |
183 | 183 | |
184 | 184 |
var users_tab = { |
185 |
title: "Users",
|
|
185 |
title: tr("Users"),
|
|
186 | 186 |
content: users_tab_content, |
187 | 187 |
buttons: user_buttons |
188 | 188 |
} |
... | ... | |
251 | 251 | |
252 | 252 |
// Prepare the user creation dialog |
253 | 253 |
function setupCreateUserDialog(){ |
254 |
dialogs_context.append('<div title="Create user" id="create_user_dialog"></div>');
|
|
254 |
dialogs_context.append('<div title=\"'+tr("Create user")+'\" id="create_user_dialog"></div>');
|
|
255 | 255 |
$create_user_dialog = $('#create_user_dialog',dialogs_context); |
256 | 256 |
var dialog = $create_user_dialog; |
257 | 257 |
dialog.html(create_user_tmpl); |
... | ... | |
269 | 269 |
var user_name=$('#username',this).val(); |
270 | 270 |
var user_password=$('#pass',this).val(); |
271 | 271 |
if (!user_name.length || !user_password.length){ |
272 |
notifyError("User name and password must be filled in");
|
|
272 |
notifyError(tr("User name and password must be filled in"));
|
|
273 | 273 |
return false; |
274 | 274 |
} |
275 | 275 | |
... | ... | |
310 | 310 |
{ "bSortable": false, "aTargets": ["check"] }, |
311 | 311 |
{ "sWidth": "60px", "aTargets": [0] }, |
312 | 312 |
{ "sWidth": "35px", "aTargets": [1] } |
313 |
] |
|
313 |
], |
|
314 |
"oLanguage": (datatable_lang != "") ? |
|
315 |
{ |
|
316 |
"sUrl": "/locale/"+datatable_lang |
|
317 |
} : "" |
|
314 | 318 |
}); |
315 | 319 |
dataTable_users.fnClearTable(); |
316 | 320 |
addElement([ |
sunstone/public/js/plugins/acls-tab.js (revision 89) | ||
---|---|---|
25 | 25 |
<table id="datatable_acls" class="display">\ |
26 | 26 |
<thead>\ |
27 | 27 |
<tr>\ |
28 |
<th class="check"><input type="checkbox" class="check_all" value="">All</input></th>\
|
|
29 |
<th>ID</th>\
|
|
30 |
<th>Applies to</th>\
|
|
31 |
<th>Affected resources</th>\
|
|
32 |
<th>Resource ID / Owned by</th>\
|
|
33 |
<th>Allowed operations</th>\
|
|
28 |
<th class="check"><input type="checkbox" class="check_all" value="">'+tr("All")+'</input></th>\
|
|
29 |
<th>'+tr("ID")+'</th>\
|
|
30 |
<th>'+tr("Applies to")+'</th>\
|
|
31 |
<th>'+tr("Affected resources")+'</th>\
|
|
32 |
<th>'+tr("Resource ID / Owned by")+'</th>\
|
|
33 |
<th>'+tr("Allowed operations")+'</th>\
|
|
34 | 34 |
</tr>\ |
35 | 35 |
</thead>\ |
36 | 36 |
<tbody id="tbodyaclss">\ |
... | ... | |
42 | 42 |
'<form id="create_acl_form" action="">\ |
43 | 43 |
<fieldset>\ |
44 | 44 |
<div>\ |
45 |
<label for="applies">This rule applies to:</label>\
|
|
45 |
<label for="applies">'+tr("This rule applies to:")+'</label>\
|
|
46 | 46 |
<select name="applies" id="applies"></select>\ |
47 | 47 |
<div class="clear"></div>\ |
48 |
<label style="height:9em">Affected resources:</label>\
|
|
49 |
<input type="checkbox" name="res_host" class="resource_cb" value="HOST">Hosts</input><br />\
|
|
50 |
<input type="checkbox" name="res_vm" class="resource_cb" value="VM">Virtual Machines</input><br />\
|
|
51 |
<input type="checkbox" name="res_net" class="resource_cb" value="NET">Virtual Networks</input><br />\
|
|
52 |
<input type="checkbox" name="res_image" class="resource_cb" value="IMAGE">Images</input><br />\
|
|
53 |
<input type="checkbox" name="res_template" class="resource_cb" value="TEMPLATE">Templates</input><br />\
|
|
54 |
<input type="checkbox" name="res_user" class="resource_cb" value="USER">Users</input><br />\
|
|
55 |
<input type="checkbox" name="res_group" class="resource_cb" value="GROUP">Groups</input><br />\
|
|
48 |
<label style="height:9em">'+tr("Affected resources")+':</label>\
|
|
49 |
<input type="checkbox" name="res_host" class="resource_cb" value="HOST">'+tr("Hosts")+'</input><br />\
|
|
50 |
<input type="checkbox" name="res_vm" class="resource_cb" value="VM">'+tr("Virtual Machines")+'</input><br />\
|
|
51 |
<input type="checkbox" name="res_net" class="resource_cb" value="NET">'+tr("Virtual Networks")+'</input><br />\
|
|
52 |
<input type="checkbox" name="res_image" class="resource_cb" value="IMAGE">'+tr("Images")+'</input><br />\
|
|
53 |
<input type="checkbox" name="res_template" class="resource_cb" value="TEMPLATE">'+tr("Templates")+'</input><br />\
|
|
54 |
<input type="checkbox" name="res_user" class="resource_cb" value="USER">'+tr("Users")+'</input><br />\
|
|
55 |
<input type="checkbox" name="res_group" class="resource_cb" value="GROUP">'+tr("Groups")+'</input><br />\
|
|
56 | 56 |
<div class="clear"></div>\ |
57 |
<label for="mode_select" style="height:3em;">Resource subset:</label>\
|
|
58 |
<input type="radio" class="res_subgroup" name="mode_select" value="*" id="res_subgroup_all">All</input><br />\
|
|
59 |
<input type="radio" class="res_subgroup" name="mode_select" value="res_id" id="res_subgroup_id">Specific ID</input><br />\
|
|
60 |
<input type="radio" class="res_subgroup" name="mode_select" value="belonging_to" id="res_subgroup_group">Owned by group</input><br />\
|
|
57 |
<label for="mode_select" style="height:3em;">'+tr("Resource subset:")+'</label>\
|
|
58 |
<input type="radio" class="res_subgroup" name="mode_select" value="*" id="res_subgroup_all">'+tr("All")+'</input><br />\
|
|
59 |
<input type="radio" class="res_subgroup" name="mode_select" value="res_id" id="res_subgroup_id">'+tr("Specific ID")+'</input><br />\
|
|
60 |
<input type="radio" class="res_subgroup" name="mode_select" value="belonging_to" id="res_subgroup_group">'+tr("Owned by group")+'</input><br />\
|
|
61 | 61 |
<div class="clear"></div>\ |
62 |
<label for="res_id">Resource ID:</label>\
|
|
62 |
<label for="res_id">'+tr("Resource ID:")+'</label>\
|
|
63 | 63 |
<input type="text" name="res_id" id="res_id"></input>\ |
64 | 64 |
<div class="clear"></div>\ |
65 |
<label for="belonging_to">Group:</label>\
|
|
65 |
<label for="belonging_to">'+tr("Group")+':</label>\
|
|
66 | 66 |
<select name="belonging_to" id="belonging_to"></select>\ |
67 | 67 |
<div class="clear"></div>\ |
68 |
<label style="height:12em;">Allowed operations:</label>\
|
|
69 |
<input type="checkbox" name="right_create" class="right_cb" value="CREATE">Create</input><br />\
|
|
70 |
<input type="checkbox" name="right_delete" class="right_cb" value="DELETE">Delete</input><br />\
|
|
71 |
<input type="checkbox" name="right_use" class="right_cb" value="USE">Use</input><br />\
|
|
72 |
<input type="checkbox" name="right_manage" class="right_cb" value="MANAGE">Manage</input><br />\
|
|
73 |
<input type="checkbox" name="right_info" class="right_cb" value="INFO">Get Information</input><br />\
|
|
74 |
<input type="checkbox" name="right_info_pool" class="right_cb" value="INFO_POOL">Get Pool of resources</input><br />\
|
|
75 |
<input type="checkbox" name="right_info_pool_mine" class="right_cb" value="INFO_POOL_MINE">Get Pool of my/group\'s resources</input><br />\
|
|
76 |
<input type="checkbox" name="right_chown" class="right_cb" value="CHOWN">Change owner</input><br />\
|
|
77 |
<input type="checkbox" name="right_deploy" class="right_cb" value="DEPLOY">Deploy</input><br />\
|
|
68 |
<label style="height:12em;">'+tr("Allowed operations")+':</label>\
|
|
69 |
<input type="checkbox" name="right_create" class="right_cb" value="CREATE">'+tr("Create")+'</input><br />\
|
|
70 |
<input type="checkbox" name="right_delete" class="right_cb" value="DELETE">'+tr("Delete")+'</input><br />\
|
|
71 |
<input type="checkbox" name="right_use" class="right_cb" value="USE">'+tr("Use")+'</input><br />\
|
|
72 |
<input type="checkbox" name="right_manage" class="right_cb" value="MANAGE">'+tr("Manage")+'</input><br />\
|
|
73 |
<input type="checkbox" name="right_info" class="right_cb" value="INFO">'+tr("Get Information")+'</input><br />\
|
|
74 |
<input type="checkbox" name="right_info_pool" class="right_cb" value="INFO_POOL">'+tr("Get Pool of resources")+'</input><br />\
|
|
75 |
<input type="checkbox" name="right_info_pool_mine" class="right_cb" value="INFO_POOL_MINE">'+tr("Get Pool of my/group\'s resources")+'</input><br />\
|
|
76 |
<input type="checkbox" name="right_chown" class="right_cb" value="CHOWN">'+tr("Change owner")+'</input><br />\
|
|
77 |
<input type="checkbox" name="right_deploy" class="right_cb" value="DEPLOY">'+tr("Deploy")+'</input><br />\
|
|
78 | 78 |
<div class="clear"></div>\ |
79 |
<label for="acl_preview">ACL String preview:</label>\
|
|
79 |
<label for="acl_preview">'+tr("ACL String preview:")+'</label>\
|
|
80 | 80 |
<input type="text" name="acl_preview" id="acl_preview" style="width:400px;"></input>\ |
81 | 81 |
</div>\ |
82 | 82 |
</fieldset>\ |
83 | 83 |
<fieldset>\ |
84 | 84 |
<div class="form_buttons">\ |
85 |
<button class="button" id="create_acl_submit" value="Acl.create">Create</button>\
|
|
86 |
<button class="button" type="reset" value="reset">Reset</button>\
|
|
85 |
<button class="button" id="create_acl_submit" value="Acl.create">'+tr("Create")+'</button>\
|
|
86 |
<button class="button" type="reset" value="reset">'+tr("Reset")+'</button>\
|
|
87 | 87 |
</div>\ |
88 | 88 |
</fieldset>\ |
89 | 89 |
</form>'; |
... | ... | |
143 | 143 |
var acl_buttons = { |
144 | 144 |
"Acl.refresh" : { |
145 | 145 |
type: "image", |
146 |
text: "Refresh list",
|
|
146 |
text: tr("Refresh list"),
|
|
147 | 147 |
img: "images/Refresh-icon.png" |
148 | 148 |
}, |
149 | 149 |
"Acl.create_dialog" : { |
150 | 150 |
type: "create_dialog", |
151 |
text: "+ New"
|
|
151 |
text: tr("+ New")
|
|
152 | 152 |
}, |
153 | 153 |
"Acl.delete" : { |
154 | 154 |
type: "action", |
155 |
text: "Delete"
|
|
155 |
text: tr("Delete")
|
|
156 | 156 |
} |
157 | 157 |
} |
158 | 158 | |
159 | 159 |
var acls_tab = { |
160 |
title: "ACLs",
|
|
160 |
title: tr("ACLs"),
|
|
161 | 161 |
content: acls_tab_content, |
162 | 162 |
buttons: acl_buttons |
163 | 163 |
} |
... | ... | |
232 | 232 |
for (var i=0; i<resources_array.length;i++){ |
233 | 233 |
switch (resources_array[i]){ |
234 | 234 |
case "HOST": |
235 |
resources_str+="Hosts, ";
|
|
235 |
resources_str+=tr("Hosts")+", ";
|
|
236 | 236 |
break; |
237 | 237 |
case "VM": |
238 |
resources_str+="Virtual Machines, ";
|
|
238 |
resources_str+=tr("Virtual Machines")+", ";
|
|
239 | 239 |
break; |
240 | 240 |
case "NET": |
241 |
resources_str+="Virtual Networks, ";
|
|
241 |
resources_str+=tr("Virtual Networks")+", ";
|
|
242 | 242 |
break; |
243 | 243 |
case "IMAGE": |
244 |
resources_str+="Images, ";
|
|
244 |
resources_str+=(tr("Images")+", ");
|
|
245 | 245 |
break; |
246 | 246 |
case "TEMPLATE": |
247 |
resources_str+="VM Templates, ";
|
|
247 |
resources_str+=tr("VM Templates")+", ";
|
|
248 | 248 |
break; |
249 | 249 |
case "USER": |
250 |
resources_str+="Users, ";
|
|
250 |
resources_str+=tr("Users")+", ";
|
|
251 | 251 |
break; |
252 | 252 |
case "GROUP": |
253 |
resources_str+="Groups, ";
|
|
253 |
resources_str+=tr("Groups")+", ";
|
|
254 | 254 |
break; |
255 | 255 |
}; |
256 | 256 |
}; |
... | ... | |
303 | 303 |
} |
304 | 304 | |
305 | 305 |
function setupCreateAclDialog(){ |
306 |
dialogs_context.append('<div title="Create ACL" id="create_acl_dialog"></div>');
|
|
306 |
dialogs_context.append('<div title=\"'+tr("Create ACL")+'\" id="create_acl_dialog"></div>');
|
|
307 | 307 |
$create_acl_dialog = $('#create_acl_dialog',dialogs_context); |
308 | 308 |
var dialog = $create_acl_dialog; |
309 | 309 |
dialog.html(create_acl_tmpl); |
... | ... | |
391 | 391 |
$('#create_acl_form',dialog).submit(function(){ |
392 | 392 |
var user = $('#applies',this).val(); |
393 | 393 |
if (!user.length) { |
394 |
notifyError("Please specify to who this ACL applies");
|
|
394 |
notifyError(tr("Please specify to who this ACL applies"));
|
|
395 | 395 |
return false; |
396 | 396 |
}; |
397 | 397 | |
398 | 398 |
var resources = $('.resource_cb:checked',this).length; |
399 | 399 |
if (!resources) { |
400 |
notifyError("Please select at least one resource");
|
|
400 |
notifyError(tr("Please select at least one resource"));
|
|
401 | 401 |
return false; |
402 | 402 |
} |
403 | 403 | |
... | ... | |
406 | 406 |
case "res_id": |
407 | 407 |
var l=$('#res_id',this).val().length; |
408 | 408 |
if (!l){ |
409 |
notifyError("Please provide a resource ID for the resource(s) in this rule");
|
|
409 |
notifyError(tr("Please provide a resource ID for the resource(s) in this rule"));
|
|
410 | 410 |
return false; |
411 | 411 |
} |
412 | 412 |
break; |
... | ... | |
441 | 441 |
var users = $('<select>'+users_select+'</select>'); |
442 | 442 |
$('.empty_value',users).remove(); |
443 | 443 |
$('option',users).addClass("user"); |
444 |
users.prepend('<option value="">---Users---</option>');
|
|
444 |
users.prepend('<option value="">---'+tr("Users")+'---</option>');
|
|
445 | 445 | |
446 | 446 |
var groups = $('<select>'+groups_select+'</select>'); |
447 | 447 |
$('.empty_value',groups).remove(); |
448 | 448 |
$('option',groups).addClass("group"); |
449 |
groups.prepend('<option value="">---Groups---</option>');
|
|
449 |
groups.prepend('<option value="">---'+tr("Groups")+'---</option>');
|
|
450 | 450 | |
451 | 451 |
var dialog = $create_acl_dialog; |
452 |
$('#applies',dialog).html('<option value="*">All</option>'+
|
|
452 |
$('#applies',dialog).html('<option value="*">'+tr("All")+'</option>'+
|
|
453 | 453 |
users.html()+groups.html()); |
454 | 454 |
$('#belonging_to',dialog).html(groups_select); |
455 | 455 | |
... | ... | |
479 | 479 |
{ "bSortable": false, "aTargets": ["check"] }, |
480 | 480 |
{ "sWidth": "60px", "aTargets": [0] }, |
481 | 481 |
{ "sWidth": "35px", "aTargets": [1] } |
482 |
] |
|
482 |
], |
|
483 |
"oLanguage": (datatable_lang != "") ? |
|
484 |
{ |
|
485 |
"sUrl": "/locale/"+datatable_lang |
|
486 |
} : "" |
|
483 | 487 |
}); |
484 | 488 |
dataTable_acls.fnClearTable(); |
485 | 489 |
addElement([ |
sunstone/public/js/plugins/images-tab.js (revision 89) | ||
---|---|---|
23 | 23 |
<table id="datatable_images" class="display">\ |
24 | 24 |
<thead>\ |
25 | 25 |
<tr>\ |
26 |
<th class="check"><input type="checkbox" class="check_all" value="">All</input></th>\
|
|
27 |
<th>ID</th>\
|
|
28 |
<th>Owner</th>\
|
|
29 |
<th>Group</th>\
|
|
30 |
<th>Name</th>\
|
|
31 |
<th>Type</th>\
|
|
32 |
<th>Registration time</th>\
|
|
33 |
<th>Public</th>\
|
|
34 |
<th>Persistent</th>\
|
|
35 |
<th>Status</th>\
|
|
36 |
<th>#VMS</th>\
|
|
26 |
<th class="check"><input type="checkbox" class="check_all" value="">'+tr('All')+'</input></th>\
|
|
27 |
<th>'+tr('ID')+'</th>\
|
|
28 |
<th>'+tr('Owner')+'</th>\
|
|
29 |
<th>'+tr('Group')+'</th>\
|
|
30 |
<th>'+tr('Name')+'</th>\
|
|
31 |
<th>'+tr('Type')+'</th>\
|
|
32 |
<th>'+tr('Registration time')+'</th>\
|
|
33 |
<th>'+tr('Public')+'</th>\
|
|
34 |
<th>'+tr('Persistent')+'</th>\
|
|
35 |
<th>'+tr('Status')+'</th>\
|
|
36 |
<th>'+tr('#VMS')+'</th>\
|
|
37 | 37 |
</tr>\ |
38 | 38 |
</thead>\ |
39 | 39 |
<tbody id="tbodyimages">\ |
... | ... | |
43 | 43 | |
44 | 44 |
var create_image_tmpl = |
45 | 45 |
'<div id="img_tabs">\ |
46 |
<ul><li><a href="#img_easy">Wizard</a></li>\
|
|
47 |
<li><a href="#img_manual">Advanced mode</a></li>\
|
|
46 |
<ul><li><a href="#img_easy">'+tr('Wizard')+'</a></li>\
|
|
47 |
<li><a href="#img_manual">'+tr('Advanced mode')+'</a></li>\
|
|
48 | 48 |
</ul>\ |
49 | 49 |
<div id="img_easy">\ |
50 | 50 |
<form id="create_image_form_easy" action="">\ |
51 |
<p style="font-size:0.8em;text-align:right;"><i>Fields marked with <span style="display:inline-block;" class="ui-icon ui-icon-alert" /> are mandatory</i><br />\
|
|
51 |
<p style="font-size:0.8em;text-align:right;"><i>'+tr('Fields marked with')+' <span style="display:inline-block;" class="ui-icon ui-icon-alert" />'+tr('are mandatory')+'</i><br />\
|
|
52 | 52 |
<fieldset>\ |
53 | 53 |
<div class="img_param img_man">\ |
54 |
<label for="img_name">Name:</label>\
|
|
54 |
<label for="img_name">'+tr('Name')+':</label>\
|
|
55 | 55 |
<input type="text" name="img_name" id="img_name" />\ |
56 |
<div class="tip">Name that the Image will get. Every image must have a unique name.</div>\
|
|
56 |
<div class="tip">'+tr('Name that the Image will get. Every image must have a unique name.')+'</div>\
|
|
57 | 57 |
</div>\ |
58 | 58 |
<div class="img_param">\ |
59 |
<label for="img_desc">Description:</label>\
|
|
59 |
<label for="img_desc">'+tr('Description:')+'</label>\
|
|
60 | 60 |
<textarea name="img_desc" id="img_desc" style="height:4em"></textarea>\ |
61 |
<div class="tip">Human readable description of the image for other users.</div>\
|
|
61 |
<div class="tip">'+tr('Human readable description of the image for other users.')+'</div>\
|
|
62 | 62 |
</div>\ |
63 | 63 |
</fieldset>\ |
64 | 64 |
<fieldset>\ |
65 | 65 |
<div class="img_param">\ |
66 |
<label for="img_type">Type:</label>\
|
|
66 |
<label for="img_type">'+tr('Type')+':</label>\
|
|
67 | 67 |
<select name="img_type" id="img_type">\ |
68 |
<option value="OS">OS</option>\
|
|
69 |
<option value="CDROM">CD-ROM</option>\
|
|
70 |
<option value="DATABLOCK">Datablock</option>\
|
|
68 |
<option value="OS">'+tr('OS')+'</option>\
|
|
69 |
<option value="CDROM">'+tr('CD-ROM')+'</option>\
|
|
70 |
<option value="DATABLOCK">'+tr('Datablock')+'</option>\
|
|
71 | 71 |
</select>\ |
72 |
<div class="tip">Type of the image, explained in detail in the following section. If omitted, the default value is the one defined in oned.conf (install default is OS).</div>\
|
|
72 |
<div class="tip">'+tr('Type of the image, explained in detail in the following section. If omitted, the default value is the one defined in oned.conf (install default is OS).')+'</div>\
|
|
73 | 73 |
</div>\ |
74 | 74 |
<div class="img_param">\ |
75 |
<label for="img_public">Public:</label>\
|
|
75 |
<label for="img_public">'+tr('Public')+':</label>\
|
|
76 | 76 |
<input type="checkbox" id="img_public" name="img_public" value="YES" />\ |
77 |
<div class="tip">Public scope of the image</div>\
|
|
77 |
<div class="tip">'+tr('Public scope of the image')+'</div>\
|
|
78 | 78 |
</div>\ |
79 | 79 |
<div class="img_param">\ |
80 |
<label for="img_persistent">Persistent:</label>\
|
|
80 |
<label for="img_persistent">'+tr('Persistent')+':</label>\
|
|
81 | 81 |
<input type="checkbox" id="img_persistent" name="img_persistent" value="YES" />\ |
82 |
<div class="tip">Persistence of the image</div>\
|
|
82 |
<div class="tip">'+('Persistence of the image')+'</div>\
|
|
83 | 83 |
</div>\ |
84 | 84 |
<div class="img_param">\ |
85 |
<label for="img_dev_prefix">Device prefix:</label>\
|
|
85 |
<label for="img_dev_prefix">'+tr('Device prefix:')+'</label>\
|
|
86 | 86 |
<input type="text" name="img_dev_prefix" id="img_dev_prefix" />\ |
87 |
<div class="tip">Prefix for the emulated device this image will be mounted at. For instance, “hd”, “sd”. If omitted, the default value is the one defined in oned.conf (installation default is “hd”).</div>\
|
|
87 |
<div class="tip">'+tr('Prefix for the emulated device this image will be mounted at. For instance, “hd”, “sd”. If omitted, the default value is the one defined in oned.conf (installation default is “hd”).')+'</div>\
|
|
88 | 88 |
</div>\ |
89 | 89 |
<div class="img_param">\ |
90 |
<label for="img_bus">Bus:</label>\
|
|
90 |
<label for="img_bus">'+tr('Bus:')+'</label>\
|
|
91 | 91 |
<select name="img_bus" id="img_bus">\ |
92 |
<option value="IDE">IDE</option>\
|
|
93 |
<option value="SCSI">SCSI</option>\
|
|
94 |
<option value="virtio">Virtio (KVM)</option>\
|
|
92 |
<option value="IDE">'+tr('IDE')+'</option>\
|
|
93 |
<option value="SCSI">'+tr('SCSI')+'</option>\
|
|
94 |
<option value="virtio">'+tr('Virtio (KVM)')+'</option>\
|
|
95 | 95 |
</select>\ |
96 |
<div class="tip">Type of disk device to emulate.</div>\
|
|
96 |
<div class="tip">'+tr('Type of disk device to emulate.')+'</div>\
|
|
97 | 97 |
</div>\ |
98 | 98 |
</fieldset>\ |
99 | 99 |
<fieldset>\ |
100 | 100 |
<div class="" id="src_path_select">\ |
101 |
<label style="height:3em;">Path vs. source:</label>\
|
|
101 |
<label style="height:3em;">'+tr('Path vs. source:')+'</label>\
|
|
102 | 102 |
<input type="radio" name="src_path" id="path_img" value="path" />\ |
103 |
<label style="float:none">Provide a path</label><br />\
|
|
103 |
<label style="float:none">'+tr('Provide a path')+'</label><br />\
|
|
104 | 104 |
<input type="radio" name="src_path" id="source_img" value="source" />\ |
105 |
<label style="float:none">Provide a source</label><br />\
|
|
105 |
<label style="float:none">'+tr('Provide a source')+'</label><br />\
|
|
106 | 106 |
<input type="radio" name="src_path" id="datablock_img" value="datablock" />\ |
107 |
<label style="float:none;vertical-align:top">Create an empty datablock</label>\
|
|
108 |
<div class="tip">Please choose path if you have a file-based image. Choose source otherwise or create an empty datablock disk.</div><br />\
|
|
107 |
<label style="float:none;vertical-align:top">'+tr('Create an empty datablock')+'</label>\
|
|
108 |
<div class="tip">'+tr('Please choose path if you have a file-based image. Choose source otherwise or create an empty datablock disk.')+'</div><br />\
|
|
109 | 109 |
</div>\ |
110 | 110 |
<div class="img_param">\ |
111 |
<label for="img_path">Path:</label>\
|
|
111 |
<label for="img_path">'+tr('Path:')+'</label>\
|
|
112 | 112 |
<input type="text" name="img_path" id="img_path" />\ |
113 |
<div class="tip">Path to the original file that will be copied to the image repository. If not specified for a DATABLOCK type image, an empty image will be created.</div>\
|
|
113 |
<div class="tip">'+tr('Path to the original file that will be copied to the image repository. If not specified for a DATABLOCK type image, an empty image will be created.')+'</div>\
|
|
114 | 114 |
</div>\ |
115 | 115 |
<div class="img_param">\ |
116 |
<label for="img_source">Source:</label>\
|
|
116 |
<label for="img_source">'+tr('Source')+':</label>\
|
|
117 | 117 |
<input type="text" name="img_source" id="img_source" />\ |
118 |
<div class="tip">Source to be used in the DISK attribute. Useful for not file-based images.</div>\
|
|
118 |
<div class="tip">'+tr('Source to be used in the DISK attribute. Useful for not file-based images.')+'</div>\
|
|
119 | 119 |
</div>\ |
120 | 120 |
<div class="img_size">\ |
121 |
<label for="img_size">Size:</label>\
|
|
121 |
<label for="img_size">'+tr('Size:')+'</label>\
|
|
122 | 122 |
<input type="text" name="img_size" id="img_size" />\ |
123 |
<div class="tip">Size of the datablock in MB.</div>\
|
|
123 |
<div class="tip">'+tr('Size of the datablock in MB.')+'</div>\
|
|
124 | 124 |
</div>\ |
125 | 125 |
<div class="img_param">\ |
126 |
<label for="img_fstype">FS type:</label>\
|
|
126 |
<label for="img_fstype">'+tr('FS type:')+'</label>\
|
|
127 | 127 |
<input type="text" name="img_fstype" id="img_fstype" />\ |
128 |
<div class="tip">Type of file system to be built. This can be any value understood by mkfs unix command.</div>\
|
|
128 |
<div class="tip">'+tr('Type of file system to be built. This can be any value understood by mkfs unix command.')+'</div>\
|
|
129 | 129 |
</div>\ |
130 | 130 |
</fieldset>\ |
131 | 131 |
<fieldset>\ |
132 | 132 |
<div class="form_buttons">\ |
133 |
<button class="button" id="create_image_submit" value="user/create">Create</button>\
|
|
134 |
<button class="button" type="reset" value="reset">Reset</button>\
|
|
133 |
<button class="button" id="create_image_submit" value="user/create">'+tr('Create')+'</button>\
|
|
134 |
<button class="button" type="reset" value="reset">'+tr('Reset')+'</button>\
|
|
135 | 135 |
</div>\ |
136 | 136 |
</fieldset>\ |
137 | 137 |
</form>\ |
... | ... | |
139 | 139 |
<div id="img_manual">\ |
140 | 140 |
<form id="create_image_form_manual" action="">\ |
141 | 141 |
<fieldset style="border-top:none;">\ |
142 |
<h3 style="margin-bottom:10px;">Write the image template here</h3>\
|
|
142 |
<h3 style="margin-bottom:10px;">'+tr('Write the image template here')+'</h3>\
|
|
143 | 143 |
<textarea id="template" rows="15" style="width:100%;">\ |
144 | 144 |
</textarea>\ |
145 | 145 |
</fieldset>\ |
146 | 146 |
<fieldset>\ |
147 | 147 |
<div class="form_buttons">\ |
148 | 148 |
<button class="button" id="create_vn_submit_manual" value="vn/create">\ |
149 |
Create\
|
|
149 |
'+tr('Create')+'\
|
|
150 | 150 |
</button>\ |
151 |
<button class="button" type="reset" value="reset">Reset</button>\
|
|
151 |
<button class="button" type="reset" value="reset">'+tr('Reset')+'</button>\
|
|
152 | 152 |
</div>\ |
153 | 153 |
</fieldset>\ |
154 | 154 |
</form>\ |
... | ... | |
237 | 237 |
type: "single", |
238 | 238 |
call: OpenNebula.Image.update, |
239 | 239 |
callback: function() { |
240 |
notifyMessage("Template updated correctly");
|
|
240 |
notifyMessage(tr("Template updated correctly"));
|
|
241 | 241 |
}, |
242 | 242 |
error: onError |
243 | 243 |
}, |
... | ... | |
344 | 344 |
var image_buttons = { |
345 | 345 |
"Image.refresh" : { |
346 | 346 |
type: "image", |
347 |
text: "Refresh list",
|
|
347 |
text: tr("Refresh list"),
|
|
348 | 348 |
img: "images/Refresh-icon.png" |
349 | 349 |
}, |
350 | 350 |
"Image.create_dialog" : { |
351 | 351 |
type: "create_dialog", |
352 |
text: "+ New"
|
|
352 |
text: tr('+ New')
|
|
353 | 353 |
}, |
354 | 354 |
"Image.update_dialog" : { |
355 | 355 |
type: "action", |
356 |
text: "Update a template",
|
|
356 |
text: tr("Update a template"),
|
|
357 | 357 |
alwaysActive: true |
358 | 358 |
}, |
359 | 359 |
"Image.chown" : { |
360 | 360 |
type: "confirm_with_select", |
361 |
text: "Change owner",
|
|
361 |
text: tr("Change owner"),
|
|
362 | 362 |
select: users_sel, |
363 |
tip: "Select the new owner:",
|
|
363 |
tip: tr("Select the new owner:"),
|
|
364 | 364 |
condition: mustBeAdmin |
365 | 365 |
}, |
366 | 366 |
"Image.chgrp" : { |
367 | 367 |
type: "confirm_with_select", |
368 |
text: "Change group",
|
|
368 |
text: tr("Change group"),
|
|
369 | 369 |
select: groups_sel, |
370 |
tip: "Select the new group:",
|
|
370 |
tip: tr("Select the new group:"),
|
|
371 | 371 |
condition: mustBeAdmin |
372 | 372 |
}, |
373 | 373 |
"action_list" : { |
... | ... | |
375 | 375 |
actions: { |
376 | 376 |
"Image.enable" : { |
377 | 377 |
type: "action", |
378 |
text: "Enable"
|
|
378 |
text: tr("Enable")
|
|
379 | 379 |
}, |
380 | 380 |
"Image.disable" : { |
381 | 381 |
type: "action", |
382 |
text: "Disable"
|
|
382 |
text: tr("Disable")
|
|
383 | 383 |
}, |
384 | 384 |
"Image.publish" : { |
385 | 385 |
type: "action", |
386 |
text: "Publish"
|
|
386 |
text: tr("Publish")
|
|
387 | 387 |
}, |
388 | 388 |
"Image.unpublish" : { |
389 | 389 |
type: "action", |
390 |
text: "Unpublish"
|
|
390 |
text: tr("Unpublish")
|
|
391 | 391 |
}, |
392 | 392 |
"Image.persistent" : { |
393 | 393 |
type: "action", |
394 |
text: "Make persistent"
|
|
394 |
text: tr("Make persistent")
|
|
395 | 395 |
}, |
396 | 396 |
"Image.nonpersistent" : { |
397 | 397 |
type: "action", |
398 |
text: "Make non persistent" |
|
398 |
text: tr("Make non persistent") |