Ansariel 2025-11-12 18:44:30 +01:00
commit cd8d47c9f3
24 changed files with 124 additions and 44 deletions

View File

@ -264,7 +264,7 @@ jobs:
- name: Upload executable - name: Upload executable
if: steps.build.outputs.viewer_app if: steps.build.outputs.viewer_app
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v5
with: with:
name: "${{ steps.build.outputs.artifact }}-app" name: "${{ steps.build.outputs.artifact }}-app"
path: | path: |
@ -274,13 +274,13 @@ jobs:
# artifact for that too. # artifact for that too.
- name: Upload symbol file - name: Upload symbol file
if: steps.build.outputs.symbolfile if: steps.build.outputs.symbolfile
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v5
with: with:
name: "${{ steps.build.outputs.artifact }}-symbols" name: "${{ steps.build.outputs.artifact }}-symbols"
path: ${{ steps.build.outputs.symbolfile }} path: ${{ steps.build.outputs.symbolfile }}
- name: Upload metadata - name: Upload metadata
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v5
with: with:
name: "${{ steps.build.outputs.artifact }}-metadata" name: "${{ steps.build.outputs.artifact }}-metadata"
# emitted by build.sh, possibly multiple lines # emitted by build.sh, possibly multiple lines
@ -288,7 +288,7 @@ jobs:
${{ steps.build.outputs.metadata }} ${{ steps.build.outputs.metadata }}
- name: Upload physics package - name: Upload physics package
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v5
# should only be set for viewer-private # should only be set for viewer-private
if: matrix.configuration == 'Release' && steps.build.outputs.physicstpv if: matrix.configuration == 'Release' && steps.build.outputs.physicstpv
with: with:
@ -368,13 +368,13 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Download viewer exe - name: Download viewer exe
uses: actions/download-artifact@v5 uses: actions/download-artifact@v6
with: with:
name: Windows-app name: Windows-app
path: _artifacts path: _artifacts
- name: Download Windows Symbols - name: Download Windows Symbols
if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS
uses: actions/download-artifact@v5 uses: actions/download-artifact@v6
with: with:
name: Windows-symbols name: Windows-symbols
- name: Extract viewer pdb - name: Extract viewer pdb
@ -404,7 +404,7 @@ jobs:
steps: steps:
- name: Download Mac Symbols - name: Download Mac Symbols
if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS
uses: actions/download-artifact@v5 uses: actions/download-artifact@v6
with: with:
name: macOS-symbols name: macOS-symbols
- name: Post Mac symbols - name: Post Mac symbols
@ -424,11 +424,11 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: needs.setup.outputs.release_run if: needs.setup.outputs.release_run
steps: steps:
- uses: actions/download-artifact@v5 - uses: actions/download-artifact@v6
with: with:
pattern: "*-installer" pattern: "*-installer"
- uses: actions/download-artifact@v5 - uses: actions/download-artifact@v6
with: with:
pattern: "*-metadata" pattern: "*-metadata"

View File

@ -482,7 +482,7 @@ jobs:
dumpSyms: false dumpSyms: false
- name: Publish artifacts - name: Publish artifacts
if: runner.os == 'Windows' if: runner.os == 'Windows'
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v5
with: with:
name: ${{ env.FS_RELEASE_TYPE }}-${{ matrix.os }}-${{ matrix.variant }}-${{ matrix.grid }}-artifacts.zip name: ${{ env.FS_RELEASE_TYPE }}-${{ matrix.os }}-${{ matrix.variant }}-${{ matrix.grid }}-artifacts.zip
path: | path: |
@ -491,7 +491,7 @@ jobs:
- name: publish Linux artifacts - name: publish Linux artifacts
if: runner.os == 'Linux' if: runner.os == 'Linux'
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v5
with: with:
name: ${{ env.FS_RELEASE_TYPE }}-${{ matrix.os }}-${{ matrix.variant }}-${{matrix.grid}}-artifacts.zip name: ${{ env.FS_RELEASE_TYPE }}-${{ matrix.os }}-${{ matrix.variant }}-${{matrix.grid}}-artifacts.zip
path: | path: |
@ -500,7 +500,7 @@ jobs:
- name: publish MacOS artifacts - name: publish MacOS artifacts
if: runner.os == 'macOS' if: runner.os == 'macOS'
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v5
with: with:
name: ${{ env.FS_RELEASE_TYPE }}-${{ matrix.os }}-${{ matrix.variant }}-${{matrix.grid}}-artifacts.zip name: ${{ env.FS_RELEASE_TYPE }}-${{ matrix.os }}-${{ matrix.variant }}-${{matrix.grid}}-artifacts.zip
path: | path: |
@ -529,7 +529,7 @@ jobs:
run: pip install discord-webhook run: pip install discord-webhook
- name: Download artifacts - name: Download artifacts
uses: actions/download-artifact@v5 uses: actions/download-artifact@v6
id: download id: download
with: with:
path: to_deploy path: to_deploy
@ -581,7 +581,7 @@ jobs:
# Upload Build Info Artifact (note that this file is expected to be identical for each matrix run, so items like OS and VARIANT cannot be in this file.) # Upload Build Info Artifact (note that this file is expected to be identical for each matrix run, so items like OS and VARIANT cannot be in this file.)
- name: Upload Tag Info - name: Upload Tag Info
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v5
with: with:
name: build_info name: build_info
path: build_info.json path: build_info.json

View File

@ -62,7 +62,7 @@ jobs:
files_json=$(ls setup_exe_files | jq -R . | jq -s -c .) files_json=$(ls setup_exe_files | jq -R . | jq -s -c .)
echo "setup_files=$files_json" >> $GITHUB_OUTPUT echo "setup_files=$files_json" >> $GITHUB_OUTPUT
- name: Upload Setup.exe Files - name: Upload Setup.exe Files
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v5
with: with:
name: setup-exe-files name: setup-exe-files
path: setup_exe_files/ path: setup_exe_files/
@ -86,7 +86,7 @@ jobs:
shell: bash shell: bash
- name: Download Setup.exe Files Artifact - name: Download Setup.exe Files Artifact
uses: actions/download-artifact@v5 uses: actions/download-artifact@v6
with: with:
name: setup-exe-files name: setup-exe-files
path: setup_exe_files path: setup_exe_files
@ -97,7 +97,7 @@ jobs:
shell: bash shell: bash
# - name: Upload unsigned artifact # - name: Upload unsigned artifact
# id: upload-unsigned-artifact # id: upload-unsigned-artifact
# uses: actions/upload-artifact@v4 # uses: actions/upload-artifact@v5
# with: # with:
# name: unsigned-artifact-${{ matrix.file }} # name: unsigned-artifact-${{ matrix.file }}
# path: to_sign/${{ matrix.file }} # path: to_sign/${{ matrix.file }}
@ -115,7 +115,7 @@ jobs:
# wait-for-completion: true # wait-for-completion: true
# output-artifact-directory: 'application-signed' # output-artifact-directory: 'application-signed'
- name: Azure Trusted Signing - name: Azure Trusted Signing
uses: azure/trusted-signing-action@v0.5.9 uses: azure/trusted-signing-action@v0.5.10
with: with:
azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }} azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }}
azure-client-id: ${{ secrets.AZURE_CLIENT_ID }} azure-client-id: ${{ secrets.AZURE_CLIENT_ID }}
@ -129,14 +129,14 @@ jobs:
files-folder-filter: exe files-folder-filter: exe
# - name: Upload signed artifact # - name: Upload signed artifact
# uses: actions/upload-artifact@v4 # uses: actions/upload-artifact@v5
# with: # with:
# name: signed-artifact-${{ matrix.file }} # name: signed-artifact-${{ matrix.file }}
# path: ./application-signed # path: ./application-signed
# - name: Upload unsigned artifact # - name: Upload unsigned artifact
- name: Upload signed artifact - name: Upload signed artifact
id: upload-unsigned-artifact id: upload-unsigned-artifact
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v5
with: with:
name: unsigned-artifact-${{ matrix.file }} name: unsigned-artifact-${{ matrix.file }}
path: to_sign\${{ matrix.file }} path: to_sign\${{ matrix.file }}

View File

@ -113,6 +113,9 @@ if(WINDOWS)
elseif (MSVC_VERSION GREATER_EQUAL 1930 AND MSVC_VERSION LESS 1950) # Visual Studio 2022 elseif (MSVC_VERSION GREATER_EQUAL 1930 AND MSVC_VERSION LESS 1950) # Visual Studio 2022
set(MSVC_VER 140) set(MSVC_VER 140)
set(MSVC_TOOLSET_VER 143) set(MSVC_TOOLSET_VER 143)
elseif (MSVC_VERSION GREATER_EQUAL 1950 AND MSVC_VERSION LESS 1970) # Visual Studio 2026
set(MSVC_VER 140)
set(MSVC_TOOLSET_VER 145)
else (MSVC80) else (MSVC80)
MESSAGE(WARNING "New MSVC_VERSION ${MSVC_VERSION} of MSVC: adapt Copy3rdPartyLibs.cmake") MESSAGE(WARNING "New MSVC_VERSION ${MSVC_VERSION} of MSVC: adapt Copy3rdPartyLibs.cmake")
endif (MSVC80) endif (MSVC80)
@ -150,6 +153,7 @@ if(WINDOWS)
msvcp${MSVC_VER}_atomic_wait.dll msvcp${MSVC_VER}_atomic_wait.dll
msvcp${MSVC_VER}_codecvt_ids.dll msvcp${MSVC_VER}_codecvt_ids.dll
#msvcr${MSVC_VER}.dll # <FS:Ansariel> Can't build with older VS versions anyway - no need trying to copy this file #msvcr${MSVC_VER}.dll # <FS:Ansariel> Can't build with older VS versions anyway - no need trying to copy this file
vccorlib${MSVC_VER}.dll
vcruntime${MSVC_VER}.dll vcruntime${MSVC_VER}.dll
vcruntime${MSVC_VER}_1.dll vcruntime${MSVC_VER}_1.dll
vcruntime${MSVC_VER}_threads.dll vcruntime${MSVC_VER}_threads.dll

View File

@ -303,11 +303,8 @@ void LLAccordionCtrl::ctrlSetLeftTopAndSize(LLView* panel, S32 left, S32 top, S3
return; return;
LLRect panel_rect = panel->getRect(); LLRect panel_rect = panel->getRect();
panel_rect.setLeftTopAndSize( left, top, width, height); panel_rect.setLeftTopAndSize( left, top, width, height);
if (panel->getRect() != panel_rect) panel->reshape( width, height, 1);
{ panel->setRect(panel_rect);
panel->reshape( width, height, 1);
panel->setRect(panel_rect);
}
} }
void LLAccordionCtrl::ctrlShiftVertical(LLView* panel, S32 delta) void LLAccordionCtrl::ctrlShiftVertical(LLView* panel, S32 delta)

View File

@ -644,14 +644,20 @@ void LLWebRTCImpl::workerDeployDevices()
void LLWebRTCImpl::setCaptureDevice(const std::string &id) void LLWebRTCImpl::setCaptureDevice(const std::string &id)
{ {
mRecordingDevice = id; if (mRecordingDevice != id)
deployDevices(); {
mRecordingDevice = id;
deployDevices();
}
} }
void LLWebRTCImpl::setRenderDevice(const std::string &id) void LLWebRTCImpl::setRenderDevice(const std::string &id)
{ {
mPlayoutDevice = id; if (mPlayoutDevice != id)
deployDevices(); {
mPlayoutDevice = id;
deployDevices();
}
} }
// updateDevices needs to happen on the worker thread. // updateDevices needs to happen on the worker thread.

View File

@ -11,7 +11,7 @@
<key>CFBundleIconFile</key> <key>CFBundleIconFile</key>
<string>${MACOSX_BUNDLE_ICON_FILE}</string> <string>${MACOSX_BUNDLE_ICON_FILE}</string>
<key>CFBundleIdentifier</key> <key>CFBundleIdentifier</key>
<string>${PRODUCT_BUNDLE_IDENTIFIER}</string> <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key> <key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string> <string>6.0</string>
<key>CFBundleLongVersionString</key> <key>CFBundleLongVersionString</key>

View File

@ -52,7 +52,12 @@ class LLDrawInfo;
class LLMeshSkinInfo; class LLMeshSkinInfo;
const F32 MIN_ALPHA_SIZE = 1024.f; const F32 MIN_ALPHA_SIZE = 1024.f;
const F32 MIN_TEX_ANIM_SIZE = 512.f; // <FS:minerjr>
//const F32 MIN_TEX_ANIM_SIZE = 512.f;
// Reduce the cut off point of the animated textures down to the size when textures get discarded/set to invalid size.
// This should prevent "on screen" animated textures from stopping.
const F32 MIN_TEX_ANIM_SIZE = 16.f;
// </FS:minerjr>
const U8 FACE_DO_NOT_BATCH_TEXTURES = 255; const U8 FACE_DO_NOT_BATCH_TEXTURES = 255;
class alignas(16) LLFace class alignas(16) LLFace

View File

@ -1780,11 +1780,18 @@ bool LLOutfitAccordionCtrlTab::handleToolTip(S32 x, S32 y, MASK mask)
// <FS:Ansariel> Make thumbnail tooltip work properly // <FS:Ansariel> Make thumbnail tooltip work properly
//if (y >= getLocalRect().getHeight() - getHeaderHeight()) //if (y >= getLocalRect().getHeight() - getHeaderHeight())
static LLCachedControl<bool> showInventoryThumbnailTooltips(gSavedSettings, "FSShowInventoryThumbnailTooltips"); static LLCachedControl<bool> showInventoryThumbnailTooltips(gSavedSettings, "FSShowInventoryThumbnailTooltips");
if (showInventoryThumbnailTooltips && y >= getLocalRect().getHeight() - getHeaderHeight() && gInventory.getCategory(mFolderID)->getThumbnailUUID().notNull()) if (showInventoryThumbnailTooltips && y >= getLocalRect().getHeight() - getHeaderHeight())
{ {
LLSD params; LLSD params;
params["inv_type"] = LLInventoryType::IT_CATEGORY; params["inv_type"] = LLInventoryType::IT_CATEGORY;
LLViewerInventoryCategory* cat = gInventory.getCategory(mFolderID); LLViewerInventoryCategory* cat = gInventory.getCategory(mFolderID);
// <FS:TJ> Make thumbnail tooltip work properly
if (!cat || cat->getThumbnailUUID().isNull())
{
return LLAccordionCtrlTab::handleToolTip(x, y, mask);
}
// </FS:TJ>
if (cat) if (cat)
{ {
params["thumbnail_id"] = cat->getThumbnailUUID(); params["thumbnail_id"] = cat->getThumbnailUUID();

View File

@ -475,7 +475,7 @@ void LLPreviewTexture::saveTextureToFile(const std::vector<std::string>& filenam
void LLPreviewTexture::saveMultipleToFile(const std::string& file_name) void LLPreviewTexture::saveMultipleToFile(const std::string& file_name)
{ {
std::string texture_location(gSavedSettings.getString("TextureSaveLocation")); std::string texture_location(gSavedSettings.getString("TextureSaveLocation"));
std::string texture_name = file_name.empty() ? getItem()->getName() : file_name; std::string texture_name = LLDir::getScrubbedFileName(file_name.empty() ? getItem()->getName() : file_name);
std::string filepath; std::string filepath;
S32 i = 0; S32 i = 0;

View File

@ -921,7 +921,9 @@ float LLWebRTCVoiceClient::tuningGetEnergy(void)
// <FS:minerjr> [FIRE-36022] - Removing my USB headset crashes entire viewer // <FS:minerjr> [FIRE-36022] - Removing my USB headset crashes entire viewer
// This can cause an error if device interface can be NULL. // This can cause an error if device interface can be NULL.
if (!mWebRTCDeviceInterface) if (!mWebRTCDeviceInterface)
return 1.0f; {
return 0.0f;
}
// </FS:minerjr> [FIRE-36022] // </FS:minerjr> [FIRE-36022]
float rms = mWebRTCDeviceInterface->getTuningAudioLevel(); float rms = mWebRTCDeviceInterface->getTuningAudioLevel();
return TUNING_LEVEL_START_POINT - TUNING_LEVEL_SCALE * rms; return TUNING_LEVEL_START_POINT - TUNING_LEVEL_SCALE * rms;

View File

@ -22,5 +22,17 @@
<radio_item label="Afficher dans la fenêtre d'inventaire principale" name="false"/> <radio_item label="Afficher dans la fenêtre d'inventaire principale" name="false"/>
<radio_item label="Ouvre une nouvelle fenêtre à dossier unique" name="true"/> <radio_item label="Ouvre une nouvelle fenêtre à dossier unique" name="true"/>
</radio_group> </radio_group>
<button label="OK" name="ok_btn"/> <text name="favorites_txt">
Favoris
</text>
<check_box label="Étoile sur les favoris" name="favorite_star"/>
<check_box label="Étoile sur les dossiers contenant un favori" name="favorite_hollow_star"/>
<check_box label="Texte coloré" name="favorites_color"/>
<text name="attachment_return_txt">
Appuyer sur Entrée sur un élément attaché à l'avatar
</text>
<combo_box name="attach_combo">
<combo_box.item label="Ajoute l'élément (recommandé)" name="0"/>
<combo_box.item label="Porte (Supprime l'élément attaché à cet endroit)" name="1"/>
</combo_box>
</floater> </floater>

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<floater name="snapshot_guide_settings" title="Paramètres du guide de cadrage">
<text name="color_and_appearance_label">
Couleur et apparence du guide
</text>
<spinner label="Épaisseur (px)" name="guide_thickness"/>
<slider label="Opacité" name="guide_opacity"/>
<text name="style_label">
Style du guide
</text>
<combo_box name="guide_style_combo" tool_tip="Choisissez le guide de cadrage à afficher">
<combo_box.item name="rule_of_thirds" label="Règle des tiers"/>
<combo_box.item name="golden_ratio_top_left" label="Ratio d'or (en haut à gauche)"/>
<combo_box.item name="golden_ratio_top_right" label="Ratio d'or (en haut à droite)"/>
<combo_box.item name="golden_ratio_bottom_left" label="Ratio d'or (en bas à gauche)"/>
<combo_box.item name="golden_ratio_bottom_right" label="Ratio d'or (en bas à droite)"/>
<combo_box.item name="diagonal" label="Diagonale"/>
</combo_box>
</floater>

View File

@ -51,6 +51,8 @@
<menu_item_call label="Appliquer à la parcelle" name="Settings Apply Parcel"/> <menu_item_call label="Appliquer à la parcelle" name="Settings Apply Parcel"/>
<menu_item_call label="Nouveau dossier à partir de la sélection" name="New folder from selected"/> <menu_item_call label="Nouveau dossier à partir de la sélection" name="New folder from selected"/>
<menu_item_call label="Annuler le regroupement par dossier" name="Ungroup folder items"/> <menu_item_call label="Annuler le regroupement par dossier" name="Ungroup folder items"/>
<menu_item_call label="Ajouter aux favoris" name="Add to Favorites"/>
<menu_item_call label="Supprimer des favoris" name="Remove from Favorites"/>
<menu label="Utiliser par défaut pour" name="upload_def"> <menu label="Utiliser par défaut pour" name="upload_def">
<menu_item_check label="Le chargement d'images" name="Image uploads"/> <menu_item_check label="Le chargement d'images" name="Image uploads"/>
<menu_item_check label="Le chargement de sons" name="Sound uploads"/> <menu_item_check label="Le chargement de sons" name="Sound uploads"/>

View File

@ -4,6 +4,8 @@
<menu_item_call label="Ajouter à votre tenue" name="wear_add" /> <menu_item_call label="Ajouter à votre tenue" name="wear_add" />
<menu_item_call label="Retirer de votre tenue" name="take_off" /> <menu_item_call label="Retirer de votre tenue" name="take_off" />
<menu_item_call label="Image..." name="thumbnail"/> <menu_item_call label="Image..." name="thumbnail"/>
<menu_item_call label="Ajouter aux favoris" name="favorites_add"/>
<menu_item_call label="Supprimer des favoris" name="favorites_remove"/>
<menu_item_call label="Modifier votre tenue" name="edit"/> <menu_item_call label="Modifier votre tenue" name="edit"/>
<menu_item_call label="Renommer votre tenue" name="rename"/> <menu_item_call label="Renommer votre tenue" name="rename"/>
<menu_item_call label="Enregistrer dans cette tenue" name="save"/> <menu_item_call label="Enregistrer dans cette tenue" name="save"/>

View File

@ -108,6 +108,8 @@
<menu_item_call label="Supprimer le dossier système" name="Delete System Folder"/> <menu_item_call label="Supprimer le dossier système" name="Delete System Folder"/>
<menu_item_call label="Créer un dossier à partir de la sélection" name="New folder from selected"/> <menu_item_call label="Créer un dossier à partir de la sélection" name="New folder from selected"/>
<menu_item_call label="Dégrouper les éléments du dossier" name="Ungroup folder items"/> <menu_item_call label="Dégrouper les éléments du dossier" name="Ungroup folder items"/>
<menu_item_call label="Ajouter aux favoris" name="Add to Favorites"/>
<menu_item_call label="Supprimer des favoris" name="Remove from Favorites"/>
<menu_item_call label="Démarrer le chat conférence" name="Conference Chat Folder"/> <menu_item_call label="Démarrer le chat conférence" name="Conference Chat Folder"/>
<menu_item_call label="Jouer" name="Sound Play"/> <menu_item_call label="Jouer" name="Sound Play"/>
<menu_item_call label="Copier la SLurl" name="url_copy"/> <menu_item_call label="Copier la SLurl" name="url_copy"/>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<toggleable_menu name="Sort Outfit">
<menu_item_check label="Trier les favoris par ordre décroissant" name="sort_favorites_to_top"/>
<menu_item_check label="Trier les images par ordre décroissant" name="sort_images_to_top"/>
<menu_item_check label="Trier par nom" name="sort_by_name"/>
</toggleable_menu>

View File

@ -10,7 +10,7 @@
<menu_item_check label="Toujours trier les dossiers par nom" name="sort_folders_by_name"/> <menu_item_check label="Toujours trier les dossiers par nom" name="sort_folders_by_name"/>
<menu_item_call label="Développer tous les dossiers" name="expand"/> <menu_item_call label="Développer tous les dossiers" name="expand"/>
<menu_item_call label="Réduire tous les dossiers" name="collapse"/> <menu_item_call label="Réduire tous les dossiers" name="collapse"/>
<menu label="Nouveaux habits" name="New Clothes"> <context_menu label="Nouveaux habits" name="New Clothes">
<menu_item_call label="Nouvelle chemise" name="New Shirt"/> <menu_item_call label="Nouvelle chemise" name="New Shirt"/>
<menu_item_call label="Nouveau pantalon" name="New Pants"/> <menu_item_call label="Nouveau pantalon" name="New Pants"/>
<menu_item_call label="Nouvelles chaussures" name="New Shoes"/> <menu_item_call label="Nouvelles chaussures" name="New Shoes"/>
@ -24,11 +24,12 @@
<menu_item_call label="Nouvelles propriétés physiques" name="New Physics"/> <menu_item_call label="Nouvelles propriétés physiques" name="New Physics"/>
<menu_item_call label="Nouveau tatouage" name="New Tattoo"/> <menu_item_call label="Nouveau tatouage" name="New Tattoo"/>
<menu_item_call label="Nouvel environnement universel" name="New Universal"/> <menu_item_call label="Nouvel environnement universel" name="New Universal"/>
</menu> </context_menu>
<menu label="Nouvelles parties du corps" name="New Body Parts"> <context_menu label="Nouvelles parties du corps" name="New Body Parts">
<menu_item_call label="Nouvelle silhouette" name="New Shape"/> <menu_item_call label="Nouvelle silhouette" name="New Shape"/>
<menu_item_call label="Nouvelle peau" name="New Skin"/> <menu_item_call label="Nouvelle peau" name="New Skin"/>
<menu_item_call label="Nouveaux cheveux" name="New Hair"/> <menu_item_call label="Nouveaux cheveux" name="New Hair"/>
<menu_item_call label="Nouveaux yeux" name="New Eyes"/> <menu_item_call label="Nouveaux yeux" name="New Eyes"/>
</menu> </context_menu>
<menu_item_check label="Paramètres d'inventaire..." name="inventory_settings"/>
</toggleable_menu> </toggleable_menu>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<toggleable_menu name="Sort Outfit">
<menu_item_call label="Développer tous les dossiers" name="expand"/>
<menu_item_call label="Réduire tous les dossiers" name="collapse"/>
<menu_item_check label="Trier les favoris par ordre décroissant" name="sort_favorites_to_top"/>
<menu_item_check label="Afficher la tenue complète dans la recherche" name="show_entire_outfit_in_search"/>
</toggleable_menu>

View File

@ -4,6 +4,8 @@
<menu_item_call label="Ajouter à la tenue actuelle" name="wear_add"/> <menu_item_call label="Ajouter à la tenue actuelle" name="wear_add"/>
<menu_item_call label="Supprimer de la tenue actuelle" name="take_off"/> <menu_item_call label="Supprimer de la tenue actuelle" name="take_off"/>
<menu_item_call label="Image..." name="thumbnail"/> <menu_item_call label="Image..." name="thumbnail"/>
<menu_item_call label="Ajouter aux favoris" name="favorites_add"/>
<menu_item_call label="Supprimer des favoris" name="favorites_remove"/>
<menu_item_call label="Modifier la tenue" name="edit"/> <menu_item_call label="Modifier la tenue" name="edit"/>
<menu_item_call label="Renommer la tenue" name="rename"/> <menu_item_call label="Renommer la tenue" name="rename"/>
<menu_item_call label="Enregister dans cette tenue" name="save"/> <menu_item_call label="Enregister dans cette tenue" name="save"/>

View File

@ -186,10 +186,10 @@
<menu_item_call label="Annuler le lien" name="Unlink"/> <menu_item_call label="Annuler le lien" name="Unlink"/>
<menu_item_check label="Modifier les parties liées" name="Edit Linked Parts"/> <menu_item_check label="Modifier les parties liées" name="Edit Linked Parts"/>
<menu label="Sélectionner des éléments" name="Select Elements"> <menu label="Sélectionner des éléments" name="Select Elements">
<menu_item_call label="Sélectionner la partie suivante ou le visage" name="Select Next Part or Face"/> <menu_item_call label="Sélectionner la partie ou la face suivante" name="Select Next Part or Face"/>
<menu_item_call label="Sélectionner la partie précédente ou le visage" name="Select Previous Part or Face"/> <menu_item_call label="Sélectionner la partie ou la face précédente" name="Select Previous Part or Face"/>
<menu_item_call label="Inclure la partie suivante ou le visage" name="Include Next Part or Face"/> <menu_item_call label="Inclure la partie ou la face suivante" name="Include Next Part or Face"/>
<menu_item_call label="Inclure la partie précédente ou le visage" name="Include Previous Part or Face"/> <menu_item_call label="Inclure la partie ou la face précédente" name="Include Previous Part or Face"/>
</menu> </menu>
<menu_item_call label="Objets des régions" name="pathfinding_linkset_menu_item"/> <menu_item_call label="Objets des régions" name="pathfinding_linkset_menu_item"/>
<menu_item_call label="Point central sur la sélection" name="Focus on Selection"/> <menu_item_call label="Point central sur la sélection" name="Focus on Selection"/>

View File

@ -10,6 +10,8 @@
<menu_item_call label="Détacher" name="detach"/> <menu_item_call label="Détacher" name="detach"/>
<menu_item_call label="Retirer" name="take_off"/> <menu_item_call label="Retirer" name="take_off"/>
<menu_item_call label="Profil de l'objet" name="object_profile"/> <menu_item_call label="Profil de l'objet" name="object_profile"/>
<menu_item_call label="Ajouter aux favoris" name="favorites_add"/>
<menu_item_call label="Supprimer des favoris" name="favorites_remove"/>
<menu_item_call label="Afficher l'original" name="show_original"/> <menu_item_call label="Afficher l'original" name="show_original"/>
<menu_item_call label="Supprimer de la tenue" name="delete_from_outfit"/> <menu_item_call label="Supprimer de la tenue" name="delete_from_outfit"/>
<menu_item_call label="Créer un nouveau" name="create_new"/> <menu_item_call label="Créer un nouveau" name="create_new"/>

View File

@ -4,6 +4,8 @@
<menu_item_call label="Enlever" name="take_off"/> <menu_item_call label="Enlever" name="take_off"/>
<menu_item_call label="Détacher" name="detach"/> <menu_item_call label="Détacher" name="detach"/>
<menu_item_call label="Retirer / Détacher" name="take_off_or_detach"/> <menu_item_call label="Retirer / Détacher" name="take_off_or_detach"/>
<menu_item_call label="Ajouter aux favoris" name="favorites_add"/>
<menu_item_call label="Supprimer des favoris" name="favorites_remove"/>
<menu_item_call label="Modifier la tenue" name="edit_outfit"/> <menu_item_call label="Modifier la tenue" name="edit_outfit"/>
<menu_item_call label="Modifier" name="edit_item"/> <menu_item_call label="Modifier" name="edit_item"/>
<menu_item_call label="Afficher loriginal" name="show_original"/> <menu_item_call label="Afficher loriginal" name="show_original"/>

View File

@ -79,7 +79,7 @@
<combo_box.item label="Italique &amp; Souligné" name="ITALICUNDERLINE"/> <combo_box.item label="Italique &amp; Souligné" name="ITALICUNDERLINE"/>
<combo_box.item label="Gras, Italique &amp; Souligné" name="BOLDITALICUNDERLINE"/> <combo_box.item label="Gras, Italique &amp; Souligné" name="BOLDITALICUNDERLINE"/>
</combo_box> </combo_box>
<text name="Moderator Text Style">Text :</text> <text name="Moderator Text Style">Texte :</text>
<combo_box name="mod_text_style"> <combo_box name="mod_text_style">
<combo_box.item label="Normal" name="normal"/> <combo_box.item label="Normal" name="normal"/>
<combo_box.item label="Gras" name="BOLD"/> <combo_box.item label="Gras" name="BOLD"/>
@ -114,6 +114,7 @@
<check_box name="FSChatbarNamePrediction" label="Activer l'autocomplétion des noms dans le Chat local"/> <check_box name="FSChatbarNamePrediction" label="Activer l'autocomplétion des noms dans le Chat local"/>
<check_box name="AllowMUpose" label="':' est un synonyme pour '/me'"/> <check_box name="AllowMUpose" label="':' est un synonyme pour '/me'"/>
<check_box name="AutoCloseOOC" label="Fermer automatiquement les doubles parenthèses ((OOC))"/> <check_box name="AutoCloseOOC" label="Fermer automatiquement les doubles parenthèses ((OOC))"/>
<check_box name="FSUseChatMentionAutoComplete" label="Activer la fenêtre de mentions @ automatiques lors de la saisie dans les barres de discussion"/>
<check_box name="FSEnableEmojiWindowPopupWhileTyping" label="Activer la fenêtre de sélection auto des émojis lors de la saisie dans la barre de chat"/> <check_box name="FSEnableEmojiWindowPopupWhileTyping" label="Activer la fenêtre de sélection auto des émojis lors de la saisie dans la barre de chat"/>
<check_box name="FSShowEmojiButton" label="Afficher le bouton emoji dans la barre de chat pour les IM et les discussions de proximité"/> <check_box name="FSShowEmojiButton" label="Afficher le bouton emoji dans la barre de chat pour les IM et les discussions de proximité"/>
<check_box name="FSShowIMSendButton" label="Afficher le bouton d'envoi dans la barre de chat pour les sessions d'IM"/> <check_box name="FSShowIMSendButton" label="Afficher le bouton d'envoi dans la barre de chat pour les sessions d'IM"/>
@ -138,6 +139,7 @@
<text name="FSShowGroupNameLength_label" width="340">Longueur de nom de groupe à afficher dans les transcriptions</text> <text name="FSShowGroupNameLength_label" width="340">Longueur de nom de groupe à afficher dans les transcriptions</text>
<spinner tool_tip="-1 pour le nom complet, 0 pour désactiver" name="FSShowGroupNameLength"/> <spinner tool_tip="-1 pour le nom complet, 0 pour désactiver" name="FSShowGroupNameLength"/>
<check_box name="FSOpenIMContainerOnOfflineMessage" label="Afficher les messages reçus hors-ligne à la connexion"/> <check_box name="FSOpenIMContainerOnOfflineMessage" label="Afficher les messages reçus hors-ligne à la connexion"/>
<check_box name="FSRestoreOpenIMs" label="Restaurer les conversations de la session précédente avec les résidents"/>
<check_box label="Envoyer les IMs par email si je suis déconnecté ([EMAIL])" name="send_im_to_email"/> <check_box label="Envoyer les IMs par email si je suis déconnecté ([EMAIL])" name="send_im_to_email"/>
<check_box name="FSShowIMInChatHistory" label="Afficher les IMs dans le Chat local"/> <check_box name="FSShowIMInChatHistory" label="Afficher les IMs dans le Chat local"/>
<check_box name="FSLogIMInChatHistory" label="Sauvegarder les IMs dans le Chat local"/> <check_box name="FSLogIMInChatHistory" label="Sauvegarder les IMs dans le Chat local"/>