Redmine의 label/notice/error/field/setting/permission/button 메시지에 "Nyo"를 추가합니다 (현재 Postgres 전용)
4102 단어 Redmine
이것은 좋은 장난감을 받았다! 그래서 Redmine의 메시지를 안전하게 놀고 놀기로 합니다.
출오치이므로 변수나 구점의 불일치는 무시합니다.
스크립트
redmine_nyan.sh
#!/bin/bash
#####################################################
# 環境依存値
DB_NAME=db_redmine
PG_USER=postgres
LOCALE_FILE=/opt/redmine/config/locales/ja.yml
SUFFIX="にょ"
# 固定置換用
declare -A FIX_REP
FIX_REP["button_submit"]="目からビーム"
#####################################################
PID=$$
if [ "$1" == "RESET" ]; then
cat << EOS > /tmp/${PID}.sql
UPDATE settings
SET value=E'--- \n:custom_messages: {} \n'
WHERE name='plugin_redmine_message_customize'
EOS
else
IFS_BACKUP=$IFS
IFS=$'\n'
declare -a NOTICES=( $(grep -E '^ (label|notice|error|field|setting|permission|button)' ${LOCALE_FILE} ) )
for NOTICE in ${NOTICES[@]}
do
MSG_KEY=$(echo $NOTICE | awk -F': ' '{print $1}' | sed -e 's/ //g' )
MSG_VALUE=$(echo $NOTICE | awk -F': ' '{c="";for(i=2;i<=NF;i++) c=c $i": "; print c}' | sed -e 's/: $//g' )
# 下のいずれでもない
REP_PTN=0
# 固定置換あり
if [ "${FIX_REP[${MSG_KEY}]}" != "" ]; then
REP_PTN=1
fi
# 句点を含む
echo ${MSG_VALUE} | grep -E '。' > /dev/null
if [ $? -eq 0 -a "${REP_PTN}" == "0" ]; then
REP_PTN=2
fi
# ダブルクォートで終わる
echo ${MSG_VALUE} | grep -E '"$' > /dev/null
if [ $? -eq 0 -a "${REP_PTN}" == "0" ]; then
REP_PTN=3
fi
# シングルクォートで終わる
echo ${MSG_VALUE} | grep -E "'$" > /dev/null
if [ $? -eq 0 -a "${REP_PTN}" == "0" ]; then
REP_PTN=4
fi
# コロンで終わる
echo ${MSG_VALUE} | grep -E ":$" > /dev/null
if [ $? -eq 0 -a "${REP_PTN}" == "0" ]; then
REP_PTN=5
fi
case "${REP_PTN}" in
"0" ) MSG_VALUE=$(echo ${MSG_VALUE} | sed -e "s/$/${SUFFIX}/g") ;;
"1" ) MSG_VALUE=${FIX_REP[${MSG_KEY}]} ;;
"2" ) MSG_VALUE=$(echo ${MSG_VALUE} | sed -e "s/。/${SUFFIX}。/g") ;;
"3" ) MSG_VALUE=$(echo ${MSG_VALUE} | sed -e "s/\"$/${SUFFIX}\"/g") ;;
"4" ) MSG_VALUE=$(echo ${MSG_VALUE} | sed -e "s/'$/${SUFFIX}'/g") ;;
"5" ) MSG_VALUE=$(echo ${MSG_VALUE} | sed -e "s/:$/${SUFFIX}: /g") ;;
esac
MSG_VALUE=$(echo ${MSG_VALUE} | sed -e "s/'/''/g")
MSG+=" ${MSG_KEY}: ${MSG_VALUE}\n"
done
cat << EOS > /tmp/${PID}.sql
UPDATE settings
SET value=E'--- \n:custom_messages: \n ja:\n${MSG}'
WHERE name='plugin_redmine_message_customize'
EOS
fi
IFS=$IFS_BACKUP
sudo su - ${PG_USER} -c "psql ${DB_NAME} -f /tmp/${PID}.sql"
rm -f /tmp/${PID}.sql
sudo systemctl restart redmine
사용법
./redmine_nyan.sh
꼬리를 붙이는 것이 아니라, 고정으로 치환하고 싶은 경우는
FIX_REP
의 행을 카피해 늘려 주세요../redmine_nyan.sh RESET
결과
주의점
변경
Reference
이 문제에 관하여(Redmine의 label/notice/error/field/setting/permission/button 메시지에 "Nyo"를 추가합니다 (현재 Postgres 전용)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ryouma_nagare/items/121da3dba644b5f7368c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)