mirror of
https://github.com/MCV-Software/TWBlue.git
synced 2025-08-27 02:09:22 +00:00
Compare commits
51 Commits
alpha11.1
...
v2021.10.3
Author | SHA1 | Date | |
---|---|---|---|
5a6dc23524 | |||
0e2ff4de8a | |||
36340d0596 | |||
92ec178754 | |||
5eb942981c | |||
6739045cce | |||
307ed093af | |||
d11fc44772 | |||
a3e5eec6de | |||
41a0935121 | |||
0b03e7505f | |||
![]() |
81c364c4e1 | ||
![]() |
483b196203 | ||
![]() |
b512c69447 | ||
2c1608322e | |||
c6bb851bce | |||
![]() |
66581f8b1c | ||
![]() |
c6a3a44c21 | ||
bd25cfa59b | |||
![]() |
39a02ea33a | ||
f672dca1cb | |||
19c63b7b07 | |||
e23a52e38f | |||
![]() |
d888563fda | ||
a5ba80feee | |||
528ecc2a33 | |||
3519746078 | |||
ef79e0696e | |||
b9ee0dae5b | |||
f31575a733 | |||
e451bbd5e9 | |||
f7f303929e | |||
9f48784ce4 | |||
cb1312d0c9 | |||
a82efd4dcc | |||
72e6d030d5 | |||
d222740887 | |||
2b059ee42e | |||
daac312658 | |||
b23be9c896 | |||
61b0dc34b8 | |||
c5d13369eb | |||
856ecf5eb9 | |||
e3e0ac9457 | |||
fccf02794c | |||
34c1f69ec1 | |||
7326ff88f9 | |||
![]() |
a8d876a7b7 | ||
![]() |
89fa6435b4 | ||
![]() |
d1bd393be2 | ||
![]() |
a2f25bfbb5 |
@@ -1,6 +1,6 @@
|
|||||||
variables:
|
variables:
|
||||||
GIT_SUBMODULE_STRATEGY: recursive
|
GIT_SUBMODULE_STRATEGY: recursive
|
||||||
PYTHON: "C:\\python38\\python.exe"
|
PYTHON: "C:\\python37\\python.exe"
|
||||||
NSIS: "C:\\program files (x86)\\nsis\\makensis.exe"
|
NSIS: "C:\\program files (x86)\\nsis\\makensis.exe"
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
@@ -8,7 +8,7 @@ stages:
|
|||||||
- make_installer
|
- make_installer
|
||||||
- upload
|
- upload
|
||||||
|
|
||||||
snapshot32:
|
twblue32:
|
||||||
tags:
|
tags:
|
||||||
- shared-windows
|
- shared-windows
|
||||||
- windows
|
- windows
|
||||||
@@ -17,11 +17,10 @@ snapshot32:
|
|||||||
- Set-Variable -Name "time" -Value (date -Format "%H:%m")
|
- Set-Variable -Name "time" -Value (date -Format "%H:%m")
|
||||||
- echo ${time}
|
- echo ${time}
|
||||||
- echo "started by ${GITLAB_USER_NAME}"
|
- echo "started by ${GITLAB_USER_NAME}"
|
||||||
- choco install python --version 3.8.10 -y -ForceX86
|
- choco install python --version 3.7.9 -y -ForceX86
|
||||||
- '&$env:PYTHON -V'
|
- '&$env:PYTHON -V'
|
||||||
- '&$env:PYTHON -m pip install --upgrade pip'
|
- '&$env:PYTHON -m pip install --upgrade pip'
|
||||||
- '&$env:PYTHON -m pip install --upgrade -r requirements.txt'
|
- '&$env:PYTHON -m pip install --upgrade -r requirements.txt'
|
||||||
- '&$env:PYTHON -m pip uninstall enum34 -y'
|
|
||||||
stage: build
|
stage: build
|
||||||
interruptible: true
|
interruptible: true
|
||||||
script:
|
script:
|
||||||
@@ -30,6 +29,7 @@ snapshot32:
|
|||||||
- '&$env:PYTHON documentation_importer.py'
|
- '&$env:PYTHON documentation_importer.py'
|
||||||
- cd ..\src
|
- cd ..\src
|
||||||
- '&$env:PYTHON ..\doc\generator.py'
|
- '&$env:PYTHON ..\doc\generator.py'
|
||||||
|
- '&$env:PYTHON write_version_data.py'
|
||||||
- '&$env:PYTHON setup.py build'
|
- '&$env:PYTHON setup.py build'
|
||||||
- cd ..
|
- cd ..
|
||||||
- mkdir artifacts
|
- mkdir artifacts
|
||||||
@@ -37,7 +37,9 @@ snapshot32:
|
|||||||
- '&$env:PYTHON make_archive.py'
|
- '&$env:PYTHON make_archive.py'
|
||||||
- cd ..
|
- cd ..
|
||||||
- mv src/dist artifacts/TWBlue
|
- mv src/dist artifacts/TWBlue
|
||||||
- move src/twblue.zip artifacts/twblue_snapshot_x86.zip
|
- move src/twblue.zip artifacts/twblue_x86.zip
|
||||||
|
# Move the generated script nsis file to artifacts, so we won't need python when generating the installer.
|
||||||
|
- move scripts/twblue.nsi artifacts/twblue.nsi
|
||||||
only:
|
only:
|
||||||
- tags
|
- tags
|
||||||
artifacts:
|
artifacts:
|
||||||
@@ -45,7 +47,7 @@ snapshot32:
|
|||||||
- artifacts
|
- artifacts
|
||||||
expire_in: 1 day
|
expire_in: 1 day
|
||||||
|
|
||||||
snapshot64:
|
twblue64:
|
||||||
tags:
|
tags:
|
||||||
- shared-windows
|
- shared-windows
|
||||||
- windows
|
- windows
|
||||||
@@ -54,7 +56,7 @@ snapshot64:
|
|||||||
- Set-Variable -Name "time" -Value (date -Format "%H:%m")
|
- Set-Variable -Name "time" -Value (date -Format "%H:%m")
|
||||||
- echo ${time}
|
- echo ${time}
|
||||||
- echo "started by ${GITLAB_USER_NAME}"
|
- echo "started by ${GITLAB_USER_NAME}"
|
||||||
- choco install python --version 3.8.10 -y
|
- choco install python --version 3.7.9 -y
|
||||||
- '&$env:PYTHON -V'
|
- '&$env:PYTHON -V'
|
||||||
- '&$env:PYTHON -m pip install --upgrade pip'
|
- '&$env:PYTHON -m pip install --upgrade pip'
|
||||||
- '&$env:PYTHON -m pip install --upgrade -r requirements.txt'
|
- '&$env:PYTHON -m pip install --upgrade -r requirements.txt'
|
||||||
@@ -66,6 +68,7 @@ snapshot64:
|
|||||||
- '&$env:PYTHON documentation_importer.py'
|
- '&$env:PYTHON documentation_importer.py'
|
||||||
- cd ..\src
|
- cd ..\src
|
||||||
- '&$env:PYTHON ..\doc\generator.py'
|
- '&$env:PYTHON ..\doc\generator.py'
|
||||||
|
- '&$env:PYTHON write_version_data.py'
|
||||||
- '&$env:PYTHON setup.py build'
|
- '&$env:PYTHON setup.py build'
|
||||||
- cd ..
|
- cd ..
|
||||||
- mkdir artifacts
|
- mkdir artifacts
|
||||||
@@ -73,7 +76,7 @@ snapshot64:
|
|||||||
- '&$env:PYTHON make_archive.py'
|
- '&$env:PYTHON make_archive.py'
|
||||||
- cd ..
|
- cd ..
|
||||||
- mv src/dist artifacts/TWBlue64
|
- mv src/dist artifacts/TWBlue64
|
||||||
- move src/twblue.zip artifacts/twblue_snapshot_x64.zip
|
- move src/twblue.zip artifacts/twblue_x64.zip
|
||||||
only:
|
only:
|
||||||
- tags
|
- tags
|
||||||
artifacts:
|
artifacts:
|
||||||
@@ -95,9 +98,10 @@ generate_versions:
|
|||||||
script:
|
script:
|
||||||
- move artifacts/TWBlue scripts/
|
- move artifacts/TWBlue scripts/
|
||||||
- move artifacts/TWBlue64 scripts/
|
- move artifacts/TWBlue64 scripts/
|
||||||
|
- move artifacts/twblue.nsi scripts/installer.nsi
|
||||||
- cd scripts
|
- cd scripts
|
||||||
- '&$env:NSIS twblue_snapshot.nsi'
|
- '&$env:NSIS installer.nsi'
|
||||||
- move twblue_snapshot_setup.exe ../artifacts
|
- move twblue_setup.exe ../artifacts
|
||||||
only:
|
only:
|
||||||
- tags
|
- tags
|
||||||
artifacts:
|
artifacts:
|
||||||
|
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
## changes in this version
|
## changes in this version
|
||||||
|
|
||||||
|
* Added an user alias manager, located in the application menu in the menu bar. From this dialog, it is possible to review, add, edit or remove user aliases for the current account. ([#401](https://github.com/manuelcortez/TWBlue/issues/401))
|
||||||
* TWBlue now closes the VLC player window automatically when a video reaches its end. ([#399](https://github.com/manuelcortez/TWBlue/issues/399))
|
* TWBlue now closes the VLC player window automatically when a video reaches its end. ([#399](https://github.com/manuelcortez/TWBlue/issues/399))
|
||||||
* After a lot of time, TWBlue now uses a new default Soundpack, called FreakyBlue. This soundpack will be set by default in all new sessions created in the application. Thanks to [Andre Louis](https://twitter.com/FreakyFwoof) for the pack. ([#247](https://github.com/manuelcortez/TWBlue/issues/247))
|
* After a lot of time, TWBlue now uses a new default Soundpack, called FreakyBlue. This soundpack will be set by default in all new sessions created in the application. Thanks to [Andre Louis](https://twitter.com/FreakyFwoof) for the pack. ([#247](https://github.com/manuelcortez/TWBlue/issues/247))
|
||||||
* When reading a tweet, if the tweet contains more than 2 consecutive mentions, TWBlue will announce how many more users the tweet includes, as opposed to read every user in the conversation. You still can display the tweet to read all users.
|
* When reading a tweet, if the tweet contains more than 2 consecutive mentions, TWBlue will announce how many more users the tweet includes, as opposed to read every user in the conversation. You still can display the tweet to read all users.
|
||||||
|
@@ -5,19 +5,6 @@ return "key\0";
|
|||||||
char *get_api_secret(){
|
char *get_api_secret(){
|
||||||
return "secret_key\0";
|
return "secret_key\0";
|
||||||
}
|
}
|
||||||
char *get_dropbox_api_key(){
|
|
||||||
return "key\0";
|
|
||||||
}
|
|
||||||
char *get_dropbox_api_secret(){
|
|
||||||
return "secret_key\0";
|
|
||||||
}
|
|
||||||
char *get_twishort_api_key(){
|
char *get_twishort_api_key(){
|
||||||
return "key\0";
|
return "key\0";
|
||||||
}
|
}
|
||||||
char *get_bts_user(){
|
|
||||||
return "user\0";
|
|
||||||
}
|
|
||||||
char *get_bts_password(){
|
|
||||||
return "pass\0";
|
|
||||||
}
|
|
||||||
|
|
||||||
|
@@ -3,10 +3,6 @@
|
|||||||
|
|
||||||
char *get_api_key();
|
char *get_api_key();
|
||||||
char *get_api_secret();
|
char *get_api_secret();
|
||||||
char *get_dropbox_api_key();
|
|
||||||
char *get_dropbox_api_secret();
|
|
||||||
char *get_twishort_api_key();
|
char *get_twishort_api_key();
|
||||||
char *get_bts_user();
|
|
||||||
char *get_bts_password();
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -47,6 +47,7 @@ attrs
|
|||||||
importlib-metadata
|
importlib-metadata
|
||||||
numpy
|
numpy
|
||||||
pillow
|
pillow
|
||||||
|
charset-normalizer
|
||||||
git+https://github.com/accessibleapps/libloader
|
git+https://github.com/accessibleapps/libloader
|
||||||
git+https://github.com/accessibleapps/platform_utils
|
git+https://github.com/accessibleapps/platform_utils
|
||||||
git+https://github.com/accessibleapps/accessible_output2
|
git+https://github.com/accessibleapps/accessible_output2
|
||||||
|
@@ -15,10 +15,10 @@ SetCompressor /solid lzma
|
|||||||
SetDatablockOptimize on
|
SetDatablockOptimize on
|
||||||
VIAddVersionKey ProductName "TWBlue"
|
VIAddVersionKey ProductName "TWBlue"
|
||||||
VIAddVersionKey LegalCopyright "Copyright 2014-2021 Manuel Cortéz."
|
VIAddVersionKey LegalCopyright "Copyright 2014-2021 Manuel Cortéz."
|
||||||
VIAddVersionKey ProductVersion "0.95"
|
VIAddVersionKey ProductVersion "0.95.0"
|
||||||
VIAddVersionKey FileVersion "0.95"
|
VIAddVersionKey FileVersion "0.95.0"
|
||||||
VIProductVersion "0.95.0.0"
|
VIProductVersion "0.95.0"
|
||||||
VIFileVersion "0.95.0.0"
|
VIFileVersion "0.95.0"
|
||||||
!insertmacro MUI_PAGE_WELCOME
|
!insertmacro MUI_PAGE_WELCOME
|
||||||
!define MUI_LICENSEPAGE_RADIOBUTTONS
|
!define MUI_LICENSEPAGE_RADIOBUTTONS
|
||||||
!insertmacro MUI_PAGE_LICENSE "license.txt"
|
!insertmacro MUI_PAGE_LICENSE "license.txt"
|
||||||
@@ -32,7 +32,7 @@ var StartMenuFolder
|
|||||||
!insertmacro MUI_PAGE_FINISH
|
!insertmacro MUI_PAGE_FINISH
|
||||||
!insertmacro MUI_UNPAGE_CONFIRM
|
!insertmacro MUI_UNPAGE_CONFIRM
|
||||||
!insertmacro MUI_UNPAGE_INSTFILES
|
!insertmacro MUI_UNPAGE_INSTFILES
|
||||||
!insertmacro MUI_LANGUAGE "English"
|
!insertmacro MUI_LANGUAGE "English"
|
||||||
!insertmacro MUI_LANGUAGE "French"
|
!insertmacro MUI_LANGUAGE "French"
|
||||||
!insertmacro MUI_LANGUAGE "Spanish"
|
!insertmacro MUI_LANGUAGE "Spanish"
|
||||||
!insertmacro MUI_LANGUAGE "Italian"
|
!insertmacro MUI_LANGUAGE "Italian"
|
||||||
@@ -73,9 +73,9 @@ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "U
|
|||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall" "InstallLocation" $INSTDIR
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall" "InstallLocation" $INSTDIR
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall" "Publisher" "Manuel Cortéz"
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall" "Publisher" "Manuel Cortéz"
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "DisplayVersion" "0.95"
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "DisplayVersion" "0.95"
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "URLInfoAbout" "http://twblue.es"
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "URLInfoAbout" "https://twblue.es"
|
||||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "VersionMajor" 0
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "VersionMajor" 0
|
||||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "VersionMinor" 95
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "VersionMinor" 0
|
||||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "NoModify" 1
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "NoModify" 1
|
||||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "NoRepair" 1
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "NoRepair" 1
|
||||||
SectionEnd
|
SectionEnd
|
||||||
|
@@ -1,95 +0,0 @@
|
|||||||
!include "MUI2.nsh"
|
|
||||||
!include "LogicLib.nsh"
|
|
||||||
!include "x64.nsh"
|
|
||||||
Unicode true
|
|
||||||
CRCCheck on
|
|
||||||
ManifestSupportedOS all
|
|
||||||
XPStyle on
|
|
||||||
Name "TWBlue"
|
|
||||||
OutFile "TWBlue_snapshot_setup.exe"
|
|
||||||
InstallDir "$PROGRAMFILES\twblue"
|
|
||||||
InstallDirRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "InstallLocation"
|
|
||||||
RequestExecutionLevel admin
|
|
||||||
SetCompress auto
|
|
||||||
SetCompressor /solid lzma
|
|
||||||
SetDatablockOptimize on
|
|
||||||
VIAddVersionKey ProductName "TWBlue Snapshot version"
|
|
||||||
VIAddVersionKey LegalCopyright "Copyright 2014-2021 Manuel Cortéz."
|
|
||||||
VIAddVersionKey ProductVersion "11"
|
|
||||||
VIAddVersionKey FileVersion "11"
|
|
||||||
VIProductVersion "11.0.0.0"
|
|
||||||
VIFileVersion "11.0.0.0"
|
|
||||||
!insertmacro MUI_PAGE_WELCOME
|
|
||||||
!define MUI_LICENSEPAGE_RADIOBUTTONS
|
|
||||||
!insertmacro MUI_PAGE_LICENSE "license.txt"
|
|
||||||
!insertmacro MUI_PAGE_DIRECTORY
|
|
||||||
var StartMenuFolder
|
|
||||||
!insertmacro MUI_PAGE_STARTMENU startmenu $StartMenuFolder
|
|
||||||
!insertmacro MUI_PAGE_INSTFILES
|
|
||||||
!define MUI_FINISHPAGE_LINK "Visit TWBlue website"
|
|
||||||
!define MUI_FINISHPAGE_LINK_LOCATION "https://twblue.es"
|
|
||||||
!define MUI_FINISHPAGE_RUN "$INSTDIR\TWBlue.exe"
|
|
||||||
!insertmacro MUI_PAGE_FINISH
|
|
||||||
!insertmacro MUI_UNPAGE_CONFIRM
|
|
||||||
!insertmacro MUI_UNPAGE_INSTFILES
|
|
||||||
!insertmacro MUI_LANGUAGE "English"
|
|
||||||
!insertmacro MUI_LANGUAGE "French"
|
|
||||||
!insertmacro MUI_LANGUAGE "Spanish"
|
|
||||||
!insertmacro MUI_LANGUAGE "Italian"
|
|
||||||
!insertmacro MUI_LANGUAGE "Finnish"
|
|
||||||
!insertmacro MUI_LANGUAGE "Russian"
|
|
||||||
!insertmacro MUI_LANGUAGE "PortugueseBR"
|
|
||||||
!insertmacro MUI_LANGUAGE "Polish"
|
|
||||||
!insertmacro MUI_LANGUAGE "German"
|
|
||||||
!insertmacro MUI_LANGUAGE "Hungarian"
|
|
||||||
!insertmacro MUI_LANGUAGE "Turkish"
|
|
||||||
!insertmacro MUI_LANGUAGE "Arabic"
|
|
||||||
!insertmacro MUI_LANGUAGE "Galician"
|
|
||||||
!insertmacro MUI_LANGUAGE "Catalan"
|
|
||||||
!insertmacro MUI_LANGUAGE "Basque"
|
|
||||||
!insertmacro MUI_LANGUAGE "Croatian"
|
|
||||||
!insertmacro MUI_LANGUAGE "Japanese"
|
|
||||||
!insertmacro MUI_LANGUAGE "SerbianLatin"
|
|
||||||
!insertmacro MUI_LANGUAGE "Romanian"
|
|
||||||
!insertmacro MUI_RESERVEFILE_LANGDLL
|
|
||||||
Section
|
|
||||||
SetShellVarContext All
|
|
||||||
SetOutPath "$INSTDIR"
|
|
||||||
${If} ${RunningX64}
|
|
||||||
File /r TWBlue64\*
|
|
||||||
${Else}
|
|
||||||
File /r TWBlue\*
|
|
||||||
${EndIf}
|
|
||||||
CreateShortCut "$DESKTOP\TWBlue.lnk" "$INSTDIR\TWBlue.exe"
|
|
||||||
!insertmacro MUI_STARTMENU_WRITE_BEGIN startmenu
|
|
||||||
CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
|
|
||||||
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\TWBlue.lnk" "$INSTDIR\TWBlue.exe"
|
|
||||||
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\TWBlue on the web.lnk" "http://twblue.es"
|
|
||||||
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
|
|
||||||
!insertmacro MUI_STARTMENU_WRITE_END
|
|
||||||
WriteUninstaller "$INSTDIR\Uninstall.exe"
|
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "DisplayName" "TWBlue"
|
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "UninstallString" '"$INSTDIR\uninstall.exe"'
|
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall" "InstallLocation" $INSTDIR
|
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall" "Publisher" "Manuel Cortéz"
|
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "DisplayVersion" "11"
|
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "URLInfoAbout" "https://twblue.es"
|
|
||||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "VersionMajor" 0
|
|
||||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "VersionMinor" 0
|
|
||||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "NoModify" 1
|
|
||||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "NoRepair" 1
|
|
||||||
SectionEnd
|
|
||||||
Section "Uninstall"
|
|
||||||
SetShellVarContext All
|
|
||||||
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue"
|
|
||||||
RMDir /r /REBOOTOK $INSTDIR
|
|
||||||
Delete "$DESKTOP\TWBlue.lnk"
|
|
||||||
!insertmacro MUI_STARTMENU_GETFOLDER startmenu $StartMenuFolder
|
|
||||||
RMDir /r "$SMPROGRAMS\$StartMenuFolder"
|
|
||||||
SectionEnd
|
|
||||||
Function .onInit
|
|
||||||
${If} ${RunningX64}
|
|
||||||
StrCpy $instdir "$programfiles64\twblue"
|
|
||||||
${EndIf}
|
|
||||||
!insertmacro MUI_LANGDLL_DISPLAY
|
|
||||||
FunctionEnd
|
|
@@ -3,15 +3,8 @@ import datetime
|
|||||||
|
|
||||||
name = 'TWBlue'
|
name = 'TWBlue'
|
||||||
short_name='twblue'
|
short_name='twblue'
|
||||||
snapshot = True
|
update_url = 'https://twblue.es/updates/updates.php'
|
||||||
if snapshot == False:
|
mirror_update_url = 'https://raw.githubusercontent.com/manuelcortez/TWBlue/next-gen/updates/updates.json'
|
||||||
version = "0.95"
|
|
||||||
update_url = 'https://twblue.es/updates/stable.php'
|
|
||||||
mirror_update_url = 'https://raw.githubusercontent.com/manuelcortez/TWBlue/next-gen/updates/stable.json'
|
|
||||||
else:
|
|
||||||
version = "11"
|
|
||||||
update_url = 'https://twblue.es/updates/snapshot.php'
|
|
||||||
mirror_update_url = 'https://raw.githubusercontent.com/manuelcortez/TWBlue/next-gen/updates/snapshots.json'
|
|
||||||
authors = ["Manuel Cortéz", "José Manuel Delicado"]
|
authors = ["Manuel Cortéz", "José Manuel Delicado"]
|
||||||
authorEmail = "manuel@manuelcortez.net"
|
authorEmail = "manuel@manuelcortez.net"
|
||||||
copyright = "Copyright (C) 2013-2021, Manuel cortéz."
|
copyright = "Copyright (C) 2013-2021, Manuel cortéz."
|
||||||
@@ -20,3 +13,4 @@ translators = ["Manuel Cortéz (English)", "Mohammed Al Shara, Hatoun Felemban (
|
|||||||
url = u"https://twblue.es"
|
url = u"https://twblue.es"
|
||||||
report_bugs_url = "https://github.com/manuelcortez/twblue/issues"
|
report_bugs_url = "https://github.com/manuelcortez/twblue/issues"
|
||||||
supported_languages = []
|
supported_languages = []
|
||||||
|
version = "11"
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
import time
|
import time
|
||||||
import platform
|
import platform
|
||||||
|
import locale
|
||||||
if platform.system() == "Windows":
|
if platform.system() == "Windows":
|
||||||
from wxUI import commonMessageDialogs
|
from wxUI import commonMessageDialogs
|
||||||
elif platform.system() == "Linux":
|
elif platform.system() == "Linux":
|
||||||
@@ -8,6 +9,7 @@ elif platform.system() == "Linux":
|
|||||||
from gtkUI import commonMessageDialogs
|
from gtkUI import commonMessageDialogs
|
||||||
import widgetUtils
|
import widgetUtils
|
||||||
import logging
|
import logging
|
||||||
|
from tweepy.errors import TweepyException
|
||||||
from . import base, people
|
from . import base, people
|
||||||
|
|
||||||
log = logging.getLogger("controller.buffers.twitter.searchBuffer")
|
log = logging.getLogger("controller.buffers.twitter.searchBuffer")
|
||||||
@@ -64,35 +66,11 @@ class SearchPeopleBuffer(people.PeopleBuffer):
|
|||||||
class ConversationBuffer(SearchBuffer):
|
class ConversationBuffer(SearchBuffer):
|
||||||
|
|
||||||
def start_stream(self, start=False, mandatory=False, play_sound=True, avoid_autoreading=False):
|
def start_stream(self, start=False, mandatory=False, play_sound=True, avoid_autoreading=False):
|
||||||
# starts stream every 3 minutes.
|
|
||||||
current_time = time.time()
|
current_time = time.time()
|
||||||
if self.execution_time == 0 or current_time-self.execution_time >= 180 or mandatory == True:
|
if self.execution_time == 0 or current_time-self.execution_time >= 180 or mandatory == True:
|
||||||
self.execution_time = current_time
|
self.execution_time = current_time
|
||||||
if start == True:
|
results = self.get_replies(self.tweet)
|
||||||
self.statuses = []
|
number_of_items = self.session.order_buffer(self.name, results)
|
||||||
self.ids = []
|
|
||||||
self.statuses.append(self.tweet)
|
|
||||||
self.ids.append(self.tweet.id)
|
|
||||||
tweet = self.tweet
|
|
||||||
if not hasattr(tweet, "in_reply_to_status_id"):
|
|
||||||
tweet.in_reply_to_status_id = None
|
|
||||||
while tweet.in_reply_to_status_id != None:
|
|
||||||
try:
|
|
||||||
tweet = self.session.twitter.get_status(id=tweet.in_reply_to_status_id, tweet_mode="extended")
|
|
||||||
except TweepError as err:
|
|
||||||
break
|
|
||||||
self.statuses.insert(0, tweet)
|
|
||||||
self.ids.append(tweet.id)
|
|
||||||
if tweet.in_reply_to_status_id == None:
|
|
||||||
self.kwargs["since_id"] = tweet.id
|
|
||||||
self.ids.append(tweet.id)
|
|
||||||
val2 = self.session.search(self.name, tweet_mode="extended", *self.args, **self.kwargs)
|
|
||||||
for i in val2:
|
|
||||||
if i.in_reply_to_status_id in self.ids:
|
|
||||||
self.statuses.append(i)
|
|
||||||
self.ids.append(i.id)
|
|
||||||
tweet = i
|
|
||||||
number_of_items = self.session.order_buffer(self.name, self.statuses)
|
|
||||||
log.debug("Number of items retrieved: %d" % (number_of_items,))
|
log.debug("Number of items retrieved: %d" % (number_of_items,))
|
||||||
self.put_items_on_list(number_of_items)
|
self.put_items_on_list(number_of_items)
|
||||||
if number_of_items > 0 and self.sound != None and self.session.settings["sound"]["session_mute"] == False and self.name not in self.session.settings["other_buffers"]["muted_buffers"] and play_sound == True:
|
if number_of_items > 0 and self.sound != None and self.session.settings["sound"]["session_mute"] == False and self.name not in self.session.settings["other_buffers"]["muted_buffers"] and play_sound == True:
|
||||||
@@ -113,3 +91,33 @@ class ConversationBuffer(SearchBuffer):
|
|||||||
return True
|
return True
|
||||||
elif dlg == widgetUtils.NO:
|
elif dlg == widgetUtils.NO:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def get_replies(self, tweet):
|
||||||
|
""" Try to retrieve the whole conversation for the passed object by using a mix between calls to API V1.1 and V2 """
|
||||||
|
results = []
|
||||||
|
# If the tweet that starts the conversation is a reply to something else, let's try to get the parent tweet first.
|
||||||
|
if hasattr(self, "in_reply_to_status_id") and self.tweet.in_reply_to_status_id != None:
|
||||||
|
try:
|
||||||
|
tweet2 = self.session.twitter_v2.get_tweet(id=self.tweet.in_reply_to_status_id, user_auth=True, tweet_fields=["conversation_id"])
|
||||||
|
results.append(tweet2)
|
||||||
|
except TweepyException as e:
|
||||||
|
log.exception("There was an error attempting to retrieve a parent tweet for the conversation for {}".format(self.name))
|
||||||
|
# Now, try to fetch the tweet initiating the conversation in V2 so we can get conversation_id
|
||||||
|
try:
|
||||||
|
tweet = self.session.twitter_v2.get_tweet(id=self.tweet.id, user_auth=True, tweet_fields=["conversation_id"])
|
||||||
|
results.append(tweet.data)
|
||||||
|
term = "conversation_id:{}".format(tweet.data.conversation_id)
|
||||||
|
tweets = self.session.twitter_v2.search_recent_tweets(term, user_auth=True, max_results=98)
|
||||||
|
if tweets.data != None:
|
||||||
|
results.extend(tweets.data)
|
||||||
|
except TweepyException as e:
|
||||||
|
log.exception("There was an error when attempting to retrieve the whole conversation for buffer {}".format(self.buffer.name))
|
||||||
|
new_results = []
|
||||||
|
ids = [tweet.id for tweet in results]
|
||||||
|
try:
|
||||||
|
results = self.session.twitter.lookup_statuses(ids, include_ext_alt_text=True, tweet_mode="extended")
|
||||||
|
results.sort(key=lambda x: x.id)
|
||||||
|
except TweepyException as e:
|
||||||
|
log.exception("There was an error attempting to retrieve tweets for Twitter API V1.1, in conversation buffer {}".format(self.name))
|
||||||
|
return []
|
||||||
|
return results
|
@@ -2,6 +2,7 @@
|
|||||||
import platform
|
import platform
|
||||||
system = platform.system()
|
system = platform.system()
|
||||||
import application
|
import application
|
||||||
|
import wx
|
||||||
import requests
|
import requests
|
||||||
from audio_services import youtube_utils
|
from audio_services import youtube_utils
|
||||||
import arrow
|
import arrow
|
||||||
@@ -24,6 +25,7 @@ from sessions.twitter import utils, compose
|
|||||||
from sessionmanager import manager, sessionManager
|
from sessionmanager import manager, sessionManager
|
||||||
from controller import buffers
|
from controller import buffers
|
||||||
from . import messages
|
from . import messages
|
||||||
|
from . import userAliasController
|
||||||
import sessions
|
import sessions
|
||||||
from sessions.twitter import session as session_
|
from sessions.twitter import session as session_
|
||||||
from pubsub import pub
|
from pubsub import pub
|
||||||
@@ -189,6 +191,7 @@ class Controller(object):
|
|||||||
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.add_to_list, self.view.addToList)
|
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.add_to_list, self.view.addToList)
|
||||||
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.remove_from_list, self.view.removeFromList)
|
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.remove_from_list, self.view.removeFromList)
|
||||||
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.update_buffer, self.view.update_buffer)
|
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.update_buffer, self.view.update_buffer)
|
||||||
|
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.manage_aliases, self.view.manageAliases)
|
||||||
|
|
||||||
def set_systray_icon(self):
|
def set_systray_icon(self):
|
||||||
self.systrayIcon = sysTrayIcon.SysTrayIcon()
|
self.systrayIcon = sysTrayIcon.SysTrayIcon()
|
||||||
@@ -756,6 +759,11 @@ class Controller(object):
|
|||||||
buff.session.settings["user-aliases"][str(user_id)] = alias
|
buff.session.settings["user-aliases"][str(user_id)] = alias
|
||||||
buff.session.settings.write()
|
buff.session.settings.write()
|
||||||
output.speak(_("Alias has been set correctly for {}.").format(user))
|
output.speak(_("Alias has been set correctly for {}.").format(user))
|
||||||
|
pub.sendMessage("alias-added")
|
||||||
|
|
||||||
|
def manage_aliases(self, *args, **kwargs):
|
||||||
|
buff = self.get_best_buffer()
|
||||||
|
alias_controller = userAliasController.userAliasController(buff.session.settings)
|
||||||
|
|
||||||
def post_tweet(self, event=None):
|
def post_tweet(self, event=None):
|
||||||
buffer = self.get_best_buffer()
|
buffer = self.get_best_buffer()
|
||||||
|
53
src/controller/userAliasController.py
Normal file
53
src/controller/userAliasController.py
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
import widgetUtils
|
||||||
|
from pubsub import pub
|
||||||
|
from wxUI.dialogs import userAliasDialogs
|
||||||
|
from extra import autocompletionUsers
|
||||||
|
|
||||||
|
class userAliasController(object):
|
||||||
|
def __init__(self, settings):
|
||||||
|
super(userAliasController, self).__init__()
|
||||||
|
self.settings = settings
|
||||||
|
self.dialog = userAliasDialogs.userAliasEditorDialog()
|
||||||
|
self.update_aliases_manager()
|
||||||
|
widgetUtils.connect_event(self.dialog.add, widgetUtils.BUTTON_PRESSED, self.on_add)
|
||||||
|
widgetUtils.connect_event(self.dialog.edit, widgetUtils.BUTTON_PRESSED, self.on_edit)
|
||||||
|
widgetUtils.connect_event(self.dialog.remove, widgetUtils.BUTTON_PRESSED, self.on_remove)
|
||||||
|
pub.subscribe(self.update_aliases_manager, "alias-added")
|
||||||
|
self.dialog.ShowModal()
|
||||||
|
|
||||||
|
def update_aliases_manager(self):
|
||||||
|
self.dialog.users.Clear()
|
||||||
|
aliases = [self.settings["user-aliases"].get(k) for k in self.settings["user-aliases"].keys()]
|
||||||
|
if len(aliases) > 0:
|
||||||
|
self.dialog.users.InsertItems(aliases, 0)
|
||||||
|
self.dialog.on_selection_changes()
|
||||||
|
|
||||||
|
def on_add(self, *args, **kwargs):
|
||||||
|
pub.sendMessage("execute-action", action="add_alias")
|
||||||
|
|
||||||
|
def on_edit(self, *args, **kwargs):
|
||||||
|
selection = self.dialog.get_selected_user()
|
||||||
|
if selection != "":
|
||||||
|
edited = self.dialog.edit_alias_dialog(_("Edit alias for {}").format(selection))
|
||||||
|
if edited == None or edited == "":
|
||||||
|
return
|
||||||
|
for user_key in self.settings["user-aliases"].keys():
|
||||||
|
if self.settings["user-aliases"][user_key] == selection:
|
||||||
|
self.settings["user-aliases"][user_key] = edited
|
||||||
|
self.settings.write()
|
||||||
|
self.update_aliases_manager()
|
||||||
|
break
|
||||||
|
|
||||||
|
def on_remove(self, *args, **kwargs):
|
||||||
|
selection = self.dialog.get_selected_user()
|
||||||
|
if selection == None or selection == "":
|
||||||
|
return
|
||||||
|
should_remove = self.dialog.remove_alias_dialog()
|
||||||
|
if should_remove:
|
||||||
|
for user_key in self.settings["user-aliases"].keys():
|
||||||
|
if self.settings["user-aliases"][user_key] == selection:
|
||||||
|
self.settings["user-aliases"].pop(user_key)
|
||||||
|
self.settings.write()
|
||||||
|
self.update_aliases_manager()
|
||||||
|
break
|
@@ -1,5 +1,6 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
import widgetUtils
|
import widgetUtils
|
||||||
|
from tweepy.errors import TweepyException
|
||||||
from . import storage, wx_manage
|
from . import storage, wx_manage
|
||||||
from wxUI import commonMessageDialogs
|
from wxUI import commonMessageDialogs
|
||||||
|
|
||||||
@@ -27,8 +28,9 @@ class autocompletionManage(object):
|
|||||||
if usr == False:
|
if usr == False:
|
||||||
return
|
return
|
||||||
try:
|
try:
|
||||||
data = self.session.twitter.twitter.get_user(screen_name=usr)
|
data = self.session.twitter.get_user(screen_name=usr)
|
||||||
except:
|
except TweepyException as e:
|
||||||
|
log.exception("Exception raised when attempting to add an user to the autocomplete database manually.")
|
||||||
self.dialog.show_invalid_user_error()
|
self.dialog.show_invalid_user_error()
|
||||||
return
|
return
|
||||||
self.database.set_user(data.screen_name, data.name, 0)
|
self.database.set_user(data.screen_name, data.name, 0)
|
||||||
|
@@ -1,9 +1,9 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: TW Blue 0.94\n"
|
"Project-Id-Version: TW Blue 0.94\n"
|
||||||
"POT-Creation-Date: 2021-08-28 08:34+Paris, Madrid (heure dété)\n"
|
"POT-Creation-Date: 2021-10-28 12:29+Paris, Madrid (heure dété)\n"
|
||||||
"PO-Revision-Date: 2021-08-28 08:37+0200\n"
|
"PO-Revision-Date: 2021-10-28 18:29+0200\n"
|
||||||
"Last-Translator: Corentin BACQUÉ-CAZENAVE <corentin@progaccess33.net>\n"
|
"Last-Translator: Oreonan <corentin@progaccess.net>\n"
|
||||||
"Language-Team: Oreonan <corentin@progaccess.net>\n"
|
"Language-Team: Oreonan <corentin@progaccess.net>\n"
|
||||||
"Language: fr\n"
|
"Language: fr\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -25,60 +25,59 @@ msgid "This action is not supported for this buffer"
|
|||||||
msgstr "Cette action n'est pas supportée pour ce tampon"
|
msgstr "Cette action n'est pas supportée pour ce tampon"
|
||||||
|
|
||||||
#: ../src\controller\buffers\twitter\base.py:70
|
#: ../src\controller\buffers\twitter\base.py:70
|
||||||
#: ../src\controller\mainController.py:309 ../src\controller\settings.py:286
|
#: ../src\controller\mainController.py:337 ../src\controller\settings.py:286
|
||||||
msgid "Home"
|
msgid "Home"
|
||||||
msgstr "Accueil"
|
msgstr "Accueil"
|
||||||
|
|
||||||
#: ../src\controller\buffers\twitter\base.py:70
|
#: ../src\controller\buffers\twitter\base.py:70
|
||||||
#: ../src\controller\mainController.py:313 ../src\controller\settings.py:287
|
#: ../src\controller\mainController.py:339 ../src\controller\settings.py:287
|
||||||
msgid "Mentions"
|
msgid "Mentions"
|
||||||
msgstr "Mentions"
|
msgstr "Mentions"
|
||||||
|
|
||||||
#: ../src\controller\buffers\twitter\base.py:70
|
#: ../src\controller\buffers\twitter\base.py:70
|
||||||
#: ../src\controller\mainController.py:317
|
#: ../src\controller\mainController.py:341
|
||||||
msgid "Direct messages"
|
msgid "Direct messages"
|
||||||
msgstr "Messages privés"
|
msgstr "Messages privés"
|
||||||
|
|
||||||
#: ../src\controller\buffers\twitter\base.py:70
|
#: ../src\controller\buffers\twitter\base.py:70
|
||||||
#: ../src\controller\mainController.py:321 ../src\controller\settings.py:289
|
#: ../src\controller\mainController.py:343 ../src\controller\settings.py:289
|
||||||
msgid "Sent direct messages"
|
msgid "Sent direct messages"
|
||||||
msgstr "Messages privés envoyés"
|
msgstr "Messages privés envoyés"
|
||||||
|
|
||||||
#: ../src\controller\buffers\twitter\base.py:70
|
#: ../src\controller\buffers\twitter\base.py:70
|
||||||
#: ../src\controller\mainController.py:325 ../src\controller\settings.py:290
|
#: ../src\controller\mainController.py:345 ../src\controller\settings.py:290
|
||||||
msgid "Sent tweets"
|
msgid "Sent tweets"
|
||||||
msgstr "Tweets envoyés"
|
msgstr "Tweets envoyés"
|
||||||
|
|
||||||
#: ../src\controller\buffers\twitter\base.py:70
|
#: ../src\controller\buffers\twitter\base.py:70
|
||||||
#: ../src\controller\mainController.py:329
|
#: ../src\controller\mainController.py:347
|
||||||
#: ../src\controller\mainController.py:1400 ../src\controller\settings.py:291
|
#: ../src\controller\mainController.py:1390 ../src\controller\settings.py:291
|
||||||
msgid "Likes"
|
msgid "Likes"
|
||||||
msgstr "Favoris"
|
msgstr "Favoris"
|
||||||
|
|
||||||
#: ../src\controller\buffers\twitter\base.py:70
|
#: ../src\controller\buffers\twitter\base.py:70
|
||||||
#: ../src\controller\mainController.py:333
|
#: ../src\controller\mainController.py:349
|
||||||
#: ../src\controller\mainController.py:1405 ../src\controller\settings.py:292
|
#: ../src\controller\mainController.py:1395 ../src\controller\settings.py:292
|
||||||
msgid "Followers"
|
msgid "Followers"
|
||||||
msgstr "Abonnés"
|
msgstr "Abonnés"
|
||||||
|
|
||||||
#: ../src\controller\buffers\twitter\base.py:70
|
#: ../src\controller\buffers\twitter\base.py:70
|
||||||
#: ../src\controller\mainController.py:337
|
#: ../src\controller\mainController.py:353
|
||||||
#: ../src\controller\mainController.py:1410 ../src\controller\settings.py:293
|
#: ../src\controller\mainController.py:1405 ../src\controller\settings.py:294
|
||||||
msgid "Friends"
|
|
||||||
msgstr "Abonnements"
|
|
||||||
|
|
||||||
#: ../src\controller\buffers\twitter\base.py:70
|
|
||||||
#: ../src\controller\mainController.py:341
|
|
||||||
#: ../src\controller\mainController.py:1415 ../src\controller\settings.py:294
|
|
||||||
msgid "Blocked users"
|
msgid "Blocked users"
|
||||||
msgstr "Utilisateurs bloqués"
|
msgstr "Utilisateurs bloqués"
|
||||||
|
|
||||||
#: ../src\controller\buffers\twitter\base.py:70
|
#: ../src\controller\buffers\twitter\base.py:70
|
||||||
#: ../src\controller\mainController.py:345
|
#: ../src\controller\mainController.py:355
|
||||||
#: ../src\controller\mainController.py:1420 ../src\controller\settings.py:295
|
#: ../src\controller\mainController.py:1410 ../src\controller\settings.py:295
|
||||||
msgid "Muted users"
|
msgid "Muted users"
|
||||||
msgstr "Utilisateurs masqués"
|
msgstr "Utilisateurs masqués"
|
||||||
|
|
||||||
|
#: ../src\controller\buffers\twitter\base.py:70
|
||||||
|
#: ../src\controller\mainController.py:1400 ../src\controller\settings.py:293
|
||||||
|
msgid "Friends"
|
||||||
|
msgstr "Abonnements"
|
||||||
|
|
||||||
#: ../src\controller\buffers\twitter\base.py:76
|
#: ../src\controller\buffers\twitter\base.py:76
|
||||||
msgid "{username}'s timeline"
|
msgid "{username}'s timeline"
|
||||||
msgstr "Chronologie de {username}"
|
msgstr "Chronologie de {username}"
|
||||||
@@ -209,79 +208,84 @@ msgstr "{0} nouvel abonné"
|
|||||||
msgid "This action is not supported in the buffer, yet."
|
msgid "This action is not supported in the buffer, yet."
|
||||||
msgstr "Cette action n'est pas supportée pour le tampon actuel"
|
msgstr "Cette action n'est pas supportée pour le tampon actuel"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:273
|
#: ../src\controller\mainController.py:277
|
||||||
msgid "Ready"
|
msgid "Ready"
|
||||||
msgstr "Prêt"
|
msgstr "Prêt"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:348
|
#: ../src\controller\mainController.py:351
|
||||||
|
msgid "Following"
|
||||||
|
msgstr "Abonnements"
|
||||||
|
|
||||||
|
#: ../src\controller\mainController.py:356
|
||||||
msgid "Timelines"
|
msgid "Timelines"
|
||||||
msgstr "Chronologies"
|
msgstr "Chronologies"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:352
|
#: ../src\controller\mainController.py:359
|
||||||
#: ../src\controller\mainController.py:892
|
#: ../src\controller\mainController.py:883
|
||||||
#: ../src\controller\mainController.py:1596
|
#: ../src\controller\mainController.py:1585
|
||||||
msgid "Timeline for {}"
|
msgid "Timeline for {}"
|
||||||
msgstr "Chronologie de {}"
|
msgstr "Chronologie de {}"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:355
|
#: ../src\controller\mainController.py:360
|
||||||
msgid "Likes timelines"
|
msgid "Likes timelines"
|
||||||
msgstr "Chronologies des favoris"
|
msgstr "Chronologies des favoris"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:359
|
#: ../src\controller\mainController.py:363
|
||||||
#: ../src\controller\mainController.py:911
|
#: ../src\controller\mainController.py:902
|
||||||
#: ../src\controller\mainController.py:1598
|
#: ../src\controller\mainController.py:1587
|
||||||
msgid "Likes for {}"
|
msgid "Likes for {}"
|
||||||
msgstr "Favoris de {}"
|
msgstr "Favoris de {}"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:362
|
#: ../src\controller\mainController.py:364
|
||||||
msgid "Followers' Timelines"
|
msgid "Followers timelines"
|
||||||
msgstr "Chronologies des abonnés"
|
msgstr "Chronologies des abonnés"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:366
|
#: ../src\controller\mainController.py:367
|
||||||
#: ../src\controller\mainController.py:930
|
#: ../src\controller\mainController.py:921
|
||||||
#: ../src\controller\mainController.py:1600
|
#: ../src\controller\mainController.py:1589
|
||||||
msgid "Followers for {}"
|
msgid "Followers for {}"
|
||||||
msgstr "Abonnés de {}"
|
msgstr "Abonnés de {}"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:369
|
#: ../src\controller\mainController.py:368
|
||||||
msgid "Friends' Timelines"
|
msgid "Following timelines"
|
||||||
msgstr "Chronologies des abonnements"
|
msgstr "Chronologies des abonnements"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:373
|
#: ../src\controller\mainController.py:371
|
||||||
#: ../src\controller\mainController.py:949
|
#: ../src\controller\mainController.py:940
|
||||||
#: ../src\controller\mainController.py:1602
|
#: ../src\controller\mainController.py:1591
|
||||||
msgid "Friends for {}"
|
msgid "Friends for {}"
|
||||||
msgstr "Abonnements de {}"
|
msgstr "Abonnements de {}"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:376 ../src\wxUI\dialogs\lists.py:13
|
#: ../src\controller\mainController.py:372 ../src\wxUI\dialogs\lists.py:13
|
||||||
msgid "Lists"
|
msgid "Lists"
|
||||||
msgstr "Listes"
|
msgstr "Listes"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:381
|
#: ../src\controller\mainController.py:375
|
||||||
#: ../src\controller\mainController.py:1432
|
#: ../src\controller\mainController.py:1422
|
||||||
msgid "List for {}"
|
msgid "List for {}"
|
||||||
msgstr "Liste {}"
|
msgstr "Liste {}"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:384
|
#: ../src\controller\mainController.py:376
|
||||||
msgid "Searches"
|
msgid "Searches"
|
||||||
msgstr "Recherches"
|
msgstr "Recherches"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:388
|
#: ../src\controller\mainController.py:379
|
||||||
#: ../src\controller\mainController.py:447
|
#: ../src\controller\mainController.py:426
|
||||||
|
#: ../src\controller\mainController.py:431
|
||||||
msgid "Search for {}"
|
msgid "Search for {}"
|
||||||
msgstr "Recherche de {}"
|
msgstr "Recherche de {}"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:394
|
#: ../src\controller\mainController.py:381
|
||||||
#: ../src\controller\mainController.py:991
|
#: ../src\controller\mainController.py:982
|
||||||
msgid "Trending topics for %s"
|
msgid "Trending topics for %s"
|
||||||
msgstr "Tendances pour %s"
|
msgstr "Tendances pour %s"
|
||||||
|
|
||||||
|
#: ../src\controller\mainController.py:448
|
||||||
#: ../src\controller\mainController.py:464
|
#: ../src\controller\mainController.py:464
|
||||||
#: ../src\controller\mainController.py:480
|
#: ../src\controller\mainController.py:1080
|
||||||
#: ../src\controller\mainController.py:1089
|
#: ../src\controller\mainController.py:1099
|
||||||
#: ../src\controller\mainController.py:1108
|
#: ../src\controller\mainController.py:1118
|
||||||
#: ../src\controller\mainController.py:1127
|
#: ../src\controller\mainController.py:1137
|
||||||
#: ../src\controller\mainController.py:1146
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"No session is currently in focus. Focus a session with the next or previous "
|
"No session is currently in focus. Focus a session with the next or previous "
|
||||||
"session shortcut."
|
"session shortcut."
|
||||||
@@ -289,152 +293,152 @@ msgstr ""
|
|||||||
"Aucune session n'a actuellement le focus. Sélectionnez-en une avec le "
|
"Aucune session n'a actuellement le focus. Sélectionnez-en une avec le "
|
||||||
"raccourci pour la session précédente ou suivante."
|
"raccourci pour la session précédente ou suivante."
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:468
|
#: ../src\controller\mainController.py:452
|
||||||
msgid "Empty buffer."
|
msgid "Empty buffer."
|
||||||
msgstr "Tampon vide."
|
msgstr "Tampon vide."
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:475
|
#: ../src\controller\mainController.py:459
|
||||||
msgid "{0} not found."
|
msgid "{0} not found."
|
||||||
msgstr "{0} introuvable."
|
msgstr "{0} introuvable."
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:485
|
#: ../src\controller\mainController.py:469
|
||||||
msgid "Filters cannot be applied on this buffer"
|
msgid "Filters cannot be applied on this buffer"
|
||||||
msgstr "Les filtres ne peuvent pas s'appliquer à ce tampon"
|
msgstr "Les filtres ne peuvent pas s'appliquer à ce tampon"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:538
|
#: ../src\controller\mainController.py:522
|
||||||
#: ../src\controller\mainController.py:555
|
#: ../src\controller\mainController.py:539
|
||||||
#: ../src\controller\mainController.py:583
|
#: ../src\controller\mainController.py:568
|
||||||
msgid "Select the user"
|
msgid "Select the user"
|
||||||
msgstr "Sélectionnez l'utilisateur"
|
msgstr "Sélectionnez l'utilisateur"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:767
|
#: ../src\controller\mainController.py:753
|
||||||
msgid "Add an user alias"
|
msgid "Add an user alias"
|
||||||
msgstr "Ajoute un alis pour l'utilisateur"
|
msgstr "Ajoute un alias pour l'utilisateur"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:775
|
#: ../src\controller\mainController.py:761
|
||||||
msgid "Alias has been set correctly for {}."
|
msgid "Alias has been set correctly for {}."
|
||||||
msgstr "L'alias pour {} a correctement été définie"
|
msgstr "L'alias pour {} a correctement été définie"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:838 ../src\controller\messages.py:245
|
#: ../src\controller\mainController.py:829 ../src\controller\messages.py:245
|
||||||
msgid "MMM D, YYYY. H:m"
|
msgid "MMM D, YYYY. H:m"
|
||||||
msgstr "D MMM YYYY à H:m"
|
msgstr "D MMM YYYY à H:m"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:966
|
#: ../src\controller\mainController.py:957
|
||||||
msgid "Conversation with {0}"
|
msgid "Conversation with {0}"
|
||||||
msgstr "Conversation avec {0}"
|
msgstr "Conversation avec {0}"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:1007
|
#: ../src\controller\mainController.py:998
|
||||||
#: ../src\controller\mainController.py:1024
|
#: ../src\controller\mainController.py:1015
|
||||||
msgid "There are no coordinates in this tweet"
|
msgid "There are no coordinates in this tweet"
|
||||||
msgstr "Il n'y a aucune coordonnée dans ce tweet"
|
msgstr "Il n'y a aucune coordonnée dans ce tweet"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:1009
|
#: ../src\controller\mainController.py:1000
|
||||||
#: ../src\controller\mainController.py:1028
|
#: ../src\controller\mainController.py:1019
|
||||||
msgid "Error decoding coordinates. Try again later."
|
msgid "Error decoding coordinates. Try again later."
|
||||||
msgstr "Erreur pendant le décodage des coordonnées. Réessayez plus tard."
|
msgstr "Erreur pendant le décodage des coordonnées. Réessayez plus tard."
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:1013
|
#: ../src\controller\mainController.py:1004
|
||||||
msgid "Unable to find address in OpenStreetMap."
|
msgid "Unable to find address in OpenStreetMap."
|
||||||
msgstr "Impossible de trouver l'adresse dans OpenStreetMap"
|
msgstr "Impossible de trouver l'adresse dans OpenStreetMap"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:1026
|
#: ../src\controller\mainController.py:1017
|
||||||
msgid "There are no results for the coordinates in this tweet"
|
msgid "There are no results for the coordinates in this tweet"
|
||||||
msgstr "Il n'y a aucun résultat pour les coordonnées dans ce tweet"
|
msgstr "Il n'y a aucun résultat pour les coordonnées dans ce tweet"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:1137
|
#: ../src\controller\mainController.py:1128
|
||||||
#: ../src\controller\mainController.py:1156
|
#: ../src\controller\mainController.py:1147
|
||||||
msgid "%s, %s of %s"
|
msgid "%s, %s of %s"
|
||||||
msgstr "%s, %s de %s"
|
msgstr "%s, %s de %s"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:1139
|
#: ../src\controller\mainController.py:1130
|
||||||
#: ../src\controller\mainController.py:1158
|
#: ../src\controller\mainController.py:1149
|
||||||
#: ../src\controller\mainController.py:1183
|
#: ../src\controller\mainController.py:1174
|
||||||
#: ../src\controller\mainController.py:1208
|
#: ../src\controller\mainController.py:1199
|
||||||
msgid "%s. Empty"
|
msgid "%s. Empty"
|
||||||
msgstr "%s. Vide"
|
msgstr "%s. Vide"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:1171
|
#: ../src\controller\mainController.py:1162
|
||||||
#: ../src\controller\mainController.py:1175
|
#: ../src\controller\mainController.py:1166
|
||||||
#: ../src\controller\mainController.py:1196
|
#: ../src\controller\mainController.py:1187
|
||||||
msgid "{0}: This account is not logged into Twitter."
|
msgid "{0}: This account is not logged into Twitter."
|
||||||
msgstr "{0}: Ce compte n'est pas connecté à twitter."
|
msgstr "{0}: Ce compte n'est pas connecté à twitter."
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:1181
|
#: ../src\controller\mainController.py:1172
|
||||||
#: ../src\controller\mainController.py:1206
|
#: ../src\controller\mainController.py:1197
|
||||||
msgid "%s. %s, %s of %s"
|
msgid "%s. %s, %s of %s"
|
||||||
msgstr "%s. %s, %s de %s"
|
msgstr "%s. %s, %s de %s"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:1200
|
#: ../src\controller\mainController.py:1191
|
||||||
msgid "{0}: This account is not logged into twitter."
|
msgid "{0}: This account is not logged into twitter."
|
||||||
msgstr "{0}: Ce compte n'est pas connecté à twitter."
|
msgstr "{0}: Ce compte n'est pas connecté à twitter."
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:1426
|
#: ../src\controller\mainController.py:1416
|
||||||
msgid "This list is already opened"
|
msgid "This list is already opened"
|
||||||
msgstr "Cette liste est déjà ouverte"
|
msgstr "Cette liste est déjà ouverte"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:1456
|
#: ../src\controller\mainController.py:1446
|
||||||
#: ../src\controller\mainController.py:1472
|
#: ../src\controller\mainController.py:1462
|
||||||
msgid ""
|
msgid ""
|
||||||
"An error happened while trying to connect to the server. Please try later."
|
"An error happened while trying to connect to the server. Please try later."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Une erreur s'est produite en essayant de se connecter au serveur. Veuillez "
|
"Une erreur s'est produite en essayant de se connecter au serveur. Veuillez "
|
||||||
"réessayer plus tard."
|
"réessayer plus tard."
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:1508
|
#: ../src\controller\mainController.py:1498
|
||||||
msgid "The auto-reading of new tweets is enabled for this buffer"
|
msgid "The auto-reading of new tweets is enabled for this buffer"
|
||||||
msgstr "La lecture automatique des nouveaux tweets est activée pour ce tampon"
|
msgstr "La lecture automatique des nouveaux tweets est activée pour ce tampon"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:1511
|
#: ../src\controller\mainController.py:1501
|
||||||
msgid "The auto-reading of new tweets is disabled for this buffer"
|
msgid "The auto-reading of new tweets is disabled for this buffer"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"La lecture automatique des nouveaux tweets est désactivée pour ce tampon"
|
"La lecture automatique des nouveaux tweets est désactivée pour ce tampon"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:1518
|
#: ../src\controller\mainController.py:1508
|
||||||
msgid "Session mute on"
|
msgid "Session mute on"
|
||||||
msgstr "Session muet"
|
msgstr "Session muet"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:1521
|
#: ../src\controller\mainController.py:1511
|
||||||
msgid "Session mute off"
|
msgid "Session mute off"
|
||||||
msgstr "Session non muet"
|
msgstr "Session non muet"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:1529
|
#: ../src\controller\mainController.py:1519
|
||||||
msgid "Buffer mute on"
|
msgid "Buffer mute on"
|
||||||
msgstr "Tampon muet"
|
msgstr "Tampon muet"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:1532
|
#: ../src\controller\mainController.py:1522
|
||||||
msgid "Buffer mute off"
|
msgid "Buffer mute off"
|
||||||
msgstr "Tampon non muet"
|
msgstr "Tampon non muet"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:1555
|
#: ../src\controller\mainController.py:1545
|
||||||
msgid "Copied"
|
msgid "Copied"
|
||||||
msgstr "Copié"
|
msgstr "Copié"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:1586
|
#: ../src\controller\mainController.py:1575
|
||||||
msgid "Unable to update this buffer."
|
msgid "Unable to update this buffer."
|
||||||
msgstr "Impossible de mettre à jour ce tampon."
|
msgstr "Impossible de mettre à jour ce tampon."
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:1589
|
#: ../src\controller\mainController.py:1578
|
||||||
msgid "Updating buffer..."
|
msgid "Updating buffer..."
|
||||||
msgstr "Actualisation..."
|
msgstr "Actualisation..."
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:1592
|
#: ../src\controller\mainController.py:1581
|
||||||
msgid "{0} items retrieved"
|
msgid "{0} items retrieved"
|
||||||
msgstr "{0} éléments récupérés"
|
msgstr "{0} éléments récupérés"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:1609
|
#: ../src\controller\mainController.py:1598
|
||||||
#: ../src\controller\mainController.py:1629
|
#: ../src\controller\mainController.py:1618
|
||||||
msgid "Invalid buffer"
|
msgid "Invalid buffer"
|
||||||
msgstr "Tampon invalide"
|
msgstr "Tampon invalide"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:1620
|
#: ../src\controller\mainController.py:1609
|
||||||
msgid "Picture {0}"
|
msgid "Picture {0}"
|
||||||
msgstr "Photo {0}"
|
msgstr "Photo {0}"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:1621
|
#: ../src\controller\mainController.py:1610
|
||||||
msgid "Select the picture"
|
msgid "Select the picture"
|
||||||
msgstr "Sélectionner la photo"
|
msgstr "Sélectionner la photo"
|
||||||
|
|
||||||
#: ../src\controller\mainController.py:1640
|
#: ../src\controller\mainController.py:1629
|
||||||
msgid "Unable to extract text"
|
msgid "Unable to extract text"
|
||||||
msgstr "Impossible d'extraire le texte"
|
msgstr "Impossible d'extraire le texte"
|
||||||
|
|
||||||
@@ -616,6 +620,10 @@ msgstr "Favoris: %s"
|
|||||||
msgid "You can't ignore direct messages"
|
msgid "You can't ignore direct messages"
|
||||||
msgstr "Vous ne pouvez pas ignorer les messages privés"
|
msgstr "Vous ne pouvez pas ignorer les messages privés"
|
||||||
|
|
||||||
|
#: ../src\controller\userAliasController.py:32
|
||||||
|
msgid "Edit alias for {}"
|
||||||
|
msgstr "Éditer l'alias pour {}"
|
||||||
|
|
||||||
#: ../src\extra\AudioUploader\audioUploader.py:57
|
#: ../src\extra\AudioUploader\audioUploader.py:57
|
||||||
msgid "Attaching..."
|
msgid "Attaching..."
|
||||||
msgstr "Ajout en cours..."
|
msgstr "Ajout en cours..."
|
||||||
@@ -657,7 +665,7 @@ msgstr "Arrêté"
|
|||||||
msgid "&Record"
|
msgid "&Record"
|
||||||
msgstr "&Enregistrer"
|
msgstr "&Enregistrer"
|
||||||
|
|
||||||
#: ../src\extra\AudioUploader\audioUploader.py:136 ../src\sound.py:146
|
#: ../src\extra\AudioUploader\audioUploader.py:136 ../src\sound.py:148
|
||||||
msgid "Playing..."
|
msgid "Playing..."
|
||||||
msgstr "Lecture..."
|
msgstr "Lecture..."
|
||||||
|
|
||||||
@@ -1773,7 +1781,7 @@ msgid "Action"
|
|||||||
msgstr "Action"
|
msgstr "Action"
|
||||||
|
|
||||||
#: ../src\keystrokeEditor\wx_ui.py:18 ../src\wxUI\dialogs\filterDialogs.py:131
|
#: ../src\keystrokeEditor\wx_ui.py:18 ../src\wxUI\dialogs\filterDialogs.py:131
|
||||||
#: ../src\wxUI\dialogs\lists.py:20
|
#: ../src\wxUI\dialogs\lists.py:20 ../src\wxUI\dialogs\userAliasDialogs.py:53
|
||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr "Modifier"
|
msgstr "Modifier"
|
||||||
|
|
||||||
@@ -1786,7 +1794,7 @@ msgid "Execute action"
|
|||||||
msgstr "Exécuter une action"
|
msgstr "Exécuter une action"
|
||||||
|
|
||||||
#: ../src\keystrokeEditor\wx_ui.py:22 ../src\wxUI\dialogs\configuration.py:396
|
#: ../src\keystrokeEditor\wx_ui.py:22 ../src\wxUI\dialogs\configuration.py:396
|
||||||
#: ../src\wxUI\dialogs\utils.py:39 ../src\wxUI\dialogs\utils.py:71
|
#: ../src\wxUI\dialogs\userAliasDialogs.py:25 ../src\wxUI\dialogs\utils.py:39
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Fermer"
|
msgstr "Fermer"
|
||||||
|
|
||||||
@@ -1823,8 +1831,8 @@ msgid "Key"
|
|||||||
msgstr "Touche"
|
msgstr "Touche"
|
||||||
|
|
||||||
#: ../src\keystrokeEditor\wx_ui.py:71 ../src\wxUI\dialogs\filterDialogs.py:82
|
#: ../src\keystrokeEditor\wx_ui.py:71 ../src\wxUI\dialogs\filterDialogs.py:82
|
||||||
#: ../src\wxUI\dialogs\find.py:21 ../src\wxUI\dialogs\utils.py:36
|
#: ../src\wxUI\dialogs\find.py:21 ../src\wxUI\dialogs\userAliasDialogs.py:23
|
||||||
#: ../src\wxUI\dialogs\utils.py:68
|
#: ../src\wxUI\dialogs\utils.py:36
|
||||||
msgid "OK"
|
msgid "OK"
|
||||||
msgstr "OK"
|
msgstr "OK"
|
||||||
|
|
||||||
@@ -1940,7 +1948,7 @@ msgstr ""
|
|||||||
"ou après la réactivation d'un compte. Veuillez supprimer manuellement ce "
|
"ou après la réactivation d'un compte. Veuillez supprimer manuellement ce "
|
||||||
"compte depuis votre session Twitter pour ne plus voir ce message."
|
"compte depuis votre session Twitter pour ne plus voir ce message."
|
||||||
|
|
||||||
#: ../src\sessions\base.py:111
|
#: ../src\sessions\base.py:113
|
||||||
msgid ""
|
msgid ""
|
||||||
"An exception occurred while saving the {app} database. It will be deleted "
|
"An exception occurred while saving the {app} database. It will be deleted "
|
||||||
"and rebuilt automatically. If this error persists, send the error log to the "
|
"and rebuilt automatically. If this error persists, send the error log to the "
|
||||||
@@ -1950,7 +1958,7 @@ msgstr ""
|
|||||||
"{app}, elle va être détruite et recréée automatiquement. Si ce problème "
|
"{app}, elle va être détruite et recréée automatiquement. Si ce problème "
|
||||||
"perciste, veuillez envoyer le journal d'erreur aux développeurs de {app}."
|
"perciste, veuillez envoyer le journal d'erreur aux développeurs de {app}."
|
||||||
|
|
||||||
#: ../src\sessions\base.py:151
|
#: ../src\sessions\base.py:153
|
||||||
msgid ""
|
msgid ""
|
||||||
"An exception occurred while loading the {app} database. It will be deleted "
|
"An exception occurred while loading the {app} database. It will be deleted "
|
||||||
"and rebuilt automatically. If this error persists, send the error log to the "
|
"and rebuilt automatically. If this error persists, send the error log to the "
|
||||||
@@ -1999,16 +2007,16 @@ msgstr "privé"
|
|||||||
msgid "public"
|
msgid "public"
|
||||||
msgstr "public"
|
msgstr "public"
|
||||||
|
|
||||||
#: ../src\sessions\twitter\session.py:208
|
#: ../src\sessions\twitter\session.py:209
|
||||||
msgid "%s failed. Reason: %s"
|
msgid "%s failed. Reason: %s"
|
||||||
msgstr "%s erreur. Raison: %s"
|
msgstr "%s erreur. Raison: %s"
|
||||||
|
|
||||||
#: ../src\sessions\twitter\session.py:214
|
#: ../src\sessions\twitter\session.py:215
|
||||||
msgid "%s succeeded."
|
msgid "%s succeeded."
|
||||||
msgstr "%s réussi."
|
msgstr "%s réussi."
|
||||||
|
|
||||||
#: ../src\sessions\twitter\session.py:423
|
#: ../src\sessions\twitter\session.py:424
|
||||||
#: ../src\sessions\twitter\session.py:501
|
#: ../src\sessions\twitter\session.py:502
|
||||||
msgid "Deleted account"
|
msgid "Deleted account"
|
||||||
msgstr "Compte supprimé"
|
msgstr "Compte supprimé"
|
||||||
|
|
||||||
@@ -2021,8 +2029,8 @@ msgid "No status found with that ID"
|
|||||||
msgstr "Aucun Tweet trouvée avec cet ID"
|
msgstr "Aucun Tweet trouvée avec cet ID"
|
||||||
|
|
||||||
#: ../src\sessions\twitter\utils.py:235
|
#: ../src\sessions\twitter\utils.py:235
|
||||||
msgid "Error code {0}"
|
msgid "Error {0}"
|
||||||
msgstr "Code d'erreur {0}"
|
msgstr "Erreur {0}"
|
||||||
|
|
||||||
#: ../src\sessions\twitter\utils.py:262
|
#: ../src\sessions\twitter\utils.py:262
|
||||||
msgid "{user_1}, {user_2} and {all_users} more: {text}"
|
msgid "{user_1}, {user_2} and {all_users} more: {text}"
|
||||||
@@ -2036,7 +2044,7 @@ msgstr "Compte en cours d'autorisation..."
|
|||||||
msgid "Enter your PIN code here"
|
msgid "Enter your PIN code here"
|
||||||
msgstr "Entrer votre code PIN ici"
|
msgstr "Entrer votre code PIN ici"
|
||||||
|
|
||||||
#: ../src\sound.py:159
|
#: ../src\sound.py:161
|
||||||
msgid "Stopped."
|
msgid "Stopped."
|
||||||
msgstr "Arrêté."
|
msgstr "Arrêté."
|
||||||
|
|
||||||
@@ -2100,8 +2108,8 @@ msgstr "Date"
|
|||||||
|
|
||||||
#: ../src\wxUI\buffers\base.py:12 ../src\wxUI\buffers\people.py:12
|
#: ../src\wxUI\buffers\base.py:12 ../src\wxUI\buffers\people.py:12
|
||||||
#: ../src\wxUI\buffers\user_searches.py:11
|
#: ../src\wxUI\buffers\user_searches.py:11
|
||||||
|
#: ../src\wxUI\dialogs\userAliasDialogs.py:14
|
||||||
#: ../src\wxUI\dialogs\userSelection.py:11 ../src\wxUI\dialogs\utils.py:32
|
#: ../src\wxUI\dialogs\userSelection.py:11 ../src\wxUI\dialogs\utils.py:32
|
||||||
#: ../src\wxUI\dialogs\utils.py:59
|
|
||||||
msgid "User"
|
msgid "User"
|
||||||
msgstr "Utilisateur"
|
msgstr "Utilisateur"
|
||||||
|
|
||||||
@@ -2750,7 +2758,7 @@ msgstr "Langue sélectionnée"
|
|||||||
|
|
||||||
#: ../src\wxUI\dialogs\filterDialogs.py:75
|
#: ../src\wxUI\dialogs\filterDialogs.py:75
|
||||||
#: ../src\wxUI\dialogs\filterDialogs.py:133 ../src\wxUI\dialogs\lists.py:21
|
#: ../src\wxUI\dialogs\filterDialogs.py:133 ../src\wxUI\dialogs\lists.py:21
|
||||||
#: ../src\wxUI\dialogs\lists.py:132
|
#: ../src\wxUI\dialogs\lists.py:132 ../src\wxUI\dialogs\userAliasDialogs.py:57
|
||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr "Effacer"
|
msgstr "Effacer"
|
||||||
|
|
||||||
@@ -2959,7 +2967,7 @@ msgstr "&Rechercher"
|
|||||||
msgid "Tweets"
|
msgid "Tweets"
|
||||||
msgstr "Tweets"
|
msgstr "Tweets"
|
||||||
|
|
||||||
#: ../src\wxUI\dialogs\search.py:22
|
#: ../src\wxUI\dialogs\search.py:22 ../src\wxUI\dialogs\userAliasDialogs.py:43
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr "Utilisateurs"
|
msgstr "Utilisateurs"
|
||||||
|
|
||||||
@@ -3064,13 +3072,13 @@ msgstr "Ignorer la photo"
|
|||||||
msgid "Select URL"
|
msgid "Select URL"
|
||||||
msgstr "Sélectionnez l'URL"
|
msgstr "Sélectionnez l'URL"
|
||||||
|
|
||||||
#: ../src\wxUI\dialogs\userActions.py:11 ../src\wxUI\view.py:86
|
#: ../src\wxUI\dialogs\userActions.py:11 ../src\wxUI\view.py:87
|
||||||
msgid "&User"
|
msgid "&User"
|
||||||
msgstr "&Utilisateur"
|
msgstr "&Utilisateur"
|
||||||
|
|
||||||
#: ../src\wxUI\dialogs\userActions.py:14
|
#: ../src\wxUI\dialogs\userActions.py:14
|
||||||
|
#: ../src\wxUI\dialogs\userAliasDialogs.py:13
|
||||||
#: ../src\wxUI\dialogs\userSelection.py:14 ../src\wxUI\dialogs\utils.py:31
|
#: ../src\wxUI\dialogs\userSelection.py:14 ../src\wxUI\dialogs\utils.py:31
|
||||||
#: ../src\wxUI\dialogs\utils.py:58
|
|
||||||
msgid "&Autocomplete users"
|
msgid "&Autocomplete users"
|
||||||
msgstr "&Saisie automatique utilisateurs"
|
msgstr "&Saisie automatique utilisateurs"
|
||||||
|
|
||||||
@@ -3082,7 +3090,7 @@ msgstr "&Suivre"
|
|||||||
msgid "U&nfollow"
|
msgid "U&nfollow"
|
||||||
msgstr "Ne pas su&ivre"
|
msgstr "Ne pas su&ivre"
|
||||||
|
|
||||||
#: ../src\wxUI\dialogs\userActions.py:22 ../src\wxUI\view.py:62
|
#: ../src\wxUI\dialogs\userActions.py:22 ../src\wxUI\view.py:63
|
||||||
msgid "&Mute"
|
msgid "&Mute"
|
||||||
msgstr "&Masquer"
|
msgstr "&Masquer"
|
||||||
|
|
||||||
@@ -3106,6 +3114,46 @@ msgstr "&Signaler comme spam"
|
|||||||
msgid "&Ignore tweets from this client"
|
msgid "&Ignore tweets from this client"
|
||||||
msgstr "&Ignorer les tweets de ce client"
|
msgstr "&Ignorer les tweets de ce client"
|
||||||
|
|
||||||
|
#: ../src\wxUI\dialogs\userAliasDialogs.py:18
|
||||||
|
msgid "Alias"
|
||||||
|
msgstr "Alias"
|
||||||
|
|
||||||
|
#: ../src\wxUI\dialogs\userAliasDialogs.py:41
|
||||||
|
msgid "Edit user aliases"
|
||||||
|
msgstr "Éditer les alias utilisateur"
|
||||||
|
|
||||||
|
#: ../src\wxUI\dialogs\userAliasDialogs.py:48
|
||||||
|
msgid "Actions"
|
||||||
|
msgstr "Actions"
|
||||||
|
|
||||||
|
#: ../src\wxUI\dialogs\userAliasDialogs.py:50
|
||||||
|
msgid "Add alias"
|
||||||
|
msgstr "Ajouter un alias"
|
||||||
|
|
||||||
|
#: ../src\wxUI\dialogs\userAliasDialogs.py:51
|
||||||
|
msgid "Adds a new user alias"
|
||||||
|
msgstr "Ajoute un nouvel alias utilisateur"
|
||||||
|
|
||||||
|
#: ../src\wxUI\dialogs\userAliasDialogs.py:54
|
||||||
|
msgid "Edit the currently focused user Alias."
|
||||||
|
msgstr "Éditer l'alias utilisateur ayant actuellement le focus."
|
||||||
|
|
||||||
|
#: ../src\wxUI\dialogs\userAliasDialogs.py:58
|
||||||
|
msgid "Remove the currently focused user alias."
|
||||||
|
msgstr "Supprimer l'alias utilisateur ayant actuellement le focus."
|
||||||
|
|
||||||
|
#: ../src\wxUI\dialogs\userAliasDialogs.py:82
|
||||||
|
msgid "Are you sure you want to delete this user alias?"
|
||||||
|
msgstr "Êtes-vous sûr de vouloir supprimer cet alias utilisateur ?"
|
||||||
|
|
||||||
|
#: ../src\wxUI\dialogs\userAliasDialogs.py:82
|
||||||
|
msgid "Remove user alias"
|
||||||
|
msgstr "Supprimer l'alias utilisateur"
|
||||||
|
|
||||||
|
#: ../src\wxUI\dialogs\userAliasDialogs.py:93
|
||||||
|
msgid "User alias"
|
||||||
|
msgstr "Alias utilisateur"
|
||||||
|
|
||||||
#: ../src\wxUI\dialogs\userSelection.py:10
|
#: ../src\wxUI\dialogs\userSelection.py:10
|
||||||
msgid "Timeline for %s"
|
msgid "Timeline for %s"
|
||||||
msgstr "Chronologie pour %s"
|
msgstr "Chronologie pour %s"
|
||||||
@@ -3130,23 +3178,19 @@ msgstr "&Abonnés"
|
|||||||
msgid "F&riends"
|
msgid "F&riends"
|
||||||
msgstr "A&bonnements"
|
msgstr "A&bonnements"
|
||||||
|
|
||||||
#: ../src\wxUI\dialogs\utils.py:63
|
#: ../src\wxUI\menus.py:8 ../src\wxUI\view.py:33
|
||||||
msgid "Alias"
|
|
||||||
msgstr "Alias"
|
|
||||||
|
|
||||||
#: ../src\wxUI\menus.py:8 ../src\wxUI\view.py:32
|
|
||||||
msgid "&Retweet"
|
msgid "&Retweet"
|
||||||
msgstr "&Retweet"
|
msgstr "&Retweet"
|
||||||
|
|
||||||
#: ../src\wxUI\menus.py:10 ../src\wxUI\menus.py:34 ../src\wxUI\view.py:31
|
#: ../src\wxUI\menus.py:10 ../src\wxUI\menus.py:34 ../src\wxUI\view.py:32
|
||||||
msgid "Re&ply"
|
msgid "Re&ply"
|
||||||
msgstr "Ré&pondre"
|
msgstr "Ré&pondre"
|
||||||
|
|
||||||
#: ../src\wxUI\menus.py:12 ../src\wxUI\view.py:33
|
#: ../src\wxUI\menus.py:12 ../src\wxUI\view.py:34
|
||||||
msgid "&Like"
|
msgid "&Like"
|
||||||
msgstr "A&jouter aux favoris"
|
msgstr "A&jouter aux favoris"
|
||||||
|
|
||||||
#: ../src\wxUI\menus.py:14 ../src\wxUI\view.py:34
|
#: ../src\wxUI\menus.py:14 ../src\wxUI\view.py:35
|
||||||
msgid "&Unlike"
|
msgid "&Unlike"
|
||||||
msgstr "S&upprimer des favoris"
|
msgstr "S&upprimer des favoris"
|
||||||
|
|
||||||
@@ -3162,7 +3206,7 @@ msgstr "Ou&vrir dans Twitter"
|
|||||||
msgid "&Play audio"
|
msgid "&Play audio"
|
||||||
msgstr "&Lire audio"
|
msgstr "&Lire audio"
|
||||||
|
|
||||||
#: ../src\wxUI\menus.py:22 ../src\wxUI\menus.py:58 ../src\wxUI\view.py:35
|
#: ../src\wxUI\menus.py:22 ../src\wxUI\menus.py:58 ../src\wxUI\view.py:36
|
||||||
msgid "&Show tweet"
|
msgid "&Show tweet"
|
||||||
msgstr "A&fficher tweet"
|
msgstr "A&fficher tweet"
|
||||||
|
|
||||||
@@ -3172,7 +3216,7 @@ msgid "&Copy to clipboard"
|
|||||||
msgstr "&Copier dans le Presse-papiers"
|
msgstr "&Copier dans le Presse-papiers"
|
||||||
|
|
||||||
#: ../src\wxUI\menus.py:26 ../src\wxUI\menus.py:44 ../src\wxUI\menus.py:62
|
#: ../src\wxUI\menus.py:26 ../src\wxUI\menus.py:44 ../src\wxUI\menus.py:62
|
||||||
#: ../src\wxUI\menus.py:72 ../src\wxUI\view.py:39
|
#: ../src\wxUI\menus.py:72 ../src\wxUI\view.py:40
|
||||||
msgid "&Delete"
|
msgid "&Delete"
|
||||||
msgstr "&Supprimer Tweet"
|
msgstr "&Supprimer Tweet"
|
||||||
|
|
||||||
@@ -3192,11 +3236,11 @@ msgstr "&Afficher l'événement"
|
|||||||
msgid "Direct &message"
|
msgid "Direct &message"
|
||||||
msgstr "&Message privé"
|
msgstr "&Message privé"
|
||||||
|
|
||||||
#: ../src\wxUI\menus.py:80 ../src\wxUI\view.py:49
|
#: ../src\wxUI\menus.py:80 ../src\wxUI\view.py:50
|
||||||
msgid "&View lists"
|
msgid "&View lists"
|
||||||
msgstr "&Voir listes"
|
msgstr "&Voir listes"
|
||||||
|
|
||||||
#: ../src\wxUI\menus.py:83 ../src\wxUI\view.py:50
|
#: ../src\wxUI\menus.py:83 ../src\wxUI\view.py:51
|
||||||
msgid "Show user &profile"
|
msgid "Show user &profile"
|
||||||
msgstr "Voir le &profil de l'utilisateur"
|
msgstr "Voir le &profil de l'utilisateur"
|
||||||
|
|
||||||
@@ -3212,11 +3256,11 @@ msgstr "&Tweet sur cette tendance"
|
|||||||
msgid "&Show item"
|
msgid "&Show item"
|
||||||
msgstr "&Afficher l'élément"
|
msgstr "&Afficher l'élément"
|
||||||
|
|
||||||
#: ../src\wxUI\sysTrayIcon.py:36 ../src\wxUI\view.py:25
|
#: ../src\wxUI\sysTrayIcon.py:36 ../src\wxUI\view.py:26
|
||||||
msgid "&Global settings"
|
msgid "&Global settings"
|
||||||
msgstr "Paramètres &globaux"
|
msgstr "Paramètres &globaux"
|
||||||
|
|
||||||
#: ../src\wxUI\sysTrayIcon.py:37 ../src\wxUI\view.py:24
|
#: ../src\wxUI\sysTrayIcon.py:37 ../src\wxUI\view.py:25
|
||||||
msgid "Account se&ttings"
|
msgid "Account se&ttings"
|
||||||
msgstr "Paramètres du c&ompte"
|
msgstr "Paramètres du c&ompte"
|
||||||
|
|
||||||
@@ -3228,7 +3272,7 @@ msgstr "&Actualiser le profil"
|
|||||||
msgid "&Show / hide"
|
msgid "&Show / hide"
|
||||||
msgstr "&Afficher / masquer"
|
msgstr "&Afficher / masquer"
|
||||||
|
|
||||||
#: ../src\wxUI\sysTrayIcon.py:40 ../src\wxUI\view.py:74
|
#: ../src\wxUI\sysTrayIcon.py:40 ../src\wxUI\view.py:75
|
||||||
msgid "&Documentation"
|
msgid "&Documentation"
|
||||||
msgstr "&Documentation"
|
msgstr "&Documentation"
|
||||||
|
|
||||||
@@ -3253,265 +3297,157 @@ msgid "&Lists manager"
|
|||||||
msgstr "Gérer les &listes"
|
msgstr "Gérer les &listes"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:23
|
#: ../src\wxUI\view.py:23
|
||||||
|
msgid "Manage user aliases"
|
||||||
|
msgstr "Gérer les alias utilisateur"
|
||||||
|
|
||||||
|
#: ../src\wxUI\view.py:24
|
||||||
msgid "&Edit keystrokes"
|
msgid "&Edit keystrokes"
|
||||||
msgstr "&Éditer les raccourcis clavier"
|
msgstr "&Éditer les raccourcis clavier"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:26
|
#: ../src\wxUI\view.py:27
|
||||||
msgid "E&xit"
|
msgid "E&xit"
|
||||||
msgstr "&Quitter"
|
msgstr "&Quitter"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:30 ../src\wxUI\view.py:85
|
#: ../src\wxUI\view.py:31 ../src\wxUI\view.py:86
|
||||||
msgid "&Tweet"
|
msgid "&Tweet"
|
||||||
msgstr "&Tweet"
|
msgstr "&Tweet"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:36
|
#: ../src\wxUI\view.py:37
|
||||||
msgid "View &address"
|
msgid "View &address"
|
||||||
msgstr "Voir &adresse"
|
msgstr "Voir &adresse"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:37
|
#: ../src\wxUI\view.py:38
|
||||||
msgid "View conversa&tion"
|
msgid "View conversa&tion"
|
||||||
msgstr "Voir &conversation"
|
msgstr "Voir &conversation"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:38
|
#: ../src\wxUI\view.py:39
|
||||||
msgid "Read text in picture"
|
msgid "Read text in picture"
|
||||||
msgstr "Lire le texte dans l'&image"
|
msgstr "Lire le texte dans l'&image"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:43
|
#: ../src\wxUI\view.py:44
|
||||||
msgid "&Actions..."
|
msgid "&Actions..."
|
||||||
msgstr "&Actions..."
|
msgstr "&Actions..."
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:44
|
#: ../src\wxUI\view.py:45
|
||||||
msgid "&View timeline..."
|
msgid "&View timeline..."
|
||||||
msgstr "Voir &chronologie..."
|
msgstr "Voir &chronologie..."
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:45
|
#: ../src\wxUI\view.py:46
|
||||||
msgid "Direct me&ssage"
|
msgid "Direct me&ssage"
|
||||||
msgstr "&Message privé"
|
msgstr "&Message privé"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:46
|
#: ../src\wxUI\view.py:47
|
||||||
msgid "Add a&lias"
|
msgid "Add a&lias"
|
||||||
msgstr "Ajouter un a&lias"
|
msgstr "Ajouter un a&lias"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:47
|
#: ../src\wxUI\view.py:48
|
||||||
msgid "&Add to list"
|
msgid "&Add to list"
|
||||||
msgstr "A&jouter à la liste"
|
msgstr "A&jouter à la liste"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:48
|
#: ../src\wxUI\view.py:49
|
||||||
msgid "R&emove from list"
|
msgid "R&emove from list"
|
||||||
msgstr "S&upprimer de la liste"
|
msgstr "S&upprimer de la liste"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:51
|
#: ../src\wxUI\view.py:52
|
||||||
msgid "V&iew likes"
|
msgid "V&iew likes"
|
||||||
msgstr "Voir &favoris"
|
msgstr "Voir &favoris"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:55
|
#: ../src\wxUI\view.py:56
|
||||||
msgid "&Update buffer"
|
msgid "&Update buffer"
|
||||||
msgstr "&Mise à jour du tampon"
|
msgstr "&Mise à jour du tampon"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:56
|
#: ../src\wxUI\view.py:57
|
||||||
msgid "New &trending topics buffer..."
|
msgid "New &trending topics buffer..."
|
||||||
msgstr "Nouveau tampon de &tendances..."
|
msgstr "Nouveau tampon de &tendances..."
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:57
|
#: ../src\wxUI\view.py:58
|
||||||
msgid "Create a &filter"
|
msgid "Create a &filter"
|
||||||
msgstr "Créer un &filtre"
|
msgstr "Créer un &filtre"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:58
|
#: ../src\wxUI\view.py:59
|
||||||
msgid "&Manage filters"
|
msgid "&Manage filters"
|
||||||
msgstr "&Gérer les filtres"
|
msgstr "&Gérer les filtres"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:59
|
#: ../src\wxUI\view.py:60
|
||||||
msgid "Find a string in the currently focused buffer..."
|
msgid "Find a string in the currently focused buffer..."
|
||||||
msgstr "Trouver une chaîne dans le tampon ayant actuellement le f&ocus..."
|
msgstr "Trouver une chaîne dans le tampon ayant actuellement le f&ocus..."
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:60
|
#: ../src\wxUI\view.py:61
|
||||||
msgid "&Load previous items"
|
msgid "&Load previous items"
|
||||||
msgstr "&Charger des éléments plus anciens"
|
msgstr "&Charger des éléments plus anciens"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:63
|
#: ../src\wxUI\view.py:64
|
||||||
msgid "&Autoread"
|
msgid "&Autoread"
|
||||||
msgstr "&Lecture automatique"
|
msgstr "&Lecture automatique"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:64
|
#: ../src\wxUI\view.py:65
|
||||||
msgid "&Clear buffer"
|
msgid "&Clear buffer"
|
||||||
msgstr "&Effacer le tampon"
|
msgstr "&Effacer le tampon"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:65
|
#: ../src\wxUI\view.py:66
|
||||||
msgid "&Destroy"
|
msgid "&Destroy"
|
||||||
msgstr "&Détruire"
|
msgstr "&Détruire"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:69
|
#: ../src\wxUI\view.py:70
|
||||||
msgid "&Seek back 5 seconds"
|
msgid "&Seek back 5 seconds"
|
||||||
msgstr "&Reculer de 5 secondes"
|
msgstr "&Reculer de 5 secondes"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:70
|
#: ../src\wxUI\view.py:71
|
||||||
msgid "&Seek forward 5 seconds"
|
msgid "&Seek forward 5 seconds"
|
||||||
msgstr "&Avancer de 5 secondes"
|
msgstr "&Avancer de 5 secondes"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:75
|
#: ../src\wxUI\view.py:76
|
||||||
msgid "Sounds &tutorial"
|
msgid "Sounds &tutorial"
|
||||||
msgstr "&Apprentissage des sons"
|
msgstr "&Apprentissage des sons"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:76
|
#: ../src\wxUI\view.py:77
|
||||||
msgid "&What's new in this version?"
|
msgid "&What's new in this version?"
|
||||||
msgstr "&Quoi de neuf dans cette version ?"
|
msgstr "&Quoi de neuf dans cette version ?"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:77
|
#: ../src\wxUI\view.py:78
|
||||||
msgid "&Check for updates"
|
msgid "&Check for updates"
|
||||||
msgstr "&Vérifier les mises à jour"
|
msgstr "&Vérifier les mises à jour"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:78
|
#: ../src\wxUI\view.py:79
|
||||||
msgid "&Report an error"
|
msgid "&Report an error"
|
||||||
msgstr "&Signaler une erreur"
|
msgstr "&Signaler une erreur"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:79
|
#: ../src\wxUI\view.py:80
|
||||||
msgid "{0}'s &website"
|
msgid "{0}'s &website"
|
||||||
msgstr "Site &Web de {0}"
|
msgstr "Site &Web de {0}"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:80
|
#: ../src\wxUI\view.py:81
|
||||||
msgid "Get soundpacks for TWBlue"
|
msgid "Get soundpacks for TWBlue"
|
||||||
msgstr "Obtenir des packs de son pour TWBlue"
|
msgstr "Obtenir des packs de son pour TWBlue"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:81
|
#: ../src\wxUI\view.py:82
|
||||||
msgid "About &{0}"
|
msgid "About &{0}"
|
||||||
msgstr "À propos de &{0}"
|
msgstr "À propos de &{0}"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:84
|
#: ../src\wxUI\view.py:85
|
||||||
msgid "&Application"
|
msgid "&Application"
|
||||||
msgstr "&Application"
|
msgstr "&Application"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:87
|
#: ../src\wxUI\view.py:88
|
||||||
msgid "&Buffer"
|
msgid "&Buffer"
|
||||||
msgstr "Ta&mpon"
|
msgstr "Ta&mpon"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:88
|
#: ../src\wxUI\view.py:89
|
||||||
msgid "&Audio"
|
msgid "&Audio"
|
||||||
msgstr "Au&dio"
|
msgstr "Au&dio"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:89
|
#: ../src\wxUI\view.py:90
|
||||||
msgid "&Help"
|
msgid "&Help"
|
||||||
msgstr "A&ide"
|
msgstr "A&ide"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:175
|
#: ../src\wxUI\view.py:176
|
||||||
msgid "Address"
|
msgid "Address"
|
||||||
msgstr "Adresse"
|
msgstr "Adresse"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:206
|
#: ../src\wxUI\view.py:207
|
||||||
msgid "Update"
|
msgid "Update"
|
||||||
msgstr "Mise à jour"
|
msgstr "Mise à jour"
|
||||||
|
|
||||||
#: ../src\wxUI\view.py:206
|
#: ../src\wxUI\view.py:207
|
||||||
msgid "Your {0} version is up to date"
|
msgid "Your {0} version is up to date"
|
||||||
msgstr "Votre version de {0} est à jour"
|
msgstr "Votre version de {0} est à jour"
|
||||||
|
|
||||||
#~ msgid "Events"
|
|
||||||
#~ msgstr "Événements"
|
|
||||||
|
|
||||||
#~ msgid "This tweet doesn't contain images"
|
|
||||||
#~ msgstr "Ce tweet ne contient pas d'images"
|
|
||||||
|
|
||||||
#~ msgid "Direct connection"
|
|
||||||
#~ msgstr "Connexion directe"
|
|
||||||
|
|
||||||
#~ msgid "There are no more items to retrieve in this buffer."
|
|
||||||
#~ msgstr "Il n'y a aucun nouvel élément a récupéré dans ce tampon"
|
|
||||||
|
|
||||||
#~ msgid "Empty"
|
|
||||||
#~ msgstr "Vide"
|
|
||||||
|
|
||||||
#~ msgid "One mention from %s "
|
|
||||||
#~ msgstr "Une mention de %s"
|
|
||||||
|
|
||||||
#~ msgid "One tweet from %s"
|
|
||||||
#~ msgstr "Un tweet de %s"
|
|
||||||
|
|
||||||
#~ msgid "You've blocked %s"
|
|
||||||
#~ msgstr "Vous avez bloqué à %s"
|
|
||||||
|
|
||||||
#~ msgid "You've unblocked %s"
|
|
||||||
#~ msgstr "Vous avez débloqué à %s"
|
|
||||||
|
|
||||||
#~ msgid "%s(@%s) has followed you"
|
|
||||||
#~ msgstr "%s(@%s) vous suit"
|
|
||||||
|
|
||||||
#~ msgid "You've followed %s(@%s)"
|
|
||||||
#~ msgstr "Vous suivez %s(@%s)"
|
|
||||||
|
|
||||||
#~ msgid "You've unfollowed %s (@%s)"
|
|
||||||
#~ msgstr "Vous ne suivez plus %s(@%s)"
|
|
||||||
|
|
||||||
#~ msgid "You've liked: %s, %s"
|
|
||||||
#~ msgstr "Vous avez ajouté aux favoris: %s, %s"
|
|
||||||
|
|
||||||
#~ msgid "%s(@%s) has liked: %s"
|
|
||||||
#~ msgstr "%s(@%s) a ajouté aux favoris: %s"
|
|
||||||
|
|
||||||
#~ msgid "You've unliked: %s, %s"
|
|
||||||
#~ msgstr "Vous avez retiré des favoris: %s, %s"
|
|
||||||
|
|
||||||
#~ msgid "%s(@%s) has unliked: %s"
|
|
||||||
#~ msgstr "%s(@%s) a retiré des favoris: %s"
|
|
||||||
|
|
||||||
#~ msgid "You've created the list %s"
|
|
||||||
#~ msgstr "Vous avez créé la liste %s"
|
|
||||||
|
|
||||||
#~ msgid "You've deleted the list %s"
|
|
||||||
#~ msgstr "Vous avez supprimé la liste %s"
|
|
||||||
|
|
||||||
#~ msgid "You've updated the list %s"
|
|
||||||
#~ msgstr "Vous avez mis à jour la liste %s"
|
|
||||||
|
|
||||||
#~ msgid "You've added %s(@%s) to the list %s"
|
|
||||||
#~ msgstr "Vous avez ajouté %s(@%s) à la liste %s"
|
|
||||||
|
|
||||||
#~ msgid "%s(@%s) has added you to the list %s"
|
|
||||||
#~ msgstr "%s(@%s) vous a ajouté à la liste %s"
|
|
||||||
|
|
||||||
#~ msgid "You'be removed %s(@%s) from the list %s"
|
|
||||||
#~ msgstr "Vous avez supprimé à %s(@%s) de la liste %s"
|
|
||||||
|
|
||||||
#~ msgid "%s(@%s) has removed you from the list %s"
|
|
||||||
#~ msgstr "%s(@%s) vous a supprimé de la liste %s"
|
|
||||||
|
|
||||||
#~ msgid "You've subscribed to the list %s, which is owned by %s(@%s)"
|
|
||||||
#~ msgstr "Vous êtes abonné à la liste %s, qui est la propriété de %s(@%s)"
|
|
||||||
|
|
||||||
#~ msgid "%s(@%s) has subscribed you to the list %s"
|
|
||||||
#~ msgstr "%s(@%s) vous a abonné à la liste %s"
|
|
||||||
|
|
||||||
#~ msgid "You've unsubscribed from the list %s, which is owned by %s(@%s)"
|
|
||||||
#~ msgstr "Vous êtes désabonné de la liste %s, qui est la propriété de %s(@%s)"
|
|
||||||
|
|
||||||
#~ msgid "You've been unsubscribed from the list %s, which is owned by %s(@%s)"
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ "Vous avez été désabonné de la liste %s, qui est la propriété de %s(@%s)"
|
|
||||||
|
|
||||||
#~ msgid "You have retweeted a retweet from %s(@%s): %s"
|
|
||||||
#~ msgstr "Vous avez retweeté un retweet de %s(@%s): %s"
|
|
||||||
|
|
||||||
#~ msgid "%s(@%s) has retweeted your retweet: %s"
|
|
||||||
#~ msgstr "%s(@%s) a retweeté votre retweet: %s"
|
|
||||||
|
|
||||||
#~ msgid ""
|
|
||||||
#~ "API calls (One API call = 200 tweets, two API calls = 400 tweets, etc):"
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ "Appels à l'API (un appel à l'API équivaut à 200 tweets, 2 appels à l'API "
|
|
||||||
#~ "équivaut à 400 tweets, etc.):"
|
|
||||||
|
|
||||||
#~ msgid "Unable to upload the audio"
|
|
||||||
#~ msgstr "Impossible de charger l'audio"
|
|
||||||
|
|
||||||
#~ msgid "Waiting for account authorisation..."
|
|
||||||
#~ msgstr "En attente d'autorisation du compte..."
|
|
||||||
|
|
||||||
#~ msgid "Contains"
|
|
||||||
#~ msgstr "Contient"
|
|
||||||
|
|
||||||
#~ msgid "Doesn't contain"
|
|
||||||
#~ msgstr "Ne contient pas"
|
|
||||||
|
|
||||||
#~ msgid "Create a filter"
|
|
||||||
#~ msgstr "Créer un filtre"
|
|
||||||
|
|
||||||
#~ msgid "&Name (20 characters maximum)"
|
|
||||||
#~ msgstr "&Nom (maximum 20 caractères)"
|
|
||||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -8,6 +8,7 @@ import wx
|
|||||||
import config
|
import config
|
||||||
import output
|
import output
|
||||||
import application
|
import application
|
||||||
|
import appkeys
|
||||||
from pubsub import pub
|
from pubsub import pub
|
||||||
import tweepy
|
import tweepy
|
||||||
from tweepy.errors import TweepyException, Forbidden, NotFound
|
from tweepy.errors import TweepyException, Forbidden, NotFound
|
||||||
@@ -135,9 +136,10 @@ class Session(base.baseSession):
|
|||||||
if self.settings["twitter"]["user_key"] != None and self.settings["twitter"]["user_secret"] != None:
|
if self.settings["twitter"]["user_key"] != None and self.settings["twitter"]["user_secret"] != None:
|
||||||
try:
|
try:
|
||||||
log.debug("Logging in to twitter...")
|
log.debug("Logging in to twitter...")
|
||||||
self.auth = tweepy.OAuthHandler(keyring.get("api_key"), keyring.get("api_secret"))
|
self.auth = tweepy.OAuthHandler(appkeys.twitter_api_key, appkeys.twitter_api_secret)
|
||||||
self.auth.set_access_token(self.settings["twitter"]["user_key"], self.settings["twitter"]["user_secret"])
|
self.auth.set_access_token(self.settings["twitter"]["user_key"], self.settings["twitter"]["user_secret"])
|
||||||
self.twitter = tweepy.API(self.auth)
|
self.twitter = tweepy.API(self.auth)
|
||||||
|
self.twitter_v2 = tweepy.Client(consumer_key=appkeys.twitter_api_key, consumer_secret=appkeys.twitter_api_secret, access_token=self.settings["twitter"]["user_key"], access_token_secret=self.settings["twitter"]["user_secret"])
|
||||||
if verify_credentials == True:
|
if verify_credentials == True:
|
||||||
self.credentials = self.twitter.verify_credentials()
|
self.credentials = self.twitter.verify_credentials()
|
||||||
self.logged = True
|
self.logged = True
|
||||||
@@ -156,7 +158,7 @@ class Session(base.baseSession):
|
|||||||
if self.logged == True:
|
if self.logged == True:
|
||||||
raise Exceptions.AlreadyAuthorisedError("The authorisation process is not needed at this time.")
|
raise Exceptions.AlreadyAuthorisedError("The authorisation process is not needed at this time.")
|
||||||
else:
|
else:
|
||||||
self.auth = tweepy.OAuthHandler(keyring.get("api_key"), keyring.get("api_secret"))
|
self.auth = tweepy.OAuthHandler(appkeys.twitter_api_key, appkeys.twitter_api_secret)
|
||||||
redirect_url = self.auth.get_authorization_url()
|
redirect_url = self.auth.get_authorization_url()
|
||||||
webbrowser.open_new_tab(redirect_url)
|
webbrowser.open_new_tab(redirect_url)
|
||||||
self.authorisation_dialog = authorisationDialog()
|
self.authorisation_dialog = authorisationDialog()
|
||||||
@@ -523,7 +525,7 @@ class Session(base.baseSession):
|
|||||||
def start_streaming(self):
|
def start_streaming(self):
|
||||||
if config.app["app-settings"]["no_streaming"]:
|
if config.app["app-settings"]["no_streaming"]:
|
||||||
return
|
return
|
||||||
self.stream = streaming.Stream(twitter_api=self.twitter, user=self.db["user_name"], user_id=self.db["user_id"], muted_users=self.db["muted_users"], consumer_key=keyring.get("api_key"), consumer_secret=keyring.get("api_secret"), access_token=self.settings["twitter"]["user_key"], access_token_secret=self.settings["twitter"]["user_secret"], chunk_size=1025)
|
self.stream = streaming.Stream(twitter_api=self.twitter, user=self.db["user_name"], user_id=self.db["user_id"], muted_users=self.db["muted_users"], consumer_key=appkeys.twitter_api_key, consumer_secret=appkeys.twitter_api_secret, access_token=self.settings["twitter"]["user_key"], access_token_secret=self.settings["twitter"]["user_secret"], chunk_size=1025)
|
||||||
self.stream_thread = call_threaded(self.stream.filter, follow=self.stream.users, stall_warnings=True)
|
self.stream_thread = call_threaded(self.stream.filter, follow=self.stream.users, stall_warnings=True)
|
||||||
|
|
||||||
def stop_streaming(self):
|
def stop_streaming(self):
|
||||||
|
@@ -44,10 +44,11 @@ build_exe_options = dict(
|
|||||||
replace_paths = [("*", "")],
|
replace_paths = [("*", "")],
|
||||||
include_files=["icon.ico", "conf.defaults", "app-configuration.defaults", "keymaps", "locales", "sounds", "documentation", ("keys/lib", "keys/lib"), find_sound_lib_datafiles(), find_accessible_output2_datafiles()]+get_architecture_files(),
|
include_files=["icon.ico", "conf.defaults", "app-configuration.defaults", "keymaps", "locales", "sounds", "documentation", ("keys/lib", "keys/lib"), find_sound_lib_datafiles(), find_accessible_output2_datafiles()]+get_architecture_files(),
|
||||||
packages=["wxUI"],
|
packages=["wxUI"],
|
||||||
|
bin_path_excludes=["C:\\Program Files", "C:\Program Files (x86)"],
|
||||||
)
|
)
|
||||||
|
|
||||||
executables = [
|
executables = [
|
||||||
Executable('main.py', base=base, targetName="twblue")
|
Executable('main.py', base=base, target_name="twblue")
|
||||||
]
|
]
|
||||||
|
|
||||||
winmsvcr.FILES = ()
|
winmsvcr.FILES = ()
|
||||||
|
@@ -1,4 +1,3 @@
|
|||||||
from __future__ import unicode_literals
|
|
||||||
from logging import getLogger
|
from logging import getLogger
|
||||||
logger = getLogger('update')
|
logger = getLogger('update')
|
||||||
|
|
||||||
@@ -24,8 +23,8 @@ def perform_update(endpoint, current_version, app_name='', password=None, update
|
|||||||
if not available_update:
|
if not available_update:
|
||||||
logger.debug("No update available")
|
logger.debug("No update available")
|
||||||
return False
|
return False
|
||||||
available_version = float(available_update['current_version'])
|
available_version = available_update['current_version']
|
||||||
if not float(available_version) > float(current_version) or platform.system()+platform.architecture()[0][:2] not in available_update['downloads']:
|
if available_version == current_version or platform.system()+platform.architecture()[0][:2] not in available_update['downloads']:
|
||||||
logger.debug("No update for this architecture")
|
logger.debug("No update for this architecture")
|
||||||
return False
|
return False
|
||||||
available_description = available_update.get('description', None)
|
available_description = available_update.get('description', None)
|
||||||
@@ -42,10 +41,10 @@ def perform_update(endpoint, current_version, app_name='', password=None, update
|
|||||||
downloaded = download_update(update_url, download_path, requests_session=requests_session, progress_callback=progress_callback)
|
downloaded = download_update(update_url, download_path, requests_session=requests_session, progress_callback=progress_callback)
|
||||||
extracted = extract_update(downloaded, update_path, password=password)
|
extracted = extract_update(downloaded, update_path, password=password)
|
||||||
bootstrap_path = move_bootstrap(extracted)
|
bootstrap_path = move_bootstrap(extracted)
|
||||||
execute_bootstrap(bootstrap_path, extracted)
|
|
||||||
logger.info("Update prepared for installation.")
|
|
||||||
if callable(update_complete_callback):
|
if callable(update_complete_callback):
|
||||||
update_complete_callback()
|
update_complete_callback()
|
||||||
|
execute_bootstrap(bootstrap_path, extracted)
|
||||||
|
logger.info("Update prepared for installation.")
|
||||||
|
|
||||||
def create_requests_session(app_name=None, version=None):
|
def create_requests_session(app_name=None, version=None):
|
||||||
user_agent = ''
|
user_agent = ''
|
||||||
|
@@ -1,6 +1,4 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
import application
|
import application
|
||||||
from . import update
|
from . import update
|
||||||
import platform
|
import platform
|
||||||
|
38
src/write_version_data.py
Normal file
38
src/write_version_data.py
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
#! /usr/bin/env python# -*- coding: iso-8859-1 -*-
|
||||||
|
""" Write version info (taken from the last commit) to application.py. This method has been implemented this way for running updates.
|
||||||
|
This file is not intended to be called by the user. It will be used only by the Gitlab CI runner."""
|
||||||
|
import os
|
||||||
|
import requests
|
||||||
|
from codecs import open
|
||||||
|
|
||||||
|
print("Writing version data for update...")
|
||||||
|
commit_info = requests.get("https://gitlab.com/api/v4/projects/23482196/repository/commits/next-gen")
|
||||||
|
commit_info = commit_info.json()
|
||||||
|
commit = commit_info["short_id"]
|
||||||
|
print("Got new version info: {commit}".format(commit=commit,))
|
||||||
|
file = open("application.py", "r", encoding="utf-8")
|
||||||
|
lines = file.readlines()
|
||||||
|
lines[-1] = 'version = "{}"'.format(commit_info["created_at"][:10].replace("-", "."))
|
||||||
|
file.close()
|
||||||
|
file2 = open("application.py", "w", encoding="utf-8")
|
||||||
|
file2.writelines(lines)
|
||||||
|
file2.close()
|
||||||
|
print("Wrote application.py with the new version info.")
|
||||||
|
|
||||||
|
print("Updating next version on installer setup...")
|
||||||
|
file = open("..\\scripts\\twblue.nsi", "r", encoding="utf-8")
|
||||||
|
contents = file.read()
|
||||||
|
contents = contents.replace("0.95", commit_info["created_at"][:10].replace("-", "."))
|
||||||
|
file.close()
|
||||||
|
file2 = open("..\\scripts\\twblue.nsi", "w", encoding="utf-8")
|
||||||
|
file2.write(contents)
|
||||||
|
file2.close()
|
||||||
|
print("done")
|
||||||
|
print("Writing keys to module...")
|
||||||
|
file3 = open("appkeys.py", "w")
|
||||||
|
keys = """twitter_api_key = "{}"
|
||||||
|
twitter_api_secret = "{}"
|
||||||
|
""".format(os.environ.get("TWITTER_API_KEY"), os.environ.get("TWITTER_API_SECRET"))
|
||||||
|
file3.write(keys)
|
||||||
|
file3.close()
|
||||||
|
print("Wrote set of keys for consumer of {}".format(os.environ.get("TWITTER_API_KEY")))
|
@@ -1,5 +1,6 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
import wx
|
import wx
|
||||||
|
import gettext
|
||||||
from . import baseDialog
|
from . import baseDialog
|
||||||
|
|
||||||
class addAliasDialog(baseDialog.BaseWXDialog):
|
class addAliasDialog(baseDialog.BaseWXDialog):
|
||||||
@@ -34,3 +35,61 @@ class addAliasDialog(baseDialog.BaseWXDialog):
|
|||||||
def get_user(self):
|
def get_user(self):
|
||||||
return (self.cb.GetValue(), self.alias.GetValue())
|
return (self.cb.GetValue(), self.alias.GetValue())
|
||||||
|
|
||||||
|
class userAliasEditorDialog(wx.Dialog):
|
||||||
|
def __init__(self, *args, **kwds):
|
||||||
|
super(userAliasEditorDialog, self).__init__(parent=None)
|
||||||
|
self.SetTitle(_("Edit user aliases"))
|
||||||
|
main_sizer = wx.BoxSizer(wx.VERTICAL)
|
||||||
|
userListSizer = wx.StaticBoxSizer(wx.StaticBox(self, wx.ID_ANY, _("Users")), wx.VERTICAL)
|
||||||
|
main_sizer.Add(userListSizer, 1, wx.EXPAND, 0)
|
||||||
|
self.users = wx.ListBox(self, wx.ID_ANY, choices=[])
|
||||||
|
self.users.Bind(wx.EVT_LISTBOX, self.on_selection_changes)
|
||||||
|
userListSizer.Add(self.users, 0, 0, 0)
|
||||||
|
actionsSizer = wx.StaticBoxSizer(wx.StaticBox(self, wx.ID_ANY, _("Actions")), wx.HORIZONTAL)
|
||||||
|
main_sizer.Add(actionsSizer, 1, wx.EXPAND, 0)
|
||||||
|
self.add = wx.Button(self, wx.ID_ANY, _("Add alias"))
|
||||||
|
self.add.SetToolTip(_("Adds a new user alias"))
|
||||||
|
actionsSizer.Add(self.add, 0, 0, 0)
|
||||||
|
self.edit = wx.Button(self, wx.ID_ANY, _("Edit"))
|
||||||
|
self.edit.SetToolTip(_("Edit the currently focused user Alias."))
|
||||||
|
self.edit.Enable(False)
|
||||||
|
actionsSizer.Add(self.edit, 0, 0, 0)
|
||||||
|
self.remove = wx.Button(self, wx.ID_ANY, _("Remove"))
|
||||||
|
self.remove.SetToolTip(_("Remove the currently focused user alias."))
|
||||||
|
self.remove.Enable(False)
|
||||||
|
actionsSizer.Add(self.remove, 0, 0, 0)
|
||||||
|
btnSizer = wx.StdDialogButtonSizer()
|
||||||
|
main_sizer.Add(btnSizer, 0, wx.ALIGN_RIGHT | wx.ALL, 4)
|
||||||
|
self.button_CLOSE = wx.Button(self, wx.ID_CLOSE, "")
|
||||||
|
btnSizer.AddButton(self.button_CLOSE)
|
||||||
|
btnSizer.Realize()
|
||||||
|
self.SetSizer(main_sizer)
|
||||||
|
main_sizer.Fit(self)
|
||||||
|
self.SetEscapeId(self.button_CLOSE.GetId())
|
||||||
|
self.Layout()
|
||||||
|
|
||||||
|
def on_selection_changes(self, *args, **kwargs):
|
||||||
|
selection = self.users.GetSelection()
|
||||||
|
if selection == -1:
|
||||||
|
self.enable_action_buttons(False)
|
||||||
|
else:
|
||||||
|
self.enable_action_buttons(True)
|
||||||
|
|
||||||
|
def get_selected_user(self):
|
||||||
|
return self.users.GetStringSelection()
|
||||||
|
|
||||||
|
def remove_alias_dialog(self, *args, **kwargs):
|
||||||
|
dlg = wx.MessageDialog(self, _("Are you sure you want to delete this user alias?"), _("Remove user alias"), wx.YES_NO)
|
||||||
|
if dlg.ShowModal() == wx.ID_YES:
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
|
def enable_action_buttons(self, enabled=True):
|
||||||
|
self.edit.Enable(enabled)
|
||||||
|
self.remove.Enable(enabled)
|
||||||
|
|
||||||
|
def edit_alias_dialog(self, title):
|
||||||
|
dlg = wx.TextEntryDialog(self, title, _("User alias"))
|
||||||
|
if dlg.ShowModal() == wx.ID_OK:
|
||||||
|
return dlg.GetValue()
|
@@ -20,6 +20,7 @@ class mainFrame(wx.Frame):
|
|||||||
self.show_hide = app.Append(wx.ID_ANY, _(u"&Hide window"))
|
self.show_hide = app.Append(wx.ID_ANY, _(u"&Hide window"))
|
||||||
self.menuitem_search = app.Append(wx.ID_ANY, _(u"&Search"))
|
self.menuitem_search = app.Append(wx.ID_ANY, _(u"&Search"))
|
||||||
self.lists = app.Append(wx.ID_ANY, _(u"&Lists manager"))
|
self.lists = app.Append(wx.ID_ANY, _(u"&Lists manager"))
|
||||||
|
self.manageAliases = app.Append(wx.ID_ANY, _("Manage user aliases"))
|
||||||
self.keystroke_editor = app.Append(wx.ID_ANY, _(u"&Edit keystrokes"))
|
self.keystroke_editor = app.Append(wx.ID_ANY, _(u"&Edit keystrokes"))
|
||||||
self.account_settings = app.Append(wx.ID_ANY, _(u"Account se&ttings"))
|
self.account_settings = app.Append(wx.ID_ANY, _(u"Account se&ttings"))
|
||||||
self.prefs = app.Append(wx.ID_PREFERENCES, _(u"&Global settings"))
|
self.prefs = app.Append(wx.ID_PREFERENCES, _(u"&Global settings"))
|
||||||
|
@@ -1,6 +0,0 @@
|
|||||||
{"current_version": "0.95",
|
|
||||||
"description": "The first version for the new generation of TWBlue.",
|
|
||||||
"date": "day_name_abr month day_numb, 2016",
|
|
||||||
"downloads":
|
|
||||||
{"Windows32": "http://twblue.es/pubs/twblue_ngen_0.80_x86.zip",
|
|
||||||
"Windows64": "http://twblue.es/pubs/twblue_ngen_0.80_x64.zip"}}
|
|
Reference in New Issue
Block a user