Compare commits
23 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4646b51459 | |||
| a72b7bc1e1 | |||
| 7aca648396 | |||
| 36129b15d1 | |||
| 97ca95ba16 | |||
| ad129e15d5 | |||
| c8371a3fec | |||
| 321fef2f63 | |||
| eb9ba5eefa | |||
| c0524832d0 | |||
| e78610c702 | |||
| 5c0a44a71e | |||
| c859ddc50c | |||
| 5f3ca9ae0d | |||
| 782879d73e | |||
| d5cd0300da | |||
| 85a7ec546c | |||
| 37d34f8406 | |||
| fba22ac1aa | |||
| 0d42f9ca34 | |||
| 7a410d4124 | |||
| 945ede2583 | |||
| 469cd8bc37 |
@@ -59,7 +59,7 @@ jobs:
|
||||
throw "Could not find a downloadable LSLib zip asset in the latest release."
|
||||
}
|
||||
|
||||
Invoke-WebRequest -Uri $asset.browser_download_url -OutFile ".tools/lslib/lslib.zip"
|
||||
Invoke-WebRequest -UseBasicParsing -Uri $asset.browser_download_url -OutFile ".tools/lslib/lslib.zip"
|
||||
Expand-Archive -LiteralPath ".tools/lslib/lslib.zip" -DestinationPath ".tools/lslib" -Force
|
||||
|
||||
- name: Build .pak
|
||||
@@ -157,4 +157,4 @@ jobs:
|
||||
Accept = "application/json"
|
||||
}
|
||||
|
||||
Invoke-WebRequest -Method Post -Uri "$apiBase/releases/$($release.id)/assets?name=$([uri]::EscapeDataString($assetName))" -Headers $uploadHeaders -ContentType "application/octet-stream" -InFile $zipPath
|
||||
Invoke-WebRequest -UseBasicParsing -Method Post -Uri "$apiBase/releases/$($release.id)/assets?name=$([uri]::EscapeDataString($assetName))" -Headers $uploadHeaders -ContentType "application/octet-stream" -InFile $zipPath
|
||||
|
||||
@@ -24,6 +24,8 @@ This repository is for the localization mod only. It must not gain gameplay logi
|
||||
|
||||
- Mod sources: `Mods/DnD 5.5e AIO Russian`
|
||||
- Localization XML: `Mods/DnD 5.5e AIO Russian/Localization/Russian/russian.xml`
|
||||
- Original English localization reference: `https://github.com/Yoonmoonsik/dnd55e/blob/main/Mods/DnD2024_897914ef-5c96-053c-44af-0be823f895fe/Localization/English/english.xml`
|
||||
- Translation glossary reference: `glossary/glossary.normalized.json` — use this as the primary terminology reference when translating
|
||||
- Mod metadata: `Mods/DnD 5.5e AIO Russian/meta.lsx`
|
||||
- CI workflow: `.gitea/workflows/build.yml`
|
||||
- Main build script: `scripts/build.ps1`
|
||||
@@ -89,6 +91,11 @@ Current behavior:
|
||||
|
||||
Do not manually hardcode release versions in the committed `meta.lsx` for each release if CI can derive them from tags.
|
||||
|
||||
Release preparation rule:
|
||||
|
||||
- before creating a release tag, run `scripts/set-version.ps1 -VersionTag <tag>` to update repository `Mods/DnD 5.5e AIO Russian/meta.lsx`
|
||||
- only after that commit the change and create/push the release tag
|
||||
|
||||
## info.json Expectations
|
||||
|
||||
`info.json` is generated during build and should remain aligned with BG3/BG3ModManager expectations.
|
||||
@@ -135,6 +142,8 @@ User preference:
|
||||
- commit messages should describe what was done, not what should be done
|
||||
- if changes affect files that go into the final `.pak`, or change the build/release process, propose releasing the next version
|
||||
- if push fails, retry up to two more times with a 3-second pause between attempts
|
||||
- when referring to a released version in user-facing messages, format the version as a direct link to the release archive whenever the archive URL can be derived
|
||||
- it is acceptable to provide that archive link immediately after publishing the tag, even if the build is still running and the link may become valid a bit later
|
||||
|
||||
Do not auto-commit or auto-push without explicit user approval.
|
||||
|
||||
|
||||
BIN
Mods/DnD 5.5e AIO Russian/GUI/metadata.lsf
Normal file
BIN
Mods/DnD 5.5e AIO Russian/GUI/metadata.lsf
Normal file
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<save>
|
||||
<version major="4" minor="8" revision="0" build="500"/>
|
||||
<region id="Config">
|
||||
@@ -12,7 +12,7 @@
|
||||
<attribute id="Name" type="LSString" value="DnD 5.5e All-in-One BEYOND"/>
|
||||
<attribute id="PublishHandle" type="uint64" value="0"/>
|
||||
<attribute id="UUID" type="guid" value="897914ef-5c96-053c-44af-0be823f895fe"/>
|
||||
<attribute id="Version64" type="int64" value="36028797018963968"/>
|
||||
<attribute id="Version64" type="int64" value="281477124194304"/>
|
||||
</node>
|
||||
</children>
|
||||
</node>
|
||||
@@ -31,10 +31,10 @@
|
||||
<attribute id="PublishHandle" type="uint64" value="0"/>
|
||||
<attribute id="StartupLevelName" type="FixedString" value=""/>
|
||||
<attribute id="UUID" type="FixedString" value="6401e84d-daf2-416d-adeb-99c03a2487a6"/>
|
||||
<attribute id="Version64" type="int64" value="36028797018963968"/>
|
||||
<attribute id="Version64" type="int64" value="281477124194304"/>
|
||||
<children>
|
||||
<node id="PublishVersion">
|
||||
<attribute id="Version64" type="int64" value="36028797018963968"/>
|
||||
<attribute id="Version64" type="int64" value="281477124194304"/>
|
||||
</node>
|
||||
</children>
|
||||
</node>
|
||||
|
||||
BIN
Mods/DnD 5.5e AIO Russian/mod_publish_logo.png
Normal file
BIN
Mods/DnD 5.5e AIO Russian/mod_publish_logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.3 MiB |
@@ -556,6 +556,10 @@
|
||||
"Origin Feat: Alert": "Черта происхождения: Бдительный",
|
||||
"Origin Feat: Magic Initiate (Cleric)": "Черта происхождения: Посвященный в магию (Жрец)",
|
||||
"Origin Feat: Magic Initiate (Wizard)": "Черта происхождения: Посвященный в магию (Волшебник)",
|
||||
"Origin Feat: Magic Initiate (Druid)": "Черта происхождения: Посвященный в магию (Друид)",
|
||||
"Origin Feat: Healer": "Черта происхождения: Лекарь",
|
||||
"Origin Feat: Lucky": "Черта происхождения: Везунчик",
|
||||
"Origin Feat: Tavern Brawler": "Черта происхождения: Драчун",
|
||||
"Origin Feat: Musician": "Черта происхождения: Музыкант",
|
||||
"Origin Feat: Savage Attacker": "Черта происхождения: Дикий атакующий",
|
||||
"Origin Feat: Skilled": "Черта происхождения: Одаренный",
|
||||
|
||||
@@ -8,7 +8,7 @@ param(
|
||||
[string]$ModName = "DnD 5.5e All-in-One BEYOND Russian Localization",
|
||||
[string]$ModUuid = "6401e84d-daf2-416d-adeb-99c03a2487a6",
|
||||
[string]$ModAuthor = "MikhailRaw",
|
||||
[string]$ModDescription = "Russian Localization",
|
||||
[string]$ModDescription = "Русская локализация мода, который добавляет и обновляет контент в соответствии с правилами DnD 5.5e и другими источниками, включая предыстории, классы, таланты, расы, заклинания и многое другое. Это отдельный мод локализации и он требует установленный оригинальный мод.",
|
||||
[string]$ModVersion64 = "36028797018963968",
|
||||
[string]$ModGroup = "6401e84d-daf2-416d-adeb-99c03a2487a6",
|
||||
[string]$DependencyUuid = "897914ef-5c96-053c-44af-0be823f895fe",
|
||||
@@ -103,7 +103,8 @@ if (-not (Test-Path -LiteralPath $stagedMetaPath)) {
|
||||
|
||||
$stagedMetaContent = Get-Content -LiteralPath $stagedMetaPath -Raw
|
||||
$stagedMetaContent = $stagedMetaContent -replace '(<attribute id="Version64" type="int64" value=")\d+("/>)', "`${1}$resolvedVersion64`${2}"
|
||||
Set-Content -LiteralPath $stagedMetaPath -Value $stagedMetaContent -Encoding utf8
|
||||
$utf8Bom = New-Object System.Text.UTF8Encoding($true)
|
||||
[System.IO.File]::WriteAllText($stagedMetaPath, $stagedMetaContent, $utf8Bom)
|
||||
|
||||
Write-Host "[build.ps1] Staged source tree:"
|
||||
Get-ChildItem -Recurse $stagingPath | Select-Object FullName, Length | Format-Table -AutoSize
|
||||
|
||||
49
scripts/set-version.ps1
Normal file
49
scripts/set-version.ps1
Normal file
@@ -0,0 +1,49 @@
|
||||
param(
|
||||
[Parameter(Mandatory = $true)]
|
||||
[string]$VersionTag,
|
||||
[string]$MetaPath = "Mods/DnD 5.5e AIO Russian/meta.lsx"
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
function Convert-VersionTagToVersion64 {
|
||||
param(
|
||||
[string]$Tag
|
||||
)
|
||||
|
||||
$normalized = $Tag
|
||||
if ($normalized.StartsWith("v")) {
|
||||
$normalized = $normalized.Substring(1)
|
||||
}
|
||||
|
||||
if ($normalized -notmatch '^\d+(\.\d+){0,3}$') {
|
||||
throw "Version tag '$Tag' is invalid. Expected format: vX.Y.Z or X.Y.Z"
|
||||
}
|
||||
|
||||
$parts = $normalized.Split(".")
|
||||
$numbers = @(0, 0, 0, 0)
|
||||
for ($i = 0; $i -lt $parts.Length; $i++) {
|
||||
$numbers[$i] = [int]$parts[$i]
|
||||
}
|
||||
|
||||
return ([int64]$numbers[0] -shl 55) -bor ([int64]$numbers[1] -shl 47) -bor ([int64]$numbers[2] -shl 31) -bor [int64]$numbers[3]
|
||||
}
|
||||
|
||||
$resolvedMetaPath = [System.IO.Path]::GetFullPath($MetaPath)
|
||||
if (-not (Test-Path -LiteralPath $resolvedMetaPath)) {
|
||||
throw "meta.lsx was not found: '$resolvedMetaPath'."
|
||||
}
|
||||
|
||||
$resolvedVersion64 = Convert-VersionTagToVersion64 -Tag $VersionTag
|
||||
$metaContent = Get-Content -LiteralPath $resolvedMetaPath -Raw
|
||||
|
||||
$versionPattern = '(<attribute id="Version64" type="int64" value=")\d+("/>)'
|
||||
if ($metaContent -notmatch $versionPattern) {
|
||||
throw "Version64 attributes were not found in '$resolvedMetaPath'."
|
||||
}
|
||||
$updatedMeta = $metaContent -replace $versionPattern, "`${1}$resolvedVersion64`${2}"
|
||||
|
||||
$utf8Bom = New-Object System.Text.UTF8Encoding($true)
|
||||
[System.IO.File]::WriteAllText($resolvedMetaPath, $updatedMeta, $utf8Bom)
|
||||
|
||||
Write-Host "[set-version.ps1] Updated '$resolvedMetaPath' to Version64=$resolvedVersion64 (from tag '$VersionTag')."
|
||||
Reference in New Issue
Block a user