/f5-lang
Set language preference for F5 Framework output
$ npx -y skills add Fujigo-Software/f5-framework-claude --agent claude-codeHow it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/f5-lang
Context preview
What this command does when you run it.
Set language preference for F5 Framework output
Command definition
f5-lang.mddescription: Set language preference for F5 Framework output
argument-hint: <en|vi|ja> [--global|--project|--reset]
/f5-lang - Language Preference Command
Set the display language for F5 Framework output.
ARGUMENTS
The user's request is: $ARGUMENTS
OVERVIEW
F5 Framework supports 3 languages:
- `en` - English (default)
- `vi` - Tiếng Việt
- `ja` - 日本語
Language can be set at: 1. **Global level** - User preference across all projects (`~/.f5/preferences.yaml`) 2. **Project level** - Override for specific project (`.f5/config.json`)
STEP 1: PARSE ARGUMENTS
| Pattern | Action | |---------|--------| | (no args) | **SHOW_CURRENT** | | `en` or `vi` or `ja` | **SET_GLOBAL** | | `<lang> --project` | **SET_PROJECT** | | `--reset` | **RESET_TO_DEFAULT** |
---
ACTION: SHOW_CURRENT
`/f5-lang`
Show current language settings.
**Process:**
1. Read global preference from `~/.f5/preferences.yaml` 2. Read project preference from `.f5/config.json` (if exists) 3. Determine active language
**Check Global Preference:**
GLOBAL_LANG="en"
GLOBAL_LANG_NAME="English"
if [ -f ~/.f5/preferences.yaml ]; then
GLOBAL_LANG=$(grep '^language:' ~/.f5/preferences.yaml 2>/dev/null | sed 's/language:[[:space:]]*"\{0,1\}\([^"]*\)"\{0,1\}/\1/')
if [ -z "$GLOBAL_LANG" ]; then
GLOBAL_LANG="en"
fi
fi
case "$GLOBAL_LANG" in
"vi") GLOBAL_LANG_NAME="Tiếng Việt" ;;
"ja") GLOBAL_LANG_NAME="日本語" ;;
*) GLOBAL_LANG_NAME="English" ;;
esac**Check Project Preference:**
PROJECT_LANG=""
PROJECT_LANG_NAME="(not set)"
if [ -f ".f5/config.json" ]; then
PROJECT_LANG=$(jq -r '.language // empty' .f5/config.json 2>/dev/null)
if [ -n "$PROJECT_LANG" ] && [ "$PROJECT_LANG" != "null" ]; then
case "$PROJECT_LANG" in
"vi") PROJECT_LANG_NAME="Tiếng Việt" ;;
"ja") PROJECT_LANG_NAME="日本語" ;;
"en") PROJECT_LANG_NAME="English" ;;
esac
else
PROJECT_LANG=""
PROJECT_LANG_NAME="(not set)"
fi
fi**Determine Active Language:**
if [ -n "$PROJECT_LANG" ]; then
ACTIVE_LANG="$PROJECT_LANG"
ACTIVE_SOURCE="project (.f5/config.json)"
else
ACTIVE_LANG="$GLOBAL_LANG"
ACTIVE_SOURCE="global (~/.f5/preferences.yaml)"
fi
**Output:**
## 🌐 F5 Language Settings
| Scope | Language | Source |
|-------|----------|--------|
| Global | {{GLOBAL_LANG}} ({{GLOBAL_LANG_NAME}}) | ~/.f5/preferences.yaml |
| Project | {{PROJECT_LANG}} ({{PROJECT_LANG_NAME}}) | .f5/config.json |
| **Active** | **{{ACTIVE_LANG}}** | {{ACTIVE_SOURCE}} |
### Available Languages
- `en` - English
- `vi` - Tiếng Việt
- `ja` - 日本語
### Usage
```bash
# Set global language
/f5-lang vi
# Set project language (overrides global)
/f5-lang ja --project
# Reset to default
/f5-lang --reset
---
## ACTION: SET_GLOBAL
### `/f5-lang <en|vi|ja>`
Set global language preference.
**Process:**
1. Validate language code (en, vi, ja)
2. Create `~/.f5/` directory if not exists
3. Create or update `~/.f5/preferences.yaml`
4. Show confirmation
**Validation:**
```bash
LANG_INPUT="$1"
case "$LANG_INPUT" in
"en") LANG_NAME="English" ;;
"vi") LANG_NAME="Tiếng Việt" ;;
"ja") LANG_NAME="日本語" ;;
*)
echo "❌ Invalid language code: $LANG_INPUT"
echo "Available: en, vi, ja"
exit 1
;;
esac**Create/Update Global Preference:**
# Ensure ~/.f5 directory exists
mkdir -p ~/.f5
TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
# Check if file exists
if [ -f ~/.f5/preferences.yaml ]; then
# Update existing file - replace language line
sed -i.bak "s/^language:.*/language: \"$LANG_INPUT\"/" ~/.f5/preferences.yaml
sed -i.bak "s/^updated_at:.*/updated_at: \"$TIMESTAMP\"/" ~/.f5/preferences.yaml
rm -f ~/.f5/preferences.yaml.bak
else
# Create new file
cat > ~/.f5/preferences.yaml << EOF
version: "1.0.0"
language: "$LANG_INPUT"
created_at: "$TIMESTAMP"
updated_at: "$TIMESTAMP"
EOF
fi
echo "✅ Language set to: $LANG_NAME (global)"
**Output:**
## ✅ Language Set
**Language:** {{LANGUAGE}} - {{LANGUAGE_NAME}}
**Scope:** Global (all projects)
**File:** ~/.f5/preferences.yaml
All F5 commands will now display in {{LANGUAGE_NAME}}.
To override for specific project:
```bash
/f5-lang {{OTHER_LANG}} --project
---
## ACTION: SET_PROJECT
### `/f5-lang <en|vi|ja> --project`
Set project-specific language (overrides global).
**Process:**
1. Check if `.f5/config.json` exists
2. Validate language code
3. Add or update `language` field
4. Show confirmation
**Check Project:**
```bash
if [ ! -f ".f5/config.json" ]; then
echo "❌ Not in F5 project. Run /f5-init first."
exit 1
fi
**Update Project Config:**
LANG_INPUT="$1"
case "$LANG_INPUT" in
"en") LANG_NAME="English" ;;
"vi") LANG_NAME="Tiếng Việt" ;;
"ja") LANG_NAME="日本語" ;;
*)
echo "❌ Invalid language code: $LANG_INPUT"
exit 1
;;
esac
# Update config.json using jq
jq ".language = \"$LANG_INPUT\"" .f5/config.json > .f5/config.json.tmp
mv .f5/config.json.tmp .f5/config.json
echo "✅ Language set to: $LANG_NAME (project)"**Output:**
## ✅ Project Language Set
**Language:** {{LANGUAGE}} - {{LANGUAGE_NAME}}
**Scope:** This project only
**File:** .f5/config.json
This project will use {{LANGUAGE_NAME}}, overriding global preference.
To remove project override:
```bash
# Edit .f5/config.json and remove "language" field
# Or run: /f5-lang --reset
---
## ACTION: RESET_TO_DEFAULT
### `/f5-lang --reset`
Reset language to default (English).
**Process:**
1. Set language to "en" in `~/.f5/preferences.yaml`
2. Remove language from `.f5/config.json` if exists
3. Show confirmation
**Reset:**
```bash
TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
# Reset global
if [ -f ~/.f5/preferences.yaml ]; then
sed -i.bak "s/^language:.*/language: \"en\"/" ~/.f5/preferences.yaml
sed -i.bak "s/^updated_at:.*/updated_at: \"$TIMESTAMP\"/" ~/.f5/preferences.yaml
rm -f ~/.f5/preferences.yaml.bak
echo "✅ Global language reset to: en
Read more
description: Set language preference for F5 Framework output argument-hint: <en|vi|ja> [--global|--project|--reset]
/f5-lang - Language Preference Command
Set the display language for F5 Framework output.
ARGUMENTS
The user's request is: $ARGUMENTS
OVERVIEW
F5 Framework supports 3 languages:
- `en` - English (default)
- `vi` - Tiếng Việt
- `ja` - 日本語
Language can be set at: 1. **Global level** - User preference across all projects (`~/.f5/preferences.yaml`) 2. **Project level** - Override for specific project (`.f5/config.json`)
STEP 1: PARSE ARGUMENTS
| Pattern | Action | |---------|--------| | (no args) | **SHOW_CURRENT** | | `en` or `vi` or `ja` | **SET_GLOBAL** | | `<lang> --project` | **SET_PROJECT** | | `--reset` | **RESET_TO_DEFAULT** |
---
ACTION: SHOW_CURRENT
`/f5-lang`
Show current language settings.
**Process:**
1. Read global preference from `~/.f5/preferences.yaml` 2. Read project preference from `.f5/config.json` (if exists) 3. Determine active language
**Check Global Preference:**
GLOBAL_LANG="en"
GLOBAL_LANG_NAME="English"
if [ -f ~/.f5/preferences.yaml ]; then
GLOBAL_LANG=$(grep '^language:' ~/.f5/preferences.yaml 2>/dev/null | sed 's/language:[[:space:]]*"\{0,1\}\([^"]*\)"\{0,1\}/\1/')
if [ -z "$GLOBAL_LANG" ]; then
GLOBAL_LANG="en"
fi
fi
case "$GLOBAL_LANG" in
"vi") GLOBAL_LANG_NAME="Tiếng Việt" ;;
"ja") GLOBAL_LANG_NAME="日本語" ;;
*) GLOBAL_LANG_NAME="English" ;;
esac**Check Project Preference:**
PROJECT_LANG=""
PROJECT_LANG_NAME="(not set)"
if [ -f ".f5/config.json" ]; then
PROJECT_LANG=$(jq -r '.language // empty' .f5/config.json 2>/dev/null)
if [ -n "$PROJECT_LANG" ] && [ "$PROJECT_LANG" != "null" ]; then
case "$PROJECT_LANG" in
"vi") PROJECT_LANG_NAME="Tiếng Việt" ;;
"ja") PROJECT_LANG_NAME="日本語" ;;
"en") PROJECT_LANG_NAME="English" ;;
esac
else
PROJECT_LANG=""
PROJECT_LANG_NAME="(not set)"
fi
fi**Determine Active Language:**
if [ -n "$PROJECT_LANG" ]; then ACTIVE_LANG="$PROJECT_LANG" ACTIVE_SOURCE="project (.f5/config.json)" else ACTIVE_LANG="$GLOBAL_LANG" ACTIVE_SOURCE="global (~/.f5/preferences.yaml)" fi
**Output:**
## 🌐 F5 Language Settings
| Scope | Language | Source |
|-------|----------|--------|
| Global | {{GLOBAL_LANG}} ({{GLOBAL_LANG_NAME}}) | ~/.f5/preferences.yaml |
| Project | {{PROJECT_LANG}} ({{PROJECT_LANG_NAME}}) | .f5/config.json |
| **Active** | **{{ACTIVE_LANG}}** | {{ACTIVE_SOURCE}} |
### Available Languages
- `en` - English
- `vi` - Tiếng Việt
- `ja` - 日本語
### Usage
```bash
# Set global language
/f5-lang vi
# Set project language (overrides global)
/f5-lang ja --project
# Reset to default
/f5-lang --reset
---
## ACTION: SET_GLOBAL
### `/f5-lang <en|vi|ja>`
Set global language preference.
**Process:**
1. Validate language code (en, vi, ja)
2. Create `~/.f5/` directory if not exists
3. Create or update `~/.f5/preferences.yaml`
4. Show confirmation
**Validation:**
```bash
LANG_INPUT="$1"
case "$LANG_INPUT" in
"en") LANG_NAME="English" ;;
"vi") LANG_NAME="Tiếng Việt" ;;
"ja") LANG_NAME="日本語" ;;
*)
echo "❌ Invalid language code: $LANG_INPUT"
echo "Available: en, vi, ja"
exit 1
;;
esac**Create/Update Global Preference:**
# Ensure ~/.f5 directory exists mkdir -p ~/.f5 TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%SZ") # Check if file exists if [ -f ~/.f5/preferences.yaml ]; then # Update existing file - replace language line sed -i.bak "s/^language:.*/language: \"$LANG_INPUT\"/" ~/.f5/preferences.yaml sed -i.bak "s/^updated_at:.*/updated_at: \"$TIMESTAMP\"/" ~/.f5/preferences.yaml rm -f ~/.f5/preferences.yaml.bak else # Create new file cat > ~/.f5/preferences.yaml << EOF version: "1.0.0" language: "$LANG_INPUT" created_at: "$TIMESTAMP" updated_at: "$TIMESTAMP" EOF fi echo "✅ Language set to: $LANG_NAME (global)"
**Output:**
## ✅ Language Set
**Language:** {{LANGUAGE}} - {{LANGUAGE_NAME}}
**Scope:** Global (all projects)
**File:** ~/.f5/preferences.yaml
All F5 commands will now display in {{LANGUAGE_NAME}}.
To override for specific project:
```bash
/f5-lang {{OTHER_LANG}} --project--- ## ACTION: SET_PROJECT ### `/f5-lang <en|vi|ja> --project` Set project-specific language (overrides global). **Process:** 1. Check if `.f5/config.json` exists 2. Validate language code 3. Add or update `language` field 4. Show confirmation **Check Project:** ```bash if [ ! -f ".f5/config.json" ]; then echo "❌ Not in F5 project. Run /f5-init first." exit 1 fi
**Update Project Config:**
LANG_INPUT="$1"
case "$LANG_INPUT" in
"en") LANG_NAME="English" ;;
"vi") LANG_NAME="Tiếng Việt" ;;
"ja") LANG_NAME="日本語" ;;
*)
echo "❌ Invalid language code: $LANG_INPUT"
exit 1
;;
esac
# Update config.json using jq
jq ".language = \"$LANG_INPUT\"" .f5/config.json > .f5/config.json.tmp
mv .f5/config.json.tmp .f5/config.json
echo "✅ Language set to: $LANG_NAME (project)"**Output:**
## ✅ Project Language Set
**Language:** {{LANGUAGE}} - {{LANGUAGE_NAME}}
**Scope:** This project only
**File:** .f5/config.json
This project will use {{LANGUAGE_NAME}}, overriding global preference.
To remove project override:
```bash
# Edit .f5/config.json and remove "language" field
# Or run: /f5-lang --reset--- ## ACTION: RESET_TO_DEFAULT ### `/f5-lang --reset` Reset language to default (English). **Process:** 1. Set language to "en" in `~/.f5/preferences.yaml` 2. Remove language from `.f5/config.json` if exists 3. Show confirmation **Reset:** ```bash TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%SZ") # Reset global if [ -f ~/.f5/preferences.yaml ]; then sed -i.bak "s/^language:.*/language: \"en\"/" ~/.f5/preferences.yaml sed -i.bak "s/^updated_at:.*/updated_at: \"$TIMESTAMP\"/" ~/.f5/preferences.yaml rm -f ~/.f5/preferences.yaml.bak echo "✅ Global language reset to: en
AI-Powered Development Framework for Claude Code
Repo: Fujigo-Software/f5-framework-claude
Other commands on f5-framework.
- /f5-agent
Manage AI agents, personas, and get smart suggestions
Open command - /f5-analytics
View project analytics and metrics
Open command - /f5-ba
Business analysis workflow
Open command - /f5-backend
Backend development commands
Open command - /f5-checkpoint
[DEPRECATED] Use /f5-ctx checkpoint
Open command - /f5-classify
Classify input files by type using content-first analysis, detect gaps, and generate coverage declaration
Open command

