I try django-admin.py makemessages -l zh_CN
but has error :
CommandError: Can't find msguniq. Make sure you have GNU gettext tools 0.15 or newer installed.
after I use brew install gettext,it still get wrong.
Do I need to do something? here is my terminal screenshot
Please guide me thank you.
For Mac users, after installing Homebrew and gettext as @Louis Barranqueiro says (steps 1 and 2):
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install gettext
You shouldn't use
brew link gettext --force
in step 3, because it is risky (as Brew advises if you try). A better workaround is to set a newPATH variable
for your virtual environment. So, in thepostactivate
file, which is located in the bin folder of your virtual environment folder, type:Note that you have to replace
0.19.7
by the version that is installed in your machine.And in your
predeactivate
file, which is located in the same folder ofpostactivate
file, type:Now you can use the
python manage.py makemessages -l <desired_language>
without worries. :)Cheers.
If you use fish shell, another way around is to add this path to
$fish_user_paths
.This variable is prepended to$PATH
, so you don't have to set it in all your projects.You can do it with the following command line :
Remember to replace
0.19.8.1
with yourgettext
version.This sets
$fish_user_paths
as a Universal Variable. Here's whathelp
says about Universal Variables :So setting this variable in your shell once (no need to do it in a config file) will save it even after logging out or rebooting.
the problem is hinted in the output from
brew
...it has installed the GNU gettext but hasn't linked it into your bin directory because OSX already provides a different version of gettext...
so Django doesn't know to run the version you installed from brew.
apparently brew is too cautious here though and you should just link it https://stackoverflow.com/a/9787791/202168
This solution worked for me ( win. 7, 8 and 10 )
You need to download two folders:
You can find them here.
After you download them, unzip them and add the directory of the bin file of the both folders to the system variables
PATH
of your pc.You will also need a file named libstdc++-6.dll download it from here and place it in your system directory. You will find adequate details on system directory here.
And that’s it. Hope it is useful for you.
In Ubuntu:
@max-malysh's answer solved it for me —without touching system files.
Copy and run each of the following:
GETTEXT_PATH="/usr/local/Cellar/gettext/0.19.8.1/bin"
stores gettext_path in a shell variable —adapt the version number according to whatbrew install gettext
FILE="venv/bin/activate"
stores the path to the venv shell scriptecho "" >> $FILE
adds an empty line at the end of the to make sure the next command is on its own lineecho "export PATH=\$PATH:$GETTEXT_PATH" >> $FILE
adds a command to the venv shell script; this command adds the path to gettext binaries to the global$PATH
variable, so that they are used before OS binaries.source venv/bin/activate
runs the venv shell script so that variables are properly set. You can run this command more than once.