mirror of
https://github.com/RROrg/rr.git
synced 2025-06-21 05:51:05 +08:00
add json/xlsx data
This commit is contained in:
parent
9a0d8f691d
commit
1cc02dd732
64
.github/workflows/data.yml
vendored
64
.github/workflows/data.yml
vendored
@ -27,30 +27,64 @@ jobs:
|
|||||||
git config --global user.name "github-actions[bot]"
|
git config --global user.name "github-actions[bot]"
|
||||||
sudo timedatectl set-timezone "Asia/Shanghai"
|
sudo timedatectl set-timezone "Asia/Shanghai"
|
||||||
|
|
||||||
- name: Get models
|
sudo apt update
|
||||||
|
sudo apt install -y build-essential libtool pkgconf libzstd-dev liblzma-dev libssl-dev # kmodule dependencies
|
||||||
|
|
||||||
|
- name: Get Release RR
|
||||||
run: |
|
run: |
|
||||||
models="{"
|
REPO="${{ github.server_url }}/${{ github.repository }}"
|
||||||
WORK_PATH="files/initrd/opt/rr"
|
PRERELEASE="false"
|
||||||
for M in $(find "${WORK_PATH}/model-configs" -maxdepth 1 -name \*.yml 2>/dev/null | sed 's/.*\///; s/\.yml//'); do
|
|
||||||
models+="\"${M}\":["
|
TAG=""
|
||||||
for V in $(yq eval '.productvers | explode(.) | to_entries | map([.key])[] | .[]' "${WORK_PATH}/model-configs/${M}.yml" 2>/dev/null | sort -r); do
|
if [ "${PRERELEASE}" = "true" ]; then
|
||||||
models+="\"${V}\","
|
TAG="$(curl -skL --connect-timeout 10 "${REPO}/tags" | grep /refs/tags/.*\.zip | head -1 | sed -r 's/.*\/refs\/tags\/(.*)\.zip.*$/\1/')"
|
||||||
done
|
else
|
||||||
models="${models%,}],"
|
LATESTURL="$(curl -skL --connect-timeout 10 -w %{url_effective} -o /dev/null "${REPO}/releases/latest")"
|
||||||
done
|
TAG="${LATESTURL##*/}"
|
||||||
models="${models%,}}"
|
fi
|
||||||
echo "${models}" >docs/models.json
|
[ "${TAG:0:1}" = "v" ] && TAG="${TAG:1}"
|
||||||
|
rm -f rr-${TAG}.img.zip
|
||||||
|
STATUS=$(curl -kL --connect-timeout 10 -w "%{http_code}" "${REPO}/releases/download/${TAG}/rr-${TAG}.img.zip" -o "rr-${TAG}.img.zip")
|
||||||
|
if [ $? -ne 0 -o ${STATUS:-0} -ne 200 ]; then
|
||||||
|
echo "Download failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
unzip rr-${TAG}.img.zip -d "rr"
|
||||||
|
|
||||||
|
export TERM=xterm
|
||||||
|
|
||||||
|
sudo ./localbuild.sh create rr/ws rr/rr.img
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "create failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Get data
|
||||||
|
run: |
|
||||||
|
pip install -r scripts/requirements.txt
|
||||||
|
python scripts/func.py getmodels -w "rr/ws/initrd" -j "docs/models.json" -x "docs/models.xlsx"
|
||||||
|
python scripts/func.py getaddons -w "rr/ws" -j "docs/addons.json" -x "docs/addons.xlsx"
|
||||||
|
python scripts/func.py getmodules -w "rr/ws" -j "docs/modules.json" -x "docs/modules.xlsx"
|
||||||
|
|
||||||
|
- name: Upload to Artifacts
|
||||||
|
if: success() && inputs.push == false
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: addons
|
||||||
|
path: |
|
||||||
|
docs/*.json
|
||||||
|
docs/*.xlsx
|
||||||
|
retention-days: 5
|
||||||
|
|
||||||
- name: Check and Push
|
- name: Check and Push
|
||||||
if: success() && inputs.push == true
|
if: success() && inputs.push == true
|
||||||
run: |
|
run: |
|
||||||
echo "Git push ..."
|
echo "Git push ..."
|
||||||
git pull
|
git pull
|
||||||
status=$(git status -s | grep -E 'docs/models.json' | awk '{printf " %s", $2}')
|
status=$(git status -s | grep -E "docs" | awk '{printf " %s", $2}')
|
||||||
if [ -n "${status}" ]; then
|
if [ -n "${status}" ]; then
|
||||||
git add ${status}
|
git add ${status}
|
||||||
git commit -m "update $(date +%Y-%m-%d" "%H:%M:%S)"
|
git commit -m "update $(date +%Y-%m-%d" "%H:%M:%S)"
|
||||||
git push -f
|
git push -f
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
14
.github/workflows/issues.yml
vendored
14
.github/workflows/issues.yml
vendored
@ -155,9 +155,9 @@ jobs:
|
|||||||
|
|
||||||
export TERM=xterm
|
export TERM=xterm
|
||||||
|
|
||||||
sudo ./localbuild.sh init rr/ws rr/rr.img
|
sudo ./localbuild.sh create rr/ws rr/rr.img
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo "init failed"
|
echo "create failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -167,9 +167,15 @@ jobs:
|
|||||||
|
|
||||||
[ -n "${{ env.language }}" ] && echo "${{ env.language }}.UTF-8" | sudo tee rr/ws/mnt/p1/.locale
|
[ -n "${{ env.language }}" ] && echo "${{ env.language }}.UTF-8" | sudo tee rr/ws/mnt/p1/.locale
|
||||||
|
|
||||||
sudo ./localbuild.sh config "${MODEL}" "${VERSION}"
|
sudo ./localbuild.sh init
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo "config failed"
|
echo "init failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
sudo ./localbuild.sh make "${MODEL}" "${VERSION}"
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "make failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
436
docs/addons.json
Normal file
436
docs/addons.json
Normal file
@ -0,0 +1,436 @@
|
|||||||
|
{
|
||||||
|
"hdddb": {
|
||||||
|
"en_US": "Author: 007revad. Add HDD/SSD drives to the DSM database to solve the problem of firmware version not recognized by the disk.",
|
||||||
|
"es_ES": "Autor: 007revad. Agrega discos duros y SSD a la base de datos de DSM para solucionar el problema de que la versión del firmware no sea reconocida por el disco.",
|
||||||
|
"de_DE": "Autor: 007revad. Fügen Sie HDD/SSD-Laufwerke zur DSM-Datenbank hinzu, um das Problem zu lösen, dass die Firmware-Version von der Festplatte nicht erkannt wird.",
|
||||||
|
"fr_FR": "Auteur : 007revad. Ajoutez des disques durs et SSD à la base de données DSM pour résoudre le problème de reconnaissance de la version du firmware par le disque.",
|
||||||
|
"ja_JP": "作者:007revad。ディスクのファームウェアバージョンが認識されない問題を解決するために、HDD/SSDドライブをDSMデータベースに追加します。",
|
||||||
|
"ko_KR": "저자: 007revad. 디스크의 펌웨어 버전이 인식되지 않는 문제를 해결하기 위해 HDD/SSD 드라이브를 DSM 데이터베이스에 추가합니다.",
|
||||||
|
"ru_RU": "Автор: 007revad. Добавьте жесткие диски и SSD-накопители в базу данных DSM, чтобы решить проблему нераспознавания версии прошивки диском.",
|
||||||
|
"uk_UA": "Автор: 007revad. Додайте жорсткі диски та SSD-накопичувачі до бази даних DSM, щоб вирішити проблему нерозпізнавання версії прошивки диском.",
|
||||||
|
"vi_VN": "Tác giả: 007revad. Thêm ổ cứng và ổ SSD vào cơ sở dữ liệu DSM để giải quyết vấn đề không nhận diện được phiên bản firmware của ổ cứng.",
|
||||||
|
"zh_CN": "作者:007revad。将HDD/SSD驱动器数据添加到DSM数据库中,以解决硬盘固件版本无法识别的问题。",
|
||||||
|
"zh_HK": "作者:007revad。將HDD/SSD驱动器數據添加到DSM數據庫中,以解決硬碟固件版本無法識別的問題。",
|
||||||
|
"zh_TW": "作者:007revad。將HDD/SSD驅動器數據添加到DSM數據庫中,以解決硬碟固件版本無法識別的問題。"
|
||||||
|
},
|
||||||
|
"sortnetif": {
|
||||||
|
"en_US": "Sort network interface name.(parameters: empty: sorted by busid; mac1,mac2,...: sorted by macs sequence).",
|
||||||
|
"es_ES": "Ordenar nombre de interfaz de red.(parámetros: vacío: ordenado por busid; mac1,mac2,...: ordenado por secuencia de macs).",
|
||||||
|
"de_DE": "Sortiere Netzwerk-Schnittstellen-Namen.(Parameter: leer: sortiert nach Bus-ID; mac1,mac2,...: sortiert nach MACs-Sequenz).",
|
||||||
|
"fr_FR": "Trier le nom de l'interface réseau.(paramètres: vide: trié par busid; mac1,mac2,...: trié par séquence de macs).",
|
||||||
|
"ja_JP": "ネットワークインターフェイス名をソートします。(パラメータ: 空: busid でソート; mac1,mac2,...: macs シーケンスでソート).",
|
||||||
|
"ko_KR": "네트워크 인터페이스 이름을 정렬합니다.(매개 변수: 비어 있음: 버스 ID로 정렬; mac1,mac2,...: macs 시퀀스로 정렬).",
|
||||||
|
"ru_RU": "Сортировать имя сетевого интерфейса.(параметры: пусто: сортировка по busid; mac1,mac2,...: сортировка по последовательности macs).",
|
||||||
|
"uk_UA": "Сортувати ім'я мережевого інтерфейсу.(параметри: порожній: впорядковано за busid; mac1,mac2,...: впорядковано за послідовністю macs).",
|
||||||
|
"vi_VN": "Sắp xếp tên giao diện mạng.(tham số: trống: sắp xếp theo busid; mac1,mac2,...: sắp xếp theo chuỗi macs).",
|
||||||
|
"zh_CN": "对网络接口名称进行排序。(参数: 空: 按 busid 排序; mac1,mac2,...: 按 macs 序列排序).",
|
||||||
|
"zh_HK": "對網絡接口名稱進行排序。(參數: 空: 按 busid 排序; mac1,mac2,...: 按 macs 序列排序).",
|
||||||
|
"zh_TW": "對網路介面名稱進行排序。(參數: 空: 按 busid 排序; mac1,mac2,...: 按 macs 序列排序)."
|
||||||
|
},
|
||||||
|
"disks": {
|
||||||
|
"en_US": "Config disks related setting.",
|
||||||
|
"es_ES": "Configurar la configuración relacionada con los discos.",
|
||||||
|
"de_DE": "Konfiguriere Einstellungen für Festplatten.",
|
||||||
|
"fr_FR": "Configurer les paramètres relatifs aux disques.",
|
||||||
|
"ja_JP": "ディスク関連の設定を構成します。",
|
||||||
|
"ko_KR": "디스크 관련 설정 구성.",
|
||||||
|
"ru_RU": "Настройка параметров дисков.",
|
||||||
|
"uk_UA": "Налаштування параметрів дисків.",
|
||||||
|
"vi_VN": "Cấu hình các thiết lập liên quan đến đĩa.",
|
||||||
|
"zh_CN": "配置与磁盘相关的设置。",
|
||||||
|
"zh_HK": "配置與磁碟相關的設定。",
|
||||||
|
"zh_TW": "配置與磁碟相關的設定。"
|
||||||
|
},
|
||||||
|
"reboottoloader": {
|
||||||
|
"en_US": "Add a script to restart to RR in the DSM scheduled task, making it easy to access RR with not have a screen and keyboard.",
|
||||||
|
"es_ES": "Agregue un script para reiniciar a RR en la tarea programada de DSM, lo que facilita el acceso a RR sin tener una pantalla y un teclado.",
|
||||||
|
"de_DE": "Fügt einen Skript zum Neustart zu RR in der DSM geplanten Aufgabe, so dass es einfach, RR mit nicht haben einen Bildschirm und Tastatur zugreifen.",
|
||||||
|
"fr_FR": "Ajoutez un script pour redémarrer à RR dans la tâche planifiée DSM, ce qui rend facile d'accéder à RR avec ne pas avoir un écran et un clavier.",
|
||||||
|
"ja_JP": "DSM のスケジュールされたタスクで RR に再起動するスクリプトを追加し、画面とキーボードがない RR に簡単にアクセスできるようにします。",
|
||||||
|
"ko_KR": "DSM 예약 된 작업에서 RR로 재시작하는 스크립트를 추가하여 화면과 키보드가없는 RR에 쉽게 액세스 할 수 있습니다.",
|
||||||
|
"ru_RU": "Добавьте сценарий для перезапуска в RR в запланированной задаче DSM, что облегчает доступ к RR без наличия экрана и клавиатуры.",
|
||||||
|
"uk_UA": "Додайте сценарій для перезапуску в RR в запланованому завданні DSM, що полегшує доступ до RR без наявності екрана та клавіатури.",
|
||||||
|
"vi_VN": "Thêm một tập lệnh để khởi động lại RR trong nhiệm vụ được lên lịch DSM, làm cho nó dễ dàng truy cập RR với không có màn hình và bàn phím.",
|
||||||
|
"zh_CN": "在 DSM 计划任务中添加一个脚本以重新启动到 RR,这使得很容易访问 RR 而不需要屏幕和键盘。",
|
||||||
|
"zh_HK": "在 DSM 計劃任務中添加一個腳本以重新啟動到 RR,這使得很容易訪問 RR 而不需要屏幕和鍵盤。",
|
||||||
|
"zh_TW": "在 DSM 計劃任務中添加一個腳本以重新啟動到 RR,這使得很容易訪問 RR 而不需要屏幕和鍵盤。"
|
||||||
|
},
|
||||||
|
"wol": {
|
||||||
|
"en_US": "Android USB Network Adapter.",
|
||||||
|
"es_ES": "Adaptador de red USB de Android.",
|
||||||
|
"de_DE": "Android USB-Netzwerkadapter.",
|
||||||
|
"fr_FR": "Adaptateur réseau USB Android.",
|
||||||
|
"jp_JP": "Android USB ネットワークアダプター",
|
||||||
|
"ko_KR": "안드로이드 USB 네트워크 어댑터.",
|
||||||
|
"ru_RU": "Адаптер сети USB для Android.",
|
||||||
|
"uk_UA": "Адаптер мережі USB для Android.",
|
||||||
|
"vi_VN": "Bộ chuyển đổi mạng USB Android.",
|
||||||
|
"zh_CN": "Android USB 网络适配器.",
|
||||||
|
"zh_HK": "Android USB 網路適配器",
|
||||||
|
"zh_TW": "Android USB 網路介面卡."
|
||||||
|
},
|
||||||
|
"nvmevolume": {
|
||||||
|
"en_US": "Author: 007revad & PeterSuh-Q3. Enable creating M.2 storage pools and volumes all from within Storage Manager.",
|
||||||
|
"es_ES": "Autor: 007revad & PeterSuh-Q3. Permite crear grupos de almacenamiento y volúmenes M.2 todo desde el Administrador de almacenamiento.",
|
||||||
|
"de_DE": "Autor: 007revad & PeterSuh-Q3. Ermöglicht das Erstellen von M.2-Speichergruppen und -Volumen alles aus dem Speicher-Manager heraus.",
|
||||||
|
"fr_FR": "Auteur: 007revad & PeterSuh-Q3. Permet de créer des groupes de stockage et des volumes M.2 tout depuis le Gestionnaire de stockage.",
|
||||||
|
"ja_JP": "作者:007revad & PeterSuh-Q3。ストレージマネージャーからM.2ストレージプールとボリュームを作成できます。",
|
||||||
|
"ko_KR": "저자: 007revad & PeterSuh-Q3. 스토리지 매니저에서 M.2 저장소 풀 및 볼륨을 생성할 수 있습니다.",
|
||||||
|
"ru_RU": "Автор: 007revad & PeterSuh-Q3. Позволяет создавать группы хранения и тома M.2 прямо из Менеджера хранилищ.",
|
||||||
|
"uk_UA": "Автор: 007revad & PeterSuh-Q3. Дозволяє створювати групи зберігання та томи M.2 прямо з Менеджера зберігання.",
|
||||||
|
"vi_VN": "Tác giả: 007revad & PeterSuh-Q3. Cho phép tạo các nhóm lưu trữ và ổ đĩa M.2 từ Trình quản lý lưu trữ.",
|
||||||
|
"zh_CN": "作者:007revad & PeterSuh-Q3。允许从存储管理器中创建M.2存储池和卷。",
|
||||||
|
"zh_HK": "作者:007revad & PeterSuh-Q3。允許從儲存管理器中創建M.2儲存池和卷。",
|
||||||
|
"zh_TW": "作者:007revad & PeterSuh-Q3。允許從儲存管理器中建立M.2儲存池和卷。"
|
||||||
|
},
|
||||||
|
"nvmesystem": {
|
||||||
|
"en_US": "Author: jim3ma. Install the system on only m2 disk (current only support SA6400).",
|
||||||
|
"es_ES": "Autor: jim3ma. Instala el sistema solo en el disco m2 (actualmente solo admite SA6400).",
|
||||||
|
"de_DE": "Autor: jim3ma. Installiert das System nur auf den m2-Disk (aktuell nur SA6400 unterstützt).",
|
||||||
|
"fr_FR": "Auteur: jim3ma. Installe le système uniquement sur le disque m2 (actuellement, seul SA6400 est pris en charge).",
|
||||||
|
"ja_JP": "作者: jim3ma。システムをm2ディスクにのみインストールします(現在、SA6400のみサポート)。",
|
||||||
|
"ko_KR": "저자: jim3ma. SA6400만을 지원하는 m2 디스크에 시스템을 설치합니다.",
|
||||||
|
"ru_RU": "Автор: jim3ma. Установка системы только на m2-дисков (текущий только поддерживает SA6400).",
|
||||||
|
"uk_UA": "Автор: jim3ma. Встановлення системи лише на диск m2 (наразі підтримується лише SA6400).",
|
||||||
|
"vi_VN": "Tác giả: jim3ma. Cài đặt hệ thống chỉ trên ổ đĩa m2 (hiện chỉ hỗ trợ SA6400).",
|
||||||
|
"zh_CN": "作者:jim3ma。仅在m2磁盘上安装系统(当前仅支持 SA6400)。",
|
||||||
|
"zh_HK": "作者:jim3ma。僅在m2磁碟上安裝系統(目前僅支援 SA6400)。",
|
||||||
|
"zh_TW": "作者:jim3ma。僅在m2磁碟上安裝系統(目前僅支援 SA6400)。"
|
||||||
|
},
|
||||||
|
"nvmecache": {
|
||||||
|
"en_US": "Author: PeterSuh-Q3. Enable M2 disk support for DS918+, DS1019+, DS1621xs+, RS1619xs+.",
|
||||||
|
"es_ES": "Autor: PeterSuh-Q3. Habilita el soporte de discos M2 para DS918+, DS1019+, DS1621xs+, RS1619xs+.",
|
||||||
|
"de_DE": "Autor: PeterSuh-Q3. Aktivieren Sie die Unterstützung für M2-Laufwerke für DS918+, DS1019+, DS1621xs+, RS1619xs+.",
|
||||||
|
"fr_FR": "Auteur: PeterSuh-Q3. Activer la prise en charge des disques M2 pour DS918+, DS1019+, DS1621xs+, RS1619xs+.",
|
||||||
|
"ja_JP": "作成者: PeterSuh-Q3。DS918+、DS1019+、DS1621xs+、RS1619xs+ で M2 ディスクのサポートを有効にします。",
|
||||||
|
"ko_KR": "작성자: PeterSuh-Q3. DS918+, DS1019+, DS1621xs+, RS1619xs+에서 M2 디스크 지원 활성화.",
|
||||||
|
"ru_RU": "Автор: PeterSuh-Q3. Включите поддержку дисков M2 для DS918+, DS1019+, DS1621xs+, RS1619xs+.",
|
||||||
|
"uk_UA": "Автор: PeterSuh-Q3. Увімкніть підтримку дисків M2 для DS918+, DS1019+, DS1621xs+, RS1619xs+.",
|
||||||
|
"vi_VN": "Tác giả: PeterSuh-Q3. Bật hỗ trợ đĩa M2 cho DS918+, DS1019+, DS1621xs+, RS1619xs+.",
|
||||||
|
"zh_CN": "作者:PeterSuh-Q3。启用 DS918+、DS1019+、DS1621xs+、RS1619xs+ 的 M2 硬盘支持。",
|
||||||
|
"zh_HK": "作者:PeterSuh-Q3。啟用 DS918+、DS1019+、DS1621xs+、RS1619xs+ 的 M2 硬碟支援。",
|
||||||
|
"zh_TW": "作者:PeterSuh-Q3。啟用 DS918+、DS1019+、DS1621xs+、RS1619xs+ 的 M2 硬碟支援。"
|
||||||
|
},
|
||||||
|
"lsiutil": {
|
||||||
|
"en_US": "A tool for working with some LSI RAID controllers.",
|
||||||
|
"es_ES": "Una herramienta para trabajar con algunos controladores RAID LSI.",
|
||||||
|
"de_DE": "Ein Werkzeug zum Arbeiten mit einigen LSI RAID Controllern.",
|
||||||
|
"fr_FR": "Un outil pour travailler avec certains contrôleurs RAID LSI.",
|
||||||
|
"ja_JP": "一部の LSI RAID コントローラーと一緒に作業するためのツールです。",
|
||||||
|
"ko_KR": "LSI RAID 컨트롤러와 함께 작업하는 도구입니다.",
|
||||||
|
"ru_RU": "Инструмент для работы с некоторыми контроллерами RAID LSI.",
|
||||||
|
"uk_UA": "Інструмент для роботи з деякими контролерами RAID LSI.",
|
||||||
|
"vi_VN": "Một công cụ để làm việc với một số bộ điều khiển RAID LSI.",
|
||||||
|
"zh_CN": "用于处理某些 LSI RAID 控制器的工具。",
|
||||||
|
"zh_HK": "用於處理某些 LSI RAID 控制器的工具。",
|
||||||
|
"zh_TW": "用於處理某些 LSI RAID 控制器的工具。"
|
||||||
|
},
|
||||||
|
"photosfacepatch": {
|
||||||
|
"en_US": "Author: jinlife. This patch will ignore the GPU to enable face recognition in Synology Photos.",
|
||||||
|
"es_ES": "Autor: jinlife. Este parche ignora la GPU para habilitar el reconocimiento facial en Synology Photos.",
|
||||||
|
"de_DE": "Autor: jinlife. Dieser Patch ignoriert die GPU, um die Gesichtserkennung in Synology Photos zu aktivieren.",
|
||||||
|
"fr_FR": "Auteur: jinlife. Ce patch ignore le GPU pour activer la reconnaissance faciale dans Synology Photos.",
|
||||||
|
"ja_JP": "作者: jinlife。このパッチは、Synology Photos で顔認識を有効にするために GPU を無視します。",
|
||||||
|
"ko_KR": "저자: jinlife. 이 패치는 Synology Photos에서 얼굴 인식을 활성화하기 위해 GPU를 무시합니다.",
|
||||||
|
"ru_RU": "Автор: jinlife. Этот патч игнорирует GPU, чтобы включить распознавание лиц в Synology Photos.",
|
||||||
|
"uk_UA": "Автор: jinlife. Цей патч ігнорує GPU, щоб увімкнути розпізнавання облич в Synology Photos.",
|
||||||
|
"vi_VN": "Tác giả: jinlife. Bản vá này sẽ bỏ qua GPU để kích hoạt nhận diện khuôn mặt trong Synology Photos.",
|
||||||
|
"zh_CN": "作者:jinlife。此补丁将在没有 GPU 存在的情况下启用 Synology Photos 中的人脸识别。",
|
||||||
|
"zh_HK": "作者:jinlife。此補丁將在沒有 GPU 存在的情況下啟用 Synology Photos 中的人臉識別。",
|
||||||
|
"zh_TW": "作者:jinlife。此補丁將在沒有 GPU 存在的情況下啟用 Synology Photos 中的人臉識別。"
|
||||||
|
},
|
||||||
|
"notify": {
|
||||||
|
"en_US": "Add rr notify.",
|
||||||
|
"es_ES": "Añadir rr notify.",
|
||||||
|
"de_DE": "Füge rr notify hinzu.",
|
||||||
|
"fr_FR": "Ajouter rr notify.",
|
||||||
|
"jp_JP": "rr notify を追加します。",
|
||||||
|
"ko_KR": "rr notify 를 추가합니다.",
|
||||||
|
"ru_RU": "Добавить rr notify.",
|
||||||
|
"uk_UA": "Додати rr notify.",
|
||||||
|
"vi_VN": "Thêm rr notify.",
|
||||||
|
"zh_CN": "添加 rr notify。",
|
||||||
|
"zh_HK": "添加 rr notify。",
|
||||||
|
"zh_TW": "新增 rr notify。"
|
||||||
|
},
|
||||||
|
"codecpatch": {
|
||||||
|
"en_US": "Author: wirgen. This patch enables transcoding on Synologys DiskStation Manager 6+ without a valid serial number.",
|
||||||
|
"es_ES": "Autor: wirgen. Este parche permite la transcodificación en DiskStation Manager 6+ de Synology sin un número de serie válido.",
|
||||||
|
"de_DE": "Autor: wirgen. Dieser Patch ermöglicht die Transkodierung auf Synologys DiskStation Manager 6+ ohne eine gültige Seriennummer.",
|
||||||
|
"fr_FR": "Auteur: wirgen. Ce patch permet la transcodage sur DiskStation Manager 6+ de Synology sans numéro de série valide.",
|
||||||
|
"ja_JP": "作者: wirgen。このパッチは、有効なシリアル番号なしでSynologyのDiskStation Manager 6+でトランスコードを有効にします。",
|
||||||
|
"ko_KR": "저자: wirgen. 이 패치는 유효한 시리얼 번호 없이 Synology의 DiskStation Manager 6+에서 트랜스코딩을 활성화합니다.",
|
||||||
|
"ru_RU": "Автор: wirgen. Этот патч позволяет транскодирование на DiskStation Manager 6+ от Synology без действительного серийного номера.",
|
||||||
|
"uk_UA": "Автор: wirgen. Цей патч дозволяє транскодування на DiskStation Manager 6+ від Synology без дійсного серійного номера.",
|
||||||
|
"vi_VN": "Tác giả: wirgen. Bản vá này cho phép chuyển mã trên DiskStation Manager 6+ của Synology mà không cần số sê-ri hợp lệ.",
|
||||||
|
"zh_CN": "作者:wirgen。此补丁可在Synology的DiskStation Manager 6+上启用转码,无需有效的序列号。",
|
||||||
|
"zh_HK": "作者:wirgen。此补丁可在Synology的DiskStation Manager 6+上启用转码,无需有效的序列号。",
|
||||||
|
"zh_TW": "作者:wirgen。此補丁可在Synology的DiskStation Manager 6+上啟用轉碼,無需有效的序列號。"
|
||||||
|
},
|
||||||
|
"expands": {
|
||||||
|
"en_US": "Expanded miscellaneous, updated usb.map, ca-certificates.crt, etc.",
|
||||||
|
"es_ES": "Misceláneos ampliados, usb.map actualizado, ca-certificates.crt, etc.",
|
||||||
|
"de_DE": "Erweiterte Diverses, aktualisierte usb.map, ca-certificates.crt, etc.",
|
||||||
|
"fr_FR": "Diverses étendues, usb.map mise à jour, ca-certificates.crt, etc.",
|
||||||
|
"ja_JP": "拡張その他、更新された usb.map、ca-certificates.crt など",
|
||||||
|
"ko_KR": "기타 확장, 업데이트 된 usb.map, ca-certificates.crt 등",
|
||||||
|
"ru_RU": "Расширенные разные, обновленная usb.map, ca-certificates.crt и т. Д.",
|
||||||
|
"uk_UA": "Розширені різні, оновлена usb.map, ca-certificates.crt тощо.",
|
||||||
|
"vi_VN": "Mở rộng các loại khác nhau, usb.map được cập nhật, ca-certificates.crt, v.v.",
|
||||||
|
"zh_CN": "扩展杂项,更新 usb.map,ca-certificates.crt 等。",
|
||||||
|
"zh_HK": "擴展雜項,更新 usb.map,ca-certificates.crt 等。",
|
||||||
|
"zh_TW": "擴展雜項,更新 usb.map,ca-certificates.crt 等。"
|
||||||
|
},
|
||||||
|
"bootwait": {
|
||||||
|
"en_US": "This script ensures that the startup process waits until the loader disk (/dev/synoboot) is available before starting other processes.",
|
||||||
|
"es_ES": "Este script asegura que el proceso de arranque espere hasta que el disco de carga (/dev/synoboot) esté disponible antes de iniciar otros procesos.",
|
||||||
|
"de_DE": "Dieses Skript stellt sicher, dass der Startvorgang wartet, bis die Loader-Festplatte (/dev/synoboot) verfügbar ist, bevor andere Prozesse gestartet werden.",
|
||||||
|
"fr_FR": "Ce script garantit que le processus de démarrage attend que le disque de chargement (/dev/synoboot) soit disponible avant de démarrer d'autres processus.",
|
||||||
|
"ja_JP": "このスクリプトは、他のプロセスを開始する前に、起動プロセスがローダーディスク (/dev/synoboot) が利用可能になるまで待機するようにします。",
|
||||||
|
"ko_KR": "이 스크립트는 다른 프로세스를 시작하기 전에 부팅 프로세스가 로더 디스크 (/dev/synoboot)가 사용 가능할 때까지 기다리도록합니다.",
|
||||||
|
"ru_RU": "Этот скрипт гарантирует, что процесс запуска ожидает, пока дисковая подсистема загрузки (/dev/synoboot) доступна, прежде чем запускать другие процессы.",
|
||||||
|
"uk_UA": "Цей скрипт забезпечує, що процес завантаження чекає, поки диск завантаження (/dev/synoboot) стане доступним, перш ніж запускати інші процеси.",
|
||||||
|
"vi_VN": "Tập lệnh này đảm bảo quá trình khởi động đợi cho đến khi ổ đĩa khởi động (/dev/synoboot) có sẵn trước khi bắt đầu các quá trình khác.",
|
||||||
|
"zh_CN": "此脚本确保启动过程在启动加载器磁盘 (/dev/synoboot) 可用之前等待,然后再启动其他进程。",
|
||||||
|
"zh_HK": "此腳本確保啟動過程在啟動載入器磁碟 (/dev/synoboot) 可用之前等待,然後再啟動其他進程。",
|
||||||
|
"zh_TW": "此腳本確保啟動過程在啟動載入器磁碟 (/dev/synoboot) 可用之前等待,然後再啟動其他進程。"
|
||||||
|
},
|
||||||
|
"dbgutils": {
|
||||||
|
"en_US": "Debug utilities, automatically enable ttyd and dufs in junior mode, and automatically capture all stage boot logs to <loader disk>/p1/logs/.",
|
||||||
|
"es_ES": "Herramientas de depuración, habilitan automáticamente ttyd y dufs en modo junior, y capturan automáticamente todos los registros de arranque de las fases en <loader disk>/p1/logs/.",
|
||||||
|
"de_DE": "Debug-Tools, aktivieren automatisch ttyd und dufs im Junior-Modus und erfassen automatisch alle Startprotokolle der Stufen in <loader disk>/p1/logs/.",
|
||||||
|
"fr_FR": "Outils de débogage, activent automatiquement ttyd et dufs en mode junior, et capturent automatiquement tous les journaux de démarrage de la phase dans <loader disk>/p1/logs/.",
|
||||||
|
"ja_JP": "デバッグユーティリティは、ジュニアモードで自動的にttydとdufsを有効にし、すべてのステージブートログを<loader disk>/p1/logs/に自動的にキャプチャします。",
|
||||||
|
"ko_KR": "디버그 유틸리티, 주니어 모드에서 자동으로 ttyd와 dufs를 활성화하고 모든 단계 부팅 로그를 <loader disk>/p1/logs/에 자동으로 캡처합니다.",
|
||||||
|
"ru_RU": "Утилиты отладки, автоматически включают ttyd и dufs в режиме junior и автоматически захватывают все журналы загрузки этапа в <loader disk>/p1/logs/.",
|
||||||
|
"uk_UA": "Утиліти налагодження, автоматично увімкнути ttyd та dufs у режимі junior, та автоматично захопити всі журнали завантаження етапу в <loader disk>/p1/logs/.",
|
||||||
|
"vi_VN": "Công cụ debug, tự động bật ttyd và dufs trong chế độ junior và tự động ghi lại tất cả các bản ghi khởi động của các giai đoạn vào <loader disk>/p1/logs/.",
|
||||||
|
"zh_CN": "Debug 程序集合,在 junior 模式下自动开启 ttyd 和 dufs,并会自动抓取所有阶段的启动日志放于 <loader disk>/p1/logs/ 下。",
|
||||||
|
"zh_HK": "Debug 程序集合,在 junior 模式下自動開啟 ttyd 和 dufs,並會自動抓取所有階段的啟動日誌放於 <loader disk>/p1/logs/ 下。",
|
||||||
|
"zh_TW": "Debug 程序集合,在 junior 模式下自動開啟 ttyd 和 dufs,並會自動抓取所有階段的啟動日誌放於 <loader disk>/p1/logs/ 下。"
|
||||||
|
},
|
||||||
|
"powersched": {
|
||||||
|
"en_US": "A program to configure the RTC according to the DSM power plan, so that the RTC (scheduled power on/off) can work properly.",
|
||||||
|
"es_ES": "Un programa para configurar el RTC de acuerdo con el plan de energía de DSM, de modo que el RTC (programado encendido/apagado) pueda funcionar correctamente.",
|
||||||
|
"de_DE": "Ein Programm zum Konfigurieren des RTC gemäß dem DSM-Energieplan, damit der RTC (geplantes Ein-/Ausschalten) ordnungsgemäß funktionieren kann.",
|
||||||
|
"fr_FR": "Un programme pour configurer le RTC selon le plan d'alimentation DSM, de sorte que le RTC (mise sous tension/arrêt programmée) puisse fonctionner correctement.",
|
||||||
|
"ja_JP": "DSM 電源計画に従って RTC を構成するプログラムです。これにより RTC(予約電源オン/オフ)が正常に動作します。",
|
||||||
|
"ko_KR": "DSM 전원 계획에 따라 RTC를 구성하여 RTC(예약 전원/전원 끄기)이 정상적으로 작동하도록합니다.",
|
||||||
|
"ru_RU": "Программа для настройки RTC в соответствии с планом питания DSM, чтобы RTC (запланированное включение/выключение) могло работать правильно.",
|
||||||
|
"uk_UA": "Програма для налаштування RTC відповідно до плану живлення DSM, щоб RTC (заплановане ввімкнення/вимкнення) працювало належним чином.",
|
||||||
|
"vi_VN": "Chương trình để cấu hình RTC theo kế hoạch nguồn DSM, để RTC (bật/tắt theo lịch trình) có thể hoạt động đúng cách.",
|
||||||
|
"zh_CN": "根据 DSM 电源计划配置 RTC 的程序, 使 RTC(定时开关机) 可以正常工作。",
|
||||||
|
"zh_HK": "根據 DSM 電源計劃配置 RTC 的程式, 使 RTC(定時開關機) 可以正常工作。",
|
||||||
|
"zh_TW": "根據 DSM 電源計劃配置 RTC 的程式, 使 RTC(定時開關機) 可以正常工作。"
|
||||||
|
},
|
||||||
|
"storagepanel": {
|
||||||
|
"en_US": "Change the storage panel disk display (default: RACK_24_Bay 1X8).",
|
||||||
|
"es_ES": "Cambie el panel de almacenamiento de disco de visualización (predeterminado: RACK_24_Bay 1X8).",
|
||||||
|
"de_DE": "Ändern Sie die Speicherpanel-Disk-Anzeige (Standard: RACK_24_Bay 1X8).",
|
||||||
|
"fr_FR": "Changer l'affichage du disque du panneau de stockage (par défaut : RACK_24_Bay 1X8).",
|
||||||
|
"ja_JP": "ストレージパネルディスク表示を変更します(デフォルト:RACK_24_Bay 1X8)。",
|
||||||
|
"ko_KR": "스토리지 패널 디스크 표시 변경(기본값: RACK_24_Bay 1X8).",
|
||||||
|
"ru_RU": "Изменить отображение диска панели хранения (по умолчанию: RACK_24_Bay 1X8).",
|
||||||
|
"uk_UA": "Змінити відображення диска панелі зберігання (за замовчуванням: RACK_24_Bay 1X8).",
|
||||||
|
"vi_VN": "Thay đổi hiển thị ổ đĩa của bảng lưu trữ (mặc định: RACK_24_Bay 1X8).",
|
||||||
|
"zh_CN": "修改存储面板磁盘显示(默认:RACK_24_Bay 1X8)。",
|
||||||
|
"zh_HK": "修改存儲面板磁盤顯示(默認:RACK_24_Bay 1X8)。",
|
||||||
|
"zh_TW": "修改存儲面板磁盤顯示(默認:RACK_24_Bay 1X8)。"
|
||||||
|
},
|
||||||
|
"misc": {
|
||||||
|
"en_US": "Miscellaneous functions.(a collection of some minor modifications.)",
|
||||||
|
"es_ES": "Funciones varias.(una colección de algunas modificaciones menores.)",
|
||||||
|
"de_DE": "Verschiedene Funktionen.(eine Sammlung von einigen kleineren Modifikationen.)",
|
||||||
|
"fr_FR": "Fonctions diverses.(une collection de quelques modifications mineures.)",
|
||||||
|
"ja_JP": "その他の機能。(いくつかの小さな変更のコレクション。)",
|
||||||
|
"ko_KR": "기타 기능.(일부 작은 수정의 모음입니다.)",
|
||||||
|
"ru_RU": "Различные функции.(сборник некоторых незначительных модификаций.)",
|
||||||
|
"uk_UA": "Різні функції.(колекція деяких незначних модифікацій.)",
|
||||||
|
"vi_VN": "Các chức năng khác nhau.(một bộ sưu tập của một số sửa đổi nhỏ.)",
|
||||||
|
"zh_CN": "杂项功能。(一些小修改的集合。)",
|
||||||
|
"zh_HK": "雜項功能。(一些小修改的集合。)",
|
||||||
|
"zh_TW": "雜項功能。(一些小修改的集合。)"
|
||||||
|
},
|
||||||
|
"synoconfbkp": {
|
||||||
|
"en_US": "Automatically backup system config settings to the bootloader disk(<loader disk>/p1/scbk/) at bootup and shutdown. Parameters: $1 - number of saves, default 7; $2 - file name prefix, default \"bkp\".",
|
||||||
|
"es_ES": "Realiza automáticamente una copia de seguridad de la configuración del sistema en el disco de arranque (<disco de arranque>/p1/scbk/) al arrancar y apagar. Parámetros: $1 - número de copias, por defecto 7; $2 - prefijo del nombre del archivo, por defecto \"bkp\".",
|
||||||
|
"de_DE": "Sichert automatisch die Systemkonfigurationseinstellungen auf der Bootloader-Festplatte (<Bootloader-Festplatte>/p1/scbk/) beim Booten und Herunterfahren. Parameter: $1 - Anzahl der Sicherungen, Standard 7; $2 - Dateiname-Präfix, Standard \"bkp\".",
|
||||||
|
"fr_FR": "Sauvegarde automatiquement les paramètres de configuration du système sur le disque de démarrage (<disque de démarrage>/p1/scbk/) au démarrage et à l'arrêt. Paramètres : $1 - nombre de sauvegardes, par défaut 7 ; $2 - préfixe du nom de fichier, par défaut \"bkp\".",
|
||||||
|
"ja_JP": "システム構成設定をブートローダーディスク(<ブートローダーディスク>/p1/scbk/)に自動的にバックアップします。起動時とシャットダウン時に実行されます。パラメータ: $1 - 保存回数、デフォルト 7; $2 - ファイル名のプレフィックス、デフォルト \"bkp\"。",
|
||||||
|
"ko_KR": "시스템 구성 설정을 부트로더 디스크(<부트로더 디스크>/p1/scbk/)에 부팅 및 종료시 자동으로 백업합니다. 매개변수: $1 - 저장 횟수, 기본값 7; $2 - 파일 이름 접두사, 기본값 \"bkp\".",
|
||||||
|
"ru_RU": "Автоматическое резервное копирование настроек конфигурации системы на диске загрузчика (<диск загрузчика>/p1/scbk/) при загрузке и выключении. Параметры: $1 - количество сохранений, по умолчанию 7; $2 - префикс имени файла, по умолчанию \"bkp\".",
|
||||||
|
"uk_UA": "Автоматичне резервне копіювання налаштувань конфігурації системи на диску завантажувача (<диск завантажувача>/p1/scbk/) під час завантаження та вимкнення. Параметри: $1 - кількість збережень, за замовчуванням 7; $2 - префікс імені файлу, за замовчуванням \"bkp\".",
|
||||||
|
"vi_VN": "Sao lưu tự động cài đặt cấu hình hệ thống vào ổ đĩa bootloader (<ổ đĩa bootloader>/p1/scbk/) khi khởi động và tắt máy. Tham số: $1 - số lần lưu, mặc định 7; $2 - tiền tố tên tệp, mặc định \"bkp\".",
|
||||||
|
"zh_CN": "在启动和关机时自动备份系统配置设置到引导加载器磁盘(<引导加载器磁盘>/p1/scbk/)。参数:$1 - 保存次数,默认 7;$2 - 文件名前缀,默认 \"bkp\"。",
|
||||||
|
"zh_HK": "在啟動和關機時自動備份系統設定到引導載入器磁碟(<引導載入器磁碟>/p1/scbk/)。參數:$1 - 保存次數,預設 7;$2 - 檔案名稱前綴,預設 \"bkp\"。",
|
||||||
|
"zh_TW": "在開機和關機時自動備份系統設定到引導載入器磁碟(<引導載入器磁碟>/p1/scbk/)。參數:$1 - 保存次數,預設 7;$2 - 檔案名稱前綴,預設 \"bkp\"。"
|
||||||
|
},
|
||||||
|
"acpid": {
|
||||||
|
"en_US": "ACPI Daemon that handles power button events, fixing power button not shutting down in some environments.",
|
||||||
|
"es_ES": "Demonio ACPI que maneja los eventos del botón de encendido, solucionando el problema de que el botón de encendido no apague en algunos entornos.",
|
||||||
|
"de_DE": "ACPI Daemon, der die Power-Button-Ereignisse behandelt, um das Problem zu beheben, dass der Power-Button in einigen Umgebungen nicht herunterfährt.",
|
||||||
|
"fr_FR": "Démon ACPI qui gère les événements du bouton d'alimentation, corrigeant le problème du bouton d'alimentation qui ne s'éteint pas dans certains environnements.",
|
||||||
|
"ja_JP": "電源ボタンのイベントを処理するACPIデーモンで、一部の環境で電源ボタンがシャットダウンしない問題を修正します。",
|
||||||
|
"ko_KR": "전원 버튼 이벤트를 처리하는 ACPI 데몬, 일부 환경에서 전원 버튼이 종료되지 않는 문제를 해결합니다.",
|
||||||
|
"ru_RU": "Демон ACPI, обрабатывающий события кнопки питания, исправляющий проблему, когда кнопка питания не выключает в некоторых средах.",
|
||||||
|
"uk_UA": "Демон ACPI, який обробляє події кнопки живлення, виправляючи проблему, коли кнопка живлення не вимикає в деяких середовищах.",
|
||||||
|
"vi_VN": "ACPI Daemon xử lý các sự kiện nút nguồn, sửa lỗi nút nguồn không tắt máy trong một số môi trường.",
|
||||||
|
"zh_CN": "处理电源按钮事件的ACPI守护程序, 解决部分环境下电源按钮无法正常关机的问题.",
|
||||||
|
"zh_HK": "處理電源按鈕事件的ACPI守护程序, 解决部分環境下電源按鈕無法正常關機的問題.",
|
||||||
|
"zh_TW": "處理電源按鈕事件的ACPI守护程序, 解决部分環境下電源按鈕無法正常關機的問題."
|
||||||
|
},
|
||||||
|
"revert": {
|
||||||
|
"en_US": "Revert addons modifications.",
|
||||||
|
"es_ES": "Deshacer las modificaciones de los addons.",
|
||||||
|
"de_DE": "Addons-Modifikationen rückgängig machen.",
|
||||||
|
"fr_FR": "Annuler les modifications des addons.",
|
||||||
|
"ja_JP": "アドオンの変更を元に戻します。",
|
||||||
|
"ko_KR": "애드온 수정 사항을 되돌립니다.",
|
||||||
|
"ru_RU": "Отменить изменения аддонов.",
|
||||||
|
"uk_UA": "Скасувати зміни додатків.",
|
||||||
|
"vi_VN": "Hoàn tác các thay đổi của các tiện ích.",
|
||||||
|
"zh_CN": "撤销插件修改。",
|
||||||
|
"zh_HK": "還原插件修改。",
|
||||||
|
"zh_TW": "還原插件修改。"
|
||||||
|
},
|
||||||
|
"eudev": {
|
||||||
|
"en_US": "eudev + kmod automatically loaded modules.",
|
||||||
|
"es_ES": "eudev + kmod módulos cargados automáticamente.",
|
||||||
|
"de_DE": "eudev + kmod automatisch geladene Module.",
|
||||||
|
"fr_FR": "eudev + kmod modules chargés automatiquement.",
|
||||||
|
"ja_JP": "eudev + kmod 自動的にロードされるモジュール。",
|
||||||
|
"ko_KR": "eudev + kmod 자동으로 로드된 모듈.",
|
||||||
|
"ru_RU": "eudev + kmod автоматически загружаемые модули.",
|
||||||
|
"uk_UA": "eudev + kmod автоматично завантажені модулі.",
|
||||||
|
"vi_VN": "eudev + kmod môdules tải tự động.",
|
||||||
|
"zh_CN": "eudev + kmod 自动加载模块。",
|
||||||
|
"zh_HK": "eudev + kmod 自動加載模塊。",
|
||||||
|
"zh_TW": "eudev + kmod 自動加載模塊。"
|
||||||
|
},
|
||||||
|
"localrss": {
|
||||||
|
"en_US": "Implant RSS into the bootloader so that it can be installed online.",
|
||||||
|
"es_ES": "Implantar RSS en el cargador de arranque para que se pueda instalar en línea.",
|
||||||
|
"de_DE": "RSS in den Bootloader einpflanzen, damit er online installiert werden kann.",
|
||||||
|
"fr_FR": "Implanter RSS dans le chargeur de démarrage pour qu'il puisse être installé en ligne.",
|
||||||
|
"ja_JP": "RSS をブートローダーに埋め込んでオンラインでインストールできるようにします。",
|
||||||
|
"ko_KR": "부트로더에 RSS를 심어 온라인으로 설치할 수 있습니다.",
|
||||||
|
"ru_RU": "Внедрить RSS в загрузчик, чтобы его можно было установить онлайн.",
|
||||||
|
"uk_UA": "Внести RSS в завантажувач, щоб його можна було встановити онлайн.",
|
||||||
|
"vi_VN": "Cấy RSS vào trình khởi động để có thể cài đặt trực tuyến.",
|
||||||
|
"zh_CN": "将 RSS 植入到引导加载程序中,以便可以在线安装。",
|
||||||
|
"zh_HK": "將 RSS 植入到引導加載程序中,以便可以在線安裝。",
|
||||||
|
"zh_TW": "將 RSS 植入到引導載入程式中,以便可以在線安裝。"
|
||||||
|
},
|
||||||
|
"wireless": {
|
||||||
|
"en_US": "Connect WiFi. Please modify 'IFNAME' 'SSID' 'PASSWD' to the required password in the DSM scheduled task and execute it.",
|
||||||
|
"es_ES": "Conecte WiFi. Modifique 'IFNAME' 'SSID' 'PASSWD' a la contraseña requerida en la tarea programada DSM y ejecútela.",
|
||||||
|
"de_DE": "Verbinden Sie WiFi. Bitte ändern Sie 'IFNAME' 'SSID' 'PASSWD' auf das erforderliche Passwort in der DSM geplanten Aufgabe und führen Sie es aus.",
|
||||||
|
"fr_FR": "Connectez-vous au WiFi. Veuillez modifier 'IFNAME' 'SSID' 'PASSWD' au mot de passe requis dans la tâche planifiée DSM et exécutez-la.",
|
||||||
|
"ja_JP": "WiFiに接続してください。DSMの予約タスクで必要なパスワードに 'IFNAME' 'SSID' 'PASSWD' を変更して実行してください。",
|
||||||
|
"ko_KR": "WiFi에 연결하십시오. DSM 예약 작업에서 필요한 암호로 'IFNAME' 'SSID' 'PASSWD'를 수정하고 실행하십시오.",
|
||||||
|
"ru_RU": "Подключитесь к WiFi. Пожалуйста, измените 'IFNAME' 'SSID' 'PASSWD' на требуемый пароль в запланированной задаче DSM и выполните ее.",
|
||||||
|
"uk_UA": "Підключіться до WiFi. Будь ласка, змініть 'IFNAME' 'SSID' 'PASSWD' на потрібний пароль у запланованому завданні DSM та виконайте його.",
|
||||||
|
"vi_VN": "Kết nối WiFi. Vui lòng sửa đổi 'IFNAME' 'SSID' 'PASSWD' thành mật khẩu yêu cầu trong tác vụ được lên lịch DSM và thực hiện nó.",
|
||||||
|
"zh_CN": "连接 WiFi。请在 DSM 计划任务中将 'IFNAME' 'SSID' 'PASSWD' 修改为所需密码并执行它。",
|
||||||
|
"zh_HK": "連接 WiFi。請在 DSM 計劃任務中將 'IFNAME' 'SSID' 'PASSWD' 修改為所需密碼並執行它。",
|
||||||
|
"zh_TW": "連接 WiFi。請在 DSM 計劃任務中將 'IFNAME' 'SSID' 'PASSWD' 修改為所需密碼並執行它。"
|
||||||
|
},
|
||||||
|
"console": {
|
||||||
|
"en_US": "Provides screen console (bash) functionality via framebuffer (fb) to allow debugging on the screen, only supported on models with a graphics driver.",
|
||||||
|
"es_ES": "Proporciona la funcionalidad de la consola (bash) de pantalla a través del framebuffer (fb) para permitir la depuración en la pantalla, solo se admite en los modelos con un controlador gráfico.",
|
||||||
|
"de_DE": "Bietet Bildschirmkonsolen (bash)-Funktionalität über Framebuffer (fb), um das Debuggen auf dem Bildschirm zu ermöglichen, wird nur auf Modellen mit einem Grafiktreiber unterstützt.",
|
||||||
|
"fr_FR": "Fournit une fonctionnalité de console d'écran (bash) via framebuffer (fb) pour permettre le débogage sur l'écran, pris en charge uniquement sur les modèles avec un pilote graphique.",
|
||||||
|
"ja_JP": "グラフィックスドライバを搭載したモデルでのみサポートされる、フレームバッファ (fb) を介した画面コンソール (bash) 機能を提供し、画面上でのデバッグを可能にします。",
|
||||||
|
"ko_KR": "프레임버퍼(fb)를 통해 화면 콘솔(bash) 기능을 제공하여 화면에서 디버깅을 허용하며, 그래픽 드라이버가 있는 모델에서만 지원됩니다.",
|
||||||
|
"ru_RU": "Предоставляет функциональность консоли экрана (bash) через framebuffer (fb) для разрешения отладки на экране, поддерживается только на моделях с графическим драйвером.",
|
||||||
|
"uk_UA": "Надає функціональність консолі екрану (bash) через буфер кадру (fb) для дозволу налагодження на екрані, підтримується лише на моделях з графічним драйвером.",
|
||||||
|
"vi_VN": "Cung cấp chức năng màn hình (bash) qua framebuffer (fb) để cho phép kiểm tra trên màn hình, chỉ được hỗ trợ trên các mô hình có trình điều khiển hình ảnh.",
|
||||||
|
"zh_CN": "通过帧缓冲区 (fb) 提供屏幕控制台 (bash) 功能,以允许在屏幕上进行调试,仅支持具有显卡驱动程序的型号。",
|
||||||
|
"zh_HK": "透過幀緩衝區 (fb) 提供屏幕控制台 (bash) 功能,以允許在屏幕上進行調試,僅支持具有顯卡驅動程序的型號。",
|
||||||
|
"zh_TW": "透過幀緩衝區 (fb) 提供屏幕控制台 (bash) 功能,以允許在屏幕上進行調試,僅支持具有顯卡驅動程序的型號。"
|
||||||
|
},
|
||||||
|
"updatenotify": {
|
||||||
|
"en_US": "RR update notification.",
|
||||||
|
"es_ES": "Notificación de actualización de RR.",
|
||||||
|
"de_DE": "RR-Update-Benachrichtigung.",
|
||||||
|
"fr_FR": "Notification de mise à jour de RR.",
|
||||||
|
"jp_JP": "RRアップデート通知。",
|
||||||
|
"ko_KR": "RR 업데이트 알림.",
|
||||||
|
"ru_RU": "Уведомление об обновлении RR.",
|
||||||
|
"uk_UA": "Сповіщення про оновлення RR.",
|
||||||
|
"vi_VN": "Thông báo cập nhật RR.",
|
||||||
|
"zh_CN": "RR更新通知。",
|
||||||
|
"zh_HK": "RR更新通知。",
|
||||||
|
"zh_TW": "RR更新通知。"
|
||||||
|
},
|
||||||
|
"mountloader": {
|
||||||
|
"en_US": "Add a script to mount/unmount loader disk in the DSM scheduled task, For use by the rr-manager applications.",
|
||||||
|
"es_ES": "Agregue un script para montar/desmontar el disco de carga en la tarea programada DSM, para uso por las aplicaciones rr-manager.",
|
||||||
|
"de_DE": "Fügen Sie ein Skript hinzu, um die Loader-Disk in der DSM-geplanten Aufgabe zu mounten/zu entladen, für die Verwendung durch die rr-manager-Anwendungen.",
|
||||||
|
"fr_FR": "Ajoutez un script pour monter/démonter le disque de chargement dans la tâche planifiée DSM, pour une utilisation par les applications rr-manager.",
|
||||||
|
"ja_JP": "DSM のスケジュールされたタスクでローダーディスクをマウント/アンマウントするスクリプトを追加します。rr-manager アプリケーションで使用します。",
|
||||||
|
"ko_KR": "DSM 예약 작업에서 로더 디스크를 마운트/언마운트하는 스크립트를 추가하십시오. rr-manager 응용 프로그램에서 사용합니다.",
|
||||||
|
"ru_RU": "Добавьте скрипт для монтирования/размонтирования диска загрузчика в запланированной задаче DSM, для использования приложениями rr-manager.",
|
||||||
|
"uk_UA": "Додайте сценарій для монтування/розмонтовування диска завантажувача в запланованому завданні DSM, для використання програмами rr-manager.",
|
||||||
|
"vi_VN": "Thêm một tập lệnh để gắn / tháo gắn đĩa loader trong nhiệm vụ được lên lịch DSM, để sử dụng bởi các ứng dụng rr-manager.",
|
||||||
|
"zh_CN": "在 DSM 计划任务中添加一个脚本来挂载/卸载加载器磁盘,供 rr-manager 应用程序使用。",
|
||||||
|
"zh_HK": "在 DSM 計劃任務中添加一個腳本來掛載/卸載加載器磁碟,供 rr-manager 應用程序使用。",
|
||||||
|
"zh_TW": "在 DSM 計劃任務中添加一個腳本來掛載/卸載加載器磁碟,供 rr-manager 應用程序使用。"
|
||||||
|
},
|
||||||
|
"cpuinfo": {
|
||||||
|
"en_US": "Only make the control panel display the correct CPU information. (By default, hardware information is automatically obtained, and parameters can be customized through parameters, parameters: --vendor=, --family=, --series=, --cores=, --speed=, -r(restore)).",
|
||||||
|
"es_ES": "Solo haga que el panel de control muestre la información correcta de la CPU. (De forma predeterminada, la información del hardware se obtiene automáticamente, y los parámetros se pueden personalizar a través de parámetros, parámetros: --vendor=, --family=, --series=, --cores=, --speed=, -r(restore)).",
|
||||||
|
"de_DE": "Nur das Bedienfeld die richtigen CPU-Informationen anzeigen lassen. (Standardmäßig wird die Hardwareinformation automatisch abgerufen, und die Parameter können durch Parameter angepasst werden, Parameter: --vendor=, --family=, --series=, --cores=, --speed=, -r(restore)).",
|
||||||
|
"fr_FR": "Faites en sorte que le panneau de contrôle affiche les informations correctes sur le processeur. (Par défaut, les informations matérielles sont automatiquement obtenues, et les paramètres peuvent être personnalisés via des paramètres, paramètres: --vendor=, --family=, --series=, --cores=, --speed=, -r(restore)).",
|
||||||
|
"ja_JP": "コントロールパネルに正しい CPU 情報のみを表示します。 (デフォルトではハードウェア情報が自動的に取得され、パラメータはパラメータを介してカスタマイズできます。パラメータ: --vendor=, --family=, --series=, --cores=, --speed=, -r(restore)).",
|
||||||
|
"ko_KR": "컨트롤 패널에서 올바른 CPU 정보만 표시하도록합니다. (기본적으로 하드웨어 정보가 자동으로 가져 오며 매개 변수를 통해 사용자 정의 할 수 있습니다. 매개 변수 : --vendor=, --family=, --series=, --cores=, --speed=, -r(restore)).",
|
||||||
|
"ru_RU": "Только заставьте панель управления отображать правильную информацию о процессоре. (По умолчанию информация об аппаратном обеспечении автоматически получается, и параметры могут быть настроены через параметры, параметры: --vendor=, --family=, --series=, --cores=, --speed=, -r(restore)).",
|
||||||
|
"uk_UA": "Тільки зробіть панель управління відображати правильну інформацію про процесор. (За замовчуванням інформація про апаратне забезпечення автоматично отримується, і параметри можуть бути налаштовані через параметри, параметри: --vendor=, --family=, --series=, --cores=, --speed=, -r(restore)).",
|
||||||
|
"vi_VN": "Chỉ khiến cho bảng điều khiển hiển thị thông tin CPU chính xác. (Mặc định, thông tin phần cứng được tự động lấy, và các tham số có thể được tùy chỉnh thông qua các tham số, tham số: --vendor=, --family=, --series=, --cores=, --speed=, -r(restore)).",
|
||||||
|
"zh_CN": "仅使控制面板显示正确的 CPU 信息。(默认自动获取硬件信息,可通过的参数进行自定义, 参数: --vendor=, --family=, --series=, --cores=, --speed=, -r(restore)).",
|
||||||
|
"zh_HK": "僅使控制面板顯示正確的 CPU 資訊。(默認自動獲取硬件信息,可通過的參數進行自定義, 參數: --vendor=, --family=, --series=, --cores=, --speed=, -r(restore)).",
|
||||||
|
"zh_TW": "僅使控制面板顯示正確的 CPU 資訊。(默認自動獲取硬件信息,可通過的參數進行自定義, 參數: --vendor=, --family=, --series=, --cores=, --speed=, -r(restore))."
|
||||||
|
},
|
||||||
|
"setrootpw": {
|
||||||
|
"en_US": "Set root password and enable ssh/sftp. Please modify PW=\"\" to the desired password in DSM Task Scheduler and run the task.",
|
||||||
|
"es_ES": "Establece la contraseña de root y habilita ssh/sftp. Por favor, modifique PW=\"\" a la contraseña deseada en el Programador de Tareas de DSM y ejecute la tarea.",
|
||||||
|
"de_DE": "Legen Sie das Root-Passwort fest und aktivieren Sie ssh/sftp. Bitte ändern Sie PW=\"\" in der DSM-Aufgabenplanung in das gewünschte Passwort und führen Sie die Aufgabe aus.",
|
||||||
|
"fr_FR": "Définissez le mot de passe root et activez ssh/sftp. Veuillez modifier PW=\"\" en le mot de passe souhaité dans le planificateur de tâches DSM et exécutez la tâche.",
|
||||||
|
"ja_JP": "ルートパスワードを設定し、ssh/sftpを有効にします。DSM タスクスケジューラで PW=\"\" を希望のパスワードに変更してタスクを実行してください。",
|
||||||
|
"ko_KR": "루트 암호를 설정하고 ssh/sftp를 활성화합니다. DSM 작업 스케줄러에서 PW=\"\"를 원하는 암호로 수정하고 작업을 실행하십시오.",
|
||||||
|
"ru_RU": "Установите пароль root и включите ssh/sftp. Пожалуйста, измените PW=\"\" на желаемый пароль в планировщике задач DSM и запустите задачу.",
|
||||||
|
"uk_UA": "Встановіть пароль root та увімкніть ssh/sftp. Будь ласка, змініть PW=\"\" на бажаний пароль в планувальнику завдань DSM та запустіть завдання.",
|
||||||
|
"vi_VN": "Đặt mật khẩu root và kích hoạt ssh/sftp. Vui lòng sửa đổi PW=\"\" thành mật khẩu mong muốn trong Lịch trình nhiệm vụ DSM và chạy nhiệm vụ.",
|
||||||
|
"zh_CN": "设置 root 密码并启用 ssh/sftp。请在 DSM 计划任务中将 PW=\"\" 修改为所需的密码并运行该任务。",
|
||||||
|
"zh_HK": "設置 root 密碼並啟用 ssh/sftp。請在 DSM 計劃任務中將 PW=\"\" 修改為所需的密碼並運行該任務。",
|
||||||
|
"zh_TW": "設置 root 密碼並啟用 ssh/sftp。請在 DSM 計劃任務中將 PW=\"\" 修改為所需的密碼並執行該任務。"
|
||||||
|
},
|
||||||
|
"i915le10th": {
|
||||||
|
"en_US": "Automatically replace the device ID of i915.ko(apollolake, geminilake), only supporting less 10th. (Parameter VID:PID)",
|
||||||
|
"es_ES": "Reemplace automáticamente el ID de dispositivo de i915.ko (apollolake, geminilake), que solo admite menos de 10. (Parámetro VID: PID)",
|
||||||
|
"de_DE": "Ersetzen Sie automatisch die Geräte-ID von i915.ko (apollolake, geminilake), die nur weniger als 10. unterstützt. (Parameter VID:PID)",
|
||||||
|
"fr_FR": "Remplacez automatiquement l'ID de périphérique de i915.ko (apollolake, geminilake), ne prenant en charge que moins de 10. (Paramètre VID:PID)",
|
||||||
|
"ja_JP": "i915.ko(apollolake、geminilake)のデバイスIDを自動的に置き換え、10未満のみをサポートします。 (パラメータVID:PID)",
|
||||||
|
"ko_KR": "i915.ko(apollolake, geminilake)의 장치 ID를 자동으로 교체하며, 10세 미만만 지원합니다. (파라미터 VID:PID)",
|
||||||
|
"ru_RU": "Автоматическая замена идентификатора устройства i915.ko (apollolake, geminilake), поддерживающего только менее 10. (Параметр VID:PID)",
|
||||||
|
"uk_UA": "Автоматично замінює ідентифікатор пристрою i915.ko (apollolake, geminilake), підтримує лише менше 10. (Параметр VID:PID)",
|
||||||
|
"vi_VN": "Tự động thay thế ID thiết bị của i915.ko (apollolake, geminilake), chỉ hỗ trợ ít hơn 10. (Tham số VID:PID)",
|
||||||
|
"zh_CN": "自动替换 i915.ko(apollolake,geminilake)的设备 ID,仅支持 10 代以下。 (参数VID:PID)",
|
||||||
|
"zh_HK": "自動替換 i915.ko(apollolake,geminilake)的設備 ID,僅支持 10 代以下。 (參數VID:PID)",
|
||||||
|
"zh_TW": "自動替換 i915.ko(apollolake,geminilake)的設備 ID,僅支持 10 代以下。 (參數VID:PID)"
|
||||||
|
},
|
||||||
|
"addincards": {
|
||||||
|
"en_US": "Remove model restrictions from official Addin cards(M2D20, E10G30-T2, ...).",
|
||||||
|
"es_ES": "Elimine las restricciones de modelo de las tarjetas Addin oficiales (M2D20, E10G30-T2, ...).",
|
||||||
|
"de_DE": "Entfernen Sie Modellbeschränkungen von offiziellen Addin-Karten (M2D20, E10G30-T2, ...).",
|
||||||
|
"fr_FR": "Supprimez les restrictions de modèle des cartes Addin officielles (M2D20, E10G30-T2, ...).",
|
||||||
|
"ja_JP": "公式の Addin カード(M2D20、E10G30-T2、...)のモデル制限を解除します。",
|
||||||
|
"ko_KR": "공식 Addin 카드(M2D20, E10G30-T2, ...)의 모델 제한을 제거합니다.",
|
||||||
|
"ru_RU": "Удалите ограничения модели официальных карт Addin (M2D20, E10G30-T2, ...).",
|
||||||
|
"uk_UA": "Видаліть обмеження моделі офіційних карток Addin (M2D20, E10G30-T2, ...).",
|
||||||
|
"vi_VN": "Xóa các hạn chế mô hình từ các thẻ Addin chính thức (M2D20, E10G30-T2, ...).",
|
||||||
|
"zh_CN": "移除官方 Addin 卡(M2D20, E10G30-T2, ...)对 DSM 型号限制。",
|
||||||
|
"zh_HK": "移除官方 Addin 卡(M2D20, E10G30-T2, ...)对 DSM 型號限制。",
|
||||||
|
"zh_TW": "移除官方 Addin 卡(M2D20, E10G30-T2, ...)对 DSM 型號限制。"
|
||||||
|
}
|
||||||
|
}
|
@ -66,7 +66,7 @@
|
|||||||
}
|
}
|
||||||
function changeModel() {
|
function changeModel() {
|
||||||
model = $("#model").val();
|
model = $("#model").val();
|
||||||
var versions = _modules[model];
|
var versions = Object.keys(_modules[model]["productvers"]).reverse();
|
||||||
$("#version")[0].options.length = 0;
|
$("#version")[0].options.length = 0;
|
||||||
for (var i = 0; i < versions.length; i++) {
|
for (var i = 0; i < versions.length; i++) {
|
||||||
var version = versions[i];
|
var version = versions[i];
|
||||||
|
342
docs/models.json
342
docs/models.json
@ -1 +1,341 @@
|
|||||||
{"DS2419+":["7.2","7.1","7.0","6.2"],"DVA3221":["7.2","7.1","7.0","6.2"],"SA3400":["7.2","7.1","7.0","6.2"],"RS4021xs+":["7.2","7.1","7.0","6.2"],"DS923+":["7.2","7.1"],"DS3622xs+":["7.2","7.1","7.0"],"SA6400":["7.2","7.1"],"DS2422+":["7.2","7.1","7.0"],"RS1221+":["7.2","7.1","7.0","6.2"],"DS1522+":["7.2","7.1"],"HD6500":["7.2","7.1","7.0","6.2"],"FS6400":["7.2","7.1","7.0","6.2"],"DS1520+":["7.2","7.1","7.0","6.2"],"DS918+":["7.2","7.1","7.0","6.2"],"DS1823xs+":["7.2","7.1"],"SA3600":["7.2","7.1","7.0","6.2"],"DS1819+":["7.2","7.1","7.0","6.2"],"DS224+":["7.2"],"DS718+":["7.2","7.1","7.0","6.2"],"DVA1622":["7.2","7.1"],"DS1821+":["7.2","7.1","7.0","6.2"],"DS220+":["7.2","7.1","7.0","6.2"],"FS2500":["7.2","7.1","7.0"],"RS2423+":["7.2","7.1"],"RS1619xs+":["7.2","7.1","7.0","6.2"],"SA3610":["7.2","7.1"],"DS1621+":["7.2","7.1","7.0","6.2"],"DS1621xs+":["7.2","7.1","7.0","6.2"],"SA3410":["7.2","7.1"],"RS3413xs+":["7.1","7.0","6.2"],"DS720+":["7.2","7.1","7.0","6.2"],"RS3621xs+":["7.2","7.1","7.0","6.2"],"RS2423RP+":["7.2","7.1"],"DS3615xs":["7.1","7.0","6.2"],"DS1019+":["7.2","7.1","7.0","6.2"],"DVA3219":["7.2","7.1","7.0","6.2"],"DS3617xs":["7.2","7.1","7.0","6.2"],"DS723+":["7.2","7.1"],"DS920+":["7.2","7.1","7.0","6.2"],"DS423+":["7.2","7.1"],"RS3618xs":["7.2","7.1","7.0","6.2"]}
|
{
|
||||||
|
"DS1019+": {
|
||||||
|
"platform": "apollolake",
|
||||||
|
"productvers": {
|
||||||
|
"6.2": "4.4.59",
|
||||||
|
"7.0": "4.4.180",
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"DS1520+": {
|
||||||
|
"platform": "geminilake",
|
||||||
|
"productvers": {
|
||||||
|
"6.2": "4.4.59",
|
||||||
|
"7.0": "4.4.180",
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"DS1522+": {
|
||||||
|
"platform": "r1000",
|
||||||
|
"productvers": {
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"DS1621+": {
|
||||||
|
"platform": "v1000",
|
||||||
|
"productvers": {
|
||||||
|
"6.2": "4.4.59",
|
||||||
|
"7.0": "4.4.180",
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"DS1621xs+": {
|
||||||
|
"platform": "broadwellnk",
|
||||||
|
"productvers": {
|
||||||
|
"6.2": "4.4.59",
|
||||||
|
"7.0": "4.4.180",
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"DS1819+": {
|
||||||
|
"platform": "denverton",
|
||||||
|
"productvers": {
|
||||||
|
"6.2": "4.4.59",
|
||||||
|
"7.0": "4.4.180",
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"DS1821+": {
|
||||||
|
"platform": "v1000",
|
||||||
|
"productvers": {
|
||||||
|
"6.2": "4.4.59",
|
||||||
|
"7.0": "4.4.180",
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"DS1823xs+": {
|
||||||
|
"platform": "v1000",
|
||||||
|
"productvers": {
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"DS220+": {
|
||||||
|
"platform": "geminilake",
|
||||||
|
"productvers": {
|
||||||
|
"6.2": "4.4.59",
|
||||||
|
"7.0": "4.4.180",
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"DS224+": {
|
||||||
|
"platform": "geminilake",
|
||||||
|
"productvers": {
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"DS2419+": {
|
||||||
|
"platform": "denverton",
|
||||||
|
"productvers": {
|
||||||
|
"6.2": "4.4.59",
|
||||||
|
"7.0": "4.4.180",
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"DS2422+": {
|
||||||
|
"platform": "v1000",
|
||||||
|
"productvers": {
|
||||||
|
"7.0": "4.4.180",
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"DS3615xs": {
|
||||||
|
"platform": "bromolow",
|
||||||
|
"productvers": {
|
||||||
|
"6.2": "3.10.105",
|
||||||
|
"7.0": "3.10.108",
|
||||||
|
"7.1": "3.10.108"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"DS3617xs": {
|
||||||
|
"platform": "broadwell",
|
||||||
|
"productvers": {
|
||||||
|
"6.2": "3.10.105",
|
||||||
|
"7.0": "4.4.180",
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"DS3622xs+": {
|
||||||
|
"platform": "broadwellnk",
|
||||||
|
"productvers": {
|
||||||
|
"7.0": "4.4.180",
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"DS423+": {
|
||||||
|
"platform": "geminilake",
|
||||||
|
"productvers": {
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"DS718+": {
|
||||||
|
"platform": "apollolake",
|
||||||
|
"productvers": {
|
||||||
|
"6.2": "4.4.59",
|
||||||
|
"7.0": "4.4.180",
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"DS720+": {
|
||||||
|
"platform": "geminilake",
|
||||||
|
"productvers": {
|
||||||
|
"6.2": "4.4.59",
|
||||||
|
"7.0": "4.4.180",
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"DS723+": {
|
||||||
|
"platform": "r1000",
|
||||||
|
"productvers": {
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"DS918+": {
|
||||||
|
"platform": "apollolake",
|
||||||
|
"productvers": {
|
||||||
|
"6.2": "4.4.59",
|
||||||
|
"7.0": "4.4.180",
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"DS920+": {
|
||||||
|
"platform": "geminilake",
|
||||||
|
"productvers": {
|
||||||
|
"6.2": "4.4.59",
|
||||||
|
"7.0": "4.4.180",
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"DS923+": {
|
||||||
|
"platform": "r1000",
|
||||||
|
"productvers": {
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"DVA1622": {
|
||||||
|
"platform": "geminilake",
|
||||||
|
"productvers": {
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"DVA3219": {
|
||||||
|
"platform": "denverton",
|
||||||
|
"productvers": {
|
||||||
|
"6.2": "4.4.59",
|
||||||
|
"7.0": "4.4.180",
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"DVA3221": {
|
||||||
|
"platform": "denverton",
|
||||||
|
"productvers": {
|
||||||
|
"6.2": "4.4.59",
|
||||||
|
"7.0": "4.4.180",
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"FS2500": {
|
||||||
|
"platform": "v1000",
|
||||||
|
"productvers": {
|
||||||
|
"7.0": "4.4.180",
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"FS6400": {
|
||||||
|
"platform": "purley",
|
||||||
|
"productvers": {
|
||||||
|
"6.2": "4.4.59",
|
||||||
|
"7.0": "4.4.180",
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"HD6500": {
|
||||||
|
"platform": "purley",
|
||||||
|
"productvers": {
|
||||||
|
"6.2": "4.4.59",
|
||||||
|
"7.0": "4.4.180",
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"RS1221+": {
|
||||||
|
"platform": "v1000",
|
||||||
|
"productvers": {
|
||||||
|
"6.2": "4.4.59",
|
||||||
|
"7.0": "4.4.180",
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"RS1619xs+": {
|
||||||
|
"platform": "broadwellnk",
|
||||||
|
"productvers": {
|
||||||
|
"6.2": "4.4.59",
|
||||||
|
"7.0": "4.4.180",
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"RS2423+": {
|
||||||
|
"platform": "v1000",
|
||||||
|
"productvers": {
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"RS2423RP+": {
|
||||||
|
"platform": "v1000",
|
||||||
|
"productvers": {
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"RS3413xs+": {
|
||||||
|
"platform": "bromolow",
|
||||||
|
"productvers": {
|
||||||
|
"6.2": "3.10.105",
|
||||||
|
"7.0": "3.10.108",
|
||||||
|
"7.1": "3.10.108"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"RS3618xs": {
|
||||||
|
"platform": "broadwell",
|
||||||
|
"productvers": {
|
||||||
|
"6.2": "3.10.105",
|
||||||
|
"7.0": "4.4.180",
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"RS3621xs+": {
|
||||||
|
"platform": "broadwellnk",
|
||||||
|
"productvers": {
|
||||||
|
"6.2": "4.4.59",
|
||||||
|
"7.0": "4.4.180",
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"RS4021xs+": {
|
||||||
|
"platform": "broadwellnk",
|
||||||
|
"productvers": {
|
||||||
|
"6.2": "4.4.59",
|
||||||
|
"7.0": "4.4.180",
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"SA3400": {
|
||||||
|
"platform": "broadwellnk",
|
||||||
|
"productvers": {
|
||||||
|
"6.2": "4.4.59",
|
||||||
|
"7.0": "4.4.180",
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"SA3410": {
|
||||||
|
"platform": "broadwellnkv2",
|
||||||
|
"productvers": {
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"SA3600": {
|
||||||
|
"platform": "broadwellnk",
|
||||||
|
"productvers": {
|
||||||
|
"6.2": "4.4.59",
|
||||||
|
"7.0": "4.4.180",
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"SA3610": {
|
||||||
|
"platform": "broadwellnkv2",
|
||||||
|
"productvers": {
|
||||||
|
"7.1": "4.4.180",
|
||||||
|
"7.2": "4.4.302"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"SA6400": {
|
||||||
|
"platform": "epyc7002",
|
||||||
|
"productvers": {
|
||||||
|
"7.1": "5.10.55",
|
||||||
|
"7.2": "5.10.55"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
34249
docs/modules.json
Normal file
34249
docs/modules.json
Normal file
File diff suppressed because it is too large
Load Diff
@ -15,14 +15,15 @@ fi
|
|||||||
function help() {
|
function help() {
|
||||||
echo "Usage: $0 <command> [args]"
|
echo "Usage: $0 <command> [args]"
|
||||||
echo "Commands:"
|
echo "Commands:"
|
||||||
echo " init [workspace] [rr.img] - Initialize the workspace"
|
echo " create [workspace] [rr.img] - Create the workspace"
|
||||||
echo " config [model] - Configure the workspace"
|
echo " init - Initialize the environment"
|
||||||
echo " pack [rr.img] - Pack the workspace"
|
echo " make [model] [version] - Make the DSM system"
|
||||||
|
echo " pack [rr.img] - Pack to rr.img"
|
||||||
echo " help - Show this help"
|
echo " help - Show this help"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
function init() {
|
function create() {
|
||||||
WORKSPACE="$(realpath ${1:-"workspace"})"
|
WORKSPACE="$(realpath ${1:-"workspace"})"
|
||||||
RRIMGPATH="$(realpath ${2:-"rr.img"})"
|
RRIMGPATH="$(realpath ${2:-"rr.img"})"
|
||||||
|
|
||||||
@ -96,7 +97,22 @@ function init() {
|
|||||||
echo "OK."
|
echo "OK."
|
||||||
}
|
}
|
||||||
|
|
||||||
function config() {
|
function init() {
|
||||||
|
if [ ! -f $(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)/rr.env ]; then
|
||||||
|
echo "Please run init first"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
. $(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)/rr.env
|
||||||
|
pushd "${CHROOT_PATH}/initrd/opt/rr"
|
||||||
|
echo "init"
|
||||||
|
./init.sh
|
||||||
|
RET=$?
|
||||||
|
popd
|
||||||
|
[ ${RET} -ne 0 ] && echo "Failed." || echo "Success."
|
||||||
|
return ${RET}
|
||||||
|
}
|
||||||
|
|
||||||
|
function make() {
|
||||||
if [ ! -f $(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)/rr.env ]; then
|
if [ ! -f $(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)/rr.env ]; then
|
||||||
echo "Please run init first"
|
echo "Please run init first"
|
||||||
exit 1
|
exit 1
|
||||||
@ -106,13 +122,10 @@ function config() {
|
|||||||
pushd "${CHROOT_PATH}/initrd/opt/rr"
|
pushd "${CHROOT_PATH}/initrd/opt/rr"
|
||||||
while true; do
|
while true; do
|
||||||
if [ -z "${1}" ]; then
|
if [ -z "${1}" ]; then
|
||||||
echo "init"
|
|
||||||
./init.sh || break
|
|
||||||
echo "menu"
|
echo "menu"
|
||||||
./menu.sh || break
|
./menu.sh || break
|
||||||
|
RET=0
|
||||||
else
|
else
|
||||||
echo "init"
|
|
||||||
./init.sh || break
|
|
||||||
echo "model"
|
echo "model"
|
||||||
./menu.sh modelMenu "${1:-"SA6400"}" || break
|
./menu.sh modelMenu "${1:-"SA6400"}" || break
|
||||||
echo "version"
|
echo "version"
|
||||||
|
122
scripts/func.py
Normal file
122
scripts/func.py
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
#
|
||||||
|
# Copyright (C) 2022 Ing <https://github.com/wjz304>
|
||||||
|
#
|
||||||
|
# This is free software, licensed under the MIT License.
|
||||||
|
# See /LICENSE for more information.
|
||||||
|
#
|
||||||
|
|
||||||
|
import os, sys, glob, json, yaml, click, shutil, tarfile, kmodule
|
||||||
|
from openpyxl import Workbook
|
||||||
|
|
||||||
|
|
||||||
|
@click.group()
|
||||||
|
def cli():
|
||||||
|
"""
|
||||||
|
The CLI is a commands to RR.
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
@cli.command()
|
||||||
|
@click.option("-w", "--workpath", type=str, required=True, help="The workpath of RR.")
|
||||||
|
@click.option("-j", "--jsonpath", type=str, required=True, help="The output path of jsonfile.")
|
||||||
|
@click.option("-x", "--xlsxpath", type=str, required=False, help="The output path of xlsxfile.")
|
||||||
|
def getmodels(workpath, jsonpath, xlsxpath):
|
||||||
|
# Read the model-configs files
|
||||||
|
MS = glob.glob("{}/opt/rr/model-configs/*.yml".format(workpath))
|
||||||
|
models = {}
|
||||||
|
for M in MS:
|
||||||
|
with open(M, "r") as f:
|
||||||
|
M_name = os.path.splitext(os.path.basename(M))[0]
|
||||||
|
M_data = yaml.safe_load(f)
|
||||||
|
M_platform = M_data.get("platform", "")
|
||||||
|
M_productvers = M_data.get("productvers", [])
|
||||||
|
productvers = {}
|
||||||
|
for P in M_productvers:
|
||||||
|
productvers[P] = M_productvers[P].get("kver", "")
|
||||||
|
models[M_name] = {"platform": M_platform, "productvers": productvers}
|
||||||
|
|
||||||
|
if jsonpath:
|
||||||
|
with open(jsonpath, "w") as f:
|
||||||
|
json.dump(models, f, indent=4, ensure_ascii=False)
|
||||||
|
if xlsxpath:
|
||||||
|
wb = Workbook()
|
||||||
|
ws = wb.active
|
||||||
|
ws.append(["Model", "platform", "productvers", "kvernelvers"])
|
||||||
|
for k1, v1 in models.items():
|
||||||
|
for k2, v2 in v1["productvers"].items():
|
||||||
|
ws.append([k1, v1["platform"], k2, v2])
|
||||||
|
wb.save(xlsxpath)
|
||||||
|
|
||||||
|
|
||||||
|
@cli.command()
|
||||||
|
@click.option("-w", "--workpath", type=str, required=True, help="The workpath of RR.")
|
||||||
|
@click.option("-j", "--jsonpath", type=str, required=True, help="The output path of jsonfile.")
|
||||||
|
@click.option("-x", "--xlsxpath", type=str, required=False, help="The output path of xlsxfile.")
|
||||||
|
def getaddons(workpath, jsonpath, xlsxpath):
|
||||||
|
# Read the manifest.yml file
|
||||||
|
AS = glob.glob("{}/mnt/p3/addons/*/manifest.yml".format(workpath))
|
||||||
|
addons = {}
|
||||||
|
for A in AS:
|
||||||
|
with open(A, "r") as file:
|
||||||
|
A_data = yaml.safe_load(file)
|
||||||
|
A_name = A_data.get("name")
|
||||||
|
A_description = A_data.get("description", {"en_US": "Unknown"})
|
||||||
|
addons[A_name] = A_description
|
||||||
|
if jsonpath:
|
||||||
|
with open(jsonpath, "w") as f:
|
||||||
|
json.dump(addons, f, indent=4, ensure_ascii=False)
|
||||||
|
if xlsxpath:
|
||||||
|
wb = Workbook()
|
||||||
|
ws = wb.active
|
||||||
|
ws.append(["Name", "en_US", "zh_CN"])
|
||||||
|
for k1, v1 in addons.items():
|
||||||
|
ws.append([k1, v1.get("en_US", ""), v1.get("zh_CN", "")])
|
||||||
|
wb.save(xlsxpath)
|
||||||
|
|
||||||
|
|
||||||
|
@cli.command()
|
||||||
|
@click.option("-w", "--workpath", type=str, required=True, help="The workpath of RR.")
|
||||||
|
@click.option("-j", "--jsonpath", type=str, required=True, help="The output path of jsonfile.")
|
||||||
|
@click.option("-x", "--xlsxpath", type=str, required=False, help="The output path of xlsxfile.")
|
||||||
|
def getmodules(workpath, jsonpath, xlsxpath):
|
||||||
|
# Read the module files
|
||||||
|
MS = glob.glob("{}/mnt/p3/modules/*.tgz".format(workpath))
|
||||||
|
modules = {}
|
||||||
|
TMP_PATH = "/tmp/modules"
|
||||||
|
if os.path.exists(TMP_PATH):
|
||||||
|
shutil.rmtree(TMP_PATH)
|
||||||
|
for M in MS:
|
||||||
|
M_name = os.path.splitext(os.path.basename(M))[0]
|
||||||
|
M_modules = {}
|
||||||
|
# Extract the module
|
||||||
|
os.makedirs(TMP_PATH)
|
||||||
|
with tarfile.open(M, "r") as tar:
|
||||||
|
tar.extractall(TMP_PATH)
|
||||||
|
# Traverse the extracted files
|
||||||
|
KS = glob.glob("{}/*.ko".format(TMP_PATH))
|
||||||
|
for K in KS:
|
||||||
|
K_name = os.path.splitext(os.path.basename(K))[0]
|
||||||
|
K_info = kmodule.modinfo(K)[0]
|
||||||
|
K_description = K_info.get("description", "")
|
||||||
|
K_depends = K_info.get("depends", "")
|
||||||
|
M_modules[K_name] = {"description": K_description, "depends": K_depends}
|
||||||
|
modules[M_name] = M_modules
|
||||||
|
if os.path.exists(TMP_PATH):
|
||||||
|
shutil.rmtree(TMP_PATH)
|
||||||
|
if jsonpath:
|
||||||
|
with open(jsonpath, "w") as file:
|
||||||
|
json.dump(modules, file, indent=4, ensure_ascii=False)
|
||||||
|
if xlsxpath:
|
||||||
|
wb = Workbook()
|
||||||
|
ws = wb.active
|
||||||
|
ws.append(["Name", "Arch", "description", "depends"])
|
||||||
|
for k1, v1 in modules.items():
|
||||||
|
for k2, v2 in v1.items():
|
||||||
|
ws.append([k2, k1, v2["description"], v2["depends"]])
|
||||||
|
wb.save(xlsxpath)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
cli()
|
3
scripts/requirements.txt
Normal file
3
scripts/requirements.txt
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
click
|
||||||
|
kmodule
|
||||||
|
openpyxl
|
Loading…
x
Reference in New Issue
Block a user