다국어 포럼을 운영 중이라 allow user locale와 set locale from accept language header를 활성화했는데, 잘 작동하고 있습니다. 테스트 사용자를 등록해 보니 사용자 웹 브라우저 언어가 (default) 대신 새 사용자 프로필에 저장되는 것을 확인했는데, 이는 완벽합니다.
제가 겪는 유일한 문제는 phpBB에서 800명의 사용자를 마이그레이션했는데, 모두 사용자 프로필에 (default)가 표시된다는 점입니다. 상당수가 다른 언어를 사용하길 원할 것이라는 것은 알고 있지만, 영어를 기본 언어로 유지하고 싶으므로 전역 설정의 기본 영어를 변경하고 싶지 않습니다.
Discourse(./launcher enter app)에 접속하여 사용자 이름/ID 목록(어떤 것이든)을 반복하면서 지정된 사용자 프로필의 언어를 변경하는 것이 가능한지 알려 주실 수 있을까요?
이처럼 간단한 bash 스크립트를 작성하는 것을 고려하고 있습니다:
while IFS= read -r username; do
rails r "u = User.... $username"
done < list_of_usernames.txt
하지만 사용자 설정을 편집하는 명령을 실행하는 데 필요한 Discourse 지식이 부족합니다… 이 부분에 대해 도움을 주실 수 있을까요?
저는 Ruby에 대해 전혀 경험이 없지만 다른 언어는 사용해 본 경험이 있어서, 다음과 같은 코드를 작성하는 데 오래 걸리지 않았습니다:
all_users = User.find_each()
all_users.each do |user|
if user.id > 70 and user.active == true and user.admin == false and user.trust_level == 1 and user.suspended_at == nil and user.moderator == false
puts "MODIFY: #{user.id}: #{user.trust_level}: \"#{user.username}\""
user.update(locale: :fr)
else
# skip this user
puts "------: #{user.id}: #{user.trust_level}: \"#{user.username}\""
end
end
Ruby에 대해 아무것도 모르기 때문에 더 깔끔한 방법이 있을 수도 있습니다. 하지만 저에게는 이 정도면 잘 작동하네요 . 감사합니다.