#!/usr/bin/env bash set -u echo echo "========================================" echo " Debian Locale Configuration Script" echo "========================================" echo for CTID in $(pct list | awk 'NR>1 {print $1}'); do STATUS=$(pct status "$CTID" 2>/dev/null | awk '{print $2}') echo "----------------------------------------" echo "Container: $CTID" echo "Status: $STATUS" if [[ "$STATUS" != "running" ]]; then echo "SKIP: Container is not running." continue fi OS_ID=$(pct exec "$CTID" -- sh -c \ '. /etc/os-release 2>/dev/null && echo "$ID"' \ 2>/dev/null || true) OS_NAME=$(pct exec "$CTID" -- sh -c \ '. /etc/os-release 2>/dev/null && echo "$PRETTY_NAME"' \ 2>/dev/null || true) echo "OS: ${OS_NAME:-Unknown}" if [[ "$OS_ID" != "debian" ]]; then echo "SKIP: Not Debian." continue fi echo "Configuring en_US.UTF-8..." if ! pct exec "$CTID" -- sh -c " sed -i 's/^# *en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && locale-gen && update-locale LANG=en_US.UTF-8 "; then echo "ERROR: Locale configuration failed in container $CTID." continue fi echo "OK: Locale configured." echo "Current locale:" pct exec "$CTID" -- sh -c 'locale | grep -E "^LANG=" || true' echo done echo "========================================" echo " Finished" echo "========================================"