Como obter variáveis de idioma (nome da pasta Desktop, nome da pasta do documento, etc.)

3

Estou fazendo um script e estou procurando uma maneira de obter os nomes das variáveis para Desktop, Música, Documentos, Imagens e outras pastas. Dependendo da linguagem eles mudam. Por exemplo, Desktop em espanhol é Escritorio. Então, como posso obter o diretório da pasta sem precisar descobrir qual idioma o usuário está usando ou ter que fazer várias instruções IF para cada idioma.

    
por Luis Alvarado 28.09.2012 / 18:53

3 respostas

4

Existe uma ferramenta chamada xdg-user-dir que recupera os caminhos dos diretórios do usuário

documents_path=$(xdg-user-dir DOCUMENTS)
echo $documents_path

Nos documentos:

  

O xdg-user-dir procura o caminho atual para um dos diretórios especiais do usuário do XDG.

     

Este comando espera o nome de um usuário do XDG como argumento. Os nomes possíveis são:

     
  • DESKTOP
  •   
  • DOWNLOAD
  •   
  • MODELOS
  •   
  • PUBLICIDAS
  •   
  • DOCUMENTOS
  •   
  • MÚSICA
  •   
  • FOTOS
  •   
  • VÍDEOS
  •   

Estou usando o Ubuntu 16.04, não sei se isso está disponível em versões anteriores.

    
por Arge 05.04.2017 / 19:35
3

Os nomes das pastas comuns são os seguintes. Apenas extraído de um arquivo no diretório inicial.

XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_TEMPLATES_DIR="$HOME/Templates"
XDG_PUBLICSHARE_DIR="$HOME/Public"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_MUSIC_DIR="$HOME/Music"
XDG_PICTURES_DIR="$HOME/"
XDG_VIDEOS_DIR="$HOME/Videos"

Naturalmente, você está interessado apenas no nome da variável. Portanto, há XDG_DESKTOP_DIR, XDG_DOWNLOAD_DIR, .... etc .

Pergunta relacionada: Como posso alterar o local padrão dos diretórios de conteúdo (por exemplo, Imagens, Modelos, Música) na minha pasta pessoal?

Espero que isso ajude.

    
por Anwar 28.09.2012 / 19:37
0

Talvez exista uma maneira mais fácil de fazer isso, mas foi o que fiz:

Por exemplo, obtendo a pasta da área de trabalho:

desktopVar=$(cat $HOME/.config/user-dirs.dirs | grep "XDG_DESKTOP_DIR")
desktopFolder=$(echo ${desktopVar/XDG_DESKTOP_DIR=/""} | tr -d '"')
echo $desktopFolder

Para outras variáveis é análogo.

    
por rasecfight 01.12.2013 / 13:17

Tags