/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed * with this work for additional information regarding copyright * ownership. The ASF licenses this file to you under the Apache * License, Version 2.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if OSL_DEBUG_LEVEL > 1 # include #endif #include #include #include #include #include #include #include #if !GTK_CHECK_VERSION(4, 0, 0) # define GDK_ALT_MASK GDK_MOD1_MASK # define GDK_TOPLEVEL_STATE_MAXIMIZED GDK_WINDOW_STATE_MAXIMIZED # define GDK_TOPLEVEL_STATE_MINIMIZED GDK_WINDOW_STATE_ICONIFIED # define gdk_wayland_surface_get_wl_surface gdk_wayland_window_get_wl_surface # define gdk_x11_surface_get_xid gdk_x11_window_get_xid #endif using namespace com::sun::star; int GtkSalFrame::m_nFloats = 0; static GDBusConnection* pSessionBus = nullptr; static void EnsureSessionBus() { if (!pSessionBus) pSessionBus = g_bus_get_sync(G_BUS_TYPE_SESSION, nullptr, nullptr); } sal_uInt16 GtkSalFrame::GetKeyModCode( guint state ) { sal_uInt16 nCode = 0; if( state & GDK_SHIFT_MASK ) nCode |= KEY_SHIFT; if( state & GDK_CONTROL_MASK ) nCode |= KEY_MOD1; if (state & GDK_ALT_MASK) nCode |= KEY_MOD2; if( state & GDK_SUPER_MASK ) nCode |= KEY_MOD3; return nCode; } sal_uInt16 GtkSalFrame::GetMouseModCode( guint state ) { sal_uInt16 nCode = GetKeyModCode( state ); if( state & GDK_BUTTON1_MASK ) nCode |= MOUSE_LEFT; if( state & GDK_BUTTON2_MASK ) nCode |= MOUSE_MIDDLE; if( state & GDK_BUTTON3_MASK ) nCode |= MOUSE_RIGHT; return nCode; } // KEY_F26 is the last function key known to keycodes.hxx static bool IsFunctionKeyVal(guint keyval) { return keyval >= GDK_KEY_F1 && keyval <= GDK_KEY_F26; } sal_uInt16 GtkSalFrame::GetKeyCode(guint keyval) { sal_uInt16 nCode = 0; if( keyval >= GDK_KEY_0 && keyval <= GDK_KEY_9 ) nCode = KEY_0 + (keyval-GDK_KEY_0); else if( keyval >= GDK_KEY_KP_0 && keyval <= GDK_KEY_KP_9 ) nCode = KEY_0 + (keyval-GDK_KEY_KP_0); else if( keyval >= GDK_KEY_A && keyval <= GDK_KEY_Z ) nCode = KEY_A + (keyval-GDK_KEY_A ); else if( keyval >= GDK_KEY_a && keyval <= GDK_KEY_z ) nCode = KEY_A + (keyval-GDK_KEY_a ); else if (IsFunctionKeyVal(keyval)) { switch( keyval ) { // - - - - - Sun keyboard, see vcl/unx/source/app/saldisp.cxx // although GDK_KEY_F1 ... GDK_KEY_L10 are known to // gdk/gdkkeysyms.h, they are unlikely to be generated // except possibly by Solaris systems // this whole section needs review case GDK_KEY_L2: nCode = KEY_F12; break; case GDK_KEY_L3: nCode = KEY_PROPERTIES; break; case GDK_KEY_L4: nCode = KEY_UNDO; break; case GDK_KEY_L6: nCode = KEY_COPY; break; // KEY_F16 case GDK_KEY_L8: nCode = KEY_PASTE; break; // KEY_F18 case GDK_KEY_L10: nCode = KEY_CUT; break; // KEY_F20 default: nCode = KEY_F1 + (keyval-GDK_KEY_F1); break; } } else { switch( keyval ) { case GDK_KEY_KP_Down: case GDK_KEY_Down: nCode = KEY_DOWN; break; case GDK_KEY_KP_Up: case GDK_KEY_Up: nCode = KEY_UP; break; case GDK_KEY_KP_Left: case GDK_KEY_Left: nCode = KEY_LEFT; break; case GDK_KEY_KP_Right: case GDK_KEY_Right: nCode = KEY_RIGHT; break; case GDK_KEY_KP_Begin: case GDK_KEY_KP_Home: case GDK_KEY_Begin: case GDK_KEY_Home: nCode = KEY_HOME; break; case GDK_KEY_KP_End: case GDK_KEY_End: nCode = KEY_END; break; case GDK_KEY_KP_Page_Up: case GDK_KEY_Page_Up: nCode = KEY_PAGEUP; break; case GDK_KEY_KP_Page_Down: case GDK_KEY_Page_Down: nCode = KEY_PAGEDOWN; break; case GDK_KEY_KP_Enter: case GDK_KEY_Return: nCode = KEY_RETURN; break; case GDK_KEY_Escape: nCode = KEY_ESCAPE; break; case GDK_KEY_ISO_Left_Tab: case GDK_KEY_KP_Tab: case GDK_KEY_Tab: nCode = KEY_TAB; break; case GDK_KEY_BackSpace: nCode = KEY_BACKSPACE; break; case GDK_KEY_KP_Space: case GDK_KEY_space: nCode = KEY_SPACE; break; case GDK_KEY_KP_Insert: case GDK_KEY_Insert: nCode = KEY_INSERT; break; case GDK_KEY_KP_Delete: case GDK_KEY_Delete: nCode = KEY_DELETE; break; case GDK_KEY_plus: case GDK_KEY_KP_Add: nCode = KEY_ADD; break; case GDK_KEY_minus: case GDK_KEY_KP_Subtract: nCode = KEY_SUBTRACT; break; case GDK_KEY_asterisk: case GDK_KEY_KP_Multiply: nCode = KEY_MULTIPLY; break; case GDK_KEY_slash: case GDK_KEY_KP_Divide: nCode = KEY_DIVIDE; break; case GDK_KEY_period: nCode = KEY_POINT; break; case GDK_KEY_decimalpoint: nCode = KEY_POINT; break; case GDK_KEY_comma: nCode = KEY_COMMA; break; case GDK_KEY_less: nCode = KEY_LESS; break; case GDK_KEY_greater: nCode = KEY_GREATER; break; case GDK_KEY_KP_Equal: case GDK_KEY_equal: nCode = KEY_EQUAL; break; case GDK_KEY_Find: nCode = KEY_FIND; break; case GDK_KEY_Menu: nCode = KEY_CONTEXTMENU;break; case GDK_KEY_Help: nCode = KEY_HELP; break; case GDK_KEY_Undo: nCode = KEY_UNDO; break; case GDK_KEY_Redo: nCode = KEY_REPEAT; break; // on a sun keyboard this actually is usually SunXK_Stop = 0x0000FF69 (XK_Cancel), // but VCL doesn't have a key definition for that case GDK_KEY_Cancel: nCode = KEY_F11; break; case GDK_KEY_KP_Decimal: case GDK_KEY_KP_Separator: nCode = KEY_DECIMAL; break; case GDK_KEY_asciitilde: nCode = KEY_TILDE; break; case GDK_KEY_leftsinglequotemark: case GDK_KEY_quoteleft: nCode = KEY_QUOTELEFT; break; case GDK_KEY_bracketleft: nCode = KEY_BRACKETLEFT; break; case GDK_KEY_bracketright: nCode = KEY_BRACKETRIGHT; break; case GDK_KEY_semicolon: nCode = KEY_SEMICOLON; break; case GDK_KEY_quoteright: nCode = KEY_QUOTERIGHT; break; case GDK_KEY_braceright: nCode = KEY_RIGHTCURLYBRACKET; break; case GDK_KEY_numbersign: nCode = KEY_NUMBERSIGN; break; case GDK_KEY_Forward: nCode = KEY_XF86FORWARD; break; case GDK_KEY_Back: nCode = KEY_XF86BACK; break; case GDK_KEY_colon: nCode = KEY_COLON; break; // some special cases, also see saldisp.cxx // - - - - - - - - - - - - - Apollo - - - - - - - - - - - - - 0x1000 // These can be found in ap_keysym.h case 0x1000FF02: // apXK_Copy nCode = KEY_COPY; break; case 0x1000FF03: // apXK_Cut nCode = KEY_CUT; break; case 0x1000FF04: // apXK_Paste nCode = KEY_PASTE; break; case 0x1000FF14: // apXK_Repeat nCode = KEY_REPEAT; break; // Exit, Save // - - - - - - - - - - - - - - D E C - - - - - - - - - - - - - 0x1000 // These can be found in DECkeysym.h case 0x1000FF00: nCode = KEY_DELETE; break; // - - - - - - - - - - - - - - H P - - - - - - - - - - - - - 0x1000 // These can be found in HPkeysym.h case 0x1000FF73: // hpXK_DeleteChar nCode = KEY_DELETE; break; case 0x1000FF74: // hpXK_BackTab case 0x1000FF75: // hpXK_KP_BackTab nCode = KEY_TAB; break; // - - - - - - - - - - - - - - I B M - - - - - - - - - - - - - // - - - - - - - - - - - - - - O S F - - - - - - - - - - - - - 0x1004 // These also can be found in HPkeysym.h case 0x1004FF02: // osfXK_Copy nCode = KEY_COPY; break; case 0x1004FF03: // osfXK_Cut nCode = KEY_CUT; break; case 0x1004FF04: // osfXK_Paste nCode = KEY_PASTE; break; case 0x1004FF07: // osfXK_BackTab nCode = KEY_TAB; break; case 0x1004FF08: // osfXK_BackSpace nCode = KEY_BACKSPACE; break; case 0x1004FF1B: // osfXK_Escape nCode = KEY_ESCAPE; break; // Up, Down, Left, Right, PageUp, PageDown // - - - - - - - - - - - - - - S C O - - - - - - - - - - - - - // - - - - - - - - - - - - - - S G I - - - - - - - - - - - - - 0x1007 // - - - - - - - - - - - - - - S N I - - - - - - - - - - - - - // - - - - - - - - - - - - - - S U N - - - - - - - - - - - - - 0x1005 // These can be found in Sunkeysym.h case 0x1005FF10: // SunXK_F36 nCode = KEY_F11; break; case 0x1005FF11: // SunXK_F37 nCode = KEY_F12; break; case 0x1005FF70: // SunXK_Props nCode = KEY_PROPERTIES; break; case 0x1005FF71: // SunXK_Front nCode = KEY_FRONT; break; case 0x1005FF72: // SunXK_Copy nCode = KEY_COPY; break; case 0x1005FF73: // SunXK_Open nCode = KEY_OPEN; break; case 0x1005FF74: // SunXK_Paste nCode = KEY_PASTE; break; case 0x1005FF75: // SunXK_Cut nCode = KEY_CUT; break; // - - - - - - - - - - - - - X F 8 6 - - - - - - - - - - - - - 0x1008 // These can be found in XF86keysym.h // but more importantly they are also available GTK/Gdk version 3 // and hence are already provided in gdk/gdkkeysyms.h, and hence // in gdk/gdk.h case GDK_KEY_Copy: nCode = KEY_COPY; break; // 0x1008ff57 case GDK_KEY_Cut: nCode = KEY_CUT; break; // 0x1008ff58 case GDK_KEY_Open: nCode = KEY_OPEN; break; // 0x1008ff6b case GDK_KEY_Paste: nCode = KEY_PASTE; break; // 0x1008ff6d } } return nCode; } #if !GTK_CHECK_VERSION(4, 0, 0) guint GtkSalFrame::GetKeyValFor(GdkKeymap* pKeyMap, guint16 hardware_keycode, guint8 group) { guint updated_keyval = 0; gdk_keymap_translate_keyboard_state(pKeyMap, hardware_keycode, GdkModifierType(0), group, &updated_keyval, nullptr, nullptr, nullptr); return updated_keyval; } #endif namespace { // F10 means either KEY_F10 or KEY_MENU, which has to be decided // in the independent part. struct KeyAlternate { sal_uInt16 nKeyCode; sal_Unicode nCharCode; KeyAlternate() : nKeyCode( 0 ), nCharCode( 0 ) {} KeyAlternate( sal_uInt16 nKey, sal_Unicode nChar = 0 ) : nKeyCode( nKey ), nCharCode( nChar ) {} }; } static KeyAlternate GetAlternateKeyCode( const sal_uInt16 nKeyCode ) { KeyAlternate aAlternate; switch( nKeyCode ) { case KEY_F10: aAlternate = KeyAlternate( KEY_MENU );break; case KEY_F24: aAlternate = KeyAlternate( KEY_SUBTRACT, '-' );break; } return aAlternate; } #if OSL_DEBUG_LEVEL > 0 static bool dumpframes = false; #endif bool GtkSalFrame::doKeyCallback( guint state, guint keyval, guint16 hardware_keycode, guint8 group, sal_Unicode aOrigCode, bool bDown, bool bSendRelease ) { SalKeyEvent aEvent; aEvent.mnCharCode = aOrigCode; aEvent.mnRepeat = 0; vcl::DeletionListener aDel( this ); #if OSL_DEBUG_LEVEL > 0 const char* pKeyDebug = getenv("VCL_GTK3_PAINTDEBUG"); if (pKeyDebug && *pKeyDebug == '1') { if (bDown) { // shift-zero forces a re-draw and event is swallowed if (keyval == GDK_KEY_0) { SAL_INFO("vcl.gtk3", "force widget_queue_draw."); gtk_widget_queue_draw(GTK_WIDGET(m_pDrawingArea)); return false; } else if (keyval == GDK_KEY_1) { SAL_INFO("vcl.gtk3", "force repaint all."); TriggerPaintEvent(); return false; } else if (keyval == GDK_KEY_2) { dumpframes = !dumpframes; SAL_INFO("vcl.gtk3", "toggle dump frames to " << dumpframes); return false; } } } #endif /* * #i42122# translate all keys with Ctrl and/or Alt to group 0 else * shortcuts (e.g. Ctrl-o) will not work but be inserted by the * application * * #i52338# do this for all keys that the independent part has no key code * for * * fdo#41169 rather than use group 0, detect if there is a group which can * be used to input Latin text and use that if possible */ aEvent.mnCode = GetKeyCode( keyval ); #if !GTK_CHECK_VERSION(4, 0, 0) if( aEvent.mnCode == 0 ) { gint best_group = SAL_MAX_INT32; // Try and find Latin layout GdkKeymap* keymap = gdk_keymap_get_default(); GdkKeymapKey *keys; gint n_keys; if (gdk_keymap_get_entries_for_keyval(keymap, GDK_KEY_A, &keys, &n_keys)) { // Find the lowest group that supports Latin layout for (gint i = 0; i < n_keys; ++i) { if (keys[i].level != 0 && keys[i].level != 1) continue; best_group = std::min(best_group, keys[i].group); if (best_group == 0) break; } g_free(keys); } //Unavailable, go with original group then I suppose if (best_group == SAL_MAX_INT32) best_group = group; guint updated_keyval = GetKeyValFor(keymap, hardware_keycode, best_group); aEvent.mnCode = GetKeyCode(updated_keyval); } #else (void)hardware_keycode; (void)group; #endif aEvent.mnCode |= GetKeyModCode( state ); bool bStopProcessingKey; if (bDown) { // tdf#152404 Commit uncommitted text before dispatching key shortcuts. In // certain cases such as pressing Control-Alt-C in a Writer document while // there is uncommitted text will call GtkSalFrame::EndExtTextInput() which // will dispatch a SalEvent::EndExtTextInput event. Writer's handler for that // event will delete the uncommitted text and then insert the committed text // but LibreOffice will crash when deleting the uncommitted text because // deletion of the text also removes and deletes the newly inserted comment. if (m_pIMHandler && !m_pIMHandler->m_aInputEvent.maText.isEmpty() && (aEvent.mnCode & (KEY_MOD1 | KEY_MOD2))) m_pIMHandler->doCallEndExtTextInput(); bStopProcessingKey = CallCallbackExc(SalEvent::KeyInput, &aEvent); // #i46889# copy AlternateKeyCode handling from generic plugin if (!bStopProcessingKey) { KeyAlternate aAlternate = GetAlternateKeyCode( aEvent.mnCode ); if( aAlternate.nKeyCode ) { aEvent.mnCode = aAlternate.nKeyCode; if( aAlternate.nCharCode ) aEvent.mnCharCode = aAlternate.nCharCode; bStopProcessingKey = CallCallbackExc(SalEvent::KeyInput, &aEvent); } } if( bSendRelease && ! aDel.isDeleted() ) { CallCallbackExc(SalEvent::KeyUp, &aEvent); } } else bStopProcessingKey = CallCallbackExc(SalEvent::KeyUp, &aEvent); return bStopProcessingKey; } GtkSalFrame::GtkSalFrame( SalFrame* pParent, SalFrameStyleFlags nStyle ) : m_nXScreen( getDisplay()->GetDefaultXScreen() ) , m_pHeaderBar(nullptr) , m_bGraphics(false) , m_nSetFocusSignalId(0) #if !GTK_CHECK_VERSION(4, 0, 0) , m_aSmoothScrollIdle("GtkSalFrame m_aSmoothScrollIdle") #endif { getDisplay()->registerFrame( this ); m_bDefaultPos = true; m_bDefaultSize = ( (nStyle & SalFrameStyleFlags::SIZEABLE) && ! pParent ); Init( pParent, nStyle ); } GtkSalFrame::GtkSalFrame( SystemParentData* pSysData ) : m_nXScreen( getDisplay()->GetDefaultXScreen() ) , m_pHeaderBar(nullptr) , m_bGraphics(false) , m_nSetFocusSignalId(0) #if !GTK_CHECK_VERSION(4, 0, 0) , m_aSmoothScrollIdle("GtkSalFrame m_aSmoothScrollIdle") #endif { getDisplay()->registerFrame( this ); // permanently ignore errors from our unruly children ... GetGenericUnixSalData()->ErrorTrapPush(); m_bDefaultPos = true; m_bDefaultSize = true; Init( pSysData ); } // AppMenu watch functions. static void ObjectDestroyedNotify( gpointer data ) { if ( data ) { g_object_unref( data ); } } #if !GTK_CHECK_VERSION(4,0,0) static void hud_activated( gboolean hud_active, gpointer user_data ) { if ( hud_active ) { SolarMutexGuard aGuard; GtkSalFrame* pSalFrame = static_cast< GtkSalFrame* >( user_data ); GtkSalMenu* pSalMenu = reinterpret_cast< GtkSalMenu* >( pSalFrame->GetMenu() ); if ( pSalMenu ) pSalMenu->UpdateFull(); } } #endif static void attach_menu_model(GtkSalFrame* pSalFrame) { GtkWidget* pWidget = pSalFrame->getWindow(); GdkSurface* gdkWindow = widget_get_surface(pWidget); if ( gdkWindow == nullptr || g_object_get_data( G_OBJECT( gdkWindow ), "g-lo-menubar" ) != nullptr ) return; // Create menu model and action group attached to this frame. GMenuModel* pMenuModel = G_MENU_MODEL( g_lo_menu_new() ); GActionGroup* pActionGroup = reinterpret_cast(g_lo_action_group_new()); // Set window properties. g_object_set_data_full( G_OBJECT( gdkWindow ), "g-lo-menubar", pMenuModel, ObjectDestroyedNotify ); g_object_set_data_full( G_OBJECT( gdkWindow ), "g-lo-action-group", pActionGroup, ObjectDestroyedNotify ); #if !GTK_CHECK_VERSION(4,0,0) // Get a DBus session connection. EnsureSessionBus(); if (!pSessionBus) return; // Generate menu paths. sal_uIntPtr windowId = GtkSalFrame::GetNativeWindowHandle(pWidget); gchar* aDBusWindowPath = g_strdup_printf( "/org/libreoffice/window/%lu", windowId ); gchar* aDBusMenubarPath = g_strdup_printf( "/org/libreoffice/window/%lu/menus/menubar", windowId ); GdkDisplay *pDisplay = GtkSalFrame::getGdkDisplay(); #if defined(GDK_WINDOWING_X11) if (DLSYM_GDK_IS_X11_DISPLAY(pDisplay)) { gdk_x11_window_set_utf8_property( gdkWindow, "_GTK_APPLICATION_ID", "org.libreoffice" ); gdk_x11_window_set_utf8_property( gdkWindow, "_GTK_MENUBAR_OBJECT_PATH", aDBusMenubarPath ); gdk_x11_window_set_utf8_property( gdkWindow, "_GTK_WINDOW_OBJECT_PATH", aDBusWindowPath ); gdk_x11_window_set_utf8_property( gdkWindow, "_GTK_APPLICATION_OBJECT_PATH", "/org/libreoffice" ); gdk_x11_window_set_utf8_property( gdkWindow, "_GTK_UNIQUE_BUS_NAME", g_dbus_connection_get_unique_name( pSessionBus ) ); } #endif #if defined(GDK_WINDOWING_WAYLAND) if (DLSYM_GDK_IS_WAYLAND_DISPLAY(pDisplay)) { gdk_wayland_window_set_dbus_properties_libgtk_only(gdkWindow, "org.libreoffice", nullptr, aDBusMenubarPath, aDBusWindowPath, "/org/libreoffice", g_dbus_connection_get_unique_name( pSessionBus )); } #endif // Publish the menu model and the action group. SAL_INFO("vcl.unity", "exporting menu model at " << pMenuModel << " for window " << windowId); pSalFrame->m_nMenuExportId = g_dbus_connection_export_menu_model (pSessionBus, aDBusMenubarPath, pMenuModel, nullptr); SAL_INFO("vcl.unity", "exporting action group at " << pActionGroup << " for window " << windowId); pSalFrame->m_nActionGroupExportId = g_dbus_connection_export_action_group( pSessionBus, aDBusWindowPath, pActionGroup, nullptr); pSalFrame->m_nHudAwarenessId = hud_awareness_register( pSessionBus, aDBusMenubarPath, hud_activated, pSalFrame, nullptr, nullptr ); g_free( aDBusWindowPath ); g_free( aDBusMenubarPath ); #endif } void on_registrar_available( GDBusConnection * /*connection*/, const gchar * /*name*/, const gchar * /*name_owner*/, gpointer user_data ) { SolarMutexGuard aGuard; GtkSalFrame* pSalFrame = static_cast< GtkSalFrame* >( user_data ); SalMenu* pSalMenu = pSalFrame->GetMenu(); if ( pSalMenu != nullptr ) { GtkSalMenu* pGtkSalMenu = static_cast(pSalMenu); pGtkSalMenu->EnableUnity(true); } } // This is called when the registrar becomes unavailable. It shows the menubar. void on_registrar_unavailable( GDBusConnection * /*connection*/, const gchar * /*name*/, gpointer user_data ) { SolarMutexGuard aGuard; SAL_INFO("vcl.unity", "on_registrar_unavailable"); GtkSalFrame* pSalFrame = static_cast< GtkSalFrame* >( user_data ); SalMenu* pSalMenu = pSalFrame->GetMenu(); if ( pSalMenu ) { GtkSalMenu* pGtkSalMenu = static_cast< GtkSalMenu* >( pSalMenu ); pGtkSalMenu->EnableUnity(false); } } void GtkSalFrame::EnsureAppMenuWatch() { if ( m_nWatcherId ) return; // Get a DBus session connection. EnsureSessionBus(); if (!pSessionBus) return; // Publish the menu only if AppMenu registrar is available. m_nWatcherId = g_bus_watch_name_on_connection( pSessionBus, "com.canonical.AppMenu.Registrar", G_BUS_NAME_WATCHER_FLAGS_NONE, on_registrar_available, on_registrar_unavailable, this, nullptr ); } void GtkSalFrame::InvalidateGraphics() { if( m_pGraphics ) { m_bGraphics = false; } } GtkSalFrame::~GtkSalFrame() { #if !GTK_CHECK_VERSION(4,0,0) m_aSmoothScrollIdle.Stop(); m_aSmoothScrollIdle.ClearInvokeHandler(); #endif if (m_pDropTarget) { m_pDropTarget->deinitialize(); m_pDropTarget = nullptr; } if (m_pDragSource) { m_pDragSource->deinitialize(); m_pDragSource= nullptr; } InvalidateGraphics(); if (m_pParent) { m_pParent->m_aChildren.remove( this ); } getDisplay()->deregisterFrame( this ); if( m_pRegion ) { cairo_region_destroy( m_pRegion ); } m_pIMHandler.reset(); //tdf#108705 remove grabs on event widget before //destroying event widget while (m_nGrabLevel) removeGrabLevel(); { SolarMutexGuard aGuard; if (m_nWatcherId) g_bus_unwatch_name(m_nWatcherId); if (m_nPortalSettingChangedSignalId) g_signal_handler_disconnect(m_pSettingsPortal, m_nPortalSettingChangedSignalId); if (m_pSettingsPortal) g_object_unref(m_pSettingsPortal); if (m_nSessionClientSignalId) g_signal_handler_disconnect(m_pSessionClient, m_nSessionClientSignalId); if (m_pSessionClient) g_object_unref(m_pSessionClient); if (m_pSessionManager) g_object_unref(m_pSessionManager); } GtkWidget *pEventWidget = getMouseEventWidget(); for (auto handler_id : m_aMouseSignalIds) g_signal_handler_disconnect(G_OBJECT(pEventWidget), handler_id); #if !GTK_CHECK_VERSION(4, 0, 0) if( m_pFixedContainer ) gtk_widget_destroy( GTK_WIDGET( m_pFixedContainer ) ); if( m_pEventBox ) gtk_widget_destroy( GTK_WIDGET(m_pEventBox) ); if( m_pTopLevelGrid ) gtk_widget_destroy( GTK_WIDGET(m_pTopLevelGrid) ); #else g_signal_handler_disconnect(G_OBJECT(gtk_widget_get_display(pEventWidget)), m_nSettingChangedSignalId); #endif { SolarMutexGuard aGuard; if( m_pWindow ) { g_object_set_data( G_OBJECT( m_pWindow ), "SalFrame", nullptr ); if ( pSessionBus ) { if ( m_nHudAwarenessId ) hud_awareness_unregister( pSessionBus, m_nHudAwarenessId ); if ( m_nMenuExportId ) g_dbus_connection_unexport_menu_model( pSessionBus, m_nMenuExportId ); if ( m_nActionGroupExportId ) g_dbus_connection_unexport_action_group( pSessionBus, m_nActionGroupExportId ); } m_xFrameWeld.reset(); #if !GTK_CHECK_VERSION(4,0,0) gtk_widget_destroy( m_pWindow ); #else if (GTK_IS_WINDOW(m_pWindow)) gtk_window_destroy(GTK_WINDOW(m_pWindow)); else g_clear_pointer(&m_pWindow, gtk_widget_unparent); #endif } } #if !GTK_CHECK_VERSION(4,0,0) if( m_pForeignParent ) g_object_unref( G_OBJECT( m_pForeignParent ) ); if( m_pForeignTopLevel ) g_object_unref( G_OBJECT( m_pForeignTopLevel) ); #endif m_pGraphics.reset(); if (m_pSurface) cairo_surface_destroy(m_pSurface); } void GtkSalFrame::moveWindow( tools::Long nX, tools::Long nY ) { if( isChild( false ) ) { GtkWidget* pParent = m_pParent ? gtk_widget_get_parent(m_pWindow) : nullptr; // tdf#130414 it's possible that we were reparented and are no longer inside // our original GtkFixed parent if (pParent && GTK_IS_FIXED(pParent)) { gtk_fixed_move( GTK_FIXED(pParent), m_pWindow, nX - m_pParent->maGeometry.x(), nY - m_pParent->maGeometry.y() ); } return; } #if GTK_CHECK_VERSION(4,0,0) if (GTK_IS_POPOVER(m_pWindow)) { GdkRectangle aRect; aRect.x = nX; aRect.y = nY; aRect.width = 1; aRect.height = 1; gtk_popover_set_pointing_to(GTK_POPOVER(m_pWindow), &aRect); return; } #else gtk_window_move( GTK_WINDOW(m_pWindow), nX, nY ); #endif } void GtkSalFrame::widget_set_size_request(tools::Long nWidth, tools::Long nHeight) { gtk_widget_set_size_request(GTK_WIDGET(m_pFixedContainer), nWidth, nHeight ); #if GTK_CHECK_VERSION(4,0,0) gtk_widget_set_size_request(GTK_WIDGET(m_pDrawingArea), nWidth, nHeight ); #endif } void GtkSalFrame::window_resize(tools::Long nWidth, tools::Long nHeight) { m_nWidthRequest = nWidth; m_nHeightRequest = nHeight; if (!GTK_IS_WINDOW(m_pWindow)) { #if GTK_CHECK_VERSION(4,0,0) gtk_widget_set_size_request(GTK_WIDGET(m_pDrawingArea), nWidth, nHeight); #endif return; } gtk_window_set_default_size(GTK_WINDOW(m_pWindow), nWidth, nHeight); #if !GTK_CHECK_VERSION(4,0,0) gtk_window_resize(GTK_WINDOW(m_pWindow), nWidth, nHeight); #endif } void GtkSalFrame::resizeWindow( tools::Long nWidth, tools::Long nHeight ) { if( isChild( false ) ) { widget_set_size_request(nWidth, nHeight); } else if( ! isChild( true, false ) ) window_resize(nWidth, nHeight); } #if !GTK_CHECK_VERSION(4,0,0) // tdf#124694 GtkFixed takes the max size of all its children as its // preferred size, causing it to not clip its child, but grow instead. static void ooo_fixed_get_preferred_height(GtkWidget*, gint *minimum, gint *natural) { *minimum = 0; *natural = 0; } static void ooo_fixed_get_preferred_width(GtkWidget*, gint *minimum, gint *natural) { *minimum = 0; *natural = 0; } static void ooo_fixed_class_init(gpointer klass_, gpointer) { auto const klass = static_cast(klass_); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); widget_class->get_accessible = ooo_fixed_get_accessible; widget_class->get_preferred_height = ooo_fixed_get_preferred_height; widget_class->get_preferred_width = ooo_fixed_get_preferred_width; } /* * Always use a sub-class of GtkFixed we can tag for a11y. This allows us to * utilize GAIL for the toplevel window and toolkit implementation incl. * key event listener support .. */ GType ooo_fixed_get_type() { static GType type = 0; if (!type) { static const GTypeInfo tinfo = { sizeof (GtkFixedClass), nullptr, /* base init */ nullptr, /* base finalize */ ooo_fixed_class_init, /* class init */ nullptr, /* class finalize */ nullptr, /* class data */ sizeof (GtkFixed), /* instance size */ 0, /* nb preallocs */ nullptr, /* instance init */ nullptr /* value table */ }; type = g_type_register_static( GTK_TYPE_FIXED, "OOoFixed", &tinfo, GTypeFlags(0)); } return type; } #endif void GtkSalFrame::updateScreenNumber() { #if !GTK_CHECK_VERSION(4,0,0) int nScreen = 0; GdkScreen *pScreen = gtk_widget_get_screen( m_pWindow ); if( pScreen ) nScreen = getDisplay()->getSystem()->getScreenMonitorIdx( pScreen, maGeometry.x(), maGeometry.y() ); maGeometry.setScreen(nScreen); #endif } GtkWidget *GtkSalFrame::getMouseEventWidget() const { #if !GTK_CHECK_VERSION(4,0,0) return GTK_WIDGET(m_pEventBox); #else return GTK_WIDGET(m_pFixedContainer); #endif } static void damaged(void *handle, sal_Int32 nExtentsX, sal_Int32 nExtentsY, sal_Int32 nExtentsWidth, sal_Int32 nExtentsHeight) { GtkSalFrame* pThis = static_cast(handle); pThis->damaged(nExtentsX, nExtentsY, nExtentsWidth, nExtentsHeight); } #if !GTK_CHECK_VERSION(4,0,0) static void notifyUnref(gpointer data, GObject *) { g_object_unref(data); } #endif void GtkSalFrame::InitCommon() { m_pSurface = nullptr; m_nGrabLevel = 0; m_bSalObjectSetPosSize = false; m_nPortalSettingChangedSignalId = 0; m_nSessionClientSignalId = 0; m_pSettingsPortal = nullptr; m_pSessionManager = nullptr; m_pSessionClient = nullptr; m_aDamageHandler.handle = this; m_aDamageHandler.damaged = ::damaged; #if !GTK_CHECK_VERSION(4,0,0) m_aSmoothScrollIdle.SetInvokeHandler(LINK(this, GtkSalFrame, AsyncScroll)); #endif m_pTopLevelGrid = GTK_GRID(gtk_grid_new()); container_add(m_pWindow, GTK_WIDGET(m_pTopLevelGrid)); #if !GTK_CHECK_VERSION(4,0,0) m_pEventBox = GTK_EVENT_BOX(gtk_event_box_new()); gtk_widget_add_events( GTK_WIDGET(m_pEventBox), GDK_ALL_EVENTS_MASK ); gtk_widget_set_vexpand(GTK_WIDGET(m_pEventBox), true); gtk_widget_set_hexpand(GTK_WIDGET(m_pEventBox), true); gtk_grid_attach(m_pTopLevelGrid, GTK_WIDGET(m_pEventBox), 0, 0, 1, 1); #endif // add the fixed container child, // fixed is needed since we have to position plugin windows #if !GTK_CHECK_VERSION(4,0,0) m_pFixedContainer = GTK_FIXED(g_object_new( ooo_fixed_get_type(), nullptr )); m_pDrawingArea = m_pFixedContainer; #else m_pOverlay = GTK_OVERLAY(gtk_overlay_new()); m_pFixedContainer = GTK_FIXED(g_object_new( ooo_fixed_get_type(), nullptr )); m_pDrawingArea = GTK_DRAWING_AREA(gtk_drawing_area_new()); #endif if (GTK_IS_WINDOW(m_pWindow)) { Size aDefWindowSize = calcDefaultSize(); gtk_window_set_default_size(GTK_WINDOW(m_pWindow), aDefWindowSize.Width(), aDefWindowSize.Height()); } gtk_widget_set_can_focus(GTK_WIDGET(m_pFixedContainer), true); gtk_widget_set_size_request(GTK_WIDGET(m_pFixedContainer), 1, 1); #if !GTK_CHECK_VERSION(4,0,0) gtk_container_add( GTK_CONTAINER(m_pEventBox), GTK_WIDGET(m_pFixedContainer) ); #else gtk_widget_set_vexpand(GTK_WIDGET(m_pOverlay), true); gtk_widget_set_hexpand(GTK_WIDGET(m_pOverlay), true); gtk_grid_attach(m_pTopLevelGrid, GTK_WIDGET(m_pOverlay), 0, 0, 1, 1); gtk_overlay_set_child(m_pOverlay, GTK_WIDGET(m_pDrawingArea)); gtk_overlay_add_overlay(m_pOverlay, GTK_WIDGET(m_pFixedContainer)); #endif GtkWidget *pEventWidget = getMouseEventWidget(); #if !GTK_CHECK_VERSION(4,0,0) gtk_widget_set_app_paintable(GTK_WIDGET(m_pFixedContainer), true); gtk_widget_set_redraw_on_allocate(GTK_WIDGET(m_pFixedContainer), false); #endif #if GTK_CHECK_VERSION(4,0,0) m_nSettingChangedSignalId = g_signal_connect(G_OBJECT(gtk_widget_get_display(pEventWidget)), "setting-changed", G_CALLBACK(signalStyleUpdated), this); #else // use pEventWidget instead of m_pWindow to avoid infinite event loop under Linux Mint Mate 18.3 g_signal_connect(G_OBJECT(pEventWidget), "style-updated", G_CALLBACK(signalStyleUpdated), this); #endif gtk_widget_set_has_tooltip(pEventWidget, true); // connect signals m_aMouseSignalIds.push_back(g_signal_connect( G_OBJECT(pEventWidget), "query-tooltip", G_CALLBACK(signalTooltipQuery), this )); #if !GTK_CHECK_VERSION(4,0,0) m_aMouseSignalIds.push_back(g_signal_connect( G_OBJECT(pEventWidget), "button-press-event", G_CALLBACK(signalButton), this )); m_aMouseSignalIds.push_back(g_signal_connect( G_OBJECT(pEventWidget), "button-release-event", G_CALLBACK(signalButton), this )); m_aMouseSignalIds.push_back(g_signal_connect( G_OBJECT(pEventWidget), "motion-notify-event", G_CALLBACK(signalMotion), this )); m_aMouseSignalIds.push_back(g_signal_connect( G_OBJECT(pEventWidget), "leave-notify-event", G_CALLBACK(signalCrossing), this )); m_aMouseSignalIds.push_back(g_signal_connect( G_OBJECT(pEventWidget), "enter-notify-event", G_CALLBACK(signalCrossing), this )); m_aMouseSignalIds.push_back(g_signal_connect( G_OBJECT(pEventWidget), "scroll-event", G_CALLBACK(signalScroll), this )); #else GtkGesture *pClick = gtk_gesture_click_new(); gtk_gesture_single_set_button(GTK_GESTURE_SINGLE(pClick), 0); // use GTK_PHASE_TARGET instead of default GTK_PHASE_BUBBLE because I don't // want click events in gtk widgets inside the overlay, e.g. the font size // combobox GtkEntry in the toolbar, to be propagated down to this widget gtk_event_controller_set_propagation_phase(GTK_EVENT_CONTROLLER(pClick), GTK_PHASE_TARGET); gtk_widget_add_controller(pEventWidget, GTK_EVENT_CONTROLLER(pClick)); g_signal_connect(pClick, "pressed", G_CALLBACK(gesturePressed), this); g_signal_connect(pClick, "released", G_CALLBACK(gestureReleased), this); GtkEventController* pMotionController = gtk_event_controller_motion_new(); g_signal_connect(pMotionController, "motion", G_CALLBACK(signalMotion), this); g_signal_connect(pMotionController, "enter", G_CALLBACK(signalEnter), this); g_signal_connect(pMotionController, "leave", G_CALLBACK(signalLeave), this); gtk_widget_add_controller(pEventWidget, pMotionController); GtkEventController* pScrollController = gtk_event_controller_scroll_new(GTK_EVENT_CONTROLLER_SCROLL_BOTH_AXES); g_signal_connect(pScrollController, "scroll", G_CALLBACK(signalScroll), this); gtk_widget_add_controller(pEventWidget, pScrollController); #endif #if GTK_CHECK_VERSION(4,0,0) GtkGesture* pZoomGesture = gtk_gesture_zoom_new(); gtk_widget_add_controller(pEventWidget, GTK_EVENT_CONTROLLER(pZoomGesture)); #else GtkGesture* pZoomGesture = gtk_gesture_zoom_new(GTK_WIDGET(pEventWidget)); g_object_weak_ref(G_OBJECT(pEventWidget), notifyUnref, pZoomGesture); #endif gtk_event_controller_set_propagation_phase(GTK_EVENT_CONTROLLER(pZoomGesture), GTK_PHASE_TARGET); // Note that the default zoom gesture signal handler needs to run first to setup correct // scale delta. Otherwise the first "begin" event will always contain scale delta of infinity. g_signal_connect_after(pZoomGesture, "begin", G_CALLBACK(signalZoomBegin), this); g_signal_connect_after(pZoomGesture, "update", G_CALLBACK(signalZoomUpdate), this); g_signal_connect_after(pZoomGesture, "end", G_CALLBACK(signalZoomEnd), this); #if GTK_CHECK_VERSION(4,0,0) GtkGesture* pRotateGesture = gtk_gesture_rotate_new(); gtk_widget_add_controller(pEventWidget, GTK_EVENT_CONTROLLER(pRotateGesture)); #else GtkGesture* pRotateGesture = gtk_gesture_rotate_new(GTK_WIDGET(pEventWidget)); g_object_weak_ref(G_OBJECT(pEventWidget), notifyUnref, pRotateGesture); #endif gtk_event_controller_set_propagation_phase(GTK_EVENT_CONTROLLER(pRotateGesture), GTK_PHASE_TARGET); g_signal_connect(pRotateGesture, "begin", G_CALLBACK(signalRotateBegin), this); g_signal_connect(pRotateGesture, "update", G_CALLBACK(signalRotateUpdate), this); g_signal_connect(pRotateGesture, "end", G_CALLBACK(signalRotateEnd), this); //Drop Target Stuff #if GTK_CHECK_VERSION(4,0,0) GtkDropTargetAsync* pDropTarget = gtk_drop_target_async_new(nullptr, GdkDragAction(GDK_ACTION_ALL)); g_signal_connect(G_OBJECT(pDropTarget), "drag-enter", G_CALLBACK(signalDragMotion), this); g_signal_connect(G_OBJECT(pDropTarget), "drag-motion", G_CALLBACK(signalDragMotion), this); g_signal_connect(G_OBJECT(pDropTarget), "drag-leave", G_CALLBACK(signalDragLeave), this); g_signal_connect(G_OBJECT(pDropTarget), "drop", G_CALLBACK(signalDragDrop), this); gtk_widget_add_controller(pEventWidget, GTK_EVENT_CONTROLLER(pDropTarget)); #else gtk_drag_dest_set(GTK_WIDGET(pEventWidget), GtkDestDefaults(0), nullptr, 0, GdkDragAction(0)); gtk_drag_dest_set_track_motion(GTK_WIDGET(pEventWidget), true); m_aMouseSignalIds.push_back(g_signal_connect( G_OBJECT(pEventWidget), "drag-motion", G_CALLBACK(signalDragMotion), this )); m_aMouseSignalIds.push_back(g_signal_connect( G_OBJECT(pEventWidget), "drag-drop", G_CALLBACK(signalDragDrop), this )); m_aMouseSignalIds.push_back(g_signal_connect( G_OBJECT(pEventWidget), "drag-data-received", G_CALLBACK(signalDragDropReceived), this )); m_aMouseSignalIds.push_back(g_signal_connect( G_OBJECT(pEventWidget), "drag-leave", G_CALLBACK(signalDragLeave), this )); #endif #if !GTK_CHECK_VERSION(4,0,0) //Drag Source Stuff m_aMouseSignalIds.push_back(g_signal_connect( G_OBJECT(pEventWidget), "drag-end", G_CALLBACK(signalDragEnd), this )); m_aMouseSignalIds.push_back(g_signal_connect( G_OBJECT(pEventWidget), "drag-failed", G_CALLBACK(signalDragFailed), this )); m_aMouseSignalIds.push_back(g_signal_connect( G_OBJECT(pEventWidget), "drag-data-delete", G_CALLBACK(signalDragDelete), this )); m_aMouseSignalIds.push_back(g_signal_connect( G_OBJECT(pEventWidget), "drag-data-get", G_CALLBACK(signalDragDataGet), this )); #endif #if !GTK_CHECK_VERSION(4,0,0) g_signal_connect( G_OBJECT(m_pFixedContainer), "draw", G_CALLBACK(signalDraw), this ); g_signal_connect( G_OBJECT(m_pFixedContainer), "size-allocate", G_CALLBACK(sizeAllocated), this ); #else gtk_drawing_area_set_draw_func(m_pDrawingArea, signalDraw, this, nullptr); g_signal_connect(G_OBJECT(m_pDrawingArea), "resize", G_CALLBACK(sizeAllocated), this); #endif g_signal_connect(G_OBJECT(m_pFixedContainer), "realize", G_CALLBACK(signalRealize), this); #if !GTK_CHECK_VERSION(4,0,0) GtkGesture *pSwipe = gtk_gesture_swipe_new(pEventWidget); g_object_weak_ref(G_OBJECT(pEventWidget), notifyUnref, pSwipe); #else GtkGesture *pSwipe = gtk_gesture_swipe_new(); gtk_widget_add_controller(pEventWidget, GTK_EVENT_CONTROLLER(pSwipe)); #endif g_signal_connect(pSwipe, "swipe", G_CALLBACK(gestureSwipe), this); gtk_event_controller_set_propagation_phase(GTK_EVENT_CONTROLLER (pSwipe), GTK_PHASE_TARGET); #if !GTK_CHECK_VERSION(4,0,0) GtkGesture *pLongPress = gtk_gesture_long_press_new(pEventWidget); g_object_weak_ref(G_OBJECT(pEventWidget), notifyUnref, pLongPress); #else GtkGesture *pLongPress = gtk_gesture_long_press_new(); gtk_widget_add_controller(pEventWidget, GTK_EVENT_CONTROLLER(pLongPress)); #endif g_signal_connect(pLongPress, "pressed", G_CALLBACK(gestureLongPress), this); gtk_event_controller_set_propagation_phase(GTK_EVENT_CONTROLLER (pLongPress), GTK_PHASE_TARGET); #if !GTK_CHECK_VERSION(4,0,0) g_signal_connect_after( G_OBJECT(m_pWindow), "focus-in-event", G_CALLBACK(signalFocus), this ); g_signal_connect_after( G_OBJECT(m_pWindow), "focus-out-event", G_CALLBACK(signalFocus), this ); if (GTK_IS_WINDOW(m_pWindow)) // i.e. not if it's a GtkEventBox which doesn't have the signal m_nSetFocusSignalId = g_signal_connect( G_OBJECT(m_pWindow), "set-focus", G_CALLBACK(signalSetFocus), this ); #else GtkEventController* pFocusController = gtk_event_controller_focus_new(); g_signal_connect(pFocusController, "enter", G_CALLBACK(signalFocusEnter), this); g_signal_connect(pFocusController, "leave", G_CALLBACK(signalFocusLeave), this); gtk_widget_set_focusable(pEventWidget, true); gtk_widget_add_controller(pEventWidget, pFocusController); if (GTK_IS_WINDOW(m_pWindow)) // i.e. not if it's a GtkEventBox which doesn't have the property (presumably?) m_nSetFocusSignalId = g_signal_connect( G_OBJECT(m_pWindow), "notify::focus-widget", G_CALLBACK(signalSetFocus), this ); #endif #if !GTK_CHECK_VERSION(4,0,0) g_signal_connect( G_OBJECT(m_pWindow), "map-event", G_CALLBACK(signalMap), this ); g_signal_connect( G_OBJECT(m_pWindow), "unmap-event", G_CALLBACK(signalUnmap), this ); g_signal_connect( G_OBJECT(m_pWindow), "delete-event", G_CALLBACK(signalDelete), this ); #else g_signal_connect( G_OBJECT(m_pWindow), "map", G_CALLBACK(signalMap), this ); g_signal_connect( G_OBJECT(m_pWindow), "unmap", G_CALLBACK(signalUnmap), this ); if (GTK_IS_WINDOW(m_pWindow)) g_signal_connect( G_OBJECT(m_pWindow), "close-request", G_CALLBACK(signalDelete), this ); #endif #if !GTK_CHECK_VERSION(4,0,0) g_signal_connect( G_OBJECT(m_pWindow), "configure-event", G_CALLBACK(signalConfigure), this ); #endif #if !GTK_CHECK_VERSION(4,0,0) g_signal_connect( G_OBJECT(m_pWindow), "key-press-event", G_CALLBACK(signalKey), this ); g_signal_connect( G_OBJECT(m_pWindow), "key-release-event", G_CALLBACK(signalKey), this ); #else m_pKeyController = GTK_EVENT_CONTROLLER_KEY(gtk_event_controller_key_new()); g_signal_connect(m_pKeyController, "key-pressed", G_CALLBACK(signalKeyPressed), this); g_signal_connect(m_pKeyController, "key-released", G_CALLBACK(signalKeyReleased), this); gtk_widget_add_controller(pEventWidget, GTK_EVENT_CONTROLLER(m_pKeyController)); #endif g_signal_connect( G_OBJECT(m_pWindow), "destroy", G_CALLBACK(signalDestroy), this ); // init members m_nKeyModifiers = ModKeyFlags::NONE; m_bFullscreen = false; #if GTK_CHECK_VERSION(4,0,0) m_nState = static_cast(0); #else m_nState = GDK_WINDOW_STATE_WITHDRAWN; #endif m_pIMHandler = nullptr; m_pRegion = nullptr; m_pDropTarget = nullptr; m_pDragSource = nullptr; m_bGeometryIsProvisional = false; m_bIconSetWhileUnmapped = false; m_bTooltipBlocked = false; m_ePointerStyle = static_cast(0xffff); m_pSalMenu = nullptr; m_nWatcherId = 0; m_nMenuExportId = 0; m_nActionGroupExportId = 0; m_nHudAwarenessId = 0; #if !GTK_CHECK_VERSION(4,0,0) gtk_widget_add_events( m_pWindow, GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_SCROLL_MASK | GDK_TOUCHPAD_GESTURE_MASK ); #endif // show the widgets #if !GTK_CHECK_VERSION(4,0,0) gtk_widget_show_all(GTK_WIDGET(m_pTopLevelGrid)); #else gtk_widget_show(GTK_WIDGET(m_pTopLevelGrid)); #endif // realize the window, we need an XWindow id gtk_widget_realize( m_pWindow ); if (GTK_IS_WINDOW(m_pWindow)) { #if !GTK_CHECK_VERSION(4,0,0) g_signal_connect(G_OBJECT(m_pWindow), "window-state-event", G_CALLBACK(signalWindowState), this); #else GdkSurface* gdkWindow = widget_get_surface(m_pWindow); g_signal_connect(G_OBJECT(gdkWindow), "notify::state", G_CALLBACK(signalWindowState), this); #endif } //system data m_aSystemData.SetWindowHandle(GetNativeWindowHandle(m_pWindow)); m_aSystemData.aShellWindow = reinterpret_cast(this); m_aSystemData.pSalFrame = this; m_aSystemData.pWidget = m_pWindow; m_aSystemData.nScreen = m_nXScreen.getXScreen(); m_aSystemData.toolkit = SystemEnvData::Toolkit::Gtk; #if defined(GDK_WINDOWING_X11) GdkDisplay *pDisplay = getGdkDisplay(); if (DLSYM_GDK_IS_X11_DISPLAY(pDisplay)) { m_aSystemData.pDisplay = gdk_x11_display_get_xdisplay(pDisplay); m_aSystemData.platform = SystemEnvData::Platform::Xcb; #if !GTK_CHECK_VERSION(4,0,0) GdkScreen* pScreen = gtk_widget_get_screen(m_pWindow); GdkVisual* pVisual = gdk_screen_get_system_visual(pScreen); m_aSystemData.pVisual = gdk_x11_visual_get_xvisual(pVisual); #endif } #endif #if defined(GDK_WINDOWING_WAYLAND) if (DLSYM_GDK_IS_WAYLAND_DISPLAY(pDisplay)) { m_aSystemData.pDisplay = gdk_wayland_display_get_wl_display(pDisplay); m_aSystemData.platform = SystemEnvData::Platform::Wayland; } #endif m_bGraphics = false; m_pGraphics = nullptr; m_nFloatFlags = FloatWinPopupFlags::NONE; m_bFloatPositioned = false; m_nWidthRequest = 0; m_nHeightRequest = 0; // fake an initial geometry, gets updated via configure event or SetPosSize if (m_bDefaultPos || m_bDefaultSize) { Size aDefSize = calcDefaultSize(); maGeometry.setPosSize({ -1, -1 }, aDefSize); maGeometry.setDecorations(0, 0, 0, 0); } updateScreenNumber(); SetIcon(SV_ICON_ID_OFFICE); } GtkSalFrame *GtkSalFrame::getFromWindow( GtkWidget *pWindow ) { return static_cast(g_object_get_data( G_OBJECT( pWindow ), "SalFrame" )); } void GtkSalFrame::DisallowCycleFocusOut() { if (!m_nSetFocusSignalId) return; // don't enable/disable can-focus as control enters and leaves // embedded native gtk widgets g_signal_handler_disconnect(G_OBJECT(m_pWindow), m_nSetFocusSignalId); m_nSetFocusSignalId = 0; #if !GTK_CHECK_VERSION(4, 0, 0) // gtk3: set container without can-focus and focus will tab between // the native embedded widgets using the default gtk handling for // that // gtk4: no need because the native widgets are the only // thing in the overlay and the drawing widget is underneath so // the natural focus cycle is sufficient gtk_widget_set_can_focus(GTK_WIDGET(m_pFixedContainer), false); #endif } bool GtkSalFrame::IsCycleFocusOutDisallowed() const { return m_nSetFocusSignalId == 0; } void GtkSalFrame::AllowCycleFocusOut() { if (m_nSetFocusSignalId) return; #if !GTK_CHECK_VERSION(4,0,0) // enable/disable can-focus as control enters and leaves // embedded native gtk widgets m_nSetFocusSignalId = g_signal_connect(G_OBJECT(m_pWindow), "set-focus", G_CALLBACK(signalSetFocus), this); #else m_nSetFocusSignalId = g_signal_connect(G_OBJECT(m_pWindow), "notify::focus-widget", G_CALLBACK(signalSetFocus), this); #endif #if !GTK_CHECK_VERSION(4, 0, 0) // set container without can-focus and focus will tab between // the native embedded widgets using the default gtk handling for // that // gtk4: no need because the native widgets are the only // thing in the overlay and the drawing widget is underneath so // the natural focus cycle is sufficient gtk_widget_set_can_focus(GTK_WIDGET(m_pFixedContainer), true); #endif } namespace { enum ColorScheme { DEFAULT, PREFER_DARK, PREFER_LIGHT }; void ReadColorScheme(GDBusProxy* proxy, GVariant** out) { g_autoptr (GVariant) ret = g_dbus_proxy_call_sync(proxy, "Read", g_variant_new ("(ss)", "org.freedesktop.appearance", "color-scheme"), G_DBUS_CALL_FLAGS_NONE, G_MAXINT, nullptr, nullptr); if (!ret) return; g_autoptr (GVariant) child = nullptr; g_variant_get(ret, "(v)", &child); g_variant_get(child, "v", out); return; } } void GtkSalFrame::SetColorScheme(GVariant* variant) { if (!m_pWindow) return; guint32 color_scheme; switch (officecfg::Office::Common::Misc::Appearance::get()) { default: case 0: // Auto { if (variant) { color_scheme = g_variant_get_uint32(variant); if (color_scheme > PREFER_LIGHT) color_scheme = DEFAULT; } else color_scheme = DEFAULT; break; } case 1: // Light color_scheme = PREFER_LIGHT; break; case 2: // Dark color_scheme = PREFER_DARK; break; } bool bDarkIconTheme(color_scheme == PREFER_DARK); GtkSettings* pSettings = gtk_widget_get_settings(m_pWindow); g_object_set(pSettings, "gtk-application-prefer-dark-theme", bDarkIconTheme, nullptr); } bool GtkSalFrame::GetUseDarkMode() const { if (!m_pWindow) return false; GtkSettings* pSettings = gtk_widget_get_settings(m_pWindow); gboolean bDarkIconTheme = false; g_object_get(pSettings, "gtk-application-prefer-dark-theme", &bDarkIconTheme, nullptr); return bDarkIconTheme; } bool GtkSalFrame::GetUseReducedAnimation() const { if (!m_pWindow) return false; GtkSettings* pSettings = gtk_widget_get_settings(m_pWindow); gboolean bAnimations; g_object_get(pSettings, "gtk-enable-animations", &bAnimations, nullptr); return !bAnimations; } static void settings_portal_changed_cb(GDBusProxy*, const char*, const char* signal_name, GVariant* parameters, gpointer frame) { if (g_strcmp0(signal_name, "SettingChanged")) return; g_autoptr (GVariant) value = nullptr; const char *name_space; const char *name; g_variant_get(parameters, "(&s&sv)", &name_space, &name, &value); if (g_strcmp0(name_space, "org.freedesktop.appearance") || g_strcmp0(name, "color-scheme")) return; GtkSalFrame* pThis = static_cast(frame); pThis->SetColorScheme(value); } void GtkSalFrame::ListenPortalSettings() { EnsureSessionBus(); if (!pSessionBus) return; m_pSettingsPortal = g_dbus_proxy_new_sync(pSessionBus, G_DBUS_PROXY_FLAGS_NONE, nullptr, "org.freedesktop.portal.Desktop", "/org/freedesktop/portal/desktop", "org.freedesktop.portal.Settings", nullptr, nullptr); UpdateDarkMode(); if (!m_pSettingsPortal) return; m_nPortalSettingChangedSignalId = g_signal_connect(m_pSettingsPortal, "g-signal", G_CALLBACK(settings_portal_changed_cb), this); } static void session_client_response(GDBusProxy* client_proxy) { g_dbus_proxy_call(client_proxy, "EndSessionResponse", g_variant_new ("(bs)", true, ""), G_DBUS_CALL_FLAGS_NONE, G_MAXINT, nullptr, nullptr, nullptr); } // unset documents "modify" flag so they won't veto closing static void clear_modify_and_terminate() { css::uno::Reference xContext = ::comphelper::getProcessComponentContext(); uno::Reference xDesktop(frame::Desktop::create(xContext)); uno::Reference xComponents = xDesktop->getComponents()->createEnumeration(); while (xComponents->hasMoreElements()) { css::uno::Reference xModifiable(xComponents->nextElement(), css::uno::UNO_QUERY); if (xModifiable) xModifiable->setModified(false); } xDesktop->terminate(); } static void session_client_signal(GDBusProxy* client_proxy, const char*, const char* signal_name, GVariant* /*parameters*/, gpointer frame) { GtkSalFrame* pThis = static_cast(frame); if (g_str_equal (signal_name, "QueryEndSession")) { css::uno::Reference xContext = ::comphelper::getProcessComponentContext(); uno::Reference xDesktop(frame::Desktop::create(xContext)); bool bModified = false; // find the XModifiable for this GtkSalFrame if (UnoWrapperBase* pWrapper = UnoWrapperBase::GetUnoWrapper(false)) { VclPtr xThisWindow = pThis->GetWindow(); css::uno::Reference xList = xDesktop->getFrames(); sal_Int32 nFrameCount = xList->getCount(); for (sal_Int32 i = 0; i < nFrameCount; ++i) { css::uno::Reference xFrame; xList->getByIndex(i) >>= xFrame; if (!xFrame) continue; VclPtr xWin = pWrapper->GetWindow(xFrame->getContainerWindow()); if (!xWin) continue; if (xWin->GetFrameWindow() != xThisWindow) continue; css::uno::Reference xController = xFrame->getController(); if (!xController) break; css::uno::Reference xModifiable(xController->getModel(), css::uno::UNO_QUERY); if (!xModifiable) break; bModified = xModifiable->isModified(); break; } } pThis->SessionManagerInhibit(bModified, APPLICATION_INHIBIT_LOGOUT, VclResId(STR_UNSAVED_DOCUMENTS), gtk_window_get_icon_name(GTK_WINDOW(pThis->getWindow()))); session_client_response(client_proxy); } else if (g_str_equal (signal_name, "CancelEndSession")) { // restore back to uninhibited (to set again if queried), so frames // that go away before the next logout don't affect that logout pThis->SessionManagerInhibit(false, APPLICATION_INHIBIT_LOGOUT, VclResId(STR_UNSAVED_DOCUMENTS), gtk_window_get_icon_name(GTK_WINDOW(pThis->getWindow()))); } else if (g_str_equal (signal_name, "EndSession")) { session_client_response(client_proxy); clear_modify_and_terminate(); } else if (g_str_equal (signal_name, "Stop")) { clear_modify_and_terminate(); } } void GtkSalFrame::ListenSessionManager() { EnsureSessionBus(); if (!pSessionBus) return; m_pSessionManager = g_dbus_proxy_new_sync(pSessionBus, G_DBUS_PROXY_FLAGS_NONE, nullptr, "org.gnome.SessionManager", "/org/gnome/SessionManager", "org.gnome.SessionManager", nullptr, nullptr); if (!m_pSessionManager) return; GVariant* res = g_dbus_proxy_call_sync(m_pSessionManager, "RegisterClient", g_variant_new ("(ss)", "org.libreoffice", ""), G_DBUS_CALL_FLAGS_NONE, G_MAXINT, nullptr, nullptr); if (!res) return; gchar* client_path; g_variant_get(res, "(o)", &client_path); g_variant_unref(res); m_pSessionClient = g_dbus_proxy_new_sync(pSessionBus, G_DBUS_PROXY_FLAGS_NONE, nullptr, "org.gnome.SessionManager", client_path, "org.gnome.SessionManager.ClientPrivate", nullptr, nullptr); g_free(client_path); if (!m_pSessionClient) return; m_nSessionClientSignalId = g_signal_connect(m_pSessionClient, "g-signal", G_CALLBACK(session_client_signal), this); } void GtkSalFrame::UpdateDarkMode() { g_autoptr (GVariant) value = nullptr; if (m_pSettingsPortal) ReadColorScheme(m_pSettingsPortal, &value); SetColorScheme(value); } #if GTK_CHECK_VERSION(4,0,0) static void PopoverClosed(GtkPopover*, GtkSalFrame* pThis) { SolarMutexGuard aGuard; pThis->closePopup(); } #endif void GtkSalFrame::Init( SalFrame* pParent, SalFrameStyleFlags nStyle ) { if( nStyle & SalFrameStyleFlags::DEFAULT ) // ensure default style { nStyle |= SalFrameStyleFlags::MOVEABLE | SalFrameStyleFlags::SIZEABLE | SalFrameStyleFlags::CLOSEABLE; nStyle &= ~SalFrameStyleFlags::FLOAT; } m_pParent = static_cast(pParent); #if !GTK_CHECK_VERSION(4,0,0) m_pForeignParent = nullptr; m_aForeignParentWindow = None; m_pForeignTopLevel = nullptr; m_aForeignTopLevelWindow = None; #endif m_nStyle = nStyle; bool bPopup = ((nStyle & SalFrameStyleFlags::FLOAT) && !(nStyle & SalFrameStyleFlags::OWNERDRAWDECORATION)); if( nStyle & SalFrameStyleFlags::SYSTEMCHILD ) { #if !GTK_CHECK_VERSION(4,0,0) m_pWindow = gtk_event_box_new(); #else m_pWindow = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); #endif if( m_pParent ) { // insert into container gtk_fixed_put( m_pParent->getFixedContainer(), m_pWindow, 0, 0 ); } } else { #if !GTK_CHECK_VERSION(4,0,0) m_pWindow = gtk_window_new(bPopup ? GTK_WINDOW_POPUP : GTK_WINDOW_TOPLEVEL); #else if (!bPopup) m_pWindow = gtk_window_new(); else { m_pWindow = gtk_popover_new(); gtk_popover_set_has_arrow(GTK_POPOVER(m_pWindow), false); g_signal_connect(m_pWindow, "closed", G_CALLBACK(PopoverClosed), this); } #endif #if !GTK_CHECK_VERSION(4,0,0) // hook up F1 to show help for embedded native gtk widgets GtkAccelGroup *pGroup = gtk_accel_group_new(); GClosure* closure = g_cclosure_new(G_CALLBACK(GtkSalFrame::NativeWidgetHelpPressed), GTK_WINDOW(m_pWindow), nullptr); gtk_accel_group_connect(pGroup, GDK_KEY_F1, static_cast(0), GTK_ACCEL_LOCKED, closure); gtk_window_add_accel_group(GTK_WINDOW(m_pWindow), pGroup); #endif } g_object_set_data( G_OBJECT( m_pWindow ), "SalFrame", this ); g_object_set_data( G_OBJECT( m_pWindow ), "libo-version", const_cast(LIBO_VERSION_DOTTED)); // force wm class hint if (!isChild()) { if (m_pParent) m_sWMClass = m_pParent->m_sWMClass; updateWMClass(); } if (GTK_IS_WINDOW(m_pWindow)) { if (m_pParent) { GtkWidget* pTopLevel = widget_get_toplevel(m_pParent->m_pWindow); #if !GTK_CHECK_VERSION(4,0,0) if (!isChild()) gtk_window_set_screen(GTK_WINDOW(m_pWindow), gtk_widget_get_screen(pTopLevel)); #endif if (!(m_pParent->m_nStyle & SalFrameStyleFlags::PLUG)) gtk_window_set_transient_for(GTK_WINDOW(m_pWindow), GTK_WINDOW(pTopLevel)); m_pParent->m_aChildren.push_back( this ); gtk_window_group_add_window(gtk_window_get_group(GTK_WINDOW(pTopLevel)), GTK_WINDOW(m_pWindow)); } else { gtk_window_group_add_window(gtk_window_group_new(), GTK_WINDOW(m_pWindow)); g_object_unref(gtk_window_get_group(GTK_WINDOW(m_pWindow))); } } else if (GTK_IS_POPOVER(m_pWindow)) { assert(m_pParent); gtk_widget_set_parent(m_pWindow, m_pParent->getMouseEventWidget()); } // set window type bool bDecoHandling = ! isChild() && ( ! (nStyle & SalFrameStyleFlags::FLOAT) || (nStyle & SalFrameStyleFlags::OWNERDRAWDECORATION) ); if( bDecoHandling ) { #if !GTK_CHECK_VERSION(4,0,0) GdkWindowTypeHint eType = GDK_WINDOW_TYPE_HINT_NORMAL; if( (nStyle & SalFrameStyleFlags::DIALOG) && m_pParent != nullptr ) eType = GDK_WINDOW_TYPE_HINT_DIALOG; #endif if( nStyle & SalFrameStyleFlags::INTRO ) { #if !GTK_CHECK_VERSION(4,0,0) gtk_window_set_role( GTK_WINDOW(m_pWindow), "splashscreen" ); eType = GDK_WINDOW_TYPE_HINT_SPLASHSCREEN; #endif } else if( nStyle & SalFrameStyleFlags::TOOLWINDOW ) { #if !GTK_CHECK_VERSION(4,0,0) eType = GDK_WINDOW_TYPE_HINT_DIALOG; gtk_window_set_skip_taskbar_hint( GTK_WINDOW(m_pWindow), true ); #endif } else if( nStyle & SalFrameStyleFlags::OWNERDRAWDECORATION ) { #if !GTK_CHECK_VERSION(4,0,0) eType = GDK_WINDOW_TYPE_HINT_TOOLBAR; gtk_window_set_focus_on_map(GTK_WINDOW(m_pWindow), false); #endif gtk_window_set_decorated(GTK_WINDOW(m_pWindow), false); } #if !GTK_CHECK_VERSION(4,0,0) gtk_window_set_type_hint( GTK_WINDOW(m_pWindow), eType ); gtk_window_set_gravity( GTK_WINDOW(m_pWindow), GDK_GRAVITY_STATIC ); #endif gtk_window_set_resizable( GTK_WINDOW(m_pWindow), bool(nStyle & SalFrameStyleFlags::SIZEABLE) ); #if !GTK_CHECK_VERSION(4,0,0) #if defined(GDK_WINDOWING_WAYLAND) //rhbz#1392145 under wayland/csd if we've overridden the default widget direction in order to set LibreOffice's //UI to the configured ui language but the system ui locale is a different text direction, then the toplevel //built-in close button of the titlebar follows the overridden direction rather than continue in the same //direction as every other titlebar on the user's desktop. So if they don't match set an explicit //header bar with the desired 'outside' direction if ((eType == GDK_WINDOW_TYPE_HINT_NORMAL || eType == GDK_WINDOW_TYPE_HINT_DIALOG) && DLSYM_GDK_IS_WAYLAND_DISPLAY(GtkSalFrame::getGdkDisplay())) { const bool bDesktopIsRTL = MsLangId::isRightToLeft(MsLangId::getConfiguredSystemUILanguage()); const bool bAppIsRTL = gtk_widget_get_default_direction() == GTK_TEXT_DIR_RTL; if (bDesktopIsRTL != bAppIsRTL) { m_pHeaderBar = GTK_HEADER_BAR(gtk_header_bar_new()); gtk_widget_set_direction(GTK_WIDGET(m_pHeaderBar), bDesktopIsRTL ? GTK_TEXT_DIR_RTL : GTK_TEXT_DIR_LTR); gtk_header_bar_set_show_close_button(m_pHeaderBar, true); gtk_window_set_titlebar(GTK_WINDOW(m_pWindow), GTK_WIDGET(m_pHeaderBar)); gtk_widget_show(GTK_WIDGET(m_pHeaderBar)); } } #endif #endif } #if !GTK_CHECK_VERSION(4,0,0) else if( nStyle & SalFrameStyleFlags::FLOAT ) gtk_window_set_type_hint( GTK_WINDOW(m_pWindow), GDK_WINDOW_TYPE_HINT_POPUP_MENU ); #endif InitCommon(); if (!bPopup) { // Enable GMenuModel native menu attach_menu_model(this); // Listen to portal settings for e.g. prefer dark theme ListenPortalSettings(); // Listen to session manager for e.g. query-end ListenSessionManager(); } } #if !GTK_CHECK_VERSION(4,0,0) GdkNativeWindow GtkSalFrame::findTopLevelSystemWindow( GdkNativeWindow ) { //FIXME: no findToplevelSystemWindow return 0; } #endif void GtkSalFrame::Init( SystemParentData* pSysData ) { m_pParent = nullptr; #if !GTK_CHECK_VERSION(4,0,0) m_aForeignParentWindow = pSysData->aWindow; m_pForeignParent = nullptr; m_aForeignTopLevelWindow = findTopLevelSystemWindow(pSysData->aWindow); m_pForeignTopLevel = gdk_x11_window_foreign_new_for_display( getGdkDisplay(), m_aForeignTopLevelWindow ); gdk_window_set_events( m_pForeignTopLevel, GDK_STRUCTURE_MASK ); if( pSysData->nSize > sizeof(pSysData->nSize)+sizeof(pSysData->aWindow) && pSysData->bXEmbedSupport ) { m_pWindow = gtk_plug_new_for_display( getGdkDisplay(), pSysData->aWindow ); gtk_widget_set_can_default(m_pWindow, true); gtk_widget_set_can_focus(m_pWindow, true); gtk_widget_set_sensitive(m_pWindow, true); } else { m_pWindow = gtk_window_new( GTK_WINDOW_POPUP ); } #endif m_nStyle = SalFrameStyleFlags::PLUG; InitCommon(); #if !GTK_CHECK_VERSION(4,0,0) m_pForeignParent = gdk_x11_window_foreign_new_for_display( getGdkDisplay(), m_aForeignParentWindow ); gdk_window_set_events( m_pForeignParent, GDK_STRUCTURE_MASK ); #else (void)pSysData; #endif //FIXME: Handling embedded windows, is going to be fun ... } void GtkSalFrame::SetExtendedFrameStyle(SalExtStyle) { } SalGraphics* GtkSalFrame::AcquireGraphics() { if( m_bGraphics ) return nullptr; if( !m_pGraphics ) { m_pGraphics.reset( new GtkSalGraphics( this, m_pWindow ) ); if (!m_pSurface) { AllocateFrame(); TriggerPaintEvent(); } m_pGraphics->setSurface(m_pSurface, m_aFrameSize); } m_bGraphics = true; return m_pGraphics.get(); } void GtkSalFrame::ReleaseGraphics( SalGraphics* pGraphics ) { (void) pGraphics; assert( pGraphics == m_pGraphics.get() ); m_bGraphics = false; } bool GtkSalFrame::PostEvent(std::unique_ptr pData) { getDisplay()->SendInternalEvent( this, pData.release() ); return true; } void GtkSalFrame::SetTitle( const OUString& rTitle ) { if (m_pWindow && GTK_IS_WINDOW(m_pWindow) && !isChild()) { OString sTitle(OUStringToOString(rTitle, RTL_TEXTENCODING_UTF8)); gtk_window_set_title(GTK_WINDOW(m_pWindow), sTitle.getStr()); #if !GTK_CHECK_VERSION(4,0,0) if (m_pHeaderBar) gtk_header_bar_set_title(m_pHeaderBar, sTitle.getStr()); #endif } } void GtkSalFrame::SetIcon(const char* appicon) { gtk_window_set_icon_name(GTK_WINDOW(m_pWindow), appicon); #if defined(GDK_WINDOWING_WAYLAND) if (!DLSYM_GDK_IS_WAYLAND_DISPLAY(getGdkDisplay())) return; #if GTK_CHECK_VERSION(4,0,0) GdkSurface* gdkWindow = gtk_native_get_surface(gtk_widget_get_native(m_pWindow)); gdk_wayland_toplevel_set_application_id((GDK_TOPLEVEL(gdkWindow)), appicon); #else static auto set_application_id = reinterpret_cast( dlsym(nullptr, "gdk_wayland_window_set_application_id")); if (set_application_id) { GdkSurface* gdkWindow = widget_get_surface(m_pWindow); set_application_id(gdkWindow, appicon); } #endif // gdk_wayland_window_set_application_id doesn't seem to work before // the window is mapped, so set this for real when/if we are mapped m_bIconSetWhileUnmapped = !gtk_widget_get_mapped(m_pWindow); #endif } void GtkSalFrame::SetIcon( sal_uInt16 nIcon ) { if( (m_nStyle & (SalFrameStyleFlags::PLUG|SalFrameStyleFlags::SYSTEMCHILD|SalFrameStyleFlags::FLOAT|SalFrameStyleFlags::INTRO|SalFrameStyleFlags::OWNERDRAWDECORATION)) || ! m_pWindow ) return; gchar* appicon; if (nIcon == SV_ICON_ID_TEXT) appicon = g_strdup ("libreoffice-writer"); else if (nIcon == SV_ICON_ID_SPREADSHEET) appicon = g_strdup ("libreoffice-calc"); else if (nIcon == SV_ICON_ID_DRAWING) appicon = g_strdup ("libreoffice-draw"); else if (nIcon == SV_ICON_ID_PRESENTATION) appicon = g_strdup ("libreoffice-impress"); else if (nIcon == SV_ICON_ID_DATABASE) appicon = g_strdup ("libreoffice-base"); else if (nIcon == SV_ICON_ID_FORMULA) appicon = g_strdup ("libreoffice-math"); else appicon = g_strdup ("libreoffice-startcenter"); SetIcon(appicon); g_free (appicon); } void GtkSalFrame::SetMenu( SalMenu* pSalMenu ) { m_pSalMenu = static_cast(pSalMenu); } SalMenu* GtkSalFrame::GetMenu() { return m_pSalMenu; } void GtkSalFrame::Center() { if (!GTK_IS_WINDOW(m_pWindow)) return; #if !GTK_CHECK_VERSION(4,0,0) if (m_pParent) gtk_window_set_position(GTK_WINDOW(m_pWindow), GTK_WIN_POS_CENTER_ON_PARENT); else gtk_window_set_position(GTK_WINDOW(m_pWindow), GTK_WIN_POS_CENTER); #endif } Size GtkSalFrame::calcDefaultSize() { Size aScreenSize(getDisplay()->GetScreenSize(GetDisplayScreen())); int scale = gtk_widget_get_scale_factor(m_pWindow); aScreenSize.setWidth( aScreenSize.Width() / scale ); aScreenSize.setHeight( aScreenSize.Height() / scale ); return bestmaxFrameSizeForScreenSize(aScreenSize); } void GtkSalFrame::SetDefaultSize() { Size aDefSize = calcDefaultSize(); SetPosSize( 0, 0, aDefSize.Width(), aDefSize.Height(), SAL_FRAME_POSSIZE_WIDTH | SAL_FRAME_POSSIZE_HEIGHT ); if( (m_nStyle & SalFrameStyleFlags::DEFAULT) && m_pWindow ) gtk_window_maximize( GTK_WINDOW(m_pWindow) ); } void GtkSalFrame::Show( bool bVisible, bool /*bNoActivate*/ ) { if( !m_pWindow ) return; if( bVisible ) { getDisplay()->startupNotificationCompleted(); if( m_bDefaultPos ) Center(); if( m_bDefaultSize ) SetDefaultSize(); setMinMaxSize(); if (isFloatGrabWindow() && !getDisplay()->GetCaptureFrame()) { m_pParent->grabPointer(true, true, true); m_pParent->addGrabLevel(); } #if defined(GDK_WINDOWING_WAYLAND) && !GTK_CHECK_VERSION(4,0,0) /* rhbz#1334915, gnome#779143, tdf#100158 https://gitlab.gnome.org/GNOME/gtk/-/issues/767 before gdk_wayland_window_set_application_id was available gtk under wayland lacked a way to change the app_id of a window, so brute force everything as a startcenter when initially shown to at least get the default LibreOffice icon and not the broken app icon */ static bool bAppIdImmutable = DLSYM_GDK_IS_WAYLAND_DISPLAY(getGdkDisplay()) && !dlsym(nullptr, "gdk_wayland_window_set_application_id"); if (bAppIdImmutable) { OString sOrigName(g_get_prgname()); g_set_prgname("libreoffice-startcenter"); gtk_widget_show(m_pWindow); g_set_prgname(sOrigName.getStr()); } else { gtk_widget_show(m_pWindow); } #else gtk_widget_show(m_pWindow); #endif if( isFloatGrabWindow() ) { m_nFloats++; if (!getDisplay()->GetCaptureFrame()) { grabPointer(true, true, true); addGrabLevel(); } // #i44068# reset parent's IM context if( m_pParent ) m_pParent->EndExtTextInput(EndExtTextInputFlags::NONE); } } else { if( isFloatGrabWindow() ) { m_nFloats--; if (!getDisplay()->GetCaptureFrame()) { removeGrabLevel(); grabPointer(false, true, false); m_pParent->removeGrabLevel(); bool bParentIsFloatGrabWindow = m_pParent->isFloatGrabWindow(); m_pParent->grabPointer(bParentIsFloatGrabWindow, true, bParentIsFloatGrabWindow); } } gtk_widget_hide( m_pWindow ); if( m_pIMHandler ) m_pIMHandler->focusChanged( false ); } } void GtkSalFrame::setMinMaxSize() { /* #i34504# metacity (and possibly others) do not treat * _NET_WM_STATE_FULLSCREEN and max_width/height independently; * whether they should is undefined. So don't set the max size hint * for a full screen window. */ if( !m_pWindow || isChild() ) return; #if !GTK_CHECK_VERSION(4, 0, 0) GdkGeometry aGeo; int aHints = 0; if( m_nStyle & SalFrameStyleFlags::SIZEABLE ) { if( m_aMinSize.Width() && m_aMinSize.Height() && ! m_bFullscreen ) { aGeo.min_width = m_aMinSize.Width(); aGeo.min_height = m_aMinSize.Height(); aHints |= GDK_HINT_MIN_SIZE; } if( m_aMaxSize.Width() && m_aMaxSize.Height() && ! m_bFullscreen ) { aGeo.max_width = m_aMaxSize.Width(); aGeo.max_height = m_aMaxSize.Height(); aHints |= GDK_HINT_MAX_SIZE; } } else { if (!m_bFullscreen && m_nWidthRequest && m_nHeightRequest) { aGeo.min_width = m_nWidthRequest; aGeo.min_height = m_nHeightRequest; aHints |= GDK_HINT_MIN_SIZE; aGeo.max_width = m_nWidthRequest; aGeo.max_height = m_nHeightRequest; aHints |= GDK_HINT_MAX_SIZE; } } if( m_bFullscreen && m_aMaxSize.Width() && m_aMaxSize.Height() ) { aGeo.max_width = m_aMaxSize.Width(); aGeo.max_height = m_aMaxSize.Height(); aHints |= GDK_HINT_MAX_SIZE; } if( aHints ) { gtk_window_set_geometry_hints( GTK_WINDOW(m_pWindow), nullptr, &aGeo, GdkWindowHints( aHints ) ); } #endif } void GtkSalFrame::SetMaxClientSize( tools::Long nWidth, tools::Long nHeight ) { if( ! isChild() ) { m_aMaxSize = Size( nWidth, nHeight ); setMinMaxSize(); } } void GtkSalFrame::SetMinClientSize( tools::Long nWidth, tools::Long nHeight ) { if( ! isChild() ) { m_aMinSize = Size( nWidth, nHeight ); if( m_pWindow ) { widget_set_size_request(nWidth, nHeight); setMinMaxSize(); } } } void GtkSalFrame::AllocateFrame() { basegfx::B2IVector aFrameSize( maGeometry.width(), maGeometry.height() ); if (m_pSurface && m_aFrameSize.getX() == aFrameSize.getX() && m_aFrameSize.getY() == aFrameSize.getY() ) return; if( aFrameSize.getX() == 0 ) aFrameSize.setX( 1 ); if( aFrameSize.getY() == 0 ) aFrameSize.setY( 1 ); if (m_pSurface) cairo_surface_destroy(m_pSurface); m_pSurface = surface_create_similar_surface(widget_get_surface(m_pWindow), CAIRO_CONTENT_COLOR_ALPHA, aFrameSize.getX(), aFrameSize.getY()); m_aFrameSize = aFrameSize; cairo_surface_set_user_data(m_pSurface, SvpSalGraphics::getDamageKey(), &m_aDamageHandler, nullptr); SAL_INFO("vcl.gtk3", "allocated Frame size of " << maGeometry.width() << " x " << maGeometry.height()); if (m_pGraphics) m_pGraphics->setSurface(m_pSurface, m_aFrameSize); } void GtkSalFrame::SetPosSize( tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, sal_uInt16 nFlags ) { if( !m_pWindow || isChild( true, false ) ) return; if( (nFlags & ( SAL_FRAME_POSSIZE_WIDTH | SAL_FRAME_POSSIZE_HEIGHT )) && (nWidth > 0 && nHeight > 0 ) // sometimes stupid things happen ) { m_bDefaultSize = false; maGeometry.setSize({ nWidth, nHeight }); if (isChild(false) || GTK_IS_POPOVER(m_pWindow)) widget_set_size_request(nWidth, nHeight); else if( ! ( m_nState & GDK_TOPLEVEL_STATE_MAXIMIZED ) ) window_resize(nWidth, nHeight); setMinMaxSize(); } else if( m_bDefaultSize ) SetDefaultSize(); m_bDefaultSize = false; if( nFlags & ( SAL_FRAME_POSSIZE_X | SAL_FRAME_POSSIZE_Y ) ) { if( m_pParent ) { if( AllSettings::GetLayoutRTL() ) nX = m_pParent->maGeometry.width()-m_nWidthRequest-1-nX; nX += m_pParent->maGeometry.x(); nY += m_pParent->maGeometry.y(); } if (nFlags & SAL_FRAME_POSSIZE_X) maGeometry.setX(nX); if (nFlags & SAL_FRAME_POSSIZE_Y) maGeometry.setY(nY); m_bGeometryIsProvisional = true; m_bDefaultPos = false; moveWindow(maGeometry.x(), maGeometry.y()); updateScreenNumber(); } else if( m_bDefaultPos ) Center(); m_bDefaultPos = false; } void GtkSalFrame::GetClientSize( tools::Long& rWidth, tools::Long& rHeight ) { if( m_pWindow && !(m_nState & GDK_TOPLEVEL_STATE_MINIMIZED) ) { rWidth = maGeometry.width(); rHeight = maGeometry.height(); } else rWidth = rHeight = 0; } void GtkSalFrame::GetWorkArea( AbsoluteScreenPixelRectangle& rRect ) { GdkRectangle aRect; #if !GTK_CHECK_VERSION(4, 0, 0) GdkScreen *pScreen = gtk_widget_get_screen(m_pWindow); AbsoluteScreenPixelRectangle aRetRect; int max = gdk_screen_get_n_monitors (pScreen); for (int i = 0; i < max; ++i) { gdk_screen_get_monitor_workarea(pScreen, i, &aRect); AbsoluteScreenPixelRectangle aMonitorRect(aRect.x, aRect.y, aRect.x+aRect.width, aRect.y+aRect.height); aRetRect.Union(aMonitorRect); } rRect = aRetRect; #else GdkDisplay* pDisplay = gtk_widget_get_display(m_pWindow); GdkSurface* gdkWindow = widget_get_surface(m_pWindow); GdkMonitor* pMonitor = gdk_display_get_monitor_at_surface(pDisplay, gdkWindow); gdk_monitor_get_geometry(pMonitor, &aRect); rRect = AbsoluteScreenPixelRectangle(aRect.x, aRect.y, aRect.x+aRect.width, aRect.y+aRect.height); #endif } SalFrame* GtkSalFrame::GetParent() const { return m_pParent; } void GtkSalFrame::SetWindowState(const vcl::WindowData* pState) { if( ! m_pWindow || ! pState || isChild( true, false ) ) return; const vcl::WindowDataMask nMaxGeometryMask = vcl::WindowDataMask::PosSize | vcl::WindowDataMask::MaximizedX | vcl::WindowDataMask::MaximizedY | vcl::WindowDataMask::MaximizedWidth | vcl::WindowDataMask::MaximizedHeight; if( (pState->mask() & vcl::WindowDataMask::State) && ! ( m_nState & GDK_TOPLEVEL_STATE_MAXIMIZED ) && (pState->state() & vcl::WindowState::Maximized) && (pState->mask() & nMaxGeometryMask) == nMaxGeometryMask ) { resizeWindow(pState->width(), pState->height()); moveWindow(pState->x(), pState->y()); m_bDefaultPos = m_bDefaultSize = false; updateScreenNumber(); m_nState = GdkToplevelState(m_nState | GDK_TOPLEVEL_STATE_MAXIMIZED); m_aRestorePosSize = pState->posSize(); } else if (pState->mask() & vcl::WindowDataMask::PosSize) { sal_uInt16 nPosSizeFlags = 0; tools::Long nX = pState->x() - (m_pParent ? m_pParent->maGeometry.x() : 0); tools::Long nY = pState->y() - (m_pParent ? m_pParent->maGeometry.y() : 0); if (pState->mask() & vcl::WindowDataMask::X) nPosSizeFlags |= SAL_FRAME_POSSIZE_X; else nX = maGeometry.x() - (m_pParent ? m_pParent->maGeometry.x() : 0); if (pState->mask() & vcl::WindowDataMask::Y) nPosSizeFlags |= SAL_FRAME_POSSIZE_Y; else nY = maGeometry.y() - (m_pParent ? m_pParent->maGeometry.y() : 0); if (pState->mask() & vcl::WindowDataMask::Width) nPosSizeFlags |= SAL_FRAME_POSSIZE_WIDTH; if (pState->mask() & vcl::WindowDataMask::Height) nPosSizeFlags |= SAL_FRAME_POSSIZE_HEIGHT; SetPosSize(nX, nY, pState->width(), pState->height(), nPosSizeFlags); } if (pState->mask() & vcl::WindowDataMask::State && !isChild()) { if (pState->state() & vcl::WindowState::Maximized) gtk_window_maximize( GTK_WINDOW(m_pWindow) ); else gtk_window_unmaximize( GTK_WINDOW(m_pWindow) ); /* #i42379# there is no rollup state in GDK; and rolled up windows are * (probably depending on the WM) reported as iconified. If we iconify a * window here that was e.g. a dialog, then it will be unmapped but still * not be displayed in the task list, so it's an iconified window that * the user cannot get out of this state. So do not set the iconified state * on windows with a parent (that is transient frames) since these tend * to not be represented in an icon task list. */ bool bMinimize = pState->state() & vcl::WindowState::Minimized && !m_pParent; #if GTK_CHECK_VERSION(4, 0, 0) if (bMinimize) gtk_window_minimize(GTK_WINDOW(m_pWindow)); else gtk_window_unminimize(GTK_WINDOW(m_pWindow)); #else if (bMinimize) gtk_window_iconify(GTK_WINDOW(m_pWindow)); else gtk_window_deiconify(GTK_WINDOW(m_pWindow)); #endif } TriggerPaintEvent(); } namespace { void GetPosAndSize(GtkWindow *pWindow, tools::Long& rX, tools::Long &rY, tools::Long &rWidth, tools::Long &rHeight) { gint width, height; #if !GTK_CHECK_VERSION(4, 0, 0) gint root_x, root_y; gtk_window_get_position(GTK_WINDOW(pWindow), &root_x, &root_y); rX = root_x; rY = root_y; gtk_window_get_size(GTK_WINDOW(pWindow), &width, &height); #else rX = 0; rY = 0; gtk_window_get_default_size(GTK_WINDOW(pWindow), &width, &height); #endif rWidth = width; rHeight = height; } tools::Rectangle GetPosAndSize(GtkWindow *pWindow) { tools::Long nX, nY, nWidth, nHeight; GetPosAndSize(pWindow, nX, nY, nWidth, nHeight); return tools::Rectangle(nX, nY, nX + nWidth, nY + nHeight); } } bool GtkSalFrame::GetWindowState(vcl::WindowData* pState) { pState->setState(vcl::WindowState::Normal); pState->setMask(vcl::WindowDataMask::PosSizeState); // rollup ? gtk 2.2 does not seem to support the shaded state if( m_nState & GDK_TOPLEVEL_STATE_MINIMIZED ) pState->rState() |= vcl::WindowState::Minimized; if( m_nState & GDK_TOPLEVEL_STATE_MAXIMIZED ) { pState->rState() |= vcl::WindowState::Maximized; pState->setPosSize(m_aRestorePosSize); tools::Rectangle aPosSize = GetPosAndSize(GTK_WINDOW(m_pWindow)); pState->SetMaximizedX(aPosSize.Left()); pState->SetMaximizedY(aPosSize.Top()); pState->SetMaximizedWidth(aPosSize.GetWidth()); pState->SetMaximizedHeight(aPosSize.GetHeight()); pState->rMask() |= vcl::WindowDataMask::MaximizedX | vcl::WindowDataMask::MaximizedY | vcl::WindowDataMask::MaximizedWidth | vcl::WindowDataMask::MaximizedHeight; } else pState->setPosSize(GetPosAndSize(GTK_WINDOW(m_pWindow))); return true; } void GtkSalFrame::SetScreen( unsigned int nNewScreen, SetType eType, tools::Rectangle const *pSize ) { if( !m_pWindow ) return; if (maGeometry.screen() == nNewScreen && eType == SetType::RetainSize) return; #if !GTK_CHECK_VERSION(4, 0, 0) int nX = maGeometry.x(), nY = maGeometry.y(), nWidth = maGeometry.width(), nHeight = maGeometry.height(); GdkScreen *pScreen = nullptr; GdkRectangle aNewMonitor; bool bSpanAllScreens = nNewScreen == static_cast(-1); bool bSpanMonitorsWhenFullscreen = bSpanAllScreens && getDisplay()->getSystem()->GetDisplayScreenCount() > 1; gint nMonitor = -1; if (bSpanMonitorsWhenFullscreen) //span all screens { pScreen = gtk_widget_get_screen( m_pWindow ); aNewMonitor.x = 0; aNewMonitor.y = 0; aNewMonitor.width = gdk_screen_get_width(pScreen); aNewMonitor.height = gdk_screen_get_height(pScreen); } else { bool bSameMonitor = false; if (!bSpanAllScreens) { pScreen = getDisplay()->getSystem()->getScreenMonitorFromIdx( nNewScreen, nMonitor ); if (!pScreen) { g_warning ("Attempt to move GtkSalFrame to invalid screen %d => " "fallback to current\n", nNewScreen); } } if (!pScreen) { pScreen = gtk_widget_get_screen( m_pWindow ); bSameMonitor = true; } // Heavy lifting, need to move screen ... if( pScreen != gtk_widget_get_screen( m_pWindow )) gtk_window_set_screen( GTK_WINDOW( m_pWindow ), pScreen ); gint nOldMonitor = gdk_screen_get_monitor_at_window( pScreen, widget_get_surface( m_pWindow ) ); if (bSameMonitor) nMonitor = nOldMonitor; #if OSL_DEBUG_LEVEL > 1 if( nMonitor == nOldMonitor ) g_warning( "An apparently pointless SetScreen - should we elide it ?" ); #endif GdkRectangle aOldMonitor; gdk_screen_get_monitor_geometry( pScreen, nOldMonitor, &aOldMonitor ); gdk_screen_get_monitor_geometry( pScreen, nMonitor, &aNewMonitor ); nX = aNewMonitor.x + nX - aOldMonitor.x; nY = aNewMonitor.y + nY - aOldMonitor.y; } bool bResize = false; bool bVisible = gtk_widget_get_mapped( m_pWindow ); if( bVisible ) Show( false ); if( eType == SetType::Fullscreen ) { nX = aNewMonitor.x; nY = aNewMonitor.y; nWidth = aNewMonitor.width; nHeight = aNewMonitor.height; bResize = true; // #i110881# for the benefit of compiz set a max size here // else setting to fullscreen fails for unknown reasons m_aMaxSize.setWidth( aNewMonitor.width ); m_aMaxSize.setHeight( aNewMonitor.height ); } if( pSize && eType == SetType::UnFullscreen ) { nX = pSize->Left(); nY = pSize->Top(); nWidth = pSize->GetWidth(); nHeight = pSize->GetHeight(); bResize = true; } if (bResize) { // temporarily re-sizeable if( !(m_nStyle & SalFrameStyleFlags::SIZEABLE) ) gtk_window_set_resizable( GTK_WINDOW(m_pWindow), true ); window_resize(nWidth, nHeight); } gtk_window_move(GTK_WINDOW(m_pWindow), nX, nY); GdkFullscreenMode eMode = bSpanMonitorsWhenFullscreen ? GDK_FULLSCREEN_ON_ALL_MONITORS : GDK_FULLSCREEN_ON_CURRENT_MONITOR; gdk_window_set_fullscreen_mode(widget_get_surface(m_pWindow), eMode); GtkWidget* pMenuBarContainerWidget = m_pSalMenu ? m_pSalMenu->GetMenuBarContainerWidget() : nullptr; if( eType == SetType::Fullscreen ) { if (pMenuBarContainerWidget) gtk_widget_hide(pMenuBarContainerWidget); if (bSpanMonitorsWhenFullscreen) gtk_window_fullscreen(GTK_WINDOW(m_pWindow)); else gtk_window_fullscreen_on_monitor(GTK_WINDOW(m_pWindow), pScreen, nMonitor); } else if( eType == SetType::UnFullscreen ) { if (pMenuBarContainerWidget) gtk_widget_show(pMenuBarContainerWidget); gtk_window_unfullscreen( GTK_WINDOW( m_pWindow ) ); } if( eType == SetType::UnFullscreen && !(m_nStyle & SalFrameStyleFlags::SIZEABLE) ) gtk_window_set_resizable( GTK_WINDOW( m_pWindow ), FALSE ); // FIXME: we should really let gtk+ handle our widget hierarchy ... if( m_pParent && gtk_widget_get_screen( m_pParent->m_pWindow ) != pScreen ) SetParent( nullptr ); std::list< GtkSalFrame* > aChildren = m_aChildren; for (auto const& child : aChildren) child->SetScreen( nNewScreen, SetType::RetainSize ); m_bDefaultPos = m_bDefaultSize = false; updateScreenNumber(); if( bVisible ) Show( true ); #else (void)pSize; // assume restore will restore the original size without our help bool bSpanMonitorsWhenFullscreen = nNewScreen == static_cast(-1); GdkFullscreenMode eMode = bSpanMonitorsWhenFullscreen ? GDK_FULLSCREEN_ON_ALL_MONITORS : GDK_FULLSCREEN_ON_CURRENT_MONITOR; g_object_set(widget_get_surface(m_pWindow), "fullscreen-mode", eMode, nullptr); GtkWidget* pMenuBarContainerWidget = m_pSalMenu ? m_pSalMenu->GetMenuBarContainerWidget() : nullptr; if (eType == SetType::Fullscreen) { if (!(m_nStyle & SalFrameStyleFlags::SIZEABLE)) { // temp make it resizable, restore when unfullscreened gtk_window_set_resizable(GTK_WINDOW(m_pWindow), true); } if (pMenuBarContainerWidget) gtk_widget_hide(pMenuBarContainerWidget); if (bSpanMonitorsWhenFullscreen) gtk_window_fullscreen(GTK_WINDOW(m_pWindow)); else { GdkDisplay* pDisplay = gtk_widget_get_display(m_pWindow); GListModel* pList = gdk_display_get_monitors(pDisplay); GdkMonitor* pMonitor = static_cast(g_list_model_get_item(pList, nNewScreen)); if (!pMonitor) pMonitor = gdk_display_get_monitor_at_surface(pDisplay, widget_get_surface(m_pWindow)); gtk_window_fullscreen_on_monitor(GTK_WINDOW(m_pWindow), pMonitor); } } else if (eType == SetType::UnFullscreen) { if (pMenuBarContainerWidget) gtk_widget_show(pMenuBarContainerWidget); gtk_window_unfullscreen(GTK_WINDOW(m_pWindow)); if (!(m_nStyle & SalFrameStyleFlags::SIZEABLE)) { // restore temp resizability gtk_window_set_resizable(GTK_WINDOW(m_pWindow), false); } } for (auto const& child : m_aChildren) child->SetScreen(nNewScreen, SetType::RetainSize); m_bDefaultPos = m_bDefaultSize = false; updateScreenNumber(); #endif } void GtkSalFrame::SetScreenNumber( unsigned int nNewScreen ) { SetScreen( nNewScreen, SetType::RetainSize ); } void GtkSalFrame::updateWMClass() { if (!DLSYM_GDK_IS_X11_DISPLAY(getGdkDisplay())) return; if (!gtk_widget_get_realized(m_pWindow)) return; OString aResClass = OUStringToOString(m_sWMClass, RTL_TEXTENCODING_ASCII_US); const char *pResClass = !aResClass.isEmpty() ? aResClass.getStr() : SalGenericSystem::getFrameClassName(); XClassHint* pClass = XAllocClassHint(); OString aResName = SalGenericSystem::getFrameResName(); pClass->res_name = const_cast(aResName.getStr()); pClass->res_class = const_cast(pResClass); Display *display = gdk_x11_display_get_xdisplay(getGdkDisplay()); XSetClassHint( display, GtkSalFrame::GetNativeWindowHandle(m_pWindow), pClass ); XFree( pClass ); } void GtkSalFrame::SetApplicationID( const OUString &rWMClass ) { if( rWMClass != m_sWMClass && ! isChild() ) { m_sWMClass = rWMClass; updateWMClass(); for (auto const& child : m_aChildren) child->SetApplicationID(rWMClass); } } void GtkSalFrame::ShowFullScreen( bool bFullScreen, sal_Int32 nScreen ) { m_bFullscreen = bFullScreen; if( !m_pWindow || isChild() ) return; if( bFullScreen ) { m_aRestorePosSize = GetPosAndSize(GTK_WINDOW(m_pWindow)); SetScreen( nScreen, SetType::Fullscreen ); } else { SetScreen( nScreen, SetType::UnFullscreen, !m_aRestorePosSize.IsEmpty() ? &m_aRestorePosSize : nullptr ); m_aRestorePosSize = tools::Rectangle(); } } void GtkSalFrame::SessionManagerInhibit(bool bStart, ApplicationInhibitFlags eType, std::u16string_view sReason, const char* application_id) { guint nWindow(0); std::optional aDisplay; if (DLSYM_GDK_IS_X11_DISPLAY(getGdkDisplay())) { nWindow = GtkSalFrame::GetNativeWindowHandle(m_pWindow); aDisplay = gdk_x11_display_get_xdisplay(getGdkDisplay()); } m_SessionManagerInhibitor.inhibit(bStart, sReason, eType, nWindow, aDisplay, application_id); } void GtkSalFrame::StartPresentation( bool bStart ) { SessionManagerInhibit(bStart, APPLICATION_INHIBIT_IDLE, u"presentation", nullptr); } void GtkSalFrame::SetAlwaysOnTop( bool bOnTop ) { #if !GTK_CHECK_VERSION(4, 0, 0) if( m_pWindow ) gtk_window_set_keep_above( GTK_WINDOW( m_pWindow ), bOnTop ); #else (void)bOnTop; #endif } static guint32 nLastUserInputTime = GDK_CURRENT_TIME; guint32 GtkSalFrame::GetLastInputEventTime() { return nLastUserInputTime; } void GtkSalFrame::UpdateLastInputEventTime(guint32 nUserInputTime) { //gtk3 can generate a synthetic crossing event with a useless 0 //(GDK_CURRENT_TIME) timestamp on showing a menu from the main //menubar, which is unhelpful, so ignore the 0 timestamps if (nUserInputTime == GDK_CURRENT_TIME) return; nLastUserInputTime = nUserInputTime; } void GtkSalFrame::ToTop( SalFrameToTop nFlags ) { if( !m_pWindow ) return; if( isChild( false ) ) GrabFocus(); else if( gtk_widget_get_mapped( m_pWindow ) ) { auto nTimestamp = GetLastInputEventTime(); #ifdef GDK_WINDOWING_X11 GdkDisplay *pDisplay = GtkSalFrame::getGdkDisplay(); if (DLSYM_GDK_IS_X11_DISPLAY(pDisplay)) nTimestamp = gdk_x11_display_get_user_time(pDisplay); #endif if (!(nFlags & SalFrameToTop::GrabFocusOnly)) gtk_window_present_with_time(GTK_WINDOW(m_pWindow), nTimestamp); #if !GTK_CHECK_VERSION(4, 0, 0) else gdk_window_focus(widget_get_surface(m_pWindow), nTimestamp); #endif GrabFocus(); } else { if( nFlags & SalFrameToTop::RestoreWhenMin ) gtk_window_present( GTK_WINDOW(m_pWindow) ); } } void GtkSalFrame::SetPointer( PointerStyle ePointerStyle ) { if( !m_pWindow || ePointerStyle == m_ePointerStyle ) return; m_ePointerStyle = ePointerStyle; GdkCursor *pCursor = getDisplay()->getCursor( ePointerStyle ); widget_set_cursor(GTK_WIDGET(m_pWindow), pCursor); } void GtkSalFrame::grabPointer( bool bGrab, bool bKeyboardAlso, bool bOwnerEvents ) { if (bGrab) { // tdf#135779 move focus back inside usual input window out of any // other gtk widgets before grabbing the pointer GrabFocus(); } static const char* pEnv = getenv( "SAL_NO_MOUSEGRABS" ); if (pEnv && *pEnv) return; if (!m_pWindow) return; #if !GTK_CHECK_VERSION(4, 0, 0) GdkSeat* pSeat = gdk_display_get_default_seat(getGdkDisplay()); if (bGrab) { GdkSeatCapabilities eCapability = bKeyboardAlso ? GDK_SEAT_CAPABILITY_ALL : GDK_SEAT_CAPABILITY_ALL_POINTING; gdk_seat_grab(pSeat, widget_get_surface(getMouseEventWidget()), eCapability, bOwnerEvents, nullptr, nullptr, nullptr, nullptr); } else { gdk_seat_ungrab(pSeat); } #else (void)bKeyboardAlso; (void)bOwnerEvents; #endif } void GtkSalFrame::CaptureMouse( bool bCapture ) { getDisplay()->CaptureMouse( bCapture ? this : nullptr ); } void GtkSalFrame::SetPointerPos( tools::Long nX, tools::Long nY ) { #if !GTK_CHECK_VERSION(4, 0, 0) GtkSalFrame* pFrame = this; while( pFrame && pFrame->isChild( false ) ) pFrame = pFrame->m_pParent; if( ! pFrame ) return; GdkScreen *pScreen = gtk_widget_get_screen(pFrame->m_pWindow); GdkDisplay *pDisplay = gdk_screen_get_display( pScreen ); /* when the application tries to center the mouse in the dialog the * window isn't mapped already. So use coordinates relative to the root window. */ unsigned int nWindowLeft = maGeometry.x() + nX; unsigned int nWindowTop = maGeometry.y() + nY; GdkDeviceManager* pManager = gdk_display_get_device_manager(pDisplay); gdk_device_warp(gdk_device_manager_get_client_pointer(pManager), pScreen, nWindowLeft, nWindowTop); // #i38648# ask for the next motion hint gint x, y; GdkModifierType mask; gdk_window_get_pointer( widget_get_surface(pFrame->m_pWindow) , &x, &y, &mask ); #else (void)nX; (void)nY; #endif } void GtkSalFrame::Flush() { gdk_display_flush( getGdkDisplay() ); } void GtkSalFrame::KeyCodeToGdkKey(const vcl::KeyCode& rKeyCode, guint* pGdkKeyCode, GdkModifierType *pGdkModifiers) { if ( pGdkKeyCode == nullptr || pGdkModifiers == nullptr ) return; // Get GDK key modifiers GdkModifierType nModifiers = GdkModifierType(0); if ( rKeyCode.IsShift() ) nModifiers = static_cast( nModifiers | GDK_SHIFT_MASK ); if ( rKeyCode.IsMod1() ) nModifiers = static_cast( nModifiers | GDK_CONTROL_MASK ); if ( rKeyCode.IsMod2() ) nModifiers = static_cast( nModifiers | GDK_ALT_MASK ); *pGdkModifiers = nModifiers; // Get GDK keycode. guint nKeyCode = 0; guint nCode = rKeyCode.GetCode(); if ( nCode >= KEY_0 && nCode <= KEY_9 ) nKeyCode = ( nCode - KEY_0 ) + GDK_KEY_0; else if ( nCode >= KEY_A && nCode <= KEY_Z ) nKeyCode = ( nCode - KEY_A ) + GDK_KEY_A; else if ( nCode >= KEY_F1 && nCode <= KEY_F26 ) nKeyCode = ( nCode - KEY_F1 ) + GDK_KEY_F1; else { switch (nCode) { case KEY_DOWN: nKeyCode = GDK_KEY_Down; break; case KEY_UP: nKeyCode = GDK_KEY_Up; break; case KEY_LEFT: nKeyCode = GDK_KEY_Left; break; case KEY_RIGHT: nKeyCode = GDK_KEY_Right; break; case KEY_HOME: nKeyCode = GDK_KEY_Home; break; case KEY_END: nKeyCode = GDK_KEY_End; break; case KEY_PAGEUP: nKeyCode = GDK_KEY_Page_Up; break; case KEY_PAGEDOWN: nKeyCode = GDK_KEY_Page_Down; break; case KEY_RETURN: nKeyCode = GDK_KEY_Return; break; case KEY_ESCAPE: nKeyCode = GDK_KEY_Escape; break; case KEY_TAB: nKeyCode = GDK_KEY_Tab; break; case KEY_BACKSPACE: nKeyCode = GDK_KEY_BackSpace; break; case KEY_SPACE: nKeyCode = GDK_KEY_space; break; case KEY_INSERT: nKeyCode = GDK_KEY_Insert; break; case KEY_DELETE: nKeyCode = GDK_KEY_Delete; break; case KEY_ADD: nKeyCode = GDK_KEY_plus; break; case KEY_SUBTRACT: nKeyCode = GDK_KEY_minus; break; case KEY_MULTIPLY: nKeyCode = GDK_KEY_asterisk; break; case KEY_DIVIDE: nKeyCode = GDK_KEY_slash; break; case KEY_POINT: nKeyCode = GDK_KEY_period; break; case KEY_COMMA: nKeyCode = GDK_KEY_comma; break; case KEY_LESS: nKeyCode = GDK_KEY_less; break; case KEY_GREATER: nKeyCode = GDK_KEY_greater; break; case KEY_EQUAL: nKeyCode = GDK_KEY_equal; break; case KEY_FIND: nKeyCode = GDK_KEY_Find; break; case KEY_CONTEXTMENU: nKeyCode = GDK_KEY_Menu; break; case KEY_HELP: nKeyCode = GDK_KEY_Help; break; case KEY_UNDO: nKeyCode = GDK_KEY_Undo; break; case KEY_REPEAT: nKeyCode = GDK_KEY_Redo; break; case KEY_DECIMAL: nKeyCode = GDK_KEY_KP_Decimal; break; case KEY_TILDE: nKeyCode = GDK_KEY_asciitilde; break; case KEY_QUOTELEFT: nKeyCode = GDK_KEY_quoteleft; break; case KEY_BRACKETLEFT: nKeyCode = GDK_KEY_bracketleft; break; case KEY_BRACKETRIGHT: nKeyCode = GDK_KEY_bracketright; break; case KEY_SEMICOLON: nKeyCode = GDK_KEY_semicolon; break; case KEY_QUOTERIGHT: nKeyCode = GDK_KEY_quoteright; break; case KEY_RIGHTCURLYBRACKET: nKeyCode = GDK_KEY_braceright; break; case KEY_NUMBERSIGN: nKeyCode = GDK_KEY_numbersign; break; case KEY_XF86FORWARD: nKeyCode = GDK_KEY_Forward; break; case KEY_XF86BACK: nKeyCode = GDK_KEY_Back; break; case KEY_COLON: nKeyCode = GDK_KEY_colon; break; // Special cases case KEY_COPY: nKeyCode = GDK_KEY_Copy; break; case KEY_CUT: nKeyCode = GDK_KEY_Cut; break; case KEY_PASTE: nKeyCode = GDK_KEY_Paste; break; case KEY_OPEN: nKeyCode = GDK_KEY_Open; break; } } *pGdkKeyCode = nKeyCode; } OUString GtkSalFrame::GetKeyName( sal_uInt16 nKeyCode ) { guint nGtkKeyCode; GdkModifierType nGtkModifiers; KeyCodeToGdkKey(nKeyCode, &nGtkKeyCode, &nGtkModifiers ); gchar* pName = gtk_accelerator_get_label(nGtkKeyCode, nGtkModifiers); OUString aRet = OStringToOUString(pName, RTL_TEXTENCODING_UTF8); g_free(pName); return aRet; } GdkDisplay *GtkSalFrame::getGdkDisplay() { return GetGtkSalData()->GetGdkDisplay(); } GtkSalDisplay *GtkSalFrame::getDisplay() { return GetGtkSalData()->GetGtkDisplay(); } SalFrame::SalPointerState GtkSalFrame::GetPointerState() { SalPointerState aState; #if !GTK_CHECK_VERSION(4, 0, 0) GdkScreen* pScreen; gint x, y; GdkModifierType aMask; gdk_display_get_pointer( getGdkDisplay(), &pScreen, &x, &y, &aMask ); aState.maPos = Point( x - maGeometry.x(), y - maGeometry.y() ); aState.mnState = GetMouseModCode( aMask ); #endif return aState; } KeyIndicatorState GtkSalFrame::GetIndicatorState() { KeyIndicatorState nState = KeyIndicatorState::NONE; #if !GTK_CHECK_VERSION(4, 0, 0) GdkKeymap *pKeyMap = gdk_keymap_get_for_display(getGdkDisplay()); if (gdk_keymap_get_caps_lock_state(pKeyMap)) nState |= KeyIndicatorState::CAPSLOCK; if (gdk_keymap_get_num_lock_state(pKeyMap)) nState |= KeyIndicatorState::NUMLOCK; if (gdk_keymap_get_scroll_lock_state(pKeyMap)) nState |= KeyIndicatorState::SCROLLLOCK; #endif return nState; } void GtkSalFrame::SimulateKeyPress( sal_uInt16 nKeyCode ) { g_warning ("missing simulate keypress %d", nKeyCode); } void GtkSalFrame::SetInputContext( SalInputContext* pContext ) { if( ! pContext ) return; if( ! (pContext->mnOptions & InputContextFlags::Text) ) return; // create a new im context if( ! m_pIMHandler ) m_pIMHandler.reset( new IMHandler( this ) ); } void GtkSalFrame::EndExtTextInput( EndExtTextInputFlags nFlags ) { if( m_pIMHandler ) m_pIMHandler->endExtTextInput( nFlags ); } bool GtkSalFrame::MapUnicodeToKeyCode( sal_Unicode , LanguageType , vcl::KeyCode& ) { // not supported yet return false; } LanguageType GtkSalFrame::GetInputLanguage() { return LANGUAGE_DONTKNOW; } void GtkSalFrame::UpdateSettings( AllSettings& rSettings ) { if( ! m_pWindow ) return; GtkSalGraphics* pGraphics = m_pGraphics.get(); bool bFreeGraphics = false; if( ! pGraphics ) { pGraphics = static_cast(AcquireGraphics()); if ( !pGraphics ) { SAL_WARN("vcl.gtk3", "Could not get graphics - unable to update settings"); return; } bFreeGraphics = true; } pGraphics->UpdateSettings( rSettings ); if( bFreeGraphics ) ReleaseGraphics( pGraphics ); } void GtkSalFrame::Beep() { gdk_display_beep( getGdkDisplay() ); } const SystemEnvData* GtkSalFrame::GetSystemData() const { return &m_aSystemData; } void GtkSalFrame::ResolveWindowHandle(SystemEnvData& rData) const { if (!rData.pWidget) return; SAL_WARN("vcl.gtk3", "its undesirable to need the NativeWindowHandle, see tdf#139609"); rData.SetWindowHandle(GetNativeWindowHandle(static_cast(rData.pWidget))); } void GtkSalFrame::SetParent( SalFrame* pNewParent ) { GtkWindow* pWindow = GTK_IS_WINDOW(m_pWindow) ? GTK_WINDOW(m_pWindow) : nullptr; if (m_pParent) { if (pWindow && GTK_IS_WINDOW(m_pParent->m_pWindow)) gtk_window_group_remove_window(gtk_window_get_group(GTK_WINDOW(m_pParent->m_pWindow)), pWindow); m_pParent->m_aChildren.remove(this); } m_pParent = static_cast(pNewParent); if (m_pParent) { m_pParent->m_aChildren.push_back(this); if (pWindow && GTK_IS_WINDOW(m_pParent->m_pWindow)) gtk_window_group_add_window(gtk_window_get_group(GTK_WINDOW(m_pParent->m_pWindow)), pWindow); } if (!isChild() && pWindow) gtk_window_set_transient_for( pWindow, (m_pParent && ! m_pParent->isChild(true,false)) ? GTK_WINDOW(m_pParent->m_pWindow) : nullptr ); } void GtkSalFrame::SetPluginParent( SystemParentData* ) { //FIXME: no SetPluginParent impl. for gtk3 } void GtkSalFrame::ResetClipRegion() { #if !GTK_CHECK_VERSION(4, 0, 0) if( m_pWindow ) gdk_window_shape_combine_region( widget_get_surface( m_pWindow ), nullptr, 0, 0 ); #endif } void GtkSalFrame::BeginSetClipRegion( sal_uInt32 ) { if( m_pRegion ) cairo_region_destroy( m_pRegion ); m_pRegion = cairo_region_create(); } void GtkSalFrame::UnionClipRegion( tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight ) { if( m_pRegion ) { GdkRectangle aRect; aRect.x = nX; aRect.y = nY; aRect.width = nWidth; aRect.height = nHeight; cairo_region_union_rectangle( m_pRegion, &aRect ); } } void GtkSalFrame::EndSetClipRegion() { #if !GTK_CHECK_VERSION(4, 0, 0) if( m_pWindow && m_pRegion ) gdk_window_shape_combine_region( widget_get_surface(m_pWindow), m_pRegion, 0, 0 ); #endif } void GtkSalFrame::PositionByToolkit(const tools::Rectangle& rRect, FloatWinPopupFlags nFlags) { if ( ImplGetSVData()->maNWFData.mbCanDetermineWindowPosition && // tdf#152155 cannot determine window positions of popup listboxes on sidebar nFlags != LISTBOX_FLOATWINPOPUPFLAGS ) { return; } m_aFloatRect = rRect; m_nFloatFlags = nFlags; m_bFloatPositioned = true; } void GtkSalFrame::SetModal(bool bModal) { if (!m_pWindow) return; gtk_window_set_modal(GTK_WINDOW(m_pWindow), bModal); } bool GtkSalFrame::GetModal() const { if (!m_pWindow) return false; return gtk_window_get_modal(GTK_WINDOW(m_pWindow)); } gboolean GtkSalFrame::signalTooltipQuery(GtkWidget*, gint /*x*/, gint /*y*/, gboolean /*keyboard_mode*/, GtkTooltip *tooltip, gpointer frame) { GtkSalFrame* pThis = static_cast(frame); if (pThis->m_aTooltip.isEmpty() || pThis->m_bTooltipBlocked) return false; gtk_tooltip_set_text(tooltip, OUStringToOString(pThis->m_aTooltip, RTL_TEXTENCODING_UTF8).getStr()); GdkRectangle aHelpArea; aHelpArea.x = pThis->m_aHelpArea.Left(); aHelpArea.y = pThis->m_aHelpArea.Top(); aHelpArea.width = pThis->m_aHelpArea.GetWidth(); aHelpArea.height = pThis->m_aHelpArea.GetHeight(); if (AllSettings::GetLayoutRTL()) aHelpArea.x = pThis->maGeometry.width()-aHelpArea.width-1-aHelpArea.x; gtk_tooltip_set_tip_area(tooltip, &aHelpArea); return true; } bool GtkSalFrame::ShowTooltip(const OUString& rHelpText, const tools::Rectangle& rHelpArea) { m_aTooltip = rHelpText; m_aHelpArea = rHelpArea; gtk_widget_trigger_tooltip_query(getMouseEventWidget()); return true; } void GtkSalFrame::BlockTooltip() { m_bTooltipBlocked = true; } void GtkSalFrame::UnblockTooltip() { m_bTooltipBlocked = false; } void GtkSalFrame::HideTooltip() { m_aTooltip.clear(); GtkWidget* pEventWidget = getMouseEventWidget(); gtk_widget_trigger_tooltip_query(pEventWidget); } namespace { void set_pointing_to(GtkPopover *pPopOver, vcl::Window* pParent, const tools::Rectangle& rHelpArea, const SalFrameGeometry& rGeometry) { GdkRectangle aRect; aRect.x = FloatingWindow::ImplConvertToAbsPos(pParent, rHelpArea).Left() - rGeometry.x(); aRect.y = rHelpArea.Top(); aRect.width = 1; aRect.height = 1; GtkPositionType ePos = gtk_popover_get_position(pPopOver); switch (ePos) { case GTK_POS_BOTTOM: case GTK_POS_TOP: aRect.width = rHelpArea.GetWidth(); break; case GTK_POS_RIGHT: case GTK_POS_LEFT: aRect.height = rHelpArea.GetHeight(); break; } gtk_popover_set_pointing_to(pPopOver, &aRect); } } void* GtkSalFrame::ShowPopover(const OUString& rHelpText, vcl::Window* pParent, const tools::Rectangle& rHelpArea, QuickHelpFlags nFlags) { #if !GTK_CHECK_VERSION(4, 0, 0) GtkWidget *pWidget = gtk_popover_new(getMouseEventWidget()); #else GtkWidget *pWidget = gtk_popover_new(); gtk_widget_set_parent(pWidget, getMouseEventWidget()); #endif OString sUTF = OUStringToOString(rHelpText, RTL_TEXTENCODING_UTF8); GtkWidget *pLabel = gtk_label_new(sUTF.getStr()); #if !GTK_CHECK_VERSION(4, 0, 0) gtk_container_add(GTK_CONTAINER(pWidget), pLabel); #else gtk_popover_set_child(GTK_POPOVER(pWidget), pLabel); #endif if (nFlags & QuickHelpFlags::Top) gtk_popover_set_position(GTK_POPOVER(pWidget), GTK_POS_BOTTOM); else if (nFlags & QuickHelpFlags::Bottom) gtk_popover_set_position(GTK_POPOVER(pWidget), GTK_POS_TOP); else if (nFlags & QuickHelpFlags::Left) gtk_popover_set_position(GTK_POPOVER(pWidget), GTK_POS_RIGHT); else if (nFlags & QuickHelpFlags::Right) gtk_popover_set_position(GTK_POPOVER(pWidget), GTK_POS_LEFT); set_pointing_to(GTK_POPOVER(pWidget), pParent, rHelpArea, maGeometry); #if !GTK_CHECK_VERSION(4, 0, 0) gtk_popover_set_modal(GTK_POPOVER(pWidget), false); #else gtk_popover_set_autohide(GTK_POPOVER(pWidget), false); #endif gtk_widget_show(pLabel); gtk_widget_show(pWidget); return pWidget; } bool GtkSalFrame::UpdatePopover(void* nId, const OUString& rHelpText, vcl::Window* pParent, const tools::Rectangle& rHelpArea) { GtkWidget *pWidget = static_cast(nId); set_pointing_to(GTK_POPOVER(pWidget), pParent, rHelpArea, maGeometry); #if !GTK_CHECK_VERSION(4, 0, 0) GtkWidget *pLabel = gtk_bin_get_child(GTK_BIN(pWidget)); #else GtkWidget *pLabel = gtk_popover_get_child(GTK_POPOVER(pWidget)); #endif OString sUTF = OUStringToOString(rHelpText, RTL_TEXTENCODING_UTF8); gtk_label_set_text(GTK_LABEL(pLabel), sUTF.getStr()); return true; } bool GtkSalFrame::HidePopover(void* nId) { GtkWidget *pWidget = static_cast(nId); #if !GTK_CHECK_VERSION(4, 0, 0) gtk_widget_destroy(pWidget); #else g_clear_pointer(&pWidget, gtk_widget_unparent); #endif return true; } void GtkSalFrame::addGrabLevel() { #if !GTK_CHECK_VERSION(4, 0, 0) if (m_nGrabLevel == 0) gtk_grab_add(getMouseEventWidget()); #endif ++m_nGrabLevel; } void GtkSalFrame::removeGrabLevel() { if (m_nGrabLevel > 0) { --m_nGrabLevel; #if !GTK_CHECK_VERSION(4, 0, 0) if (m_nGrabLevel == 0) gtk_grab_remove(getMouseEventWidget()); #endif } } void GtkSalFrame::closePopup() { if (!m_nFloats) return; ImplSVData* pSVData = ImplGetSVData(); if (!pSVData->mpWinData->mpFirstFloat) return; if (pSVData->mpWinData->mpFirstFloat->ImplGetFrame() != this) return; pSVData->mpWinData->mpFirstFloat->EndPopupMode(FloatWinPopupEndFlags::Cancel | FloatWinPopupEndFlags::CloseAll); } #if !GTK_CHECK_VERSION(4, 0, 0) namespace { //tdf#117981 translate embedded video window mouse events to parent coordinates void translate_coords(GdkWindow* pSourceWindow, GtkWidget* pTargetWidget, int& rEventX, int& rEventY) { gpointer user_data=nullptr; gdk_window_get_user_data(pSourceWindow, &user_data); GtkWidget* pRealEventWidget = static_cast(user_data); if (pRealEventWidget) { gtk_coord fX(0.0), fY(0.0); gtk_widget_translate_coordinates(pRealEventWidget, pTargetWidget, rEventX, rEventY, &fX, &fY); rEventX = fX; rEventY = fY; } } } #endif void GtkSalFrame::GrabFocus() { GtkWidget* pGrabWidget; #if !GTK_CHECK_VERSION(4, 0, 0) if (GTK_IS_EVENT_BOX(m_pWindow)) pGrabWidget = GTK_WIDGET(m_pWindow); else pGrabWidget = GTK_WIDGET(m_pFixedContainer); // m_nSetFocusSignalId is 0 for the DisallowCycleFocusOut case where // we don't allow focus to enter the toplevel, but expect it to // stay in some embedded native gtk widget if (!gtk_widget_get_can_focus(pGrabWidget) && m_nSetFocusSignalId) gtk_widget_set_can_focus(pGrabWidget, true); #else pGrabWidget = GTK_WIDGET(m_pFixedContainer); #endif if (!gtk_widget_has_focus(pGrabWidget)) { gtk_widget_grab_focus(pGrabWidget); if (m_pIMHandler) m_pIMHandler->focusChanged(true); } } bool GtkSalFrame::DrawingAreaButton(SalEvent nEventType, int nEventX, int nEventY, int nButton, guint32 nTime, guint nState) { UpdateLastInputEventTime(nTime); SalMouseEvent aEvent; switch(nButton) { case 1: aEvent.mnButton = MOUSE_LEFT; break; case 2: aEvent.mnButton = MOUSE_MIDDLE; break; case 3: aEvent.mnButton = MOUSE_RIGHT; break; default: return false; } aEvent.mnTime = nTime; aEvent.mnX = nEventX; aEvent.mnY = nEventY; aEvent.mnCode = GetMouseModCode(nState); if( AllSettings::GetLayoutRTL() ) aEvent.mnX = maGeometry.width()-1-aEvent.mnX; CallCallbackExc(nEventType, &aEvent); return true; } #if !GTK_CHECK_VERSION(4, 0, 0) void GtkSalFrame::UpdateGeometryFromEvent(int x_root, int y_root, int nEventX, int nEventY) { //tdf#151509 don't overwrite geometry for system children if (m_nStyle & SalFrameStyleFlags::SYSTEMCHILD) return; int frame_x = x_root - nEventX; int frame_y = y_root - nEventY; if (m_bGeometryIsProvisional || frame_x != maGeometry.x() || frame_y != maGeometry.y()) { m_bGeometryIsProvisional = false; maGeometry.setPos({ frame_x, frame_y }); ImplSVData* pSVData = ImplGetSVData(); if (pSVData->maNWFData.mbCanDetermineWindowPosition) CallCallbackExc(SalEvent::Move, nullptr); } } gboolean GtkSalFrame::signalButton(GtkWidget*, GdkEventButton* pEvent, gpointer frame) { GtkSalFrame* pThis = static_cast(frame); GtkWidget* pEventWidget = pThis->getMouseEventWidget(); bool bDifferentEventWindow = pEvent->window != widget_get_surface(pEventWidget); if (pEvent->type == GDK_BUTTON_PRESS) { // tdf#120764 It isn't allowed under wayland to have two visible popups that share // the same top level parent. The problem is that since gtk 3.24 tooltips are also // implemented as popups, which means that we cannot show any popup if there is a // visible tooltip. In fact, gtk will hide the tooltip by itself after this handler, // in case of a button press event. But if we intend to show a popup on button press // it will be too late, so just do it here: pThis->HideTooltip(); // focus on click if (!bDifferentEventWindow) pThis->GrabFocus(); } SalEvent nEventType = SalEvent::NONE; switch( pEvent->type ) { case GDK_BUTTON_PRESS: nEventType = SalEvent::MouseButtonDown; break; case GDK_BUTTON_RELEASE: nEventType = SalEvent::MouseButtonUp; break; default: return false; } vcl::DeletionListener aDel( pThis ); if (pThis->isFloatGrabWindow()) { //rhbz#1505379 if the window that got the event isn't our one, or there's none //of our windows under the mouse then close this popup window if (bDifferentEventWindow || gdk_device_get_window_at_position(pEvent->device, nullptr, nullptr) == nullptr) { if (pEvent->type == GDK_BUTTON_PRESS) pThis->closePopup(); else if (pEvent->type == GDK_BUTTON_RELEASE) return true; } } int nEventX = pEvent->x; int nEventY = pEvent->y; if (bDifferentEventWindow) translate_coords(pEvent->window, pEventWidget, nEventX, nEventY); if (!aDel.isDeleted()) pThis->UpdateGeometryFromEvent(pEvent->x_root, pEvent->y_root, nEventX, nEventY); bool bRet = false; if (!aDel.isDeleted()) { bRet = pThis->DrawingAreaButton(nEventType, nEventX, nEventY, pEvent->button, pEvent->time, pEvent->state); } return bRet; } #else void GtkSalFrame::gesturePressed(GtkGestureClick* pGesture, int /*n_press*/, gdouble x, gdouble y, gpointer frame) { GtkSalFrame* pThis = static_cast(frame); pThis->gestureButton(pGesture, SalEvent::MouseButtonDown, x, y); } void GtkSalFrame::gestureReleased(GtkGestureClick* pGesture, int /*n_press*/, gdouble x, gdouble y, gpointer frame) { GtkSalFrame* pThis = static_cast(frame); pThis->gestureButton(pGesture, SalEvent::MouseButtonUp, x, y); } void GtkSalFrame::gestureButton(GtkGestureClick* pGesture, SalEvent nEventType, gdouble x, gdouble y) { GdkEvent* pEvent = gtk_event_controller_get_current_event(GTK_EVENT_CONTROLLER(pGesture)); GdkModifierType eType = gtk_event_controller_get_current_event_state(GTK_EVENT_CONTROLLER(pGesture)); int nButton = gtk_gesture_single_get_current_button(GTK_GESTURE_SINGLE(pGesture)); DrawingAreaButton(nEventType, x, y, nButton, gdk_event_get_time(pEvent), eType); } #endif #if !GTK_CHECK_VERSION(4, 0, 0) void GtkSalFrame::LaunchAsyncScroll(GdkEvent const * pEvent) { //if we don't match previous pending states, flush that queue now if (!m_aPendingScrollEvents.empty() && pEvent->scroll.state != m_aPendingScrollEvents.back()->scroll.state) { m_aSmoothScrollIdle.Stop(); m_aSmoothScrollIdle.Invoke(); assert(m_aPendingScrollEvents.empty()); } //add scroll event to queue m_aPendingScrollEvents.push_back(gdk_event_copy(pEvent)); if (!m_aSmoothScrollIdle.IsActive()) m_aSmoothScrollIdle.Start(); } #endif void GtkSalFrame::DrawingAreaScroll(double delta_x, double delta_y, int nEventX, int nEventY, guint32 nTime, guint nState) { SalWheelMouseEvent aEvent; aEvent.mnTime = nTime; aEvent.mnX = nEventX; // --- RTL --- (mirror mouse pos) if (AllSettings::GetLayoutRTL()) aEvent.mnX = maGeometry.width() - 1 - aEvent.mnX; aEvent.mnY = nEventY; aEvent.mnCode = GetMouseModCode(nState); // rhbz#1344042 "Traditionally" in gtk3 we took a single up/down event as // equating to 3 scroll lines and a delta of 120. So scale the delta here // by 120 where a single mouse wheel click is an incoming delta_x of 1 // and divide that by 40 to get the number of scroll lines if (delta_x != 0.0) { aEvent.mnDelta = -delta_x * 120; aEvent.mnNotchDelta = aEvent.mnDelta < 0 ? -1 : +1; if (aEvent.mnDelta == 0) aEvent.mnDelta = aEvent.mnNotchDelta; aEvent.mbHorz = true; aEvent.mnScrollLines = std::abs(aEvent.mnDelta) / 40.0; CallCallbackExc(SalEvent::WheelMouse, &aEvent); } if (delta_y != 0.0) { aEvent.mnDelta = -delta_y * 120; aEvent.mnNotchDelta = aEvent.mnDelta < 0 ? -1 : +1; if (aEvent.mnDelta == 0) aEvent.mnDelta = aEvent.mnNotchDelta; aEvent.mbHorz = false; aEvent.mnScrollLines = std::abs(aEvent.mnDelta) / 40.0; CallCallbackExc(SalEvent::WheelMouse, &aEvent); } } #if !GTK_CHECK_VERSION(4, 0, 0) IMPL_LINK_NOARG(GtkSalFrame, AsyncScroll, Timer *, void) { assert(!m_aPendingScrollEvents.empty()); GdkEvent* pEvent = m_aPendingScrollEvents.back(); auto nEventX = pEvent->scroll.x; auto nEventY = pEvent->scroll.y; auto nTime = pEvent->scroll.time; auto nState = pEvent->scroll.state; double delta_x(0.0), delta_y(0.0); for (auto pSubEvent : m_aPendingScrollEvents) { delta_x += pSubEvent->scroll.delta_x; delta_y += pSubEvent->scroll.delta_y; gdk_event_free(pSubEvent); } m_aPendingScrollEvents.clear(); DrawingAreaScroll(delta_x, delta_y, nEventX, nEventY, nTime, nState); } #endif #if !GTK_CHECK_VERSION(4, 0, 0) SalWheelMouseEvent GtkSalFrame::GetWheelEvent(const GdkEventScroll& rEvent) { SalWheelMouseEvent aEvent; aEvent.mnTime = rEvent.time; aEvent.mnX = static_cast(rEvent.x); aEvent.mnY = static_cast(rEvent.y); aEvent.mnCode = GetMouseModCode(rEvent.state); switch (rEvent.direction) { case GDK_SCROLL_UP: aEvent.mnDelta = 120; aEvent.mnNotchDelta = 1; aEvent.mnScrollLines = 3; aEvent.mbHorz = false; break; case GDK_SCROLL_DOWN: aEvent.mnDelta = -120; aEvent.mnNotchDelta = -1; aEvent.mnScrollLines = 3; aEvent.mbHorz = false; break; case GDK_SCROLL_LEFT: aEvent.mnDelta = 120; aEvent.mnNotchDelta = 1; aEvent.mnScrollLines = 3; aEvent.mbHorz = true; break; case GDK_SCROLL_RIGHT: aEvent.mnDelta = -120; aEvent.mnNotchDelta = -1; aEvent.mnScrollLines = 3; aEvent.mbHorz = true; break; default: break; } return aEvent; } gboolean GtkSalFrame::signalScroll(GtkWidget*, GdkEvent* pInEvent, gpointer frame) { GdkEventScroll& rEvent = pInEvent->scroll; UpdateLastInputEventTime(rEvent.time); GtkSalFrame* pThis = static_cast(frame); if (rEvent.direction == GDK_SCROLL_SMOOTH) { pThis->LaunchAsyncScroll(pInEvent); return true; } //if we have smooth scrolling previous pending states, flush that queue now if (!pThis->m_aPendingScrollEvents.empty()) { pThis->m_aSmoothScrollIdle.Stop(); pThis->m_aSmoothScrollIdle.Invoke(); assert(pThis->m_aPendingScrollEvents.empty()); } SalWheelMouseEvent aEvent(GetWheelEvent(rEvent)); // --- RTL --- (mirror mouse pos) if (AllSettings::GetLayoutRTL()) aEvent.mnX = pThis->maGeometry.width() - 1 - aEvent.mnX; pThis->CallCallbackExc(SalEvent::WheelMouse, &aEvent); return true; } #else gboolean GtkSalFrame::signalScroll(GtkEventControllerScroll* pController, double delta_x, double delta_y, gpointer frame) { GtkSalFrame* pThis = static_cast(frame); GdkEvent* pEvent = gtk_event_controller_get_current_event(GTK_EVENT_CONTROLLER(pController)); GdkModifierType eState = gtk_event_controller_get_current_event_state(GTK_EVENT_CONTROLLER(pController)); auto nTime = gdk_event_get_time(pEvent); UpdateLastInputEventTime(nTime); double nEventX(0.0), nEventY(0.0); gdk_event_get_position(pEvent, &nEventX, &nEventY); pThis->DrawingAreaScroll(delta_x, delta_y, nEventX, nEventY, nTime, eState); return true; } gboolean GtkSalFrame::event_controller_scroll_forward(GtkEventControllerScroll* pController, double delta_x, double delta_y) { return GtkSalFrame::signalScroll(pController, delta_x, delta_y, this); } #endif void GtkSalFrame::gestureSwipe(GtkGestureSwipe* gesture, gdouble velocity_x, gdouble velocity_y, gpointer frame) { gdouble x, y; GdkEventSequence *sequence = gtk_gesture_single_get_current_sequence(GTK_GESTURE_SINGLE(gesture)); //I feel I want the first point of the sequence, not the last point which //the docs say this gives, but for the moment assume we start and end //within the same vcl window if (gtk_gesture_get_point(GTK_GESTURE(gesture), sequence, &x, &y)) { SalGestureSwipeEvent aEvent; aEvent.mnVelocityX = velocity_x; aEvent.mnVelocityY = velocity_y; aEvent.mnX = x; aEvent.mnY = y; GtkSalFrame* pThis = static_cast(frame); pThis->CallCallbackExc(SalEvent::GestureSwipe, &aEvent); } } void GtkSalFrame::gestureLongPress(GtkGestureLongPress* gesture, gdouble x, gdouble y, gpointer frame) { GdkEventSequence *sequence = gtk_gesture_single_get_current_sequence(GTK_GESTURE_SINGLE(gesture)); if (gtk_gesture_get_point(GTK_GESTURE(gesture), sequence, &x, &y)) { SalGestureLongPressEvent aEvent; aEvent.mnX = x; aEvent.mnY = y; GtkSalFrame* pThis = static_cast(frame); pThis->CallCallbackExc(SalEvent::GestureLongPress, &aEvent); } } void GtkSalFrame::DrawingAreaMotion(int nEventX, int nEventY, guint32 nTime, guint nState) { UpdateLastInputEventTime(nTime); SalMouseEvent aEvent; aEvent.mnTime = nTime; aEvent.mnX = nEventX; aEvent.mnY = nEventY; aEvent.mnCode = GetMouseModCode(nState); aEvent.mnButton = 0; if( AllSettings::GetLayoutRTL() ) aEvent.mnX = maGeometry.width() - 1 - aEvent.mnX; CallCallbackExc(SalEvent::MouseMove, &aEvent); } #if GTK_CHECK_VERSION(4, 0, 0) void GtkSalFrame::signalMotion(GtkEventControllerMotion *pController, double x, double y, gpointer frame) { GtkSalFrame* pThis = static_cast(frame); GdkEvent* pEvent = gtk_event_controller_get_current_event(GTK_EVENT_CONTROLLER(pController)); GdkModifierType eType = gtk_event_controller_get_current_event_state(GTK_EVENT_CONTROLLER(pController)); pThis->DrawingAreaMotion(x, y, gdk_event_get_time(pEvent), eType); } #else gboolean GtkSalFrame::signalMotion( GtkWidget*, GdkEventMotion* pEvent, gpointer frame ) { GtkSalFrame* pThis = static_cast(frame); GtkWidget* pEventWidget = pThis->getMouseEventWidget(); bool bDifferentEventWindow = pEvent->window != widget_get_surface(pEventWidget); //If a menu, e.g. font name dropdown, is open, then under wayland moving the //mouse in the top left corner of the toplevel window in a //0,0,float-width,float-height area generates motion events which are //delivered to the dropdown if (pThis->isFloatGrabWindow() && bDifferentEventWindow) return true; vcl::DeletionListener aDel( pThis ); int nEventX = pEvent->x; int nEventY = pEvent->y; if (bDifferentEventWindow) translate_coords(pEvent->window, pEventWidget, nEventX, nEventY); pThis->UpdateGeometryFromEvent(pEvent->x_root, pEvent->y_root, nEventX, nEventY); if (!aDel.isDeleted()) pThis->DrawingAreaMotion(nEventX, nEventY, pEvent->time, pEvent->state); if (!aDel.isDeleted()) { // ask for the next hint gint x, y; GdkModifierType mask; gdk_window_get_pointer( widget_get_surface(GTK_WIDGET(pThis->m_pWindow)), &x, &y, &mask ); } return true; } #endif void GtkSalFrame::DrawingAreaCrossing(SalEvent nEventType, int nEventX, int nEventY, guint32 nTime, guint nState) { UpdateLastInputEventTime(nTime); SalMouseEvent aEvent; aEvent.mnTime = nTime; aEvent.mnX = nEventX; aEvent.mnY = nEventY; aEvent.mnCode = GetMouseModCode(nState); aEvent.mnButton = 0; if (AllSettings::GetLayoutRTL()) aEvent.mnX = maGeometry.width()-1-aEvent.mnX; CallCallbackExc(nEventType, &aEvent); } #if GTK_CHECK_VERSION(4, 0, 0) void GtkSalFrame::signalEnter(GtkEventControllerMotion *pController, double x, double y, gpointer frame) { GtkSalFrame* pThis = static_cast(frame); GdkEvent* pEvent = gtk_event_controller_get_current_event(GTK_EVENT_CONTROLLER(pController)); GdkModifierType eType = gtk_event_controller_get_current_event_state(GTK_EVENT_CONTROLLER(pController)); pThis->DrawingAreaCrossing(SalEvent::MouseMove, x, y, pEvent ? gdk_event_get_time(pEvent) : GDK_CURRENT_TIME, eType); } void GtkSalFrame::signalLeave(GtkEventControllerMotion *pController, gpointer frame) { GtkSalFrame* pThis = static_cast(frame); GdkEvent* pEvent = gtk_event_controller_get_current_event(GTK_EVENT_CONTROLLER(pController)); GdkModifierType eType = gtk_event_controller_get_current_event_state(GTK_EVENT_CONTROLLER(pController)); pThis->DrawingAreaCrossing(SalEvent::MouseLeave, -1, -1, pEvent ? gdk_event_get_time(pEvent) : GDK_CURRENT_TIME, eType); } #else gboolean GtkSalFrame::signalCrossing( GtkWidget*, GdkEventCrossing* pEvent, gpointer frame ) { GtkSalFrame* pThis = static_cast(frame); pThis->DrawingAreaCrossing((pEvent->type == GDK_ENTER_NOTIFY) ? SalEvent::MouseMove : SalEvent::MouseLeave, pEvent->x, pEvent->y, pEvent->time, pEvent->state); return true; } #endif cairo_t* GtkSalFrame::getCairoContext() const { cairo_t* cr = cairo_create(m_pSurface); assert(cr); return cr; } void GtkSalFrame::damaged(sal_Int32 nExtentsX, sal_Int32 nExtentsY, sal_Int32 nExtentsWidth, sal_Int32 nExtentsHeight) const { #if OSL_DEBUG_LEVEL > 0 if (dumpframes) { static int frame; OString tmp("/tmp/frame" + OString::number(frame++) + ".png"); cairo_t* cr = getCairoContext(); cairo_surface_write_to_png(cairo_get_target(cr), tmp.getStr()); cairo_destroy(cr); } #endif // quite a bit of noise in RTL mode with negative widths if (nExtentsWidth <= 0 || nExtentsHeight <= 0) return; #if !GTK_CHECK_VERSION(4, 0, 0) gtk_widget_queue_draw_area(GTK_WIDGET(m_pDrawingArea), nExtentsX, nExtentsY, nExtentsWidth, nExtentsHeight); #else gtk_widget_queue_draw(GTK_WIDGET(m_pDrawingArea)); (void)nExtentsX; (void)nExtentsY; #endif } // blit our backing cairo surface to the target cairo context void GtkSalFrame::DrawingAreaDraw(cairo_t *cr) { cairo_set_source_surface(cr, m_pSurface, 0, 0); cairo_paint(cr); } #if !GTK_CHECK_VERSION(4, 0, 0) gboolean GtkSalFrame::signalDraw(GtkWidget*, cairo_t *cr, gpointer frame) { GtkSalFrame* pThis = static_cast(frame); pThis->DrawingAreaDraw(cr); return false; } #else void GtkSalFrame::signalDraw(GtkDrawingArea*, cairo_t *cr, int /*width*/, int /*height*/, gpointer frame) { GtkSalFrame* pThis = static_cast(frame); pThis->DrawingAreaDraw(cr); } #endif void GtkSalFrame::DrawingAreaResized(GtkWidget* pWidget, int nWidth, int nHeight) { // ignore size-allocations that occur during configuring an embedded SalObject if (m_bSalObjectSetPosSize) return; maGeometry.setSize({ nWidth, nHeight }); bool bRealized = gtk_widget_get_realized(pWidget); if (bRealized) AllocateFrame(); CallCallbackExc( SalEvent::Resize, nullptr ); if (bRealized) TriggerPaintEvent(); } #if !GTK_CHECK_VERSION(4, 0, 0) void GtkSalFrame::sizeAllocated(GtkWidget* pWidget, GdkRectangle *pAllocation, gpointer frame) { GtkSalFrame* pThis = static_cast(frame); pThis->DrawingAreaResized(pWidget, pAllocation->width, pAllocation->height); } #else void GtkSalFrame::sizeAllocated(GtkWidget* pWidget, int nWidth, int nHeight, gpointer frame) { GtkSalFrame* pThis = static_cast(frame); pThis->DrawingAreaResized(pWidget, nWidth, nHeight); } #endif #if !GTK_CHECK_VERSION(4, 0, 0) namespace { void swapDirection(GdkGravity& gravity) { if (gravity == GDK_GRAVITY_NORTH_WEST) gravity = GDK_GRAVITY_NORTH_EAST; else if (gravity == GDK_GRAVITY_NORTH_EAST) gravity = GDK_GRAVITY_NORTH_WEST; else if (gravity == GDK_GRAVITY_SOUTH_WEST) gravity = GDK_GRAVITY_SOUTH_EAST; else if (gravity == GDK_GRAVITY_SOUTH_EAST) gravity = GDK_GRAVITY_SOUTH_WEST; } } #endif void GtkSalFrame::signalRealize(GtkWidget*, gpointer frame) { GtkSalFrame* pThis = static_cast(frame); pThis->AllocateFrame(); if (pThis->m_bSalObjectSetPosSize) return; pThis->TriggerPaintEvent(); #if !GTK_CHECK_VERSION(4, 0, 0) if (!pThis->m_bFloatPositioned) return; static auto window_move_to_rect = reinterpret_cast( dlsym(nullptr, "gdk_window_move_to_rect")); if (!window_move_to_rect) return; GdkGravity rect_anchor = GDK_GRAVITY_SOUTH_WEST, menu_anchor = GDK_GRAVITY_NORTH_WEST; if (pThis->m_nFloatFlags & FloatWinPopupFlags::Left) { rect_anchor = GDK_GRAVITY_NORTH_WEST; menu_anchor = GDK_GRAVITY_NORTH_EAST; } else if (pThis->m_nFloatFlags & FloatWinPopupFlags::Up) { rect_anchor = GDK_GRAVITY_NORTH_WEST; menu_anchor = GDK_GRAVITY_SOUTH_WEST; } else if (pThis->m_nFloatFlags & FloatWinPopupFlags::Right) { rect_anchor = GDK_GRAVITY_NORTH_EAST; } VclPtr pVclParent = pThis->GetWindow()->GetParent(); if (pVclParent->GetOutDev()->HasMirroredGraphics() && pVclParent->IsRTLEnabled()) { swapDirection(rect_anchor); swapDirection(menu_anchor); } AbsoluteScreenPixelRectangle aFloatRect = FloatingWindow::ImplConvertToAbsPos(pVclParent, pThis->m_aFloatRect); switch (gdk_window_get_window_type(widget_get_surface(pThis->m_pParent->m_pWindow))) { case GDK_WINDOW_TOPLEVEL: break; case GDK_WINDOW_CHILD: { // See tdf#152155 for an example gtk_coord nX(0), nY(0.0); gtk_widget_translate_coordinates(pThis->m_pParent->m_pWindow, widget_get_toplevel(pThis->m_pParent->m_pWindow), 0, 0, &nX, &nY); aFloatRect.Move(nX, nY); break; } default: { // See tdf#154072 for an example aFloatRect.Move(-pThis->m_pParent->maGeometry.x(), -pThis->m_pParent->maGeometry.y()); break; } } GdkRectangle rect {static_cast(aFloatRect.Left()), static_cast(aFloatRect.Top()), static_cast(aFloatRect.GetWidth()), static_cast(aFloatRect.GetHeight())}; GdkSurface* gdkWindow = widget_get_surface(pThis->m_pWindow); window_move_to_rect(gdkWindow, &rect, rect_anchor, menu_anchor, static_cast(GDK_ANCHOR_FLIP | GDK_ANCHOR_SLIDE), 0, 0); #endif } #if !GTK_CHECK_VERSION(4, 0, 0) gboolean GtkSalFrame::signalConfigure(GtkWidget*, GdkEventConfigure* pEvent, gpointer frame) { GtkSalFrame* pThis = static_cast(frame); bool bMoved = false; int x = pEvent->x, y = pEvent->y; /* #i31785# claims we cannot trust the x,y members of the event; * they are e.g. not set correctly on maximize/demaximize; * yet the gdkdisplay-x11.c code handling configure_events has * done this XTranslateCoordinates work since the day ~zero. */ if (pThis->m_bGeometryIsProvisional || x != pThis->maGeometry.x() || y != pThis->maGeometry.y() ) { bMoved = true; pThis->m_bGeometryIsProvisional = false; pThis->maGeometry.setPos({ x, y }); } // update decoration hints GdkRectangle aRect; gdk_window_get_frame_extents( widget_get_surface(GTK_WIDGET(pThis->m_pWindow)), &aRect ); pThis->maGeometry.setTopDecoration(y - aRect.y); pThis->maGeometry.setBottomDecoration(aRect.y + aRect.height - y - pEvent->height); pThis->maGeometry.setLeftDecoration(x - aRect.x); pThis->maGeometry.setRightDecoration(aRect.x + aRect.width - x - pEvent->width); pThis->updateScreenNumber(); if (bMoved) { ImplSVData* pSVData = ImplGetSVData(); if (pSVData->maNWFData.mbCanDetermineWindowPosition) pThis->CallCallbackExc(SalEvent::Move, nullptr); } return false; } #endif void GtkSalFrame::queue_draw() { gtk_widget_queue_draw(GTK_WIDGET(m_pDrawingArea)); } void GtkSalFrame::TriggerPaintEvent() { //Under gtk2 we can basically paint directly into the XWindow and on //additional "expose-event" events we can re-render the missing pieces // //Under gtk3 we have to keep our own buffer up to date and flush it into //the given cairo context on "draw". So we emit a paint event on //opportune resize trigger events to initially fill our backbuffer and then //keep it up to date with our direct paints and tell gtk those regions //have changed and then blit them into the provided cairo context when //we get the "draw" // //The other alternative was to always paint everything on "draw", but //that duplicates the amount of drawing and is hideously slow SAL_INFO("vcl.gtk3", "force painting" << 0 << "," << 0 << " " << maGeometry.width() << "x" << maGeometry.height()); SalPaintEvent aPaintEvt(0, 0, maGeometry.width(), maGeometry.height(), true); CallCallbackExc(SalEvent::Paint, &aPaintEvt); queue_draw(); } void GtkSalFrame::DrawingAreaFocusInOut(SalEvent nEventType) { SalGenericInstance* pSalInstance = GetGenericInstance(); // check if printers have changed (analogous to salframe focus handler) pSalInstance->updatePrinterUpdate(); if (nEventType == SalEvent::LoseFocus) m_nKeyModifiers = ModKeyFlags::NONE; if (m_pIMHandler) { bool bFocusInAnotherGtkWidget = false; if (GTK_IS_WINDOW(m_pWindow)) { GtkWidget* pFocusWindow = gtk_window_get_focus(GTK_WINDOW(m_pWindow)); bFocusInAnotherGtkWidget = pFocusWindow && pFocusWindow != GTK_WIDGET(m_pFixedContainer); } if (!bFocusInAnotherGtkWidget) m_pIMHandler->focusChanged(nEventType == SalEvent::GetFocus); } // ask for changed printers like generic implementation if (nEventType == SalEvent::GetFocus && pSalInstance->isPrinterInit()) pSalInstance->updatePrinterUpdate(); CallCallbackExc(nEventType, nullptr); } #if !GTK_CHECK_VERSION(4, 0, 0) gboolean GtkSalFrame::signalFocus( GtkWidget*, GdkEventFocus* pEvent, gpointer frame ) { GtkSalFrame* pThis = static_cast(frame); SalGenericInstance *pSalInstance = GetGenericInstance(); // check if printers have changed (analogous to salframe focus handler) pSalInstance->updatePrinterUpdate(); if( !pEvent->in ) pThis->m_nKeyModifiers = ModKeyFlags::NONE; if( pThis->m_pIMHandler ) { bool bFocusInAnotherGtkWidget = false; if (GTK_IS_WINDOW(pThis->m_pWindow)) { GtkWidget* pFocusWindow = gtk_window_get_focus(GTK_WINDOW(pThis->m_pWindow)); bFocusInAnotherGtkWidget = pFocusWindow && pFocusWindow != GTK_WIDGET(pThis->m_pFixedContainer); } if (!bFocusInAnotherGtkWidget) pThis->m_pIMHandler->focusChanged( pEvent->in != 0 ); } // ask for changed printers like generic implementation if( pEvent->in && pSalInstance->isPrinterInit() ) pSalInstance->updatePrinterUpdate(); // FIXME: find out who the hell steals the focus from our frame // while we have the pointer grabbed, this should not come from // the window manager. Is this an event that was still queued ? // The focus does not seem to get set inside our process // in the meantime do not propagate focus get/lose if floats are open if( m_nFloats == 0 ) { GtkWidget* pGrabWidget; if (GTK_IS_EVENT_BOX(pThis->m_pWindow)) pGrabWidget = GTK_WIDGET(pThis->m_pWindow); else pGrabWidget = GTK_WIDGET(pThis->m_pFixedContainer); bool bHasFocus = gtk_widget_has_focus(pGrabWidget); pThis->CallCallbackExc(bHasFocus ? SalEvent::GetFocus : SalEvent::LoseFocus, nullptr); } return false; } #else void GtkSalFrame::signalFocusEnter(GtkEventControllerFocus*, gpointer frame) { GtkSalFrame* pThis = static_cast(frame); pThis->DrawingAreaFocusInOut(SalEvent::GetFocus); } void GtkSalFrame::signalFocusLeave(GtkEventControllerFocus*, gpointer frame) { GtkSalFrame* pThis = static_cast(frame); pThis->DrawingAreaFocusInOut(SalEvent::LoseFocus); } #endif // change of focus between native widgets within the toplevel #if !GTK_CHECK_VERSION(4, 0, 0) void GtkSalFrame::signalSetFocus(GtkWindow*, GtkWidget* pWidget, gpointer frame) #else void GtkSalFrame::signalSetFocus(GtkWindow*, GParamSpec*, gpointer frame) #endif { GtkSalFrame* pThis = static_cast(frame); GtkWidget* pGrabWidget = GTK_WIDGET(pThis->m_pFixedContainer); GtkWidget* pTopLevel = widget_get_toplevel(pGrabWidget); // see commentary in GtkSalObjectWidgetClip::Show if (pTopLevel && g_object_get_data(G_OBJECT(pTopLevel), "g-lo-BlockFocusChange")) return; #if GTK_CHECK_VERSION(4, 0, 0) GtkWidget* pWidget = gtk_window_get_focus(GTK_WINDOW(pThis->m_pWindow)); #endif // tdf#129634 interpret losing focus as focus passing explicitly to another widget bool bLoseFocus = pWidget && pWidget != pGrabWidget; // do not propagate focus get/lose if floats are open pThis->CallCallbackExc(bLoseFocus ? SalEvent::LoseFocus : SalEvent::GetFocus, nullptr); #if !GTK_CHECK_VERSION(4, 0, 0) gtk_widget_set_can_focus(GTK_WIDGET(pThis->m_pFixedContainer), !bLoseFocus); #endif } void GtkSalFrame::WindowMap() { if (m_bIconSetWhileUnmapped) SetIcon(gtk_window_get_icon_name(GTK_WINDOW(m_pWindow))); CallCallbackExc( SalEvent::Resize, nullptr ); TriggerPaintEvent(); } void GtkSalFrame::WindowUnmap() { CallCallbackExc( SalEvent::Resize, nullptr ); if (m_bFloatPositioned) { // Unrealize is needed for cases where we reuse the same popup // (e.g. the font name control), making the realize signal fire // again on next show. gtk_widget_unrealize(m_pWindow); m_bFloatPositioned = false; } } #if GTK_CHECK_VERSION(4, 0, 0) void GtkSalFrame::signalMap(GtkWidget*, gpointer frame) { GtkSalFrame* pThis = static_cast(frame); pThis->WindowMap(); } void GtkSalFrame::signalUnmap(GtkWidget*, gpointer frame) { GtkSalFrame* pThis = static_cast(frame); pThis->WindowUnmap(); } #else gboolean GtkSalFrame::signalMap(GtkWidget*, GdkEvent*, gpointer frame) { GtkSalFrame* pThis = static_cast(frame); pThis->WindowMap(); return false; } gboolean GtkSalFrame::signalUnmap(GtkWidget*, GdkEvent*, gpointer frame) { GtkSalFrame* pThis = static_cast(frame); pThis->WindowUnmap(); return false; } #endif #if !GTK_CHECK_VERSION(4, 0, 0) static bool key_forward(GdkEventKey* pEvent, GtkWindow* pDest) { gpointer pClass = g_type_class_ref(GTK_TYPE_WINDOW); GtkWidgetClass* pWindowClass = GTK_WIDGET_CLASS(pClass); bool bHandled = pEvent->type == GDK_KEY_PRESS ? pWindowClass->key_press_event(GTK_WIDGET(pDest), pEvent) : pWindowClass->key_release_event(GTK_WIDGET(pDest), pEvent); g_type_class_unref(pClass); return bHandled; } static bool activate_menubar_mnemonic(GtkWidget* pWidget, guint nKeyval) { const char* pLabel = gtk_menu_item_get_label(GTK_MENU_ITEM(pWidget)); gunichar cAccelChar = 0; if (!pango_parse_markup(pLabel, -1, '_', nullptr, nullptr, &cAccelChar, nullptr)) return false; if (!cAccelChar) return false; auto nMnemonicKeyval = gdk_keyval_to_lower(gdk_unicode_to_keyval(cAccelChar)); if (nKeyval == nMnemonicKeyval) return gtk_widget_mnemonic_activate(pWidget, false); return false; } bool GtkSalFrame::HandleMenubarMnemonic(guint eState, guint nKeyval) { bool bUsedInMenuBar = false; if (eState & GDK_ALT_MASK) { if (GtkWidget* pMenuBar = m_pSalMenu ? m_pSalMenu->GetMenuBarWidget() : nullptr) { GList* pChildren = gtk_container_get_children(GTK_CONTAINER(pMenuBar)); for (GList* pChild = g_list_first(pChildren); pChild; pChild = g_list_next(pChild)) { bUsedInMenuBar = activate_menubar_mnemonic(static_cast(pChild->data), nKeyval); if (bUsedInMenuBar) break; } g_list_free(pChildren); } } return bUsedInMenuBar; } gboolean GtkSalFrame::signalKey(GtkWidget* pWidget, GdkEventKey* pEvent, gpointer frame) { UpdateLastInputEventTime(pEvent->time); GtkSalFrame* pThis = static_cast(frame); bool bFocusInAnotherGtkWidget = false; VclPtr xTopLevelInterimWindow; if (GTK_IS_WINDOW(pThis->m_pWindow)) { GtkWidget* pFocusWindow = gtk_window_get_focus(GTK_WINDOW(pThis->m_pWindow)); bFocusInAnotherGtkWidget = pFocusWindow && pFocusWindow != GTK_WIDGET(pThis->m_pFixedContainer); if (bFocusInAnotherGtkWidget) { if (!gtk_widget_get_realized(pFocusWindow)) return true; // if the focus is not in our main widget, see if there is a handler // for this key stroke in GtkWindow first if (key_forward(pEvent, GTK_WINDOW(pThis->m_pWindow))) return true; // Is focus inside an InterimItemWindow? In which case find that // InterimItemWindow and send unconsumed keystrokes to it to // support ctrl-q etc shortcuts. Only bother to search for the // InterimItemWindow if it is a toplevel that fills its frame, or // the keystroke is sufficiently special its worth passing on, // e.g. F6 to switch between task-panels or F5 to close a navigator if (pThis->IsCycleFocusOutDisallowed() || IsFunctionKeyVal(pEvent->keyval)) { GtkWidget* pSearch = pFocusWindow; while (pSearch) { void* pData = g_object_get_data(G_OBJECT(pSearch), "InterimWindowGlue"); if (pData) { xTopLevelInterimWindow = static_cast(pData); break; } pSearch = gtk_widget_get_parent(pSearch); } } } } if (pThis->isFloatGrabWindow()) return signalKey(pWidget, pEvent, pThis->m_pParent); vcl::DeletionListener aDel( pThis ); if (!bFocusInAnotherGtkWidget && pThis->m_pIMHandler && pThis->m_pIMHandler->handleKeyEvent(pEvent)) return true; bool bStopProcessingKey = false; // handle modifiers if( pEvent->keyval == GDK_KEY_Shift_L || pEvent->keyval == GDK_KEY_Shift_R || pEvent->keyval == GDK_KEY_Control_L || pEvent->keyval == GDK_KEY_Control_R || pEvent->keyval == GDK_KEY_Alt_L || pEvent->keyval == GDK_KEY_Alt_R || pEvent->keyval == GDK_KEY_Meta_L || pEvent->keyval == GDK_KEY_Meta_R || pEvent->keyval == GDK_KEY_Super_L || pEvent->keyval == GDK_KEY_Super_R ) { sal_uInt16 nModCode = GetKeyModCode( pEvent->state ); ModKeyFlags nExtModMask = ModKeyFlags::NONE; sal_uInt16 nModMask = 0; // pressing just the ctrl key leads to a keysym of XK_Control but // the event state does not contain ControlMask. In the release // event it's the other way round: it does contain the Control mask. // The modifier mode therefore has to be adapted manually. switch( pEvent->keyval ) { case GDK_KEY_Control_L: nExtModMask = ModKeyFlags::LeftMod1; nModMask = KEY_MOD1; break; case GDK_KEY_Control_R: nExtModMask = ModKeyFlags::RightMod1; nModMask = KEY_MOD1; break; case GDK_KEY_Alt_L: nExtModMask = ModKeyFlags::LeftMod2; nModMask = KEY_MOD2; break; case GDK_KEY_Alt_R: nExtModMask = ModKeyFlags::RightMod2; nModMask = KEY_MOD2; break; case GDK_KEY_Shift_L: nExtModMask = ModKeyFlags::LeftShift; nModMask = KEY_SHIFT; break; case GDK_KEY_Shift_R: nExtModMask = ModKeyFlags::RightShift; nModMask = KEY_SHIFT; break; // Map Meta/Super to MOD3 modifier on all Unix systems // except macOS case GDK_KEY_Meta_L: case GDK_KEY_Super_L: nExtModMask = ModKeyFlags::LeftMod3; nModMask = KEY_MOD3; break; case GDK_KEY_Meta_R: case GDK_KEY_Super_R: nExtModMask = ModKeyFlags::RightMod3; nModMask = KEY_MOD3; break; } SalKeyModEvent aModEvt; aModEvt.mbDown = pEvent->type == GDK_KEY_PRESS; if( pEvent->type == GDK_KEY_RELEASE ) { aModEvt.mnModKeyCode = pThis->m_nKeyModifiers; aModEvt.mnCode = nModCode & ~nModMask; pThis->m_nKeyModifiers &= ~nExtModMask; } else { aModEvt.mnCode = nModCode | nModMask; pThis->m_nKeyModifiers |= nExtModMask; aModEvt.mnModKeyCode = pThis->m_nKeyModifiers; } pThis->CallCallbackExc( SalEvent::KeyModChange, &aModEvt ); } else { bool bRestoreDisallowCycleFocusOut = false; VclPtr xOrigFrameFocusWin; VclPtr xOrigFocusWin; if (xTopLevelInterimWindow) { // Focus is inside an InterimItemWindow so send unconsumed // keystrokes to by setting it as the mpFocusWin VclPtr xVclWindow = pThis->GetWindow(); ImplFrameData* pFrameData = xVclWindow->ImplGetWindowImpl()->mpFrameData; xOrigFrameFocusWin = pFrameData->mpFocusWin; pFrameData->mpFocusWin = xTopLevelInterimWindow; ImplSVData* pSVData = ImplGetSVData(); xOrigFocusWin = pSVData->mpWinData->mpFocusWin; pSVData->mpWinData->mpFocusWin = xTopLevelInterimWindow; if (pEvent->keyval == GDK_KEY_F6 && pThis->IsCycleFocusOutDisallowed()) { // For F6, allow the focus to leave the InterimItemWindow pThis->AllowCycleFocusOut(); bRestoreDisallowCycleFocusOut = true; } } bStopProcessingKey = pThis->doKeyCallback(pEvent->state, pEvent->keyval, pEvent->hardware_keycode, pEvent->group, sal_Unicode(gdk_keyval_to_unicode( pEvent->keyval )), (pEvent->type == GDK_KEY_PRESS), false); // tdf#144846 If this is registered as a menubar mnemonic then ensure // that any other widget won't be considered as a candidate by taking // over the task of launch the menubar menu outself // The code was moved here from its original position at beginning // of this function in order to resolve tdf#146174. if (!bStopProcessingKey && // module key handler did not process key pEvent->type == GDK_KEY_PRESS && // module key handler handles only GDK_KEY_PRESS GTK_IS_WINDOW(pThis->m_pWindow) && pThis->HandleMenubarMnemonic(pEvent->state, pEvent->keyval)) { return true; } if (!aDel.isDeleted()) { pThis->m_nKeyModifiers = ModKeyFlags::NONE; if (xTopLevelInterimWindow) { // Focus was inside an InterimItemWindow, restore the original // focus win, unless the focus was changed away from the // InterimItemWindow which should only be possible with F6 VclPtr xVclWindow = pThis->GetWindow(); ImplFrameData* pFrameData = xVclWindow->ImplGetWindowImpl()->mpFrameData; if (pFrameData->mpFocusWin == xTopLevelInterimWindow) pFrameData->mpFocusWin = std::move(xOrigFrameFocusWin); ImplSVData* pSVData = ImplGetSVData(); if (pSVData->mpWinData->mpFocusWin == xTopLevelInterimWindow) pSVData->mpWinData->mpFocusWin = std::move(xOrigFocusWin); if (bRestoreDisallowCycleFocusOut) { // undo the above AllowCycleFocusOut for F6 pThis->DisallowCycleFocusOut(); } } } } if (!bFocusInAnotherGtkWidget && !aDel.isDeleted() && pThis->m_pIMHandler) pThis->m_pIMHandler->updateIMSpotLocation(); return bStopProcessingKey; } #else bool GtkSalFrame::DrawingAreaKey(GtkEventControllerKey* pController, SalEvent nEventType, guint keyval, guint keycode, guint state) { guint32 nTime = gdk_event_get_time(gtk_event_controller_get_current_event(GTK_EVENT_CONTROLLER(pController))); UpdateLastInputEventTime(nTime); bool bFocusInAnotherGtkWidget = false; VclPtr xTopLevelInterimWindow; if (GTK_IS_WINDOW(m_pWindow)) { GtkWidget* pFocusWindow = gtk_window_get_focus(GTK_WINDOW(m_pWindow)); bFocusInAnotherGtkWidget = pFocusWindow && pFocusWindow != GTK_WIDGET(m_pFixedContainer); if (bFocusInAnotherGtkWidget) { if (!gtk_widget_get_realized(pFocusWindow)) return true; // if the focus is not in our main widget, see if there is a handler // for this key stroke in GtkWindow first bool bHandled = gtk_event_controller_key_forward(pController, m_pWindow); if (bHandled) return true; // Is focus inside an InterimItemWindow? In which case find that // InterimItemWindow and send unconsumed keystrokes to it to // support ctrl-q etc shortcuts. Only bother to search for the // InterimItemWindow if it is a toplevel that fills its frame, or // the keystroke is sufficiently special its worth passing on, // e.g. F6 to switch between task-panels or F5 to close a navigator if (IsCycleFocusOutDisallowed() || IsFunctionKeyVal(keyval)) { GtkWidget* pSearch = pFocusWindow; while (pSearch) { void* pData = g_object_get_data(G_OBJECT(pSearch), "InterimWindowGlue"); if (pData) { xTopLevelInterimWindow = static_cast(pData); break; } pSearch = gtk_widget_get_parent(pSearch); } } } } vcl::DeletionListener aDel(this); bool bStopProcessingKey = false; // handle modifiers if( keyval == GDK_KEY_Shift_L || keyval == GDK_KEY_Shift_R || keyval == GDK_KEY_Control_L || keyval == GDK_KEY_Control_R || keyval == GDK_KEY_Alt_L || keyval == GDK_KEY_Alt_R || keyval == GDK_KEY_Meta_L || keyval == GDK_KEY_Meta_R || keyval == GDK_KEY_Super_L || keyval == GDK_KEY_Super_R ) { sal_uInt16 nModCode = GetKeyModCode(state); ModKeyFlags nExtModMask = ModKeyFlags::NONE; sal_uInt16 nModMask = 0; // pressing just the ctrl key leads to a keysym of XK_Control but // the event state does not contain ControlMask. In the release // event it's the other way round: it does contain the Control mask. // The modifier mode therefore has to be adapted manually. switch (keyval) { case GDK_KEY_Control_L: nExtModMask = ModKeyFlags::LeftMod1; nModMask = KEY_MOD1; break; case GDK_KEY_Control_R: nExtModMask = ModKeyFlags::RightMod1; nModMask = KEY_MOD1; break; case GDK_KEY_Alt_L: nExtModMask = ModKeyFlags::LeftMod2; nModMask = KEY_MOD2; break; case GDK_KEY_Alt_R: nExtModMask = ModKeyFlags::RightMod2; nModMask = KEY_MOD2; break; case GDK_KEY_Shift_L: nExtModMask = ModKeyFlags::LeftShift; nModMask = KEY_SHIFT; break; case GDK_KEY_Shift_R: nExtModMask = ModKeyFlags::RightShift; nModMask = KEY_SHIFT; break; // Map Meta/Super to MOD3 modifier on all Unix systems // except macOS case GDK_KEY_Meta_L: case GDK_KEY_Super_L: nExtModMask = ModKeyFlags::LeftMod3; nModMask = KEY_MOD3; break; case GDK_KEY_Meta_R: case GDK_KEY_Super_R: nExtModMask = ModKeyFlags::RightMod3; nModMask = KEY_MOD3; break; } SalKeyModEvent aModEvt; aModEvt.mbDown = nEventType == SalEvent::KeyInput; if (!aModEvt.mbDown) { aModEvt.mnModKeyCode = m_nKeyModifiers; aModEvt.mnCode = nModCode & ~nModMask; m_nKeyModifiers &= ~nExtModMask; } else { aModEvt.mnCode = nModCode | nModMask; m_nKeyModifiers |= nExtModMask; aModEvt.mnModKeyCode = m_nKeyModifiers; } CallCallbackExc(SalEvent::KeyModChange, &aModEvt); } else { bool bRestoreDisallowCycleFocusOut = false; VclPtr xOrigFrameFocusWin; VclPtr xOrigFocusWin; if (xTopLevelInterimWindow) { // Focus is inside an InterimItemWindow so send unconsumed // keystrokes to by setting it as the mpFocusWin VclPtr xVclWindow = GetWindow(); ImplFrameData* pFrameData = xVclWindow->ImplGetWindowImpl()->mpFrameData; xOrigFrameFocusWin = pFrameData->mpFocusWin; pFrameData->mpFocusWin = xTopLevelInterimWindow; ImplSVData* pSVData = ImplGetSVData(); xOrigFocusWin = pSVData->mpWinData->mpFocusWin; pSVData->mpWinData->mpFocusWin = xTopLevelInterimWindow; if (keyval == GDK_KEY_F6 && IsCycleFocusOutDisallowed()) { // For F6, allow the focus to leave the InterimItemWindow AllowCycleFocusOut(); bRestoreDisallowCycleFocusOut = true; } } bStopProcessingKey = doKeyCallback(state, keyval, keycode, 0, // group sal_Unicode(gdk_keyval_to_unicode(keyval)), nEventType == SalEvent::KeyInput, false); if (!aDel.isDeleted()) { m_nKeyModifiers = ModKeyFlags::NONE; if (xTopLevelInterimWindow) { // Focus was inside an InterimItemWindow, restore the original // focus win, unless the focus was changed away from the // InterimItemWindow which should only be possible with F6 VclPtr xVclWindow = GetWindow(); ImplFrameData* pFrameData = xVclWindow->ImplGetWindowImpl()->mpFrameData; if (pFrameData->mpFocusWin == xTopLevelInterimWindow) pFrameData->mpFocusWin = xOrigFrameFocusWin; ImplSVData* pSVData = ImplGetSVData(); if (pSVData->mpWinData->mpFocusWin == xTopLevelInterimWindow) pSVData->mpWinData->mpFocusWin = xOrigFocusWin; if (bRestoreDisallowCycleFocusOut) { // undo the above AllowCycleFocusOut for F6 DisallowCycleFocusOut(); } } } } if (m_pIMHandler) m_pIMHandler->updateIMSpotLocation(); return bStopProcessingKey; } gboolean GtkSalFrame::signalKeyPressed(GtkEventControllerKey* pController, guint keyval, guint keycode, GdkModifierType state, gpointer frame) { GtkSalFrame* pThis = static_cast(frame); return pThis->DrawingAreaKey(pController, SalEvent::KeyInput, keyval, keycode, state); } gboolean GtkSalFrame::signalKeyReleased(GtkEventControllerKey* pController, guint keyval, guint keycode, GdkModifierType state, gpointer frame) { GtkSalFrame* pThis = static_cast(frame); return pThis->DrawingAreaKey(pController, SalEvent::KeyUp, keyval, keycode, state); } #endif bool GtkSalFrame::WindowCloseRequest() { CallCallbackExc(SalEvent::Close, nullptr); return true; } #if GTK_CHECK_VERSION(4, 0, 0) gboolean GtkSalFrame::signalDelete(GtkWidget*, gpointer frame) { GtkSalFrame* pThis = static_cast(frame); return pThis->WindowCloseRequest(); } #else gboolean GtkSalFrame::signalDelete(GtkWidget*, GdkEvent*, gpointer frame) { GtkSalFrame* pThis = static_cast(frame); return pThis->WindowCloseRequest(); } #endif const cairo_font_options_t* GtkSalFrame::get_font_options() { GtkWidget* pWidget = getMouseEventWidget(); #if GTK_CHECK_VERSION(4, 0, 0) PangoContext* pContext = gtk_widget_get_pango_context(pWidget); assert(pContext); return pango_cairo_context_get_font_options(pContext); #else return gdk_screen_get_font_options(gtk_widget_get_screen(pWidget)); #endif } #if GTK_CHECK_VERSION(4, 0, 0) void GtkSalFrame::signalStyleUpdated(GtkWidget*, const gchar* /*pSetting*/, gpointer frame) #else void GtkSalFrame::signalStyleUpdated(GtkWidget*, gpointer frame) #endif { GtkSalFrame* pThis = static_cast(frame); // note: settings changed for multiple frames is avoided in winproc.cxx ImplHandleSettings GtkSalFrame::getDisplay()->SendInternalEvent( pThis, nullptr, SalEvent::SettingsChanged ); // a plausible alternative might be to send SalEvent::FontChanged if pSetting starts with "gtk-xft" // fire off font-changed when the system cairo font hints change GtkInstance *pInstance = GetGtkInstance(); const cairo_font_options_t* pLastCairoFontOptions = pInstance->GetLastSeenCairoFontOptions(); const cairo_font_options_t* pCurrentCairoFontOptions = pThis->get_font_options(); bool bFontSettingsChanged = true; if (pLastCairoFontOptions && pCurrentCairoFontOptions) bFontSettingsChanged = !cairo_font_options_equal(pLastCairoFontOptions, pCurrentCairoFontOptions); else if (!pLastCairoFontOptions && !pCurrentCairoFontOptions) bFontSettingsChanged = false; if (bFontSettingsChanged) { pInstance->ResetLastSeenCairoFontOptions(pCurrentCairoFontOptions); GtkSalFrame::getDisplay()->SendInternalEvent( pThis, nullptr, SalEvent::FontChanged ); } } #if !GTK_CHECK_VERSION(4, 0, 0) gboolean GtkSalFrame::signalWindowState( GtkWidget*, GdkEvent* pEvent, gpointer frame ) { GtkSalFrame* pThis = static_cast(frame); if( (pThis->m_nState & GDK_TOPLEVEL_STATE_MINIMIZED) != (pEvent->window_state.new_window_state & GDK_TOPLEVEL_STATE_MINIMIZED) ) { GtkSalFrame::getDisplay()->SendInternalEvent( pThis, nullptr, SalEvent::Resize ); pThis->TriggerPaintEvent(); } if ((pEvent->window_state.new_window_state & GDK_TOPLEVEL_STATE_MAXIMIZED) && !(pThis->m_nState & GDK_TOPLEVEL_STATE_MAXIMIZED)) { pThis->m_aRestorePosSize = GetPosAndSize(GTK_WINDOW(pThis->m_pWindow)); } if ((pEvent->window_state.new_window_state & GDK_WINDOW_STATE_WITHDRAWN) && !(pThis->m_nState & GDK_WINDOW_STATE_WITHDRAWN)) { if (pThis->isFloatGrabWindow()) pThis->closePopup(); } pThis->m_nState = pEvent->window_state.new_window_state; return false; } #else void GtkSalFrame::signalWindowState(GdkToplevel* pSurface, GParamSpec*, gpointer frame) { GdkToplevelState eNewWindowState = gdk_toplevel_get_state(pSurface); GtkSalFrame* pThis = static_cast(frame); if( (pThis->m_nState & GDK_TOPLEVEL_STATE_MINIMIZED) != (eNewWindowState & GDK_TOPLEVEL_STATE_MINIMIZED) ) { GtkSalFrame::getDisplay()->SendInternalEvent( pThis, nullptr, SalEvent::Resize ); pThis->TriggerPaintEvent(); } if ((eNewWindowState & GDK_TOPLEVEL_STATE_MAXIMIZED) && !(pThis->m_nState & GDK_TOPLEVEL_STATE_MAXIMIZED)) { pThis->m_aRestorePosSize = GetPosAndSize(GTK_WINDOW(pThis->m_pWindow)); } pThis->m_nState = eNewWindowState; } #endif namespace { bool handleSignalZoom(GtkGesture* gesture, GdkEventSequence* sequence, gpointer frame, GestureEventZoomType eEventType) { gdouble x = 0; gdouble y = 0; gtk_gesture_get_point(gesture, sequence, &x, &y); SalGestureZoomEvent aEvent; aEvent.meEventType = eEventType; aEvent.mnX = x; aEvent.mnY = y; aEvent.mfScaleDelta = gtk_gesture_zoom_get_scale_delta(GTK_GESTURE_ZOOM(gesture)); GtkSalFrame* pThis = static_cast(frame); pThis->CallCallbackExc(SalEvent::GestureZoom, &aEvent); return true; } bool handleSignalRotate(GtkGesture* gesture, GdkEventSequence* sequence, gpointer frame, GestureEventRotateType eEventType) { gdouble x = 0; gdouble y = 0; gtk_gesture_get_point(gesture, sequence, &x, &y); SalGestureRotateEvent aEvent; aEvent.meEventType = eEventType; aEvent.mnX = x; aEvent.mnY = y; aEvent.mfAngleDelta = gtk_gesture_rotate_get_angle_delta(GTK_GESTURE_ROTATE(gesture)); GtkSalFrame* pThis = static_cast(frame); pThis->CallCallbackExc(SalEvent::GestureRotate, &aEvent); return true; } } bool GtkSalFrame::signalZoomBegin(GtkGesture* gesture, GdkEventSequence* sequence, gpointer frame) { return handleSignalZoom(gesture, sequence, frame, GestureEventZoomType::Begin); } bool GtkSalFrame::signalZoomUpdate(GtkGesture* gesture, GdkEventSequence* sequence, gpointer frame) { return handleSignalZoom(gesture, sequence, frame, GestureEventZoomType::Update); } bool GtkSalFrame::signalZoomEnd(GtkGesture* gesture, GdkEventSequence* sequence, gpointer frame) { return handleSignalZoom(gesture, sequence, frame, GestureEventZoomType::End); } bool GtkSalFrame::signalRotateBegin(GtkGesture* gesture, GdkEventSequence* sequence, gpointer frame) { return handleSignalRotate(gesture, sequence, frame, GestureEventRotateType::Begin); } bool GtkSalFrame::signalRotateUpdate(GtkGesture* gesture, GdkEventSequence* sequence, gpointer frame) { return handleSignalRotate(gesture, sequence, frame, GestureEventRotateType::Update); } bool GtkSalFrame::signalRotateEnd(GtkGesture* gesture, GdkEventSequence* sequence, gpointer frame) { return handleSignalRotate(gesture, sequence, frame, GestureEventRotateType::End); } namespace { GdkDragAction VclToGdk(sal_Int8 dragOperation) { GdkDragAction eRet(static_cast(0)); if (dragOperation & css::datatransfer::dnd::DNDConstants::ACTION_COPY) eRet = static_cast(eRet | GDK_ACTION_COPY); if (dragOperation & css::datatransfer::dnd::DNDConstants::ACTION_MOVE) eRet = static_cast(eRet | GDK_ACTION_MOVE); if (dragOperation & css::datatransfer::dnd::DNDConstants::ACTION_LINK) eRet = static_cast(eRet | GDK_ACTION_LINK); return eRet; } sal_Int8 GdkToVcl(GdkDragAction dragOperation) { sal_Int8 nRet(0); if (dragOperation & GDK_ACTION_COPY) nRet |= css::datatransfer::dnd::DNDConstants::ACTION_COPY; if (dragOperation & GDK_ACTION_MOVE) nRet |= css::datatransfer::dnd::DNDConstants::ACTION_MOVE; if (dragOperation & GDK_ACTION_LINK) nRet |= css::datatransfer::dnd::DNDConstants::ACTION_LINK; return nRet; } } namespace { GdkDragAction getPreferredDragAction(sal_Int8 dragOperation) { GdkDragAction eAct(static_cast(0)); if (dragOperation & css::datatransfer::dnd::DNDConstants::ACTION_MOVE) eAct = GDK_ACTION_MOVE; else if (dragOperation & css::datatransfer::dnd::DNDConstants::ACTION_COPY) eAct = GDK_ACTION_COPY; else if (dragOperation & css::datatransfer::dnd::DNDConstants::ACTION_LINK) eAct = GDK_ACTION_LINK; return eAct; } } static bool g_DropSuccessSet = false; static bool g_DropSuccess = false; namespace { #if GTK_CHECK_VERSION(4, 0, 0) void read_drop_async_completed(GObject* source, GAsyncResult* res, gpointer user_data) { GdkDrop* drop = GDK_DROP(source); read_transfer_result* pRes = static_cast(user_data); GInputStream* pResult = gdk_drop_read_finish(drop, res, nullptr, nullptr); if (!pResult) { pRes->bDone = true; g_main_context_wakeup(nullptr); return; } pRes->aVector.resize(read_transfer_result::BlockSize); g_input_stream_read_async(pResult, pRes->aVector.data(), pRes->aVector.size(), G_PRIORITY_DEFAULT, nullptr, read_transfer_result::read_block_async_completed, user_data); } #endif class GtkDropTargetDropContext : public cppu::WeakImplHelper { #if !GTK_CHECK_VERSION(4, 0, 0) GdkDragContext *m_pContext; guint m_nTime; #else GdkDrop* m_pDrop; #endif public: #if !GTK_CHECK_VERSION(4, 0, 0) GtkDropTargetDropContext(GdkDragContext* pContext, guint nTime) : m_pContext(pContext) , m_nTime(nTime) #else GtkDropTargetDropContext(GdkDrop* pDrop) : m_pDrop(pDrop) #endif { } // XDropTargetDropContext virtual void SAL_CALL acceptDrop(sal_Int8 dragOperation) override { #if !GTK_CHECK_VERSION(4, 0, 0) gdk_drag_status(m_pContext, getPreferredDragAction(dragOperation), m_nTime); #else GdkDragAction eDragAction = getPreferredDragAction(dragOperation); gdk_drop_status(m_pDrop, static_cast(eDragAction | gdk_drop_get_actions(m_pDrop)), eDragAction); #endif } virtual void SAL_CALL rejectDrop() override { #if !GTK_CHECK_VERSION(4, 0, 0) gdk_drag_status(m_pContext, static_cast(0), m_nTime); #else gdk_drop_status(m_pDrop, gdk_drop_get_actions(m_pDrop), static_cast(0)); #endif } virtual void SAL_CALL dropComplete(sal_Bool bSuccess) override { #if !GTK_CHECK_VERSION(4, 0, 0) gtk_drag_finish(m_pContext, bSuccess, false, m_nTime); #else // should we do something better here gdk_drop_finish(m_pDrop, bSuccess ? gdk_drop_get_actions(m_pDrop) : static_cast(0)); #endif if (GtkInstDragSource::g_ActiveDragSource) { g_DropSuccessSet = true; g_DropSuccess = bSuccess; } } }; } class GtkDnDTransferable : public GtkTransferable { #if !GTK_CHECK_VERSION(4, 0, 0) GdkDragContext *m_pContext; guint m_nTime; GtkWidget *m_pWidget; GtkInstDropTarget* m_pDropTarget; #else GdkDrop* m_pDrop; #endif #if !GTK_CHECK_VERSION(4, 0, 0) GMainLoop *m_pLoop; GtkSelectionData *m_pData; #endif public: #if !GTK_CHECK_VERSION(4, 0, 0) GtkDnDTransferable(GdkDragContext *pContext, guint nTime, GtkWidget *pWidget, GtkInstDropTarget *pDropTarget) : m_pContext(pContext) , m_nTime(nTime) , m_pWidget(pWidget) , m_pDropTarget(pDropTarget) #else GtkDnDTransferable(GdkDrop *pDrop) : m_pDrop(pDrop) #endif #if !GTK_CHECK_VERSION(4, 0, 0) , m_pLoop(nullptr) , m_pData(nullptr) #endif { } virtual css::uno::Any SAL_CALL getTransferData(const css::datatransfer::DataFlavor& rFlavor) override { css::datatransfer::DataFlavor aFlavor(rFlavor); if (aFlavor.MimeType == "text/plain;charset=utf-16") aFlavor.MimeType = "text/plain;charset=utf-8"; auto it = m_aMimeTypeToGtkType.find(aFlavor.MimeType); if (it == m_aMimeTypeToGtkType.end()) return css::uno::Any(); css::uno::Any aRet; #if !GTK_CHECK_VERSION(4, 0, 0) /* like gtk_clipboard_wait_for_contents run a sub loop * waiting for drag-data-received triggered from * gtk_drag_get_data */ { m_pLoop = g_main_loop_new(nullptr, true); m_pDropTarget->SetFormatConversionRequest(this); gtk_drag_get_data(m_pWidget, m_pContext, it->second, m_nTime); if (g_main_loop_is_running(m_pLoop)) main_loop_run(m_pLoop); g_main_loop_unref(m_pLoop); m_pLoop = nullptr; m_pDropTarget->SetFormatConversionRequest(nullptr); } if (aFlavor.MimeType == "text/plain;charset=utf-8") { OUString aStr; gchar *pText = reinterpret_cast(gtk_selection_data_get_text(m_pData)); if (pText) aStr = OStringToOUString(pText, RTL_TEXTENCODING_UTF8); g_free(pText); aRet <<= aStr.replaceAll("\r\n", "\n"); } else { gint length(0); const guchar *rawdata = gtk_selection_data_get_data_with_length(m_pData, &length); // seen here was rawhide == nullptr and length set to -1 if (rawdata) { css::uno::Sequence aSeq(reinterpret_cast(rawdata), length); aRet <<= aSeq; } } gtk_selection_data_free(m_pData); #else SalInstance* pInstance = GetSalInstance(); read_transfer_result aRes; const char *mime_types[] = { it->second.getStr(), nullptr }; gdk_drop_read_async(m_pDrop, mime_types, G_PRIORITY_DEFAULT, nullptr, read_drop_async_completed, &aRes); while (!aRes.bDone) pInstance->DoYield(true, false); if (aFlavor.MimeType == "text/plain;charset=utf-8") aRet <<= aRes.get_as_string(); else aRet <<= aRes.get_as_sequence(); #endif return aRet; } virtual std::vector getTransferDataFlavorsAsVector() override { #if !GTK_CHECK_VERSION(4, 0, 0) std::vector targets; for (GList* l = gdk_drag_context_list_targets(m_pContext); l; l = l->next) targets.push_back(static_cast(l->data)); return GtkTransferable::getTransferDataFlavorsAsVector(targets.data(), targets.size()); #else GdkContentFormats* pFormats = gdk_drop_get_formats(m_pDrop); gsize n_targets; const char * const *targets = gdk_content_formats_get_mime_types(pFormats, &n_targets); return GtkTransferable::getTransferDataFlavorsAsVector(targets, n_targets); #endif } #if !GTK_CHECK_VERSION(4, 0, 0) void LoopEnd(GtkSelectionData *pData) { m_pData = pData; g_main_loop_quit(m_pLoop); } #endif }; // For LibreOffice internal D&D we provide the Transferable without Gtk // intermediaries as a shortcut, see tdf#100097 for how dbaccess depends on this GtkInstDragSource* GtkInstDragSource::g_ActiveDragSource; #if GTK_CHECK_VERSION(4, 0, 0) gboolean GtkSalFrame::signalDragDrop(GtkDropTargetAsync* context, GdkDrop* drop, double x, double y, gpointer frame) { GtkSalFrame* pThis = static_cast(frame); if (!pThis->m_pDropTarget) return false; return pThis->m_pDropTarget->signalDragDrop(context, drop, x, y); } #else gboolean GtkSalFrame::signalDragDrop(GtkWidget* pWidget, GdkDragContext* context, gint x, gint y, guint time, gpointer frame) { GtkSalFrame* pThis = static_cast(frame); if (!pThis->m_pDropTarget) return false; return pThis->m_pDropTarget->signalDragDrop(pWidget, context, x, y, time); } #endif #if !GTK_CHECK_VERSION(4, 0, 0) gboolean GtkInstDropTarget::signalDragDrop(GtkWidget* pWidget, GdkDragContext* context, gint x, gint y, guint time) #else gboolean GtkInstDropTarget::signalDragDrop(GtkDropTargetAsync* context, GdkDrop* drop, double x, double y) #endif { // remove the deferred dragExit, as we'll do a drop #ifndef NDEBUG bool res = #endif g_idle_remove_by_data(this); #ifndef NDEBUG #if !GTK_CHECK_VERSION(4, 0, 0) assert(res); #else (void)res; #endif #endif css::datatransfer::dnd::DropTargetDropEvent aEvent; aEvent.Source = static_cast(this); #if !GTK_CHECK_VERSION(4, 0, 0) aEvent.Context = new GtkDropTargetDropContext(context, time); #else aEvent.Context = new GtkDropTargetDropContext(drop); #endif aEvent.LocationX = x; aEvent.LocationY = y; #if !GTK_CHECK_VERSION(4, 0, 0) aEvent.DropAction = GdkToVcl(gdk_drag_context_get_selected_action(context)); #else aEvent.DropAction = GdkToVcl(getPreferredDragAction(GdkToVcl(gdk_drop_get_actions(drop)))); #endif // ACTION_DEFAULT is documented as... // 'This means the user did not press any key during the Drag and Drop operation // and the action that was combined with ACTION_DEFAULT is the system default action' // in tdf#107031 writer won't insert a link when a heading is dragged from the // navigator unless this is set. Its unclear really what ACTION_DEFAULT means, // there is a deprecated 'GDK_ACTION_DEFAULT Means nothing, and should not be used' // possible equivalent in gtk. // So (tdf#109227) set ACTION_DEFAULT if no modifier key is held down #if !GTK_CHECK_VERSION(4,0,0) aEvent.SourceActions = GdkToVcl(gdk_drag_context_get_actions(context)); GdkModifierType mask; gdk_window_get_pointer(widget_get_surface(pWidget), nullptr, nullptr, &mask); #else aEvent.SourceActions = GdkToVcl(gdk_drop_get_actions(drop)); GdkModifierType mask = gtk_event_controller_get_current_event_state(GTK_EVENT_CONTROLLER(context)); #endif if (!(mask & (GDK_CONTROL_MASK | GDK_SHIFT_MASK))) aEvent.DropAction |= css::datatransfer::dnd::DNDConstants::ACTION_DEFAULT; css::uno::Reference xTransferable; // For LibreOffice internal D&D we provide the Transferable without Gtk // intermediaries as a shortcut, see tdf#100097 for how dbaccess depends on this if (GtkInstDragSource::g_ActiveDragSource) xTransferable = GtkInstDragSource::g_ActiveDragSource->GetTransferable(); else { #if GTK_CHECK_VERSION(4,0,0) xTransferable = new GtkDnDTransferable(drop); #else xTransferable = new GtkDnDTransferable(context, time, pWidget, this); #endif } aEvent.Transferable = xTransferable; fire_drop(aEvent); return true; } namespace { class GtkDropTargetDragContext : public cppu::WeakImplHelper { #if !GTK_CHECK_VERSION(4, 0, 0) GdkDragContext *m_pContext; guint m_nTime; #else GdkDrop* m_pDrop; #endif public: #if !GTK_CHECK_VERSION(4, 0, 0) GtkDropTargetDragContext(GdkDragContext *pContext, guint nTime) : m_pContext(pContext) , m_nTime(nTime) #else GtkDropTargetDragContext(GdkDrop* pDrop) : m_pDrop(pDrop) #endif { } virtual void SAL_CALL acceptDrag(sal_Int8 dragOperation) override { #if !GTK_CHECK_VERSION(4, 0, 0) gdk_drag_status(m_pContext, getPreferredDragAction(dragOperation), m_nTime); #else gdk_drop_status(m_pDrop, gdk_drop_get_actions(m_pDrop), getPreferredDragAction(dragOperation)); #endif } virtual void SAL_CALL rejectDrag() override { #if !GTK_CHECK_VERSION(4, 0, 0) gdk_drag_status(m_pContext, static_cast(0), m_nTime); #else gdk_drop_status(m_pDrop, gdk_drop_get_actions(m_pDrop), static_cast(0)); #endif } }; } #if !GTK_CHECK_VERSION(4, 0, 0) void GtkSalFrame::signalDragDropReceived(GtkWidget* pWidget, GdkDragContext* context, gint x, gint y, GtkSelectionData* data, guint ttype, guint time, gpointer frame) { GtkSalFrame* pThis = static_cast(frame); if (!pThis->m_pDropTarget) return; pThis->m_pDropTarget->signalDragDropReceived(pWidget, context, x, y, data, ttype, time); } void GtkInstDropTarget::signalDragDropReceived(GtkWidget* /*pWidget*/, GdkDragContext * /*context*/, gint /*x*/, gint /*y*/, GtkSelectionData* data, guint /*ttype*/, guint /*time*/) { /* * If we get a drop, then we will call like gtk_clipboard_wait_for_contents * with a loop inside a loop to get the right format, so if this is the * case return to the outer loop here with a copy of the desired data * * don't look at me like that. */ if (!m_pFormatConversionRequest) return; m_pFormatConversionRequest->LoopEnd(gtk_selection_data_copy(data)); } #endif #if GTK_CHECK_VERSION(4,0,0) GdkDragAction GtkSalFrame::signalDragMotion(GtkDropTargetAsync *dest, GdkDrop *drop, double x, double y, gpointer frame) { GtkSalFrame* pThis = static_cast(frame); if (!pThis->m_pDropTarget) return GdkDragAction(0); return pThis->m_pDropTarget->signalDragMotion(dest, drop, x, y); } #else gboolean GtkSalFrame::signalDragMotion(GtkWidget *pWidget, GdkDragContext *context, gint x, gint y, guint time, gpointer frame) { GtkSalFrame* pThis = static_cast(frame); if (!pThis->m_pDropTarget) return false; return pThis->m_pDropTarget->signalDragMotion(pWidget, context, x, y, time); } #endif #if !GTK_CHECK_VERSION(4,0,0) gboolean GtkInstDropTarget::signalDragMotion(GtkWidget *pWidget, GdkDragContext *context, gint x, gint y, guint time) #else GdkDragAction GtkInstDropTarget::signalDragMotion(GtkDropTargetAsync *context, GdkDrop *pDrop, double x, double y) #endif { if (!m_bInDrag) { #if !GTK_CHECK_VERSION(4,0,0) GtkWidget* pHighlightWidget = m_pFrame ? GTK_WIDGET(m_pFrame->getFixedContainer()) : pWidget; gtk_drag_highlight(pHighlightWidget); #else GtkWidget* pHighlightWidget = m_pFrame ? GTK_WIDGET(m_pFrame->getFixedContainer()) : gtk_event_controller_get_widget(GTK_EVENT_CONTROLLER(context)); gtk_widget_set_state_flags(pHighlightWidget, GTK_STATE_FLAG_DROP_ACTIVE, false); #endif } css::datatransfer::dnd::DropTargetDragEnterEvent aEvent; aEvent.Source = static_cast(this); #if !GTK_CHECK_VERSION(4,0,0) rtl::Reference pContext = new GtkDropTargetDragContext(context, time); #else rtl::Reference pContext = new GtkDropTargetDragContext(pDrop); #endif //preliminary accept the Drag and select the preferred action, the fire_* will //inform the original caller of our choice and the callsite can decide //to overrule this choice. i.e. typically here we default to ACTION_MOVE #if !GTK_CHECK_VERSION(4,0,0) sal_Int8 nSourceActions = GdkToVcl(gdk_drag_context_get_actions(context)); GdkModifierType mask; gdk_window_get_pointer(widget_get_surface(pWidget), nullptr, nullptr, &mask); #else sal_Int8 nSourceActions = GdkToVcl(gdk_drop_get_actions(pDrop)); GdkModifierType mask = gtk_event_controller_get_current_event_state(GTK_EVENT_CONTROLLER(context)); #endif // tdf#124411 default to move if drag originates within LO itself, default // to copy if it comes from outside, this is similar to srcAndDestEqual // in macosx DropTarget::determineDropAction equivalent sal_Int8 nNewDropAction = GtkInstDragSource::g_ActiveDragSource ? css::datatransfer::dnd::DNDConstants::ACTION_MOVE : css::datatransfer::dnd::DNDConstants::ACTION_COPY; // tdf#109227 if a modifier is held down, default to the matching // action for that modifier combo, otherwise pick the preferred // default from the possible source actions if ((mask & GDK_SHIFT_MASK) && !(mask & GDK_CONTROL_MASK)) nNewDropAction = css::datatransfer::dnd::DNDConstants::ACTION_MOVE; else if ((mask & GDK_CONTROL_MASK) && !(mask & GDK_SHIFT_MASK)) nNewDropAction = css::datatransfer::dnd::DNDConstants::ACTION_COPY; else if ((mask & GDK_SHIFT_MASK) && (mask & GDK_CONTROL_MASK) ) nNewDropAction = css::datatransfer::dnd::DNDConstants::ACTION_LINK; nNewDropAction &= nSourceActions; GdkDragAction eAction; if (!(mask & (GDK_CONTROL_MASK | GDK_SHIFT_MASK)) && !nNewDropAction) eAction = getPreferredDragAction(nSourceActions); else eAction = getPreferredDragAction(nNewDropAction); #if !GTK_CHECK_VERSION(4,0,0) gdk_drag_status(context, eAction, time); #else gdk_drop_status(pDrop, static_cast(eAction | gdk_drop_get_actions(pDrop)), eAction); #endif aEvent.Context = pContext; aEvent.LocationX = x; aEvent.LocationY = y; //under wayland at least, the action selected by gdk_drag_status on the //context is not immediately available via gdk_drag_context_get_selected_action //so here we set the DropAction from what we selected on the context, not //what the context says is selected aEvent.DropAction = GdkToVcl(eAction); aEvent.SourceActions = nSourceActions; if (!m_bInDrag) { css::uno::Reference xTransferable; // For LibreOffice internal D&D we provide the Transferable without Gtk // intermediaries as a shortcut, see tdf#100097 for how dbaccess depends on this if (GtkInstDragSource::g_ActiveDragSource) xTransferable = GtkInstDragSource::g_ActiveDragSource->GetTransferable(); else { #if !GTK_CHECK_VERSION(4,0,0) xTransferable = new GtkDnDTransferable(context, time, pWidget, this); #else xTransferable = new GtkDnDTransferable(pDrop); #endif } aEvent.SupportedDataFlavors = xTransferable->getTransferDataFlavors(); fire_dragEnter(aEvent); m_bInDrag = true; } else { fire_dragOver(aEvent); } #if !GTK_CHECK_VERSION(4,0,0) return true; #else return eAction; #endif } #if GTK_CHECK_VERSION(4,0,0) void GtkSalFrame::signalDragLeave(GtkDropTargetAsync* pDest, GdkDrop* /*drop*/, gpointer frame) { GtkSalFrame* pThis = static_cast(frame); if (!pThis->m_pDropTarget) return; pThis->m_pDropTarget->signalDragLeave(gtk_event_controller_get_widget(GTK_EVENT_CONTROLLER(pDest))); } #else void GtkSalFrame::signalDragLeave(GtkWidget* pWidget, GdkDragContext* /*context*/, guint /*time*/, gpointer frame) { GtkSalFrame* pThis = static_cast(frame); if (!pThis->m_pDropTarget) return; pThis->m_pDropTarget->signalDragLeave(pWidget); } #endif static gboolean lcl_deferred_dragExit(gpointer user_data) { GtkInstDropTarget* pThis = static_cast(user_data); css::datatransfer::dnd::DropTargetEvent aEvent; aEvent.Source = static_cast(pThis); pThis->fire_dragExit(aEvent); return false; } void GtkInstDropTarget::signalDragLeave(GtkWidget *pWidget) { m_bInDrag = false; GtkWidget* pHighlightWidget = m_pFrame ? GTK_WIDGET(m_pFrame->getFixedContainer()) : pWidget; #if !GTK_CHECK_VERSION(4,0,0) gtk_drag_unhighlight(pHighlightWidget); #else gtk_widget_unset_state_flags(pHighlightWidget, GTK_STATE_FLAG_DROP_ACTIVE); #endif // defer fire_dragExit, since gtk also sends a drag-leave before the drop, while // LO expect to either handle the drop or the exit... at least in Writer. // but since we don't know there will be a drop following the leave, defer the // exit handling to an idle. g_idle_add(lcl_deferred_dragExit, this); } void GtkSalFrame::signalDestroy( GtkWidget* pObj, gpointer frame ) { GtkSalFrame* pThis = static_cast(frame); if( pObj != pThis->m_pWindow ) return; pThis->m_aDamageHandler.damaged = nullptr; pThis->m_aDamageHandler.handle = nullptr; if (pThis->m_pSurface) cairo_surface_set_user_data(pThis->m_pSurface, SvpSalGraphics::getDamageKey(), nullptr, nullptr); pThis->m_pFixedContainer = nullptr; pThis->m_pDrawingArea = nullptr; #if !GTK_CHECK_VERSION(4, 0, 0) pThis->m_pEventBox = nullptr; #endif pThis->m_pTopLevelGrid = nullptr; pThis->m_pWindow = nullptr; pThis->m_xFrameWeld.reset(); pThis->InvalidateGraphics(); } // GtkSalFrame::IMHandler GtkSalFrame::IMHandler::IMHandler( GtkSalFrame* pFrame ) : m_pFrame(pFrame), m_nPrevKeyPresses( 0 ), m_pIMContext( nullptr ), m_bFocused( true ), m_bPreeditJustChanged( false ) { m_aInputEvent.mpTextAttr = nullptr; createIMContext(); } GtkSalFrame::IMHandler::~IMHandler() { // cancel an eventual event posted to begin preedit again GtkSalFrame::getDisplay()->CancelInternalEvent( m_pFrame, &m_aInputEvent, SalEvent::ExtTextInput ); deleteIMContext(); } void GtkSalFrame::IMHandler::createIMContext() { if( m_pIMContext ) return; m_pIMContext = gtk_im_multicontext_new (); g_signal_connect( m_pIMContext, "commit", G_CALLBACK (signalIMCommit), this ); g_signal_connect( m_pIMContext, "preedit_changed", G_CALLBACK (signalIMPreeditChanged), this ); g_signal_connect( m_pIMContext, "retrieve_surrounding", G_CALLBACK (signalIMRetrieveSurrounding), this ); g_signal_connect( m_pIMContext, "delete_surrounding", G_CALLBACK (signalIMDeleteSurrounding), this ); g_signal_connect( m_pIMContext, "preedit_start", G_CALLBACK (signalIMPreeditStart), this ); g_signal_connect( m_pIMContext, "preedit_end", G_CALLBACK (signalIMPreeditEnd), this ); GetGenericUnixSalData()->ErrorTrapPush(); im_context_set_client_widget(m_pIMContext, m_pFrame->getMouseEventWidget()); #if GTK_CHECK_VERSION(4, 0, 0) gtk_event_controller_key_set_im_context(m_pFrame->m_pKeyController, m_pIMContext); #endif gtk_im_context_focus_in( m_pIMContext ); GetGenericUnixSalData()->ErrorTrapPop(); m_bFocused = true; } void GtkSalFrame::IMHandler::deleteIMContext() { if( !m_pIMContext ) return; // first give IC a chance to deinitialize GetGenericUnixSalData()->ErrorTrapPush(); #if GTK_CHECK_VERSION(4, 0, 0) gtk_event_controller_key_set_im_context(m_pFrame->m_pKeyController, nullptr); #endif im_context_set_client_widget(m_pIMContext, nullptr); GetGenericUnixSalData()->ErrorTrapPop(); // destroy old IC g_object_unref( m_pIMContext ); m_pIMContext = nullptr; } void GtkSalFrame::IMHandler::doCallEndExtTextInput() { m_aInputEvent.mpTextAttr = nullptr; m_pFrame->CallCallbackExc( SalEvent::EndExtTextInput, nullptr ); } void GtkSalFrame::IMHandler::updateIMSpotLocation() { SalExtTextInputPosEvent aPosEvent; m_pFrame->CallCallbackExc( SalEvent::ExtTextInputPos, static_cast(&aPosEvent) ); GdkRectangle aArea; aArea.x = aPosEvent.mnX; aArea.y = aPosEvent.mnY; aArea.width = aPosEvent.mnWidth; aArea.height = aPosEvent.mnHeight; GetGenericUnixSalData()->ErrorTrapPush(); gtk_im_context_set_cursor_location( m_pIMContext, &aArea ); GetGenericUnixSalData()->ErrorTrapPop(); } void GtkSalFrame::IMHandler::sendEmptyCommit() { vcl::DeletionListener aDel( m_pFrame ); SalExtTextInputEvent aEmptyEv; aEmptyEv.mpTextAttr = nullptr; aEmptyEv.maText.clear(); aEmptyEv.mnCursorPos = 0; aEmptyEv.mnCursorFlags = 0; m_pFrame->CallCallbackExc( SalEvent::ExtTextInput, static_cast(&aEmptyEv) ); if( ! aDel.isDeleted() ) m_pFrame->CallCallbackExc( SalEvent::EndExtTextInput, nullptr ); } void GtkSalFrame::IMHandler::endExtTextInput( EndExtTextInputFlags /*nFlags*/ ) { gtk_im_context_reset ( m_pIMContext ); if( !m_aInputEvent.mpTextAttr ) return; vcl::DeletionListener aDel( m_pFrame ); // delete preedit in sal (commit an empty string) sendEmptyCommit(); if( ! aDel.isDeleted() ) { // mark previous preedit state again (will e.g. be sent at focus gain) m_aInputEvent.mpTextAttr = m_aInputFlags.data(); if( m_bFocused ) { // begin preedit again GtkSalFrame::getDisplay()->SendInternalEvent( m_pFrame, &m_aInputEvent, SalEvent::ExtTextInput ); } } } void GtkSalFrame::IMHandler::focusChanged( bool bFocusIn ) { m_bFocused = bFocusIn; if( bFocusIn ) { GetGenericUnixSalData()->ErrorTrapPush(); gtk_im_context_focus_in( m_pIMContext ); GetGenericUnixSalData()->ErrorTrapPop(); if( m_aInputEvent.mpTextAttr ) { sendEmptyCommit(); // begin preedit again GtkSalFrame::getDisplay()->SendInternalEvent( m_pFrame, &m_aInputEvent, SalEvent::ExtTextInput ); } } else { GetGenericUnixSalData()->ErrorTrapPush(); gtk_im_context_focus_out( m_pIMContext ); GetGenericUnixSalData()->ErrorTrapPop(); // cancel an eventual event posted to begin preedit again GtkSalFrame::getDisplay()->CancelInternalEvent( m_pFrame, &m_aInputEvent, SalEvent::ExtTextInput ); } } #if !GTK_CHECK_VERSION(4, 0, 0) bool GtkSalFrame::IMHandler::handleKeyEvent( GdkEventKey* pEvent ) { vcl::DeletionListener aDel( m_pFrame ); if( pEvent->type == GDK_KEY_PRESS ) { // Add this key press event to the list of previous key presses // to which we compare key release events. If a later key release // event has a matching key press event in this list, we swallow // the key release because some GTK Input Methods don't swallow it // for us. m_aPrevKeyPresses.emplace_back(pEvent ); m_nPrevKeyPresses++; // Also pop off the earliest key press event if there are more than 10 // already. while (m_nPrevKeyPresses > 10) { m_aPrevKeyPresses.pop_front(); m_nPrevKeyPresses--; } GObject* pRef = G_OBJECT( g_object_ref( G_OBJECT( m_pIMContext ) ) ); // #i51353# update spot location on every key input since we cannot // know which key may activate a preedit choice window updateIMSpotLocation(); if( aDel.isDeleted() ) return true; bool bResult = gtk_im_context_filter_keypress( m_pIMContext, pEvent ); g_object_unref( pRef ); if( aDel.isDeleted() ) return true; m_bPreeditJustChanged = false; if( bResult ) return true; else { SAL_WARN_IF( m_nPrevKeyPresses <= 0, "vcl.gtk3", "key press has vanished !" ); if( ! m_aPrevKeyPresses.empty() ) // sanity check { // event was not swallowed, do not filter a following // key release event // note: this relies on gtk_im_context_filter_keypress // returning without calling a handler (in the "not swallowed" // case ) which might change the previous key press list so // we would pop the wrong event here m_aPrevKeyPresses.pop_back(); m_nPrevKeyPresses--; } } } // Determine if we got an earlier key press event corresponding to this key release if (pEvent->type == GDK_KEY_RELEASE) { GObject* pRef = G_OBJECT( g_object_ref( G_OBJECT( m_pIMContext ) ) ); bool bResult = gtk_im_context_filter_keypress( m_pIMContext, pEvent ); g_object_unref( pRef ); if( aDel.isDeleted() ) return true; m_bPreeditJustChanged = false; auto iter = std::find(m_aPrevKeyPresses.begin(), m_aPrevKeyPresses.end(), pEvent); // If we found a corresponding previous key press event, swallow the release // and remove the earlier key press from our list if (iter != m_aPrevKeyPresses.end()) { m_aPrevKeyPresses.erase(iter); m_nPrevKeyPresses--; return true; } if( bResult ) return true; } return false; } /* FIXME: * #122282# still more hacking: some IMEs never start a preedit but simply commit * in this case we cannot commit a single character. Workaround: do not do the * single key hack for enter or space if the unicode committed does not match */ static bool checkSingleKeyCommitHack( guint keyval, sal_Unicode cCode ) { bool bRet = true; switch( keyval ) { case GDK_KEY_KP_Enter: case GDK_KEY_Return: if( cCode != '\n' && cCode != '\r' ) bRet = false; break; case GDK_KEY_space: case GDK_KEY_KP_Space: if( cCode != ' ' ) bRet = false; break; default: break; } return bRet; } void GtkSalFrame::IMHandler::signalIMCommit( GtkIMContext* /*pContext*/, gchar* pText, gpointer im_handler ) { GtkSalFrame::IMHandler* pThis = static_cast(im_handler); SolarMutexGuard aGuard; vcl::DeletionListener aDel( pThis->m_pFrame ); { const bool bWasPreedit = (pThis->m_aInputEvent.mpTextAttr != nullptr) || pThis->m_bPreeditJustChanged; pThis->m_aInputEvent.mpTextAttr = nullptr; pThis->m_aInputEvent.maText = OUString( pText, strlen(pText), RTL_TEXTENCODING_UTF8 ); pThis->m_aInputEvent.mnCursorPos = pThis->m_aInputEvent.maText.getLength(); pThis->m_aInputEvent.mnCursorFlags = 0; pThis->m_aInputFlags.clear(); /* necessary HACK: all keyboard input comes in here as soon as an IMContext is set * which is logical and consequent. But since even simple input like * comes through the commit signal instead of signalKey * and all kinds of windows only implement KeyInput (e.g. PushButtons, * RadioButtons and a lot of other Controls), will send a single * KeyInput/KeyUp sequence instead of an ExtText event if there * never was a preedit and the text is only one character. * * In this case there the last ExtText event must have been * SalEvent::EndExtTextInput, either because of a regular commit * or because there never was a preedit. */ bool bSingleCommit = false; if( ! bWasPreedit && pThis->m_aInputEvent.maText.getLength() == 1 && ! pThis->m_aPrevKeyPresses.empty() ) { const PreviousKeyPress& rKP = pThis->m_aPrevKeyPresses.back(); sal_Unicode aOrigCode = pThis->m_aInputEvent.maText[0]; if( checkSingleKeyCommitHack( rKP.keyval, aOrigCode ) ) { pThis->m_pFrame->doKeyCallback( rKP.state, rKP.keyval, rKP.hardware_keycode, rKP.group, aOrigCode, true, true ); bSingleCommit = true; } } if( ! bSingleCommit ) { pThis->m_pFrame->CallCallbackExc( SalEvent::ExtTextInput, static_cast(&pThis->m_aInputEvent)); if( ! aDel.isDeleted() ) pThis->doCallEndExtTextInput(); } if( ! aDel.isDeleted() ) { // reset input event pThis->m_aInputEvent.maText.clear(); pThis->m_aInputEvent.mnCursorPos = 0; pThis->updateIMSpotLocation(); } } } #else void GtkSalFrame::IMHandler::signalIMCommit( GtkIMContext* /*pContext*/, gchar* pText, gpointer im_handler ) { GtkSalFrame::IMHandler* pThis = static_cast(im_handler); SolarMutexGuard aGuard; vcl::DeletionListener aDel( pThis->m_pFrame ); { #if 0 const bool bWasPreedit = (pThis->m_aInputEvent.mpTextAttr != nullptr) || pThis->m_bPreeditJustChanged; #endif pThis->m_aInputEvent.mpTextAttr = nullptr; pThis->m_aInputEvent.maText = OUString( pText, strlen(pText), RTL_TEXTENCODING_UTF8 ); pThis->m_aInputEvent.mnCursorPos = pThis->m_aInputEvent.maText.getLength(); pThis->m_aInputEvent.mnCursorFlags = 0; pThis->m_aInputFlags.clear(); /* necessary HACK: all keyboard input comes in here as soon as an IMContext is set * which is logical and consequent. But since even simple input like * comes through the commit signal instead of signalKey * and all kinds of windows only implement KeyInput (e.g. PushButtons, * RadioButtons and a lot of other Controls), will send a single * KeyInput/KeyUp sequence instead of an ExtText event if there * never was a preedit and the text is only one character. * * In this case there the last ExtText event must have been * SalEvent::EndExtTextInput, either because of a regular commit * or because there never was a preedit. */ bool bSingleCommit = false; #if 0 // TODO this needs a rethink to work again if necessary if( ! bWasPreedit && pThis->m_aInputEvent.maText.getLength() == 1 && ! pThis->m_aPrevKeyPresses.empty() ) { const PreviousKeyPress& rKP = pThis->m_aPrevKeyPresses.back(); sal_Unicode aOrigCode = pThis->m_aInputEvent.maText[0]; if( checkSingleKeyCommitHack( rKP.keyval, aOrigCode ) ) { pThis->m_pFrame->doKeyCallback( rKP.state, rKP.keyval, rKP.hardware_keycode, rKP.group, aOrigCode, true, true ); bSingleCommit = true; } } #endif if( ! bSingleCommit ) { pThis->m_pFrame->CallCallbackExc( SalEvent::ExtTextInput, static_cast(&pThis->m_aInputEvent)); if( ! aDel.isDeleted() ) pThis->doCallEndExtTextInput(); } if( ! aDel.isDeleted() ) { // reset input event pThis->m_aInputEvent.maText.clear(); pThis->m_aInputEvent.mnCursorPos = 0; pThis->updateIMSpotLocation(); } } } #endif OUString GtkSalFrame::GetPreeditDetails(GtkIMContext* pIMContext, std::vector& rInputFlags, sal_Int32& rCursorPos, sal_uInt8& rCursorFlags) { char* pText = nullptr; PangoAttrList* pAttrs = nullptr; gint nCursorPos = 0; gtk_im_context_get_preedit_string( pIMContext, &pText, &pAttrs, &nCursorPos ); gint nUtf8Len = pText ? strlen(pText) : 0; OUString sText = pText ? OUString(pText, nUtf8Len, RTL_TEXTENCODING_UTF8) : OUString(); std::vector aUtf16Offsets; for (sal_Int32 nUtf16Offset = 0; nUtf16Offset < sText.getLength(); sText.iterateCodePoints(&nUtf16Offset)) aUtf16Offsets.push_back(nUtf16Offset); sal_Int32 nUtf32Len = aUtf16Offsets.size(); // from the above loop filling aUtf16Offsets, we know that its size() fits into sal_Int32 aUtf16Offsets.push_back(sText.getLength()); // sanitize the CurPos which is in utf-32 if (nCursorPos < 0) nCursorPos = 0; else if (nCursorPos > nUtf32Len) nCursorPos = nUtf32Len; rCursorPos = aUtf16Offsets[nCursorPos]; rCursorFlags = 0; rInputFlags.resize(std::max(1, static_cast(sText.getLength())), ExtTextInputAttr::NONE); PangoAttrIterator *iter = pango_attr_list_get_iterator(pAttrs); do { GSList *attr_list = nullptr; GSList *tmp_list = nullptr; gint nUtf8Start, nUtf8End; ExtTextInputAttr sal_attr = ExtTextInputAttr::NONE; // docs say... "Get the range of the current segment ... the stored // return values are signed, not unsigned like the values in // PangoAttribute", which implies that the units are otherwise the same // as that of PangoAttribute whose docs state these units are "in // bytes" // so this is the utf8 range pango_attr_iterator_range(iter, &nUtf8Start, &nUtf8End); // sanitize the utf8 range nUtf8Start = std::min(nUtf8Start, nUtf8Len); nUtf8End = std::min(nUtf8End, nUtf8Len); if (nUtf8Start >= nUtf8End) continue; // get the utf32 range sal_Int32 nUtf32Start = g_utf8_pointer_to_offset(pText, pText + nUtf8Start); sal_Int32 nUtf32End = g_utf8_pointer_to_offset(pText, pText + nUtf8End); // sanitize the utf32 range nUtf32Start = std::min(nUtf32Start, nUtf32Len); nUtf32End = std::min(nUtf32End, nUtf32Len); if (nUtf32Start >= nUtf32End) continue; tmp_list = attr_list = pango_attr_iterator_get_attrs (iter); while (tmp_list) { PangoAttribute *pango_attr = static_cast(tmp_list->data); switch (pango_attr->klass->type) { case PANGO_ATTR_BACKGROUND: sal_attr |= ExtTextInputAttr::Highlight; rCursorFlags |= EXTTEXTINPUT_CURSOR_INVISIBLE; break; case PANGO_ATTR_UNDERLINE: { PangoAttrInt* pango_underline = reinterpret_cast(pango_attr); switch (pango_underline->value) { case PANGO_UNDERLINE_NONE: break; case PANGO_UNDERLINE_DOUBLE: sal_attr |= ExtTextInputAttr::DoubleUnderline; break; default: sal_attr |= ExtTextInputAttr::Underline; break; } break; } case PANGO_ATTR_STRIKETHROUGH: sal_attr |= ExtTextInputAttr::RedText; break; default: break; } pango_attribute_destroy (pango_attr); tmp_list = tmp_list->next; } if (!attr_list) sal_attr |= ExtTextInputAttr::Underline; g_slist_free (attr_list); // Set the sal attributes on our text // rhbz#1648281 apply over our utf-16 range derived from the input utf-32 range for (sal_Int32 i = aUtf16Offsets[nUtf32Start]; i < aUtf16Offsets[nUtf32End]; ++i) { SAL_WARN_IF(i >= static_cast(rInputFlags.size()), "vcl.gtk3", "pango attrib out of range. Broken range: " << aUtf16Offsets[nUtf32Start] << "," << aUtf16Offsets[nUtf32End] << " Legal range: 0," << rInputFlags.size()); if (i >= static_cast(rInputFlags.size())) continue; rInputFlags[i] |= sal_attr; } } while (pango_attr_iterator_next (iter)); pango_attr_iterator_destroy(iter); g_free( pText ); pango_attr_list_unref( pAttrs ); return sText; } void GtkSalFrame::IMHandler::signalIMPreeditChanged( GtkIMContext* pIMContext, gpointer im_handler ) { GtkSalFrame::IMHandler* pThis = static_cast(im_handler); sal_Int32 nCursorPos(0); sal_uInt8 nCursorFlags(0); std::vector aInputFlags; OUString sText = GtkSalFrame::GetPreeditDetails(pIMContext, aInputFlags, nCursorPos, nCursorFlags); if (sText.isEmpty() && pThis->m_aInputEvent.maText.isEmpty()) { // change from nothing to nothing -> do not start preedit // e.g. this will activate input into a calc cell without // user input return; } pThis->m_bPreeditJustChanged = true; bool bEndPreedit = sText.isEmpty() && pThis->m_aInputEvent.mpTextAttr != nullptr; pThis->m_aInputEvent.maText = sText; pThis->m_aInputEvent.mnCursorPos = nCursorPos; pThis->m_aInputEvent.mnCursorFlags = nCursorFlags; pThis->m_aInputFlags = std::move(aInputFlags); pThis->m_aInputEvent.mpTextAttr = pThis->m_aInputFlags.data(); SolarMutexGuard aGuard; vcl::DeletionListener aDel( pThis->m_pFrame ); pThis->m_pFrame->CallCallbackExc( SalEvent::ExtTextInput, static_cast(&pThis->m_aInputEvent)); if( bEndPreedit && ! aDel.isDeleted() ) pThis->doCallEndExtTextInput(); if( ! aDel.isDeleted() ) pThis->updateIMSpotLocation(); } void GtkSalFrame::IMHandler::signalIMPreeditStart( GtkIMContext*, gpointer /*im_handler*/ ) { } void GtkSalFrame::IMHandler::signalIMPreeditEnd( GtkIMContext*, gpointer im_handler ) { GtkSalFrame::IMHandler* pThis = static_cast(im_handler); pThis->m_bPreeditJustChanged = true; SolarMutexGuard aGuard; vcl::DeletionListener aDel( pThis->m_pFrame ); pThis->doCallEndExtTextInput(); if( ! aDel.isDeleted() ) pThis->updateIMSpotLocation(); } gboolean GtkSalFrame::IMHandler::signalIMRetrieveSurrounding( GtkIMContext* pContext, gpointer im_handler ) { GtkSalFrame::IMHandler* pThis = static_cast(im_handler); SalSurroundingTextRequestEvent aEvt; aEvt.maText.clear(); aEvt.mnStart = aEvt.mnEnd = 0; SolarMutexGuard aGuard; pThis->m_pFrame->CallCallback(SalEvent::SurroundingTextRequest, &aEvt); OString sUTF = OUStringToOString(aEvt.maText, RTL_TEXTENCODING_UTF8); std::u16string_view sCursorText(aEvt.maText.subView(0, aEvt.mnStart)); gtk_im_context_set_surrounding(pContext, sUTF.getStr(), sUTF.getLength(), OUStringToOString(sCursorText, RTL_TEXTENCODING_UTF8).getLength()); return true; } gboolean GtkSalFrame::IMHandler::signalIMDeleteSurrounding( GtkIMContext*, gint offset, gint nchars, gpointer im_handler ) { GtkSalFrame::IMHandler* pThis = static_cast(im_handler); // First get the surrounding text SalSurroundingTextRequestEvent aSurroundingTextEvt; aSurroundingTextEvt.maText.clear(); aSurroundingTextEvt.mnStart = aSurroundingTextEvt.mnEnd = 0; SolarMutexGuard aGuard; pThis->m_pFrame->CallCallback(SalEvent::SurroundingTextRequest, &aSurroundingTextEvt); // Turn offset, nchars into a utf-16 selection Selection aSelection = SalFrame::CalcDeleteSurroundingSelection(aSurroundingTextEvt.maText, aSurroundingTextEvt.mnStart, offset, nchars); Selection aInvalid(SAL_MAX_UINT32, SAL_MAX_UINT32); if (aSelection == aInvalid) return false; SalSurroundingTextSelectionChangeEvent aEvt; aEvt.mnStart = aSelection.Min(); aEvt.mnEnd = aSelection.Max(); pThis->m_pFrame->CallCallback(SalEvent::DeleteSurroundingTextRequest, &aEvt); aSelection = Selection(aEvt.mnStart, aEvt.mnEnd); if (aSelection == aInvalid) return false; return true; } AbsoluteScreenPixelSize GtkSalDisplay::GetScreenSize( int nDisplayScreen ) { AbsoluteScreenPixelRectangle aRect = m_pSys->GetDisplayScreenPosSizePixel( nDisplayScreen ); return AbsoluteScreenPixelSize( aRect.GetWidth(), aRect.GetHeight() ); } sal_uIntPtr GtkSalFrame::GetNativeWindowHandle(GtkWidget *pWidget) { GdkSurface* pSurface = widget_get_surface(pWidget); GdkDisplay *pDisplay = getGdkDisplay(); #if defined(GDK_WINDOWING_X11) if (DLSYM_GDK_IS_X11_DISPLAY(pDisplay)) { return gdk_x11_surface_get_xid(pSurface); } #endif #if defined(GDK_WINDOWING_WAYLAND) if (DLSYM_GDK_IS_WAYLAND_DISPLAY(pDisplay)) { return reinterpret_cast(gdk_wayland_surface_get_wl_surface(pSurface)); } #endif return 0; } void GtkInstDragSource::set_datatransfer(const css::uno::Reference& rTrans, const css::uno::Reference& rListener) { m_xListener = rListener; m_xTrans = rTrans; } void GtkInstDragSource::setActiveDragSource() { // For LibreOffice internal D&D we provide the Transferable without Gtk // intermediaries as a shortcut, see tdf#100097 for how dbaccess depends on this g_ActiveDragSource = this; g_DropSuccessSet = false; g_DropSuccess = false; } #if !GTK_CHECK_VERSION(4, 0, 0) std::vector GtkInstDragSource::FormatsToGtk(const css::uno::Sequence &rFormats) { return m_aConversionHelper.FormatsToGtk(rFormats); } #endif void GtkInstDragSource::startDrag(const datatransfer::dnd::DragGestureEvent& rEvent, sal_Int8 sourceActions, sal_Int32 /*cursor*/, sal_Int32 /*image*/, const css::uno::Reference& rTrans, const css::uno::Reference& rListener) { set_datatransfer(rTrans, rListener); if (m_pFrame) { setActiveDragSource(); m_pFrame->startDrag(rEvent, rTrans, m_aConversionHelper ,VclToGdk(sourceActions)); } else dragFailed(); } void GtkSalFrame::startDrag(const css::datatransfer::dnd::DragGestureEvent& rEvent, const css::uno::Reference& rTrans, VclToGtkHelper& rConversionHelper, GdkDragAction sourceActions) { SolarMutexGuard aGuard; assert(m_pDragSource); #if GTK_CHECK_VERSION(4, 0, 0) GdkSeat *pSeat = gdk_display_get_default_seat(getGdkDisplay()); GdkDrag* pDrag = gdk_drag_begin(widget_get_surface(getMouseEventWidget()), gdk_seat_get_pointer(pSeat), transerable_content_new(&rConversionHelper, rTrans.get()), sourceActions, rEvent.DragOriginX, rEvent.DragOriginY); g_signal_connect(G_OBJECT(pDrag), "drop-performed", G_CALLBACK(signalDragEnd), this); g_signal_connect(G_OBJECT(pDrag), "cancel", G_CALLBACK(signalDragFailed), this); g_signal_connect(G_OBJECT(pDrag), "dnd-finished", G_CALLBACK(signalDragDelete), this); #else auto aFormats = rTrans->getTransferDataFlavors(); auto aGtkTargets = rConversionHelper.FormatsToGtk(aFormats); GtkTargetList *pTargetList = gtk_target_list_new(aGtkTargets.data(), aGtkTargets.size()); gint nDragButton = 1; // default to left button css::awt::MouseEvent aEvent; if (rEvent.Event >>= aEvent) { if (aEvent.Buttons & css::awt::MouseButton::LEFT ) nDragButton = 1; else if (aEvent.Buttons & css::awt::MouseButton::RIGHT) nDragButton = 3; else if (aEvent.Buttons & css::awt::MouseButton::MIDDLE) nDragButton = 2; } GdkEvent aFakeEvent; memset(&aFakeEvent, 0, sizeof(GdkEvent)); aFakeEvent.type = GDK_BUTTON_PRESS; aFakeEvent.button.window = widget_get_surface(getMouseEventWidget()); aFakeEvent.button.time = GDK_CURRENT_TIME; aFakeEvent.button.device = gtk_get_current_event_device(); // if no current event to determine device, or (tdf#140272) the device will be unsuitable then find an // appropriate device to use. if (!aFakeEvent.button.device || !gdk_device_get_window_at_position(aFakeEvent.button.device, nullptr, nullptr)) { GdkDeviceManager* pDeviceManager = gdk_display_get_device_manager(getGdkDisplay()); GList* pDevices = gdk_device_manager_list_devices(pDeviceManager, GDK_DEVICE_TYPE_MASTER); for (GList* pEntry = pDevices; pEntry; pEntry = pEntry->next) { GdkDevice* pDevice = static_cast(pEntry->data); if (gdk_device_get_source(pDevice) == GDK_SOURCE_KEYBOARD) continue; if (gdk_device_get_window_at_position(pDevice, nullptr, nullptr)) { aFakeEvent.button.device = pDevice; break; } } g_list_free(pDevices); } GdkDragContext *pDrag; if (!aFakeEvent.button.device || !gdk_device_get_window_at_position(aFakeEvent.button.device, nullptr, nullptr)) pDrag = nullptr; else pDrag = gtk_drag_begin_with_coordinates(getMouseEventWidget(), pTargetList, sourceActions, nDragButton, &aFakeEvent, rEvent.DragOriginX, rEvent.DragOriginY); gtk_target_list_unref(pTargetList); for (auto &a : aGtkTargets) g_free(a.target); #endif if (!pDrag) m_pDragSource->dragFailed(); } void GtkInstDragSource::dragFailed() { if (m_xListener.is()) { datatransfer::dnd::DragSourceDropEvent aEv; aEv.DropAction = datatransfer::dnd::DNDConstants::ACTION_NONE; aEv.DropSuccess = false; auto xListener = m_xListener; m_xListener.clear(); xListener->dragDropEnd(aEv); } } #if GTK_CHECK_VERSION(4, 0, 0) void GtkSalFrame::signalDragFailed(GdkDrag* /*drag*/, GdkDragCancelReason /*reason*/, gpointer frame) #else gboolean GtkSalFrame::signalDragFailed(GtkWidget* /*widget*/, GdkDragContext* /*context*/, GtkDragResult /*result*/, gpointer frame) #endif { GtkSalFrame* pThis = static_cast(frame); if (pThis->m_pDragSource) pThis->m_pDragSource->dragFailed(); #if !GTK_CHECK_VERSION(4, 0, 0) return false; #endif } void GtkInstDragSource::dragDelete() { if (m_xListener.is()) { datatransfer::dnd::DragSourceDropEvent aEv; aEv.DropAction = datatransfer::dnd::DNDConstants::ACTION_MOVE; aEv.DropSuccess = true; auto xListener = m_xListener; m_xListener.clear(); xListener->dragDropEnd(aEv); } } #if GTK_CHECK_VERSION(4, 0, 0) void GtkSalFrame::signalDragDelete(GdkDrag* /*context*/, gpointer frame) #else void GtkSalFrame::signalDragDelete(GtkWidget* /*widget*/, GdkDragContext* /*context*/, gpointer frame) #endif { GtkSalFrame* pThis = static_cast(frame); if (!pThis->m_pDragSource) return; pThis->m_pDragSource->dragDelete(); } #if GTK_CHECK_VERSION(4, 0, 0) void GtkInstDragSource::dragEnd(GdkDrag* context) #else void GtkInstDragSource::dragEnd(GdkDragContext* context) #endif { if (m_xListener.is()) { datatransfer::dnd::DragSourceDropEvent aEv; #if GTK_CHECK_VERSION(4, 0, 0) aEv.DropAction = GdkToVcl(gdk_drag_get_selected_action(context)); #else aEv.DropAction = GdkToVcl(gdk_drag_context_get_selected_action(context)); #endif // an internal drop can accept the drop but fail with dropComplete( false ) // this is different than the GTK API if (g_DropSuccessSet) aEv.DropSuccess = g_DropSuccess; else aEv.DropSuccess = true; auto xListener = m_xListener; m_xListener.clear(); xListener->dragDropEnd(aEv); } g_ActiveDragSource = nullptr; } #if GTK_CHECK_VERSION(4, 0, 0) void GtkSalFrame::signalDragEnd(GdkDrag* context, gpointer frame) #else void GtkSalFrame::signalDragEnd(GtkWidget* /*widget*/, GdkDragContext* context, gpointer frame) #endif { GtkSalFrame* pThis = static_cast(frame); if (!pThis->m_pDragSource) return; pThis->m_pDragSource->dragEnd(context); } #if !GTK_CHECK_VERSION(4, 0, 0) void GtkInstDragSource::dragDataGet(GtkSelectionData *data, guint info) { m_aConversionHelper.setSelectionData(m_xTrans, data, info); } void GtkSalFrame::signalDragDataGet(GtkWidget* /*widget*/, GdkDragContext* /*context*/, GtkSelectionData *data, guint info, guint /*time*/, gpointer frame) { GtkSalFrame* pThis = static_cast(frame); if (!pThis->m_pDragSource) return; pThis->m_pDragSource->dragDataGet(data, info); } #endif bool GtkSalFrame::CallCallbackExc(SalEvent nEvent, const void* pEvent) const { SolarMutexGuard aGuard; bool nRet = false; try { nRet = CallCallback(nEvent, pEvent); } catch (...) { GetGtkSalData()->setException(std::current_exception()); } return nRet; } #if !GTK_CHECK_VERSION(4, 0, 0) void GtkSalFrame::nopaint_container_resize_children(GtkContainer *pContainer) { bool bOrigSalObjectSetPosSize = m_bSalObjectSetPosSize; m_bSalObjectSetPosSize = true; gtk_container_resize_children(pContainer); m_bSalObjectSetPosSize = bOrigSalObjectSetPosSize; } #endif GdkEvent* GtkSalFrame::makeFakeKeyPress(GtkWidget* pWidget) { #if !GTK_CHECK_VERSION(4, 0, 0) GdkEvent *event = gdk_event_new(GDK_KEY_PRESS); event->key.window = GDK_WINDOW(g_object_ref(widget_get_surface(pWidget))); GdkSeat *seat = gdk_display_get_default_seat(gtk_widget_get_display(pWidget)); gdk_event_set_device(event, gdk_seat_get_keyboard(seat)); event->key.send_event = 1 /* TRUE */; event->key.time = gtk_get_current_event_time(); event->key.state = 0; event->key.keyval = 0; event->key.length = 0; event->key.string = nullptr; event->key.hardware_keycode = 0; event->key.group = 0; event->key.is_modifier = false; return event; #else (void)pWidget; return nullptr; #endif } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ =UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-03-29 16:02+0200\n"
-"PO-Revision-Date: 2022-02-26 21:39+0000\n"
+"PO-Revision-Date: 2022-03-09 14:39+0000\n"
"Last-Translator: Riyadh Talal <riyadhtalal@gmail.com>\n"
"Language-Team: Arabic <https://translations.documentfoundation.org/projects/libo_ui-7-3/formulamessages/ar/>\n"
"Language: ar\n"
@@ -53,7 +53,7 @@ msgstr "#الكل"
#: formula/inc/core_resource.hrc:2284
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "#Headers"
-msgstr "#ترويسات"
+msgstr "#رؤوس"
#. amt53
#. L10n: preserve the leading '#' hash character in translations.
@@ -2267,13 +2267,13 @@ msgstr "NETWORKDAYS"
#: formula/inc/core_resource.hrc:2649
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "NETWORKDAYS.INTL"
-msgstr ""
+msgstr "NETWORKDAYS.INTL"
#. QAzUk
#: formula/inc/core_resource.hrc:2650
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "WORKDAY.INTL"
-msgstr ""
+msgstr "WORKDAY.INTL"
#. CFhSp
#. L10n: preserve the leading '#' hash character in translations.
@@ -2744,7 +2744,7 @@ msgstr ""
#: formula/uiconfig/ui/functionpage.ui:60
msgctxt "functionpage|label1"
msgid "_Category"
-msgstr "ال_فئة"
+msgstr "الصن_ف"
#. WQC5A
#: formula/uiconfig/ui/functionpage.ui:75
diff --git a/source/ar/instsetoo_native/inc_openoffice/windows/msi_languages.po b/source/ar/instsetoo_native/inc_openoffice/windows/msi_languages.po
index 4c2bd790f43..d312f559498 100644
--- a/source/ar/instsetoo_native/inc_openoffice/windows/msi_languages.po
+++ b/source/ar/instsetoo_native/inc_openoffice/windows/msi_languages.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2020-03-31 10:35+0200\n"
-"PO-Revision-Date: 2022-02-26 21:39+0000\n"
+"PO-Revision-Date: 2022-03-02 22:39+0000\n"
"Last-Translator: Riyadh Talal <riyadhtalal@gmail.com>\n"
"Language-Team: Arabic <https://translations.documentfoundation.org/projects/libo_ui-7-3/instsetoo_nativeinc_openofficewindowsmsi_languages/ar/>\n"
"Language: ar\n"
@@ -4469,7 +4469,7 @@ msgctxt ""
"OOO_STR_MS_EXCEL_WORKSHEET\n"
"LngText.text"
msgid "Microsoft Excel Worksheet"
-msgstr "ورقة عمل ميكروسوفت إكسل"
+msgstr "ورقة عمل ميكروسوفت أكسل"
#. sz9Ca
#: Property.ulf
@@ -4478,7 +4478,7 @@ msgctxt ""
"OOO_STR_MS_EXCEL_TEMPLATE\n"
"LngText.text"
msgid "Microsoft Excel Template"
-msgstr "قالب ميكروسوفت إكسل"
+msgstr "قالب ميكروسوفت أكسل"
#. nE65f
#: Property.ulf
diff --git a/source/ar/librelogo/source/pythonpath.po b/source/ar/librelogo/source/pythonpath.po
index 03b3cd8cc9b..24a56c47981 100644
--- a/source/ar/librelogo/source/pythonpath.po
+++ b/source/ar/librelogo/source/pythonpath.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: LibO 40l10n\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2020-06-29 13:09+0200\n"
-"PO-Revision-Date: 2022-02-26 21:39+0000\n"
+"PO-Revision-Date: 2022-03-09 14:39+0000\n"
"Last-Translator: Riyadh Talal <riyadhtalal@gmail.com>\n"
"Language-Team: Arabic <https://translations.documentfoundation.org/projects/libo_ui-7-3/librelogosourcepythonpath/ar/>\n"
"Language: ar\n"
@@ -446,7 +446,7 @@ msgctxt ""
"HEADING\n"
"property.text"
msgid "heading|setheading|seth"
-msgstr "ترويسة|عين_ترويسة"
+msgstr "ترويسة|عيّن_ترويسة"
#. HpQLM
#: LibreLogo_en_US.properties
diff --git a/source/ar/officecfg/registry/data/org/openoffice/Office.po b/source/ar/officecfg/registry/data/org/openoffice/Office.po
index 207472c6d72..d941aa047a2 100644
--- a/source/ar/officecfg/registry/data/org/openoffice/Office.po
+++ b/source/ar/officecfg/registry/data/org/openoffice/Office.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-02-05 18:59+0100\n"
-"PO-Revision-Date: 2022-02-28 17:26+0000\n"
+"PO-Revision-Date: 2022-03-09 14:39+0000\n"
"Last-Translator: Riyadh Talal <riyadhtalal@gmail.com>\n"
"Language-Team: Arabic <https://translations.documentfoundation.org/projects/libo_ui-7-3/officecfgregistrydataorgopenofficeoffice/ar/>\n"
"Language: ar\n"
@@ -794,7 +794,7 @@ msgctxt ""
"DisplayName\n"
"value.text"
msgid "Report Header"
-msgstr "ترويسة التقرير"
+msgstr "رأس التقرير"
#. Dntv2
#: ExtendedColorScheme.xcu
@@ -814,7 +814,7 @@ msgctxt ""
"DisplayName\n"
"value.text"
msgid "Page Header"
-msgstr "ترويسة الصفحة"
+msgstr "رأس الصفحة"
#. qQZRT
#: ExtendedColorScheme.xcu
@@ -834,7 +834,7 @@ msgctxt ""
"DisplayName\n"
"value.text"
msgid "Group Header"
-msgstr "ترويسة المجموعة"
+msgstr "رأس المجموعة"
#. DJAB5
#: ExtendedColorScheme.xcu
@@ -854,7 +854,7 @@ msgctxt ""
"DisplayName\n"
"value.text"
msgid "Column Header"
-msgstr "ترويسة العمود"
+msgstr "رأس العمود"
#. bMTUY
#: ExtendedColorScheme.xcu
@@ -1944,7 +1944,7 @@ msgctxt ""
"Right\n"
"value.text"
msgid "Previous slide without effects"
-msgstr "الشريحة السابقة بدون تأثيرات"
+msgstr "الشريحة السابقة بِلا تأثيرات"
#. jbbUB
#: PresenterScreen.xcu
@@ -1964,7 +1964,7 @@ msgctxt ""
"Right\n"
"value.text"
msgid "Next slide without effects"
-msgstr "الشريحة التالية بدون تأثيرات"
+msgstr "الشريحة التالية بِلا تأثيرات"
#. 4NgP8
#: PresenterScreen.xcu
@@ -2324,7 +2324,7 @@ msgctxt ""
"Name\n"
"value.text"
msgid "CategoryID"
-msgstr "معرّف الفئة"
+msgstr "معرّف‌الصنف"
#. DSPes
#: TableWizard.xcu
@@ -2334,7 +2334,7 @@ msgctxt ""
"ShortName\n"
"value.text"
msgid "CategoryID"
-msgstr "معرّف الفئة"
+msgstr "معرّف‌الصنف"
#. xEMQw
#: TableWizard.xcu
@@ -2344,7 +2344,7 @@ msgctxt ""
"Name\n"
"value.text"
msgid "CategoryName"
-msgstr "اسم الفئة"
+msgstr "اسم‌الصنف"
#. MbNHE
#: TableWizard.xcu
@@ -2444,7 +2444,7 @@ msgctxt ""
"ShortName\n"
"value.text"
msgid "CategoryID"
-msgstr "معرّف‌الفئة"
+msgstr "معرّف‌الصنف"
#. d6dbD
#: TableWizard.xcu
@@ -7774,7 +7774,7 @@ msgctxt ""
"Name\n"
"value.text"
msgid "PackageDimensions"
-msgstr "PackageDimensions"
+msgstr "أبعاد‌الرزمة"
#. mFhFs
#: TableWizard.xcu
@@ -7784,7 +7784,7 @@ msgctxt ""
"ShortName\n"
"value.text"
msgid "PackDimens"
-msgstr "PackDimens"
+msgstr "أبعاد‌رزمة"
#. yLeMB
#: TableWizard.xcu
@@ -8004,7 +8004,7 @@ msgctxt ""
"Name\n"
"value.text"
msgid "AssetCategoryID"
-msgstr "AssetCategoryID"
+msgstr "معرّف‌صنف‌المادة"
#. WBLFz
#: TableWizard.xcu
@@ -8014,7 +8014,7 @@ msgctxt ""
"ShortName\n"
"value.text"
msgid "AssetCatID"
-msgstr "AssetCatID"
+msgstr "معرّف‌صنف‌مادة"
#. gxEFU
#: TableWizard.xcu
@@ -8914,7 +8914,7 @@ msgctxt ""
"Name\n"
"value.text"
msgid "CategoryID"
-msgstr "CategoryID"
+msgstr "معرّف‌الصنف"
#. 8gWzE
#: TableWizard.xcu
@@ -8924,7 +8924,7 @@ msgctxt ""
"ShortName\n"
"value.text"
msgid "CategoryID"
-msgstr "CategoryID"
+msgstr "معرّف‌الصنف"
#. xtBLn
#: TableWizard.xcu
@@ -8934,7 +8934,7 @@ msgctxt ""
"Name\n"
"value.text"
msgid "CategoryName"
-msgstr "اسم الفئة"
+msgstr "اسم‌الصنف"
#. z63pH
#: TableWizard.xcu
@@ -9474,7 +9474,7 @@ msgctxt ""
"Name\n"
"value.text"
msgid "CategoryID"
-msgstr "CategoryID"
+msgstr "معرّف‌الصنف"
#. cS7Fp
#: TableWizard.xcu
@@ -9484,7 +9484,7 @@ msgctxt ""
"ShortName\n"
"value.text"
msgid "CategoryID"
-msgstr "CategoryID"
+msgstr "معرّف‌الصنف"
#. 2vHUF
#: TableWizard.xcu
@@ -11254,7 +11254,7 @@ msgctxt ""
"Name\n"
"value.text"
msgid "MusicCategoryID"
-msgstr "MusicCategoryID"
+msgstr "معرّف‌صنف‌الموسيقى"
#. 4mckL
#: TableWizard.xcu
@@ -11264,7 +11264,7 @@ msgctxt ""
"ShortName\n"
"value.text"
msgid "MusicCatID"
-msgstr "MusicCatID"
+msgstr "معرّف‌صنف‌موسيقى"
#. TbLJE
#: TableWizard.xcu
@@ -11684,7 +11684,7 @@ msgctxt ""
"Name\n"
"value.text"
msgid "Pages"
-msgstr "الصفحات"
+msgstr "صفحات"
#. W3VeG
#: TableWizard.xcu
@@ -11694,7 +11694,7 @@ msgctxt ""
"ShortName\n"
"value.text"
msgid "Pages"
-msgstr "الصفحات"
+msgstr "صفحات"
#. hB7pS
#: TableWizard.xcu
@@ -12944,7 +12944,7 @@ msgctxt ""
"DisplayName\n"
"value.text"
msgid "Microsoft Excel 4.x - 5.0 / 95"
-msgstr "ميكروسوفت إكسل ٤.* – ٥٫٠ / ٩٥"
+msgstr "ميكروسوفت أكسل ٤.* – ٥٫٠ / ٩٥"
#. D5ASv
#: UI.xcu
@@ -12954,7 +12954,7 @@ msgctxt ""
"DisplayName\n"
"value.text"
msgid "Microsoft Excel 4.x - 5.0 / 95 Templates"
-msgstr "قوالب ميكروسوفت إكسل ٤.* – ٥٫٠ / ٩٥"
+msgstr "قوالب ميكروسوفت أكسل ٤.* – ٥٫٠ / ٩٥"
#. QFbii
#: UI.xcu
diff --git a/source/ar/officecfg/registry/data/org/openoffice/Office/UI.po b/source/ar/officecfg/registry/data/org/openoffice/Office/UI.po
index 909522f05e7..a12c183fc19 100644
--- a/source/ar/officecfg/registry/data/org/openoffice/Office/UI.po
+++ b/source/ar/officecfg/registry/data/org/openoffice/Office/UI.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-21 12:38+0100\n"
-"PO-Revision-Date: 2022-02-28 17:26+0000\n"
+"PO-Revision-Date: 2022-03-09 16:29+0000\n"
"Last-Translator: Riyadh Talal <riyadhtalal@gmail.com>\n"
"Language-Team: Arabic <https://translations.documentfoundation.org/projects/libo_ui-7-3/officecfgregistrydataorgopenofficeofficeui/ar/>\n"
"Language: ar\n"
@@ -824,7 +824,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Pivot Table Filter"
-msgstr "مرشّح جداول معالجة البيانات"
+msgstr "مرشّح الجدول المحوري"
#. BGjMw
#: CalcCommands.xcu
@@ -1104,7 +1104,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Pivot Table"
-msgstr "جدول معالجة بيانات"
+msgstr "جدول محوري"
#. MsgbY
#: CalcCommands.xcu
@@ -1124,7 +1124,7 @@ msgctxt ""
"TooltipLabel\n"
"value.text"
msgid "Insert or Edit Pivot Table"
-msgstr ""
+msgstr "أدرج أو حرر جدولاً محوريًا"
#. VZAqF
#: CalcCommands.xcu
@@ -1144,7 +1144,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "~Insert or Edit..."
-msgstr ""
+msgstr "أ~درج أو حرر..."
#. dHdzP
#: CalcCommands.xcu
@@ -1154,7 +1154,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "~Insert or Edit Pivot Table..."
-msgstr ""
+msgstr "أ~درج أو حرر جدولاً محوريًا..."
#. vqC2u
#: CalcCommands.xcu
@@ -2084,7 +2084,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "~Headers and Footers..."
-msgstr "ال~ترويسات و التذييلات..."
+msgstr "ال~رؤوس و التذييلات..."
#. 9wsip
#: CalcCommands.xcu
@@ -2314,7 +2314,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "View Headers"
-msgstr ""
+msgstr "شاهِد الرؤوس"
#. g3nWt
#: CalcCommands.xcu
@@ -3324,7 +3324,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "~Refresh Pivot Table"
-msgstr "~حدّث جدول معالجة البيانات"
+msgstr "أ~عِد تحميل الجدول المحوري"
#. kGoK3
#: CalcCommands.xcu
@@ -3334,7 +3334,7 @@ msgctxt ""
"ContextLabel\n"
"value.text"
msgid "~Refresh"
-msgstr "تحدي~ث"
+msgstr "أ~عِد التحميل"
#. Gm4Yj
#: CalcCommands.xcu
@@ -3344,7 +3344,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "~Delete Pivot Table"
-msgstr "ا~حذف جدول معالجة البيانات"
+msgstr "ا~حذف الجدول المحوري"
#. 5DQ3b
#: CalcCommands.xcu
@@ -3354,7 +3354,7 @@ msgctxt ""
"ContextLabel\n"
"value.text"
msgid "~Delete"
-msgstr "ح~ذف"
+msgstr "اح~ذف"
#. EK9r8
#: CalcCommands.xcu
@@ -3924,7 +3924,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Time"
-msgstr "وقت"
+msgstr "الوقت"
#. xPTeE
#: CalcCommands.xcu
@@ -4274,7 +4274,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "~Pivot Table"
-msgstr "~جدول معالجة بيانات"
+msgstr "~جدول محوري"
#. Eudzw
#: CalcCommands.xcu
@@ -5084,7 +5084,7 @@ msgctxt ""
"UIName\n"
"value.text"
msgid "Column Header"
-msgstr "ترويسة العمود"
+msgstr "رأس العمود"
#. p4Zjo
#: CalcWindowState.xcu
@@ -5197,7 +5197,7 @@ msgctxt ""
"UIName\n"
"value.text"
msgid "Pivot Table"
-msgstr "جدول معالجة بيانات"
+msgstr "جدول محوري"
#. HyD7e
#: CalcWindowState.xcu
@@ -5217,7 +5217,7 @@ msgctxt ""
"UIName\n"
"value.text"
msgid "Row Header"
-msgstr "ترويسة الصف"
+msgstr "رأس الصف"
#. oueah
#: CalcWindowState.xcu
@@ -5587,7 +5587,7 @@ msgctxt ""
"UIName\n"
"value.text"
msgid "Lines and Arrows"
-msgstr ""
+msgstr "خطوط و سهام"
#. vvEtr
#: CalcWindowState.xcu
@@ -7579,7 +7579,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "None"
-msgstr "بدون"
+msgstr "بِلا"
#. 93WFq
#: DbuCommands.xcu
@@ -8460,7 +8460,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Animation"
-msgstr "حركة"
+msgstr "متحرك"
#. btZfh
#: DrawImpressCommands.xcu
@@ -8480,7 +8480,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Master Slides"
-msgstr ""
+msgstr "شرائح رئيسة"
#. yFsEC
#: DrawImpressCommands.xcu
@@ -10474,7 +10474,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "~Header and Footer..."
-msgstr "التروي~سة و التذييل..."
+msgstr "الرأ~س و التذييل..."
#. WESiK
#: DrawImpressCommands.xcu
@@ -10544,7 +10544,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "~Page Pane"
-msgstr "جزء الص~فحات"
+msgstr "لوحة الص~فحات"
#. 9W9yh
#: DrawImpressCommands.xcu
@@ -10554,7 +10554,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Tas~k Pane"
-msgstr "جزء ال~مهام"
+msgstr "لوحة ال~مهام"
#. EAawg
#: DrawImpressCommands.xcu
@@ -10744,7 +10744,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Select Table"
-msgstr "تحديد الجدول"
+msgstr "حدد الجدول"
#. 3qbMi
#: DrawImpressCommands.xcu
@@ -10754,7 +10754,7 @@ msgctxt ""
"ContextLabel\n"
"value.text"
msgid "~Select..."
-msgstr ""
+msgstr "ح~دد..."
#. AsuBE
#: DrawImpressCommands.xcu
@@ -10764,7 +10764,7 @@ msgctxt ""
"PopupLabel\n"
"value.text"
msgid "Select Table"
-msgstr ""
+msgstr "حدد الجدول"
#. yvdda
#: DrawImpressCommands.xcu
@@ -10904,7 +10904,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Insert Slide"
-msgstr "إدراج شريحة"
+msgstr "أدرِج شريحة"
#. DpnDu
#: DrawImpressCommands.xcu
@@ -11761,7 +11761,7 @@ msgctxt ""
"UIName\n"
"value.text"
msgid "Page Pane (no selection)"
-msgstr ""
+msgstr "لوحة الصفحات (لا تحديد)"
#. 5ascH
#: DrawWindowState.xcu
@@ -11771,7 +11771,7 @@ msgctxt ""
"UIName\n"
"value.text"
msgid "Page Master Pane"
-msgstr ""
+msgstr "لوحة الصفحة الرئيسة"
#. hMUvt
#: DrawWindowState.xcu
@@ -11781,7 +11781,7 @@ msgctxt ""
"UIName\n"
"value.text"
msgid "Page Master Pane (no selection)"
-msgstr ""
+msgstr "لوحة الصفحة الرئيسة (لا تحديد)"
#. SvG2a
#: DrawWindowState.xcu
@@ -11901,7 +11901,7 @@ msgctxt ""
"UIName\n"
"value.text"
msgid "Lines and Arrows"
-msgstr ""
+msgstr "خطوط و سهام"
#. 9hGnF
#: DrawWindowState.xcu
@@ -18952,7 +18952,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Lines and Arrows"
-msgstr "خطوط و أسهم"
+msgstr "خطوط و سهام"
#. BgpD3
#: GenericCommands.xcu
@@ -19312,7 +19312,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Templates"
-msgstr "القوالب"
+msgstr "قوالب"
#. Z5UDc
#: GenericCommands.xcu
@@ -19954,7 +19954,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "IgnoreAll"
-msgstr ""
+msgstr "تجاهل‌الكل"
#. Z8CTY
#: GenericCommands.xcu
@@ -22395,7 +22395,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Image~Map"
-msgstr "مخطط ~صورة"
+msgstr "خريطة ~صورية"
#. ERUDC
#: GenericCommands.xcu
@@ -23885,7 +23885,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "What's New"
-msgstr ""
+msgstr "ما الجديد"
#. B8Gcc
#: GenericCommands.xcu
@@ -24836,7 +24836,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Refresh"
-msgstr "حدّث"
+msgstr "أعِد التحميل"
#. D4EUF
#: GenericCommands.xcu
@@ -24846,7 +24846,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Refresh Control"
-msgstr "التحكم بالتحديث"
+msgstr "تحكّم إعادة التحميل"
#. n4m38
#: GenericCommands.xcu
@@ -25766,7 +25766,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "~Delete"
-msgstr "ح~ذف"
+msgstr "اح~ذف"
#. ZMsAG
#: GenericCommands.xcu
@@ -26486,7 +26486,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Templates"
-msgstr "القوالب"
+msgstr "قوالب"
#. TAgSe
#: GenericCommands.xcu
@@ -27313,7 +27313,7 @@ msgctxt ""
"UIName\n"
"value.text"
msgid "Lines and Arrows"
-msgstr ""
+msgstr "خطوط و سهام"
#. AoqtG
#: ImpressWindowState.xcu
@@ -28213,7 +28213,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Report Header/Footer"
-msgstr "ترويسة/تذييل التقرير"
+msgstr "رأس\\تذييل التقرير"
#. EACbA
#: ReportCommands.xcu
@@ -28754,7 +28754,7 @@ msgctxt ""
"Title\n"
"value.text"
msgid "Shapes"
-msgstr "الأشكال"
+msgstr "أشكال"
#. DtiXt
#: Sidebar.xcu
@@ -28768,14 +28768,13 @@ msgstr "المعرض"
#. 8s6F9
#: Sidebar.xcu
-#, fuzzy
msgctxt ""
"Sidebar.xcu\n"
"..Sidebar.Content.DeckList.SdMasterPagesDeck\n"
"Title\n"
"value.text"
msgid "Master Slides"
-msgstr "الشريحة الرئيسية"
+msgstr "شرائح رئيسة"
#. AfH6t
#: Sidebar.xcu
@@ -28785,7 +28784,7 @@ msgctxt ""
"Title\n"
"value.text"
msgid "Animation"
-msgstr "التحريك"
+msgstr "متحرك"
#. ZBnfV
#: Sidebar.xcu
@@ -29085,7 +29084,7 @@ msgctxt ""
"Title\n"
"value.text"
msgid "Animation"
-msgstr "التحريك"
+msgstr "متحرك"
#. W2JmC
#: Sidebar.xcu
@@ -29385,7 +29384,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Sidebar"
-msgstr "شريط جانبي"
+msgstr "الشريط الجانبي"
#. TTPWA
#: ToolbarMode.xcu
@@ -29435,7 +29434,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Contextual Single"
-msgstr ""
+msgstr "سياقيّ منفرد"
#. sbj8Q
#: ToolbarMode.xcu
@@ -29475,7 +29474,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Sidebar"
-msgstr "شريط جانبي"
+msgstr "الشريط الجانبي"
#. NZEoV
#: ToolbarMode.xcu
@@ -29495,7 +29494,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Tabbed Compact"
-msgstr ""
+msgstr "ألسنة متضامّ"
#. EfebG
#: ToolbarMode.xcu
@@ -29565,7 +29564,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Tabbed Compact"
-msgstr ""
+msgstr "ألسنة متضامّ"
#. quFBW
#: ToolbarMode.xcu
@@ -29595,7 +29594,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Contextual Single"
-msgstr ""
+msgstr "سياقيّ منفرد"
#. ekpVE
#: ToolbarMode.xcu
@@ -29625,7 +29624,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Tabbed"
-msgstr ""
+msgstr "ألسنة"
#. mGCMC
#: ToolbarMode.xcu
@@ -29635,7 +29634,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Tabbed Compact"
-msgstr ""
+msgstr "ألسنة متضامّ"
#. nrNaZ
#: ToolbarMode.xcu
@@ -29655,7 +29654,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Contextual Single"
-msgstr ""
+msgstr "سياقيّ منفرد"
#. 5eckD
#: ToolbarMode.xcu
@@ -31936,7 +31935,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "None"
-msgstr "بدون"
+msgstr "بِلا"
#. SvFa2
#: WriterCommands.xcu
@@ -32426,7 +32425,7 @@ msgctxt ""
"TooltipLabel\n"
"value.text"
msgid "Delete table"
-msgstr ""
+msgstr "احذف الجدول"
#. f2Fpk
#: WriterCommands.xcu
@@ -32546,7 +32545,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Select Cell"
-msgstr "حدّد الخلية"
+msgstr "حدد الخلية"
#. QH2nm
#: WriterCommands.xcu
@@ -32566,7 +32565,7 @@ msgctxt ""
"TooltipLabel\n"
"value.text"
msgid "Select Cell"
-msgstr ""
+msgstr "حدد الخلية"
#. PpyJW
#: WriterCommands.xcu
@@ -32616,7 +32615,7 @@ msgctxt ""
"PopupLabel\n"
"value.text"
msgid "Update ~Fields"
-msgstr ""
+msgstr "حدّث الح~قول"
#. tpc5P
#: WriterCommands.xcu
@@ -32626,7 +32625,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Select Table"
-msgstr "حدّد الجدول"
+msgstr "حدد الجدول"
#. dPaC3
#: WriterCommands.xcu
@@ -32646,7 +32645,7 @@ msgctxt ""
"TooltipLabel\n"
"value.text"
msgid "Select Table"
-msgstr ""
+msgstr "حدد الجدول"
#. wzPFD
#: WriterCommands.xcu
@@ -34736,7 +34735,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "~Add to List"
-msgstr ""
+msgstr "أ~ضِف إلى قائمة"
#. rbB7v
#: WriterCommands.xcu
@@ -34786,7 +34785,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Back"
-msgstr "السابق"
+msgstr "رجوع"
#. u6dob
#: WriterCommands.xcu
@@ -35188,7 +35187,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Default ~Character"
-msgstr ""
+msgstr "الم~حرف المبدئي"
#. UJ5WP
#: WriterCommands.xcu
@@ -35218,7 +35217,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "E~mphasis"
-msgstr "تأ~كيد"
+msgstr "ت~شديد"
#. FgGtz
#: WriterCommands.xcu
@@ -35228,7 +35227,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "E~mphasis"
-msgstr "تأ~كيد"
+msgstr "ت~شديد"
#. d6TqC
#: WriterCommands.xcu
@@ -35288,7 +35287,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Qu~otation"
-msgstr "اق~تباس"
+msgstr "~تنصيص"
#. AQvDE
#: WriterCommands.xcu
@@ -35308,7 +35307,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Qu~otation"
-msgstr "اق~تباس"
+msgstr "~تنصيص"
#. Pbsp9
#: WriterCommands.xcu
@@ -37928,7 +37927,7 @@ msgctxt ""
"UIName\n"
"value.text"
msgid "Lines and Arrows"
-msgstr ""
+msgstr "خطوط و سهام"
#. VE7Pg
#: WriterWindowState.xcu
diff --git a/source/ar/readlicense_oo/docs.po b/source/ar/readlicense_oo/docs.po
index bf0b97fecb9..3a763a85046 100644
--- a/source/ar/readlicense_oo/docs.po
+++ b/source/ar/readlicense_oo/docs.po
@@ -4,16 +4,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-09-10 23:12+0200\n"
-"PO-Revision-Date: 2021-03-19 16:39+0000\n"
+"PO-Revision-Date: 2022-03-04 05:39+0000\n"
"Last-Translator: Riyadh Talal <riyadhtalal@gmail.com>\n"
-"Language-Team: Arabic <https://translations.documentfoundation.org/projects/libo_ui-master/readlicense_oodocs/ar/>\n"
+"Language-Team: Arabic <https://translations.documentfoundation.org/projects/libo_ui-7-3/readlicense_oodocs/ar/>\n"
"Language: ar\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
"X-Accelerator-Marker: ~\n"
-"X-Generator: LibreOffice\n"
+"X-Generator: Weblate 4.8.1\n"
"X-POOTLE-MTIME: 1542022443.000000\n"
#. q6Gg3
@@ -86,7 +86,7 @@ msgctxt ""
"A13\n"
"readmeitem.text"
msgid "You can use this copy of ${PRODUCTNAME} free of charge because individual contributors and corporate sponsors have designed, developed, tested, translated, documented, supported, marketed, and helped in many other ways to make ${PRODUCTNAME} what it is today - the world's leading Open Source productivity software for home and office."
-msgstr "يمكنك استخدام هذه النسخة من ${PRODUCTNAME} مجانا بدون رسوم لأن المتطوعين والشركات الراعية قاموا بالتصميم، والتطوير، والإختبار، والترجمة، والتوثيق، والدعم، والتسويق، والمساعدة بطرق متعددة لجعل ${PRODUCTNAME} كما هو اليوم - متزعماً صدراة المشاريع المفتوحة المصدر في العالم كبرنامج إنتاجية للمنزل والمكتب."
+msgstr "يمكنك استخدام هذه النسخة من ${PRODUCTNAME} مجانا بِلا رسوم لأن المتطوعين والشركات الراعية قاموا بالتصميم، والتطوير، والاختبار، والترجمة، والتوثيق، والدعم، والتسويق، والمساعدة بطرق متعددة لجعل ${PRODUCTNAME} كما هو اليوم - زعيم البرمجيات الإنتاجية مفتوحة المصدر في العالم للمنزل والمكتب."
#. CTGH2
#: readme.xrm
diff --git a/source/ar/reportdesign/messages.po b/source/ar/reportdesign/messages.po
index 27b1c1997cc..bc8825849e4 100644
--- a/source/ar/reportdesign/messages.po
+++ b/source/ar/reportdesign/messages.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-11-16 12:09+0100\n"
-"PO-Revision-Date: 2022-02-26 21:39+0000\n"
+"PO-Revision-Date: 2022-03-09 16:29+0000\n"
"Last-Translator: Riyadh Talal <riyadhtalal@gmail.com>\n"
"Language-Team: Arabic <https://translations.documentfoundation.org/projects/libo_ui-7-3/reportdesignmessages/ar/>\n"
"Language: ar\n"
@@ -62,7 +62,7 @@ msgstr "كلّ الصّفحات"
#: reportdesign/inc/stringarray.hrc:34
msgctxt "RID_STR_REPORTPRINTOPTION_CONST"
msgid "Not With Report Header"
-msgstr "ليس مع ترويسة التقرير"
+msgstr "ليس مع رأس التقرير"
#. wchYh
#: reportdesign/inc/stringarray.hrc:35
@@ -74,7 +74,7 @@ msgstr "ليس مع تذييل التقرير"
#: reportdesign/inc/stringarray.hrc:36
msgctxt "RID_STR_REPORTPRINTOPTION_CONST"
msgid "Not With Report Header/Footer"
-msgstr "ليس مع ترويسة التقرير أو تذييله"
+msgstr "ليس مع رأس\\تذييل التقرير"
#. ZC2oS
#: reportdesign/inc/stringarray.hrc:42
@@ -346,7 +346,7 @@ msgstr "بقاء المجموعات معًا"
#: reportdesign/inc/strings.hrc:42
msgctxt "RID_STR_PAGEHEADEROPTION"
msgid "Page header"
-msgstr "ترويسة الصفحة"
+msgstr "رأس الصفحة"
#. rzwjM
#: reportdesign/inc/strings.hrc:43
@@ -382,7 +382,7 @@ msgstr "الموضع ص"
#: reportdesign/inc/strings.hrc:48
msgctxt "RID_STR_WIDTH"
msgid "Width"
-msgstr "العرض"
+msgstr "العُرض"
#. GkcPB
#: reportdesign/inc/strings.hrc:49
@@ -652,13 +652,13 @@ msgstr "تنسيق شرطي"
#: reportdesign/inc/strings.hrc:95
msgctxt "RID_STR_UNDO_REMOVE_REPORTHEADERFOOTER"
msgid "Remove report header / report footer"
-msgstr "أزِل ترويسة التقرير/تذييل التقرير"
+msgstr "أزِل رأس التقرير/تذييل التقرير"
#. iHU5A
#: reportdesign/inc/strings.hrc:96
msgctxt "RID_STR_UNDO_ADD_REPORTHEADERFOOTER"
msgid "Add report header / report footer"
-msgstr "أضف ترويسة التقرير/تذييل التقرير"
+msgstr "أضف رأس التقرير/تذييل التقرير"
#. EGhDu
#. The # character is used for replacing
@@ -671,13 +671,13 @@ msgstr "تغيير الخاصية '#'"
#: reportdesign/inc/strings.hrc:99
msgctxt "RID_STR_UNDO_ADD_GROUP_HEADER"
msgid "Add group header "
-msgstr "إضافة ترويسة المجموعة "
+msgstr "أضِف رأس المجموعة "
#. DgPmD
#: reportdesign/inc/strings.hrc:100
msgctxt "RID_STR_UNDO_REMOVE_GROUP_HEADER"
msgid "Remove group header "
-msgstr "إزالة ترويسة المجموعة "
+msgstr "أزِل رأس المجموعة "
#. DENjF
#: reportdesign/inc/strings.hrc:101
@@ -756,7 +756,7 @@ msgstr "حذف عنصر تحكم"
#: reportdesign/inc/strings.hrc:114
msgctxt "RID_STR_GROUPHEADER"
msgid "GroupHeader"
-msgstr "رأس المجموعة"
+msgstr "رأس‌المجموعة"
#. LseTq
#. Please try to avoid spaces in the name. It is used as a programmatic one.
@@ -788,7 +788,7 @@ msgstr "غير المحاذاة"
#: reportdesign/inc/strings.hrc:121
msgctxt "RID_STR_HEADER"
msgid "# Header"
-msgstr "ترويسة #"
+msgstr "# رأس"
#. 9Zu4z
#. # will be replaced with a name.";
@@ -843,25 +843,25 @@ msgstr "تغيير سمات الصفحة"
#: reportdesign/inc/strings.hrc:131
msgctxt "RID_STR_PAGEHEADERFOOTER_INSERT"
msgid "Insert Page Header/Footer"
-msgstr "أدرج ترويسة/تذييل الصفحة"
+msgstr "أدرج رأس\\تذييل الصفحة"
#. JZEaA
#: reportdesign/inc/strings.hrc:132
msgctxt "RID_STR_PAGEHEADERFOOTER_DELETE"
msgid "Delete Page Header/Footer"
-msgstr "احذف ترويسة/تذييل الصفحة"
+msgstr "احذف رأس\\تذييل الصفحة"
#. zENVV
#: reportdesign/inc/strings.hrc:133
msgctxt "RID_STR_REPORTHEADERFOOTER_INSERT"
msgid "Insert Report Header/Footer"
-msgstr "أدرج ترويسة/تذييل التقرير"
+msgstr "أدرج رأس\\تذييل التقرير"
#. cF5cE
#: reportdesign/inc/strings.hrc:134
msgctxt "RID_STR_REPORTHEADERFOOTER_DELETE"
msgid "Delete Report Header/Footer"
-msgstr "احذف ترويسة/تذييل التقرير"
+msgstr "احذف رأس\\تذييل التقرير"
#. YfLKD
#: reportdesign/inc/strings.hrc:135
@@ -891,7 +891,7 @@ msgstr "التفاصيل"
#: reportdesign/inc/strings.hrc:139
msgctxt "RID_STR_PAGE_HEADER"
msgid "Page Header"
-msgstr "ترويسة الصفحة"
+msgstr "رأس الصفحة"
#. VaKUs
#: reportdesign/inc/strings.hrc:140
@@ -903,7 +903,7 @@ msgstr "تذييل الصفحة"
#: reportdesign/inc/strings.hrc:141
msgctxt "RID_STR_REPORT_HEADER"
msgid "Report Header"
-msgstr "ترويسة التقرير"
+msgstr "رأس التقرير"
#. cgWUK
#: reportdesign/inc/strings.hrc:142
@@ -987,7 +987,7 @@ msgstr "حدد حقلاً، أو اكتب تعبيرًا للفرز أو الت
#: reportdesign/inc/strings.hrc:157
msgctxt "STR_RPT_HELP_HEADER"
msgid "Display a header for this group?"
-msgstr "هل تريد عرض ترويسة لهذه المجموعة؟"
+msgstr "هل تريد عرض رأس لهذه المجموعة؟"
#. 2eKET
#: reportdesign/inc/strings.hrc:158
@@ -1049,7 +1049,7 @@ msgstr "المجموعات"
#: reportdesign/inc/strings.hrc:172
msgctxt "RID_STR_GROUP_HEADER"
msgid "Group Header"
-msgstr "ترويسة المجموعة"
+msgstr "رأس المجموعة"
#. u85VE
#: reportdesign/inc/strings.hrc:173
@@ -1307,7 +1307,7 @@ msgstr "ت_ضمين التاريخ"
#: reportdesign/uiconfig/dbreport/ui/datetimedialog.ui:113
msgctxt "datetimedialog|datelistbox_label"
msgid "_Format:"
-msgstr "التن_سيق:"
+msgstr "النسَ_ق:"
#. DRAAK
#: reportdesign/uiconfig/dbreport/ui/datetimedialog.ui:125
@@ -1411,7 +1411,7 @@ msgstr "الفرز"
#: reportdesign/uiconfig/dbreport/ui/floatingsort.ui:210
msgctxt "floatingsort|label7"
msgid "Group Header"
-msgstr "ترويسة المجموعة"
+msgstr "رأس المجموعة"
#. hwKPG
#: reportdesign/uiconfig/dbreport/ui/floatingsort.ui:224
@@ -1533,13 +1533,13 @@ msgstr "الفرز والتجميع…"
#: reportdesign/uiconfig/dbreport/ui/navigatormenu.ui:26
msgctxt "navigatormenu|page"
msgid "Page Header/Footer..."
-msgstr "ترويسة/تذييل الصفحة…"
+msgstr "رأس\\تذييل الصفحة…"
#. dCNEo
#: reportdesign/uiconfig/dbreport/ui/navigatormenu.ui:34
msgctxt "navigatormenu|report"
msgid "Report Header/Footer..."
-msgstr "ترويسة/تذييل التقرير…"
+msgstr "رأس\\تذييل التقرير…"
#. tDRkM
#: reportdesign/uiconfig/dbreport/ui/navigatormenu.ui:48
@@ -1605,7 +1605,7 @@ msgstr "التنسيق"
#: reportdesign/uiconfig/dbreport/ui/pagenumberdialog.ui:167
msgctxt "pagenumberdialog|toppage"
msgid "_Top of Page (Header)"
-msgstr "أ_على الصفحة (الترويسة)"
+msgstr "أ_على الصفحة (الرأس)"
#. Bt5Xv
#: reportdesign/uiconfig/dbreport/ui/pagenumberdialog.ui:183
diff --git a/source/ar/sc/messages.po b/source/ar/sc/messages.po
index cc8f51d7dae..d170cede729 100644
--- a/source/ar/sc/messages.po
+++ b/source/ar/sc/messages.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-21 12:38+0100\n"
-"PO-Revision-Date: 2022-02-28 17:26+0000\n"
+"PO-Revision-Date: 2022-03-09 16:29+0000\n"
"Last-Translator: Riyadh Talal <riyadhtalal@gmail.com>\n"
"Language-Team: Arabic <https://translations.documentfoundation.org/projects/libo_ui-7-3/scmessages/ar/>\n"
"Language: ar\n"
@@ -217,7 +217,7 @@ msgstr "الصفات/الخطوط"
#: sc/inc/globstr.hrc:45
msgctxt "STR_UNDO_COLWIDTH"
msgid "Column Width"
-msgstr "عرض العمود"
+msgstr "عُرض العمود"
#. ZR5P8
#: sc/inc/globstr.hrc:46
@@ -706,8 +706,8 @@ msgid ""
"The range does not contain column headers.\n"
"Do you want the first line to be used as column header?"
msgstr ""
-"النطاق لا يحتوي على ترويسات أعمدة.\n"
-"هل ترغب في استخدام السطر الأول كترويسة عمود؟"
+"النطاق لا يحتوي على رؤوس أعمدة.\n"
+"هل ترغب في استخدام السطر الأول كرأس عمود؟"
#. W8DjC
#: sc/inc/globstr.hrc:127
@@ -1819,7 +1819,7 @@ msgstr "لا يمكن إدراج المراجع فوق بيانات المصدر
#: sc/inc/globstr.hrc:316
msgctxt "STR_SCENARIO_NOTFOUND"
msgid "Scenario not found"
-msgstr "لم يتم العثور على السيناريو"
+msgstr "لم يُعثر على السيناريو"
#. h9AuX
#: sc/inc/globstr.hrc:317
@@ -1843,7 +1843,7 @@ msgstr "رسوم بيانية"
#: sc/inc/globstr.hrc:320
msgctxt "STR_VOBJ_DRAWINGS"
msgid "Drawing Objects"
-msgstr "كائنات رسومية"
+msgstr "كائنات رسم"
#. JGftp
#: sc/inc/globstr.hrc:321
@@ -1885,7 +1885,7 @@ msgstr "الشبكة"
#: sc/inc/globstr.hrc:327
msgctxt "STR_SCATTR_PAGE_HEADERS"
msgid "Row & Column Headers"
-msgstr "ترويسات الأسطر والأعمدة"
+msgstr "رؤوس الصفوف والأعمدة"
#. opCNb
#: sc/inc/globstr.hrc:328
@@ -1909,7 +1909,7 @@ msgstr "اتجاه الطباعة"
#: sc/inc/globstr.hrc:331
msgctxt "STR_SCATTR_PAGE_FIRSTPAGENO"
msgid "First page number"
-msgstr "أول رقم صفحة"
+msgstr "رقم أول صفحة"
#. 98ZSn
#: sc/inc/globstr.hrc:332
@@ -1921,7 +1921,7 @@ msgstr "تقليص/تكبير مخرجات الطباعة"
#: sc/inc/globstr.hrc:333
msgctxt "STR_SCATTR_PAGE_SCALETOPAGES"
msgid "Fit print range(s) on number of pages"
-msgstr "ملاءمة نطاق (نطاقات) الطباعة بعدد الصفحات"
+msgstr "ملاءمة نطاق (نطاقات) الطباعة على عدد الصفحات"
#. kDAZk
#: sc/inc/globstr.hrc:334
@@ -1933,7 +1933,7 @@ msgstr "ملاءمة نطاق (نطاقات) الطباعة بالعرض/الا
#: sc/inc/globstr.hrc:335
msgctxt "STR_SCATTR_PAGE_SCALE_WIDTH"
msgid "Width"
-msgstr "العرض"
+msgstr "العُرض"
#. DCDgF
#: sc/inc/globstr.hrc:336
@@ -1946,12 +1946,12 @@ msgstr "الارتفاع"
msgctxt "STR_SCATTR_PAGE_SCALE_PAGES"
msgid "One page"
msgid_plural "%1 pages"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-msgstr[5] ""
+msgstr[0] "لا صفحات"
+msgstr[1] "صفحة واحدة"
+msgstr[2] "صفحتان"
+msgstr[3] "%1 صفحات"
+msgstr[4] "%1 صفحة"
+msgstr[5] "%1 صفحة"
#. CHEgx
#: sc/inc/globstr.hrc:338
@@ -2049,7 +2049,7 @@ msgstr "تعذر إدراج الجدول."
#: sc/inc/globstr.hrc:352
msgctxt "STR_TABREMOVE_ERROR"
msgid "The sheets could not be deleted."
-msgstr "تعذر حذف الجداول."
+msgstr "تعذر حذف الورقات."
#. SQGAE
#: sc/inc/globstr.hrc:353
@@ -2077,7 +2077,7 @@ msgstr ""
#: sc/inc/globstr.hrc:356
msgctxt "STR_ERR_NOREF"
msgid "No cell references are found in the selected cells."
-msgstr "لم يُعثر على مراجع لخلايا في الخلايا المحدّدة."
+msgstr "لم يُعثر على مراجع خلايا في الخلايا المحدّدة."
#. vKDsp
#: sc/inc/globstr.hrc:357
@@ -2141,7 +2141,7 @@ msgstr ""
#: sc/inc/globstr.hrc:366
msgctxt "STR_QUICKHELP_DELETE"
msgid "Delete contents"
-msgstr "حذف المحتويات"
+msgstr "احذف المحتويات"
#. uJtdh
#: sc/inc/globstr.hrc:367
@@ -2190,7 +2190,7 @@ msgstr "نتيجة الجدول المحوري"
#: sc/inc/globstr.hrc:375
msgctxt "STR_PIVOT_STYLE_CATEGORY"
msgid "Pivot Table Category"
-msgstr "فئة الجدول المحوري"
+msgstr "صنف الجدول المحوري"
#. bTwc9
#: sc/inc/globstr.hrc:376
@@ -2332,31 +2332,31 @@ msgstr "تحويل هانغول/هانجا"
#: sc/inc/globstr.hrc:397
msgctxt "STR_NAME_INPUT_CELL"
msgid "Select Cell"
-msgstr "تحديد الخلية"
+msgstr "حدد الخلية"
#. AkoV3
#: sc/inc/globstr.hrc:398
msgctxt "STR_NAME_INPUT_RANGE"
msgid "Select Range"
-msgstr "اختيار النطاق"
+msgstr "حدد النطاق"
#. U2Jow
#: sc/inc/globstr.hrc:399
msgctxt "STR_NAME_INPUT_DBRANGE"
msgid "Select Database Range"
-msgstr "تحديد نطاق قاعدة البيانات"
+msgstr "حدد نطاق قاعدة البيانات"
#. jfJtb
#: sc/inc/globstr.hrc:400
msgctxt "STR_NAME_INPUT_ROW"
msgid "Go To Row"
-msgstr "انتقال إلى الصف"
+msgstr "انتقل إلى الصف"
#. fF3Qb
#: sc/inc/globstr.hrc:401
msgctxt "STR_NAME_INPUT_SHEET"
msgid "Go To Sheet"
-msgstr "انتقال إلى الورقة"
+msgstr "اذهب إلى الورقة"
#. xEAo2
#: sc/inc/globstr.hrc:402
@@ -3121,7 +3121,7 @@ msgstr "الورقة %1 من %2"
#: sc/inc/globstr.hrc:518
msgctxt "STR_FUNCTIONS_FOUND"
msgid "%1 and %2 more"
-msgstr ""
+msgstr "%1 و %2 زيادة"
#. X3uUX
#: sc/inc/globstr.hrc:519
@@ -3382,13 +3382,13 @@ msgstr "لا يتوفر مرشّح لهذا النوع من الملفات."
#: sc/inc/scerrors.hrc:44
msgctxt "RID_ERRHDLSC"
msgid "Unknown or unsupported Excel file format."
-msgstr "نسق ملف إكسل مجهول أو غير مدعوم."
+msgstr "نسق ملف أكسل مجهول أو غير مدعوم."
#. SyADN
#: sc/inc/scerrors.hrc:46
msgctxt "RID_ERRHDLSC"
msgid "Excel file format not yet implemented."
-msgstr "لم يُنفّذ نسق ملفّات إكسل بعد."
+msgstr "لم يُنفّذ نسق ملفّات أكسل بعد."
#. vhTKu
#: sc/inc/scerrors.hrc:48
@@ -3410,29 +3410,28 @@ msgstr "يحتوي الملف على بيانات بعد الصف 8192، وبا
#. sRW9a
#: sc/inc/scerrors.hrc:54 sc/inc/scerrors.hrc:102
-#, fuzzy
msgctxt "RID_ERRHDLSC"
msgid "Format error discovered in the file in sub-document $(ARG1) at $(ARG2)(row,col)."
-msgstr "خطأ في تنسيق في الملف الموجود بالمستند الفرعي $(ARG1) عند $(ARG2)(صف،عمود)."
+msgstr "اكتُشف خطأ في نسَق الملف في المستند الفرعي $(ARG1) عند $(ARG2)(الصف،العمود)."
#. NzaA9
#: sc/inc/scerrors.hrc:56
msgctxt "RID_ERRHDLSC"
msgid "File format error found at $(ARG1)(row,col)."
-msgstr "تم اكتشاف خطأ في تنسيق الملف في $(ARG1)(صف،عمود)."
+msgstr "عُثر على خطأ في نسَق الملف في $(ARG1)(صف،عمود)."
#. gYKQj
#. Export ----------------------------------------------------
#: sc/inc/scerrors.hrc:60
msgctxt "RID_ERRHDLSC"
msgid "Connection to the file could not be established."
-msgstr ""
+msgstr "تعذّرت إقامة اتصال إلى الملف."
#. BeyFY
#: sc/inc/scerrors.hrc:62
msgctxt "RID_ERRHDLSC"
msgid "Data could not be written."
-msgstr ""
+msgstr "تعذّرت كتابة البيانات."
#. tWYYs
#: sc/inc/scerrors.hrc:64
@@ -13991,7 +13990,7 @@ msgstr "أي1"
#: sc/inc/scfuncs.hrc:3279
msgctxt "SC_OPCODE_ADDRESS"
msgid "The reference style: 0 or FALSE means R1C1 style, any other value or omitted means A1 style."
-msgstr "نمط المرجع: 0 أو FALSE تعني نمط R1C1، أية قيمة أخرى أو محذوف تعني نمط A1."
+msgstr "الطراز المرجع: 0 أو خطأ FALSE تعني الطراز R1C1، أية قيمة أخرى أو محذوف تعني الطراز أي1 A1."
#. a8TPH
#: sc/inc/scfuncs.hrc:3280
@@ -14352,7 +14351,7 @@ msgstr "أي1"
#: sc/inc/scfuncs.hrc:3399
msgctxt "SC_OPCODE_INDIRECT"
msgid "The reference style: 0 or FALSE means R1C1 style, any other value or omitted means A1 style."
-msgstr "نمط المرجع: 0 أو FALSE تعني نمط R1C1، أية قيمة أخرى أو محذوف تعني نمط A1."
+msgstr "الطراز المرجع: 0 أو خطأ FALSE تعني الطراز R1C1، أية قيمة أخرى أو محذوف تعني الطراز أي1 A1."
#. 269jg
#: sc/inc/scfuncs.hrc:3405
@@ -14418,10 +14417,9 @@ msgstr "القيمة المراد استخدامها في المقارنة."
#. svVHi
#: sc/inc/scfuncs.hrc:3420
-#, fuzzy
msgctxt "SC_OPCODE_MATCH"
msgid "Lookup array"
-msgstr "مصفوفة_البحث"
+msgstr "مصفوفة البحث"
#. cdkps
#: sc/inc/scfuncs.hrc:3421
@@ -14445,7 +14443,7 @@ msgstr ""
#: sc/inc/scfuncs.hrc:3429
msgctxt "SC_OPCODE_OFFSET"
msgid "Returns a reference which has been moved in relation to the starting point."
-msgstr "إرجاع مرجع تمت إزاحته بالمقارنة مع نقطة الانطلاق."
+msgstr "يُرجِع مرجعًا نُقل بالمقارنة مع نقطة الانطلاق."
#. Kt5Hn
#: sc/inc/scfuncs.hrc:3430
@@ -14457,7 +14455,7 @@ msgstr "المرجع"
#: sc/inc/scfuncs.hrc:3431
msgctxt "SC_OPCODE_OFFSET"
msgid "The reference (cell) from which to base the movement."
-msgstr "المرجع (الخلية) التي تريد تحديد الإزاحة بدءًا منها."
+msgstr "المرجع (الخلية) التي تريد تحديد النقل بدءًا منها."
#. ZSZKE
#: sc/inc/scfuncs.hrc:3432
@@ -14469,7 +14467,7 @@ msgstr "الصفوف"
#: sc/inc/scfuncs.hrc:3433
msgctxt "SC_OPCODE_OFFSET"
msgid "The number of rows to be moved either up or down."
-msgstr "عدد الصفوف التي سيتم إزاحتها لأعلى أو لأسفل."
+msgstr "عدد الصفوف التي ستُنقل لأعلى أو لأسفل."
#. GSFDq
#: sc/inc/scfuncs.hrc:3434
@@ -14481,7 +14479,7 @@ msgstr "الأعمدة"
#: sc/inc/scfuncs.hrc:3435
msgctxt "SC_OPCODE_OFFSET"
msgid "The number of columns that are to be moved to the left or to the right."
-msgstr "عدد الأعمدة التي سيتم إزاحتها لليسار أو لليمين."
+msgstr "عدد الأعمدة التي ستُنقل لليسار أو لليمين."
#. Gkwct
#: sc/inc/scfuncs.hrc:3436
@@ -14493,19 +14491,19 @@ msgstr "الارتفاع"
#: sc/inc/scfuncs.hrc:3437
msgctxt "SC_OPCODE_OFFSET"
msgid "The number of rows of the moved reference."
-msgstr "عدد صفوف المرجع الذي تمت إزاحته."
+msgstr "عدد صفوف المرجع الذي نُقل."
#. Y5Gux
#: sc/inc/scfuncs.hrc:3438
msgctxt "SC_OPCODE_OFFSET"
msgid "Width"
-msgstr "العرض"
+msgstr "العُرض"
#. RBhpn
#: sc/inc/scfuncs.hrc:3439
msgctxt "SC_OPCODE_OFFSET"
msgid "The number of columns in the moved reference."
-msgstr "عدد أعمدة المرجع الذي تمت إزاحته."
+msgstr "عدد أعمدة المرجع الذي نُقل."
#. 94GDy
#: sc/inc/scfuncs.hrc:3445
@@ -14547,7 +14545,7 @@ msgstr ""
#: sc/inc/scfuncs.hrc:3461
msgctxt "SC_OPCODE_STYLE"
msgid "Applies a Style to the formula cell."
-msgstr "تطبيق نمط تنسيق على خلية الصيغة."
+msgstr "يطبّق طرازاً تنسيق على خلية الصيغة."
#. NQuDE
#: sc/inc/scfuncs.hrc:3462
@@ -14559,7 +14557,7 @@ msgstr "الطراز"
#: sc/inc/scfuncs.hrc:3463
msgctxt "SC_OPCODE_STYLE"
msgid "The name of the Style to be applied."
-msgstr "اسم النمط المراد تطبيقه."
+msgstr "اسم الطراز الذي سيُطبَّق."
#. CW5zj
#: sc/inc/scfuncs.hrc:3464
@@ -14571,21 +14569,19 @@ msgstr "الوقت"
#: sc/inc/scfuncs.hrc:3465
msgctxt "SC_OPCODE_STYLE"
msgid "The time (in seconds) that the Style is to remain valid."
-msgstr "المدة (بالثواني) التي يبقى فيها النمط صالحًا."
+msgstr "المدة (بالثواني) التي يبقى فيها الطراز صالحًا."
#. kcP6b
#: sc/inc/scfuncs.hrc:3466
-#, fuzzy
msgctxt "SC_OPCODE_STYLE"
msgid "Style 2"
-msgstr "النمط2"
+msgstr "الطراز 2"
#. HBrCD
#: sc/inc/scfuncs.hrc:3467
-#, fuzzy
msgctxt "SC_OPCODE_STYLE"
msgid "The style to be applied after time expires."
-msgstr "النمط الذي سيتم تطبيقه بعد انتهاء الوقت."
+msgstr "الطراز الذي سيُطبَّق بعد انتهاء الوقت."
#. Ri4A7
#: sc/inc/scfuncs.hrc:3473
@@ -14597,7 +14593,7 @@ msgstr "نتيجة رابط ت‌ب‌ح."
#: sc/inc/scfuncs.hrc:3474
msgctxt "SC_OPCODE_DDE"
msgid "Server"
-msgstr "خادوم"
+msgstr "الخادوم"
#. 2UcAR
#: sc/inc/scfuncs.hrc:3475
@@ -14615,20 +14611,19 @@ msgstr "الموضوع/الملف"
#: sc/inc/scfuncs.hrc:3477
msgctxt "SC_OPCODE_DDE"
msgid "The topic or name of the file."
-msgstr ""
+msgstr "موضوع أو اسم الملف."
#. utkfp
#: sc/inc/scfuncs.hrc:3478
msgctxt "SC_OPCODE_DDE"
msgid "Item/range"
-msgstr ""
+msgstr "العنصر/النطاق"
#. cYaTf
#: sc/inc/scfuncs.hrc:3479
-#, fuzzy
msgctxt "SC_OPCODE_DDE"
msgid "The item or range from which data is to be taken."
-msgstr "النطاق المراد أخذ البيانات منه."
+msgstr "العنصر أو النطاق المراد أخذ البيانات منه."
#. u5Tb2
#: sc/inc/scfuncs.hrc:3480
@@ -14646,26 +14641,25 @@ msgstr "تحديد كيفية تحويل البيانات إلى أرقام."
#: sc/inc/scfuncs.hrc:3487
msgctxt "SC_OPCODE_HYPERLINK"
msgid "Construct a Hyperlink."
-msgstr ""
+msgstr "ركّب ارتباطًا تشعبيًا"
#. UAXBE
#: sc/inc/scfuncs.hrc:3488
msgctxt "SC_OPCODE_HYPERLINK"
msgid "URL"
-msgstr "عنوان URL"
+msgstr "رابط"
#. XFwBY
#: sc/inc/scfuncs.hrc:3489
msgctxt "SC_OPCODE_HYPERLINK"
msgid "The clickable URL."
-msgstr ""
+msgstr "الرابط القابل للنقر."
#. AufAt
#: sc/inc/scfuncs.hrc:3490
-#, fuzzy
msgctxt "SC_OPCODE_HYPERLINK"
msgid "Cell text"
-msgstr "نص خلية"
+msgstr "نص الخلية"
#. mgaK8
#: sc/inc/scfuncs.hrc:3491
@@ -14693,7 +14687,6 @@ msgstr "اسم حقل الجدول المحوري المطلوب استخراج
#. svGFq
#: sc/inc/scfuncs.hrc:3500
-#, fuzzy
msgctxt "SC_OPCODE_GET_PIVOT_DATA"
msgid "Pivot table"
msgstr "جدول محوري"
@@ -14706,7 +14699,6 @@ msgstr "مرجع إلى خلية أو نطاق في الجدول المحوري.
#. gcYNf
#: sc/inc/scfuncs.hrc:3502
-#, fuzzy
msgctxt "SC_OPCODE_GET_PIVOT_DATA"
msgid "Field name / item"
msgstr "اسم الحقل/ العنصر"
@@ -16911,7 +16903,7 @@ msgstr ""
#: sc/inc/strings.hrc:43
msgctxt "SCSTR_FILTER_NO_FILL"
msgid "No Fill"
-msgstr ""
+msgstr "بِلا تعبئة"
#. 8DPvA
#: sc/inc/strings.hrc:44
@@ -16999,12 +16991,12 @@ msgstr "أدرج صورة"
msgctxt "SCSTR_TOTAL"
msgid "One result found"
msgid_plural "%1 results found"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-msgstr[5] ""
+msgstr[0] "لم يُعثر غلى نتائج"
+msgstr[1] "عُثر على نتيجة واحدة"
+msgstr[2] "عُثر على نتيجتين"
+msgstr[3] "عُثر على %1 نتائج"
+msgstr[4] "عُثر على %1 نتيجةً"
+msgstr[5] "عُثر على %1 نتيجةٍ"
#. 7GkKi
#: sc/inc/strings.hrc:60
@@ -17206,7 +17198,7 @@ msgstr "عرض المستند"
#: sc/inc/strings.hrc:95
msgctxt "STR_ACC_TABLE_NAME"
msgid "Sheet %1"
-msgstr "الورقة %1"
+msgstr "ورقة %1"
#. 2qRJG
#: sc/inc/strings.hrc:96
@@ -17302,43 +17294,43 @@ msgstr "(وضع المعاينة)"
#: sc/inc/strings.hrc:111
msgctxt "SCSTR_PRINTOPT_PAGES"
msgid "Pages:"
-msgstr ""
+msgstr "الصفحات:"
#. FYjDY
#: sc/inc/strings.hrc:112
msgctxt "SCSTR_PRINTOPT_SUPPRESSEMPTY"
msgid "~Suppress output of empty pages"
-msgstr ""
+msgstr "أ~خمد إخراج الصفحات الفارغة"
#. GQNVf
#: sc/inc/strings.hrc:113
msgctxt "SCSTR_PRINTOPT_ALLSHEETS"
msgid "Print All Sheets"
-msgstr ""
+msgstr "اطبع كل الأوراق"
#. xcKcm
#: sc/inc/strings.hrc:114
msgctxt "SCSTR_PRINTOPT_SELECTEDSHEETS"
msgid "Print Selected Sheets"
-msgstr ""
+msgstr "اطبع الأوراق المحددة"
#. e7kTj
#: sc/inc/strings.hrc:115
msgctxt "SCSTR_PRINTOPT_SELECTEDCELLS"
msgid "Print Selected Cells"
-msgstr ""
+msgstr "اطبع الخلايا المحددة"
#. z4DB6
#: sc/inc/strings.hrc:116
msgctxt "SCSTR_PRINTOPT_FROMWHICH"
msgid "From which:"
-msgstr ""
+msgstr "من أيّها:"
#. v5EK2
#: sc/inc/strings.hrc:117
msgctxt "SCSTR_PRINTOPT_PRINTALLPAGES"
msgid "All ~Pages"
-msgstr ""
+msgstr "كل ال~صفحات"
#. cvNuW
#: sc/inc/strings.hrc:118
@@ -17380,13 +17372,13 @@ msgstr "كالك A1"
#: sc/inc/strings.hrc:124
msgctxt "SCSTR_FORMULA_SYNTAX_XL_A1"
msgid "Excel A1"
-msgstr "إكسل A1"
+msgstr "أكسل A1"
#. KLkBH
#: sc/inc/strings.hrc:125
msgctxt "SCSTR_FORMULA_SYNTAX_XL_R1C1"
msgid "Excel R1C1"
-msgstr "إكسل R1C1"
+msgstr "أكسل R1C1"
#. pr4wW
#: sc/inc/strings.hrc:126
@@ -17630,10 +17622,9 @@ msgstr "اسم السيناريو"
#. oWz3B
#: sc/inc/strings.hrc:167
-#, fuzzy
msgctxt "SCSTR_QHLP_SCEN_COMMENT"
msgid "Comment"
-msgstr "_التعليقات"
+msgstr "تعليق"
#. tNLKD
#: sc/inc/strings.hrc:169
@@ -19006,7 +18997,7 @@ msgstr ""
#: sc/uiconfig/scalc/ui/advancedfilterdialog.ui:270
msgctxt "advancedfilterdialog|unique"
msgid "_No duplications"
-msgstr "بلا ت_كرار"
+msgstr "بِلا ت_كرار"
#. gEg7S
#: sc/uiconfig/scalc/ui/advancedfilterdialog.ui:279
@@ -19252,7 +19243,7 @@ msgstr "الصّفوف لكلّ عيّنة:"
#: sc/uiconfig/scalc/ui/analysisofvariancedialog.ui:412
msgctxt "analysisofvariancedialog|label1"
msgid "Parameters"
-msgstr "المُعاملات"
+msgstr "المتغيرات الوسيطة"
#. nG25U
#: sc/uiconfig/scalc/ui/analysisofvariancedialog.ui:437
@@ -19684,19 +19675,19 @@ msgstr ""
#: sc/uiconfig/scalc/ui/colwidthdialog.ui:8
msgctxt "colwidthdialog|ColWidthDialog"
msgid "Column Width"
-msgstr "عرض العمود"
+msgstr "عُرض العمود"
#. nXoxa
#: sc/uiconfig/scalc/ui/colwidthdialog.ui:90
msgctxt "colwidthdialog|label1"
msgid "Width"
-msgstr "العرض"
+msgstr "العُرض"
#. j9AMh
#: sc/uiconfig/scalc/ui/colwidthdialog.ui:110
msgctxt "colwidthdialog|extended_tip|value"
msgid "Enter the column width that you want to use."
-msgstr ""
+msgstr "أدخِل عُرض العمود الذي تريد استخدامه."
#. qUvgX
#: sc/uiconfig/scalc/ui/colwidthdialog.ui:121
@@ -21298,13 +21289,13 @@ msgstr "الدالة"
#: sc/uiconfig/scalc/ui/datafielddialog.ui:176
msgctxt "datafielddialog|checkbutton1"
msgid "Show it_ems without data"
-msgstr ""
+msgstr "أظهِر الع_ناصر بلا بيانات"
#. 4S4kV
#: sc/uiconfig/scalc/ui/datafielddialog.ui:184
msgctxt "datafielddialog|extended_tip|checkbutton1"
msgid "Includes empty columns and rows in the results table."
-msgstr ""
+msgstr "ضمّن الأعمدة والصفوف الفارغة في جدول النتائج."
#. CNVLs
#: sc/uiconfig/scalc/ui/datafielddialog.ui:203
@@ -21980,7 +21971,7 @@ msgstr ""
#: sc/uiconfig/scalc/ui/datetimetransformationentry.ui:65
msgctxt "datetimetransformationentry|time"
msgid "Time"
-msgstr ""
+msgstr "الوقت"
#. bRjJe
#: sc/uiconfig/scalc/ui/datetimetransformationentry.ui:80
@@ -22801,7 +22792,7 @@ msgstr ""
#: sc/uiconfig/scalc/ui/exponentialsmoothingdialog.ui:317
msgctxt "exponentialsmoothingdialog|label1"
msgid "Parameters"
-msgstr "المُعاملات"
+msgstr "المتغيرات الوسيطة"
#. kcYtb
#: sc/uiconfig/scalc/ui/exponentialsmoothingdialog.ui:342
@@ -23902,13 +23893,13 @@ msgstr "أدخل نصا لإظهاره في الجهة اليُمنى لأعلى
#: sc/uiconfig/scalc/ui/headerfootercontent.ui:238
msgctxt "headerfootercontent|labelFT_H_DEFINED"
msgid "_Header"
-msgstr "ال_ترويسة"
+msgstr "الرأ_س"
#. di3Ad
#: sc/uiconfig/scalc/ui/headerfootercontent.ui:253
msgctxt "headerfootercontent|labelFT_F_DEFINED"
msgid "_Footer"
-msgstr "ت_ذييل الصفحة"
+msgstr "الت_ذييل"
#. z9EEa
#: sc/uiconfig/scalc/ui/headerfootercontent.ui:280
@@ -24900,7 +24891,7 @@ msgstr "فترة"
#: sc/uiconfig/scalc/ui/movingaveragedialog.ui:334
msgctxt "movingaveragedialog|label1"
msgid "Parameters"
-msgstr "المُعاملات"
+msgstr "المتغيرات الوسيطة"
#. Ed3fa
#: sc/uiconfig/scalc/ui/movingaveragedialog.ui:359
@@ -25287,7 +25278,7 @@ msgstr "لا حل"
#: sc/uiconfig/scalc/ui/nosolutiondialog.ui:62
msgctxt "nosolutiondialog|label1"
msgid "No solution was found."
-msgstr "لم يوجد أي حل."
+msgstr "لم يُعثر على حلّ."
#. iQSEv
#: sc/uiconfig/scalc/ui/notebookbar.ui:2990
@@ -25650,7 +25641,7 @@ msgstr ""
#: sc/uiconfig/scalc/ui/notebookbar_compact.ui:12544
msgctxt "notebookbar_compact|ObjectMenuButton"
msgid "Object"
-msgstr ""
+msgstr "كائن"
#. JXKiY
#: sc/uiconfig/scalc/ui/notebookbar_compact.ui:12596
@@ -26359,10 +26350,9 @@ msgstr ""
#. AWqDR
#: sc/uiconfig/scalc/ui/notebookbar_groups.ui:320
-#, fuzzy
msgctxt "notebookbar_groups|tablestyle2"
msgid "Style 2"
-msgstr "النمط2"
+msgstr "الطراز 2"
#. vHoey
#: sc/uiconfig/scalc/ui/notebookbar_groups.ui:328
@@ -27097,10 +27087,9 @@ msgstr ""
#. wT6PN
#: sc/uiconfig/scalc/ui/optdlg.ui:119
-#, fuzzy
msgctxt "optdlg|label2"
msgid "Sheets"
-msgstr "ورقة"
+msgstr "أوراق"
#. JptgQ
#: sc/uiconfig/scalc/ui/optdlg.ui:135
@@ -27130,7 +27119,7 @@ msgstr "خيارات المعادلات"
#: sc/uiconfig/scalc/ui/optformula.ui:114
msgctxt "optformula|label9"
msgid "Excel 2007 and newer:"
-msgstr "إكسل ٢٠٠٧ فأحدث:"
+msgstr "أكسل ٢٠٠٧ فأحدث:"
#. y4nbF
#: sc/uiconfig/scalc/ui/optformula.ui:128
@@ -27940,24 +27929,21 @@ msgstr ""
#. KBmND
#: sc/uiconfig/scalc/ui/pivotfielddialog.ui:133
-#, fuzzy
msgctxt "pivotfielddialog|none"
msgid "_None"
-msgstr "ملاحظة"
+msgstr "_بلا"
#. ABmZC
#: sc/uiconfig/scalc/ui/pivotfielddialog.ui:148
-#, fuzzy
msgctxt "pivotfielddialog|auto"
msgid "_Automatic"
-msgstr "تلقائي"
+msgstr "_تلقائي"
#. mHvW7
#: sc/uiconfig/scalc/ui/pivotfielddialog.ui:163
-#, fuzzy
msgctxt "pivotfielddialog|user"
msgid "_User-defined"
-msgstr "_معرف من قبل المستخدم"
+msgstr "ع_رّفه المستخدم"
#. k2AjG
#: sc/uiconfig/scalc/ui/pivotfielddialog.ui:211
@@ -27975,13 +27961,13 @@ msgstr "المجاميع الفرعية"
#: sc/uiconfig/scalc/ui/pivotfielddialog.ui:242
msgctxt "pivotfielddialog|showall"
msgid "Show it_ems without data"
-msgstr ""
+msgstr "أظهِر الع_ناصر بلا بيانات"
#. 7GAbs
#: sc/uiconfig/scalc/ui/pivotfielddialog.ui:250
msgctxt "pivotfielddialog|extended_tip|showall"
msgid "Includes empty columns and rows in the results table."
-msgstr ""
+msgstr "ضمّن الأعمدة والصفوف الفارغة في جدول النتائج."
#. aUWEK
#: sc/uiconfig/scalc/ui/pivotfielddialog.ui:269
@@ -28143,7 +28129,7 @@ msgstr ""
#: sc/uiconfig/scalc/ui/pivotfilterdialog.ui:483
msgctxt "pivotfilterdialog|unique"
msgid "_No duplications"
-msgstr "بدون ت_كرار"
+msgstr "بِلا ت_كرار"
#. QCGpa
#: sc/uiconfig/scalc/ui/pivotfilterdialog.ui:492
@@ -28177,10 +28163,9 @@ msgstr "خيا_رات"
#. ztfNB
#: sc/uiconfig/scalc/ui/pivottablelayoutdialog.ui:48
-#, fuzzy
msgctxt "pivottablelayoutdialog|PivotTableLayout"
msgid "Pivot Table Layout"
-msgstr "قيمة الجدول المحوري"
+msgstr "مخطط الجدول المحوري"
#. FCKww
#: sc/uiconfig/scalc/ui/pivottablelayoutdialog.ui:75
@@ -28198,7 +28183,7 @@ msgstr "يغلق الحوار ويستبعد كل التغييرات."
#: sc/uiconfig/scalc/ui/pivottablelayoutdialog.ui:163
msgctxt "pivottablelayoutdialog|label3"
msgid "Column Fields:"
-msgstr "حقول العمود:"
+msgstr "حقول أعمدة:"
#. AeEju
#: sc/uiconfig/scalc/ui/pivottablelayoutdialog.ui:214
@@ -28208,10 +28193,9 @@ msgstr ""
#. WWrpy
#: sc/uiconfig/scalc/ui/pivottablelayoutdialog.ui:244
-#, fuzzy
msgctxt "pivottablelayoutdialog|label5"
msgid "Data Fields:"
-msgstr "حقل بيانات"
+msgstr "حقول بيانات:"
#. cvgCA
#: sc/uiconfig/scalc/ui/pivottablelayoutdialog.ui:295
@@ -28223,7 +28207,7 @@ msgstr ""
#: sc/uiconfig/scalc/ui/pivottablelayoutdialog.ui:325
msgctxt "pivottablelayoutdialog|label4"
msgid "Row Fields:"
-msgstr ""
+msgstr "حقول صفوف:"
#. n7GRA
#: sc/uiconfig/scalc/ui/pivottablelayoutdialog.ui:374
@@ -28235,7 +28219,7 @@ msgstr ""
#: sc/uiconfig/scalc/ui/pivottablelayoutdialog.ui:404
msgctxt "pivottablelayoutdialog|label2"
msgid "Filters:"
-msgstr ""
+msgstr "المرشّحات:"
#. yN8BR
#: sc/uiconfig/scalc/ui/pivottablelayoutdialog.ui:455
@@ -28245,10 +28229,9 @@ msgstr ""
#. Scoht
#: sc/uiconfig/scalc/ui/pivottablelayoutdialog.ui:517
-#, fuzzy
msgctxt "pivottablelayoutdialog|label1"
msgid "Available Fields:"
-msgstr "الحقول المت~وفّرة"
+msgstr "الحقول المتاحة:"
#. FBtEV
#: sc/uiconfig/scalc/ui/pivottablelayoutdialog.ui:567
@@ -28260,25 +28243,25 @@ msgstr ""
#: sc/uiconfig/scalc/ui/pivottablelayoutdialog.ui:598
msgctxt "pivottablelayoutdialog|label6"
msgid "Drag the Items into the Desired Position"
-msgstr ""
+msgstr "اسحب العنصر إلى الموضع المرغوب"
#. 9EpNA
#: sc/uiconfig/scalc/ui/pivottablelayoutdialog.ui:626
msgctxt "pivottablelayoutdialog|check-ignore-empty-rows"
msgid "Ignore empty rows"
-msgstr ""
+msgstr "أهمِل الصفوف الفارغة"
#. CAJBa
#: sc/uiconfig/scalc/ui/pivottablelayoutdialog.ui:634
msgctxt "pivottablelayoutdialog|extended_tip|check-ignore-empty-rows"
msgid "Ignores empty fields in the data source."
-msgstr ""
+msgstr "يهمل الحقول الفارغة في مصدر البيانات."
#. jgyea
#: sc/uiconfig/scalc/ui/pivottablelayoutdialog.ui:645
msgctxt "pivottablelayoutdialog|check-identify-categories"
msgid "Identify categories"
-msgstr ""
+msgstr "نعرّف على الأصناف"
#. uzKL8
#: sc/uiconfig/scalc/ui/pivottablelayoutdialog.ui:653
@@ -28342,10 +28325,9 @@ msgstr "خيارات"
#. LevDB
#: sc/uiconfig/scalc/ui/pivottablelayoutdialog.ui:792
-#, fuzzy
msgctxt "pivottablelayoutdialog|destination-radio-new-sheet"
msgid "New sheet"
-msgstr "ور_قة جديدة"
+msgstr "ورقة جديدة"
#. Ld2sG
#: sc/uiconfig/scalc/ui/pivottablelayoutdialog.ui:808
@@ -28373,10 +28355,9 @@ msgstr ""
#. UjyGK
#: sc/uiconfig/scalc/ui/pivottablelayoutdialog.ui:872
-#, fuzzy
msgctxt "pivottablelayoutdialog|destination-radio-named-range"
msgid "Named range"
-msgstr "مجال م_سمى"
+msgstr "نطاق مسمَّى"
#. xhpiB
#: sc/uiconfig/scalc/ui/pivottablelayoutdialog.ui:891
@@ -28405,10 +28386,9 @@ msgstr ""
#. 6s5By
#: sc/uiconfig/scalc/ui/pivottablelayoutdialog.ui:971
-#, fuzzy
msgctxt "pivottablelayoutdialog|source-radio-named-range"
msgid "Named range"
-msgstr "مجال م_سمى"
+msgstr "نطاق مسمَّى"
#. QTYpg
#: sc/uiconfig/scalc/ui/pivottablelayoutdialog.ui:1001
@@ -28420,7 +28400,7 @@ msgstr "المصدر"
#: sc/uiconfig/scalc/ui/pivottablelayoutdialog.ui:1019
msgctxt "pivottablelayoutdialog|label7"
msgid "Source and Destination"
-msgstr ""
+msgstr "المصدر والوجهة"
#. WUqGN
#: sc/uiconfig/scalc/ui/pivottablelayoutdialog.ui:1028
@@ -29156,7 +29136,7 @@ msgstr "الارتفاع:"
#: sc/uiconfig/scalc/ui/rowheightdialog.ui:110
msgctxt "rowheightdialog|extended_tip|value"
msgid "Enter the row height that you want to use."
-msgstr ""
+msgstr "أدخِل ارتفاع الصف الذي تريد استخدامه."
#. thALC
#: sc/uiconfig/scalc/ui/rowheightdialog.ui:121
@@ -29280,10 +29260,9 @@ msgstr ""
#. X9GgG
#: sc/uiconfig/scalc/ui/scenariodialog.ui:170
-#, fuzzy
msgctxt "scenariodialog|label2"
msgid "Comment"
-msgstr "_التعليقات"
+msgstr "تعليق"
#. GcXCj
#: sc/uiconfig/scalc/ui/scenariodialog.ui:200
@@ -29701,7 +29680,7 @@ msgstr "التحديد"
#: sc/uiconfig/scalc/ui/selectrange.ui:16
msgctxt "selectrange|SelectRangeDialog"
msgid "Select Database Range"
-msgstr "تحديد نطاق قاعدة البيانات"
+msgstr "حدد نطاق قاعدة البيانات"
#. LTKjo
#: sc/uiconfig/scalc/ui/selectrange.ui:126
@@ -30177,7 +30156,7 @@ msgstr "ملاءمة نطاق (نطاقات) الطباعة بالعرض/الا
#: sc/uiconfig/scalc/ui/sheetprintpage.ui:646
msgctxt "sheetprintpage|comboLB_SCALEMODE"
msgid "Fit print range(s) on number of pages"
-msgstr "ملاءمة نطاق (نطاقات) الطباعة بعدد الصفحات"
+msgstr "ملاءمة نطاق (نطاقات) الطباعة على عدد الصفحات"
#. AzkrF
#: sc/uiconfig/scalc/ui/sheetprintpage.ui:650
@@ -30483,7 +30462,7 @@ msgstr ""
#: sc/uiconfig/scalc/ui/sidebarnumberformat.ui:80
msgctxt "sidebarnumberformat|numberformatcombobox"
msgid "Time"
-msgstr ""
+msgstr "الوقت"
#. EukSF
#: sc/uiconfig/scalc/ui/sidebarnumberformat.ui:81
@@ -31824,7 +31803,7 @@ msgstr ""
#: sc/uiconfig/scalc/ui/standardfilterdialog.ui:1014
msgctxt "standardfilterdialog|unique"
msgid "_No duplications"
-msgstr "بدون ت_كرار"
+msgstr "بِلا ت_كرار"
#. EiBMm
#: sc/uiconfig/scalc/ui/standardfilterdialog.ui:1023
@@ -31919,10 +31898,9 @@ msgstr ""
#. uBMEs
#: sc/uiconfig/scalc/ui/statisticsinfopage.ui:24
-#, fuzzy
msgctxt "statisticsinfopage|label6"
msgid "Pages:"
-msgstr "صفحات"
+msgstr "الصفحات:"
#. 4NfcR
#: sc/uiconfig/scalc/ui/statisticsinfopage.ui:50
diff --git a/source/ar/scp2/source/calc.po b/source/ar/scp2/source/calc.po
index b92982bc279..be7792e754f 100644
--- a/source/ar/scp2/source/calc.po
+++ b/source/ar/scp2/source/calc.po
@@ -4,16 +4,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2019-07-11 18:38+0200\n"
-"PO-Revision-Date: 2018-02-12 14:43+0000\n"
-"Last-Translator: صفا الفليج <safa1996alfulaij@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2022-03-02 22:39+0000\n"
+"Last-Translator: Riyadh Talal <riyadhtalal@gmail.com>\n"
+"Language-Team: Arabic <https://translations.documentfoundation.org/projects/libo_ui-7-3/scp2sourcecalc/ar/>\n"
"Language: ar\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
"X-Accelerator-Marker: ~\n"
-"X-Generator: LibreOffice\n"
+"X-Generator: Weblate 4.8.1\n"
"X-POOTLE-MTIME: 1518446586.000000\n"
#. rTGYE
@@ -158,7 +158,7 @@ msgctxt ""
"STR_REG_VAL_MS_EXCEL_WORKSHEET_OLD\n"
"LngText.text"
msgid "Microsoft Excel 97-2003 Worksheet"
-msgstr "ورقة عمل ميكروسوفت إكسل ٩٧-٢٠٠٣"
+msgstr "ورقة عمل ميكروسوفت أكسل ٩٧-٢٠٠٣"
#. aAdan
#: registryitem_calc.ulf
@@ -167,7 +167,7 @@ msgctxt ""
"STR_REG_VAL_MS_EXCEL_WORKSHEET\n"
"LngText.text"
msgid "Microsoft Excel Worksheet"
-msgstr "ورقة عمل ميكروسوفت إكسل"
+msgstr "ورقة عمل ميكروسوفت أكسل"
#. GWhEw
#: registryitem_calc.ulf
@@ -176,7 +176,7 @@ msgctxt ""
"STR_REG_VAL_MS_EXCEL_WEBQUERY\n"
"LngText.text"
msgid "Microsoft Excel Web Query File"
-msgstr "ملف استعلام وِب ميكروسوفت إكسل"
+msgstr "ملف استعلام وَب ميكروسوفت أكسل"
#. QGyiB
#: registryitem_calc.ulf
@@ -185,7 +185,7 @@ msgctxt ""
"STR_REG_VAL_MS_EXCEL_TEMPLATE_OLD\n"
"LngText.text"
msgid "Microsoft Excel 97-2003 Template"
-msgstr "قالب ميكروسوفت إكسل ٩٧-٢٠٠٣"
+msgstr "قالب ميكروسوفت أكسل ٩٧-٢٠٠٣"
#. sputX
#: registryitem_calc.ulf
@@ -194,7 +194,7 @@ msgctxt ""
"STR_REG_VAL_MS_EXCEL_TEMPLATE\n"
"LngText.text"
msgid "Microsoft Excel Template"
-msgstr "قالب ميكروسوفت إكسل"
+msgstr "قالب ميكروسوفت أكسل"
#. vnbCH
#: registryitem_calc.ulf
diff --git a/source/ar/scp2/source/ooo.po b/source/ar/scp2/source/ooo.po
index 5cb26e63484..a923aea2cce 100644
--- a/source/ar/scp2/source/ooo.po
+++ b/source/ar/scp2/source/ooo.po
@@ -4,9 +4,9 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-09-10 23:12+0200\n"
-"PO-Revision-Date: 2021-12-20 11:38+0000\n"
+"PO-Revision-Date: 2022-03-02 22:39+0000\n"
"Last-Translator: Riyadh Talal <riyadhtalal@gmail.com>\n"
-"Language-Team: Arabic <https://translations.documentfoundation.org/projects/libo_ui-master/scp2sourceooo/ar/>\n"
+"Language-Team: Arabic <https://translations.documentfoundation.org/projects/libo_ui-7-3/scp2sourceooo/ar/>\n"
"Language: ar\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -50,7 +50,7 @@ msgctxt ""
"STR_FI_TOOLTIP_SOFFICE\n"
"LngText.text"
msgid "LibreOffice, the office productivity suite provided by The Document Foundation. See https://www.documentfoundation.org"
-msgstr ""
+msgstr "ليبرأوفيس، حزمة المكتب الإنتاجية التي توفّرها مؤسسة المستند The Document Foundation. طالع https://www.documentfoundation.org"
#. Bf97K
#: module_helppack.ulf
diff --git a/source/ar/sd/messages.po b/source/ar/sd/messages.po
index d25115b305d..ba05945805b 100644
--- a/source/ar/sd/messages.po
+++ b/source/ar/sd/messages.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-21 12:38+0100\n"
-"PO-Revision-Date: 2022-02-26 21:39+0000\n"
+"PO-Revision-Date: 2022-03-09 16:29+0000\n"
"Last-Translator: Riyadh Talal <riyadhtalal@gmail.com>\n"
"Language-Team: Arabic <https://translations.documentfoundation.org/projects/libo_ui-7-3/sdmessages/ar/>\n"
"Language: ar\n"
@@ -200,7 +200,7 @@ msgstr ""
#: sd/inc/DocumentRenderer.hrc:90
msgctxt "STR_DRAW_PRINT_UI_PAGE_RANGE_CHOICE"
msgid "All ~Pages"
-msgstr ""
+msgstr "كل ال~صفحات"
#. 7nrMB
#: sd/inc/DocumentRenderer.hrc:91
@@ -283,7 +283,7 @@ msgstr "_نعم"
#: sd/inc/errhdl.hrc:30
msgctxt "RID_SD_ERRHDL"
msgid "File format error found at $(ARG1)(row,col)."
-msgstr "تم اكتشاف خطأ في تنسيق الملف في $(ARG1)(صف،عمود)."
+msgstr "عُثر على خطأ في نسَق الملف في $(ARG1)(صف،عمود)."
#. cXzDt
#: sd/inc/errhdl.hrc:32 sd/inc/errhdl.hrc:34
@@ -331,7 +331,7 @@ msgstr "الطُرُز المخفية"
#: sd/inc/pageformatpanel.hrc:22
msgctxt "RID_PAGEFORMATPANEL_MARGINS_INCH"
msgid "None"
-msgstr "بدون"
+msgstr "بِلا"
#. eNMWm
#: sd/inc/pageformatpanel.hrc:23
@@ -365,7 +365,7 @@ msgstr "عريضة"
#: sd/inc/pageformatpanel.hrc:37
msgctxt "RID_PAGEFORMATPANEL_MARGINS_CM"
msgid "None"
-msgstr "بدون"
+msgstr "بِلا"
#. LxZSX
#: sd/inc/pageformatpanel.hrc:38
@@ -399,13 +399,13 @@ msgstr "عريضة"
#: sd/inc/strings.hrc:25
msgctxt "STR_NULL"
msgid "None"
-msgstr "بدون"
+msgstr "بِلا"
#. zEak7
#: sd/inc/strings.hrc:26
msgctxt "STR_INSERTPAGE"
msgid "Insert Slide"
-msgstr "إدراج شريحة"
+msgstr "أدرِج شريحة"
#. dHm9F
#: sd/inc/strings.hrc:27
@@ -963,7 +963,7 @@ msgstr "إصدارة ملفّ الصّورة هذا غير مدعومة"
#: sd/inc/strings.hrc:116
msgctxt "STR_IMPORT_GRFILTER_FILTERERROR"
msgid "Image filter not found"
-msgstr "لم يُعثر على مرشّح الصّورة"
+msgstr "لم يُعثر على مرشّح الصورة"
#. qdeHG
#: sd/inc/strings.hrc:117
@@ -1063,7 +1063,7 @@ msgstr ""
#: sd/inc/strings.hrc:132
msgctxt "STR_CLICK_ACTION_NONE"
msgid "No action"
-msgstr "بدون إجراء"
+msgstr "بِلا إجراء"
#. Cd6E6
#: sd/inc/strings.hrc:133
@@ -1287,7 +1287,7 @@ msgstr "لا يمكن تنفيذ هذه العملية في الوضع المب
#: sd/inc/strings.hrc:172
msgctxt "STR_PUBLISH_BACK"
msgid "Back"
-msgstr "السابق"
+msgstr "رجوع"
#. tDRYt
#: sd/inc/strings.hrc:173
@@ -1389,7 +1389,7 @@ msgstr "المسار"
#: sd/inc/strings.hrc:189
msgctxt "STR_FILEFORMAT_NAME"
msgid "File name without extension"
-msgstr "اسم الملف بدون امتداد"
+msgstr "اسم الملف بِلا امتداد"
#. M4uEt
#: sd/inc/strings.hrc:190
@@ -1562,7 +1562,7 @@ msgstr "بمحتويات"
#: sd/inc/strings.hrc:219
msgctxt "STR_HTMLEXP_NOOUTLINE"
msgid "Without contents"
-msgstr "بدون محتويات"
+msgstr "بِلا محتويات"
#. cWcCG
#: sd/inc/strings.hrc:220
@@ -1699,7 +1699,7 @@ msgstr "منطقة التذييل"
#: sd/inc/strings.hrc:241
msgctxt "STR_PLACEHOLDER_DESCRIPTION_HEADER"
msgid "Header Area"
-msgstr "منطقة الترويسة"
+msgstr "منطقة الرأس"
#. 8JGJD
#: sd/inc/strings.hrc:242
@@ -1723,7 +1723,7 @@ msgstr "منطقة رقم الصفحة"
#: sd/inc/strings.hrc:245
msgctxt "STR_FIELD_PLACEHOLDER_HEADER"
msgid "<header>"
-msgstr "<ترويسة>"
+msgstr "<رأس>"
#. RoVvC
#: sd/inc/strings.hrc:246
@@ -1783,7 +1783,7 @@ msgstr "الشرائح"
#: sd/inc/strings.hrc:255
msgctxt "STR_LEFT_PANE_DRAW_TITLE"
msgid "Pages"
-msgstr "الصفحات"
+msgstr "صفحات"
#. C7hf2
#: sd/inc/strings.hrc:256
@@ -2197,7 +2197,7 @@ msgstr ""
#: sd/inc/strings.hrc:326
msgctxt "STR_POOLSHEET_OBJWITHOUTFILL"
msgid "Object without fill"
-msgstr "كائن بدون تعبئة"
+msgstr "كائن بِلا تعبئة"
#. btJeg
#: sd/inc/strings.hrc:327
@@ -2541,7 +2541,7 @@ msgstr "تذييل‌العَرض‌التقديمي"
#: sd/inc/strings.hrc:389
msgctxt "SID_SD_A11Y_P_HEADER_N"
msgid "PresentationHeader"
-msgstr "ترويسةالعَرض‌التقديميعرض تقديمي"
+msgstr "رأس‌العَرض‌التقديمي"
#. EfHeH
#: sd/inc/strings.hrc:390
@@ -2822,7 +2822,7 @@ msgstr "متنوعة: %1"
#: sd/inc/strings.hrc:436
msgctxt "STR_SLIDETRANSITION_NONE"
msgid "None"
-msgstr "بدون"
+msgstr "بِلا"
#. KAsTD
#: sd/inc/strings.hrc:438
@@ -3004,19 +3004,19 @@ msgstr "اس~تخدم فقط درج الورق من تفضيلات الطابع
#: sd/inc/strings.hrc:469
msgctxt "STR_IMPRESS_PRINT_UI_PAGE_RANGE"
msgid "Pages:"
-msgstr ""
+msgstr "الصفحات:"
#. a3tSp
#: sd/inc/strings.hrc:470
msgctxt "STR_IMPRESS_PRINT_UI_SLIDE_RANGE"
msgid "Slides:"
-msgstr ""
+msgstr "الشرائح:"
#. pPiWM
#: sd/inc/strings.hrc:472
msgctxt "STR_SAR_WRAP_FORWARD"
msgid "%PRODUCTNAME Impress has searched to the end of the presentation. Do you want to continue at the beginning?"
-msgstr "بحث %PRODUCTNAME امبريس حتى نهاية العرض. هل تريد متابعة البحث من البداية؟"
+msgstr "بحث %PRODUCTNAME امبريس حتى نهاية العَرض التقديمي. هل تريد المتابعة من البداية؟"
#. buKAC
#: sd/inc/strings.hrc:473
@@ -3040,44 +3040,43 @@ msgstr "بحث %PRODUCTNAME درو حتى بداية العرض. هل تريد
#: sd/inc/strings.hrc:477
msgctxt "STR_ANIMATION_DIALOG_TITLE"
msgid "Animation"
-msgstr ""
+msgstr "متحرك"
#. X9CWA
#: sd/inc/strings.hrc:479
msgctxt "RID_SVXSTR_EDIT_GRAPHIC"
msgid "Link"
-msgstr ""
+msgstr "ارتباط"
#. yYhnC
#: sd/inc/strings.hrc:481
msgctxt "RID_SVXSTR_MENU_NEXT"
msgid "~Next"
-msgstr ""
+msgstr "ال~تالي"
#. YG7NQ
#: sd/inc/strings.hrc:482
msgctxt "RID_SVXSTR_MENU_NEXT"
msgid "~Previous"
-msgstr ""
+msgstr "ال~سابق"
#. A9eJu
#: sd/inc/strings.hrc:483
msgctxt "RID_SVXSTR_MENU_FIRST"
msgid "~First Slide"
-msgstr ""
+msgstr "الشريحة الأ~ولى"
#. CVatA
#: sd/inc/strings.hrc:484
msgctxt "RID_SVXSTR_MENU_LAST"
msgid "~Last Slide"
-msgstr ""
+msgstr "الشريحة الأ~خيرة"
#. xNozF
#: sd/uiconfig/sdraw/ui/breakdialog.ui:8
-#, fuzzy
msgctxt "breakdialog|BreakDialog"
msgid "Break"
-msgstr "ا~كسر"
+msgstr "توقف"
#. reFAv
#: sd/uiconfig/sdraw/ui/breakdialog.ui:56
@@ -3227,7 +3226,7 @@ msgstr "ال_عرض:"
#: sd/uiconfig/sdraw/ui/copydlg.ui:368
msgctxt "copydlg|label9"
msgid "_Height:"
-msgstr "الار_تفاع:"
+msgstr "الارت_فاع:"
#. pLxaH
#: sd/uiconfig/sdraw/ui/copydlg.ui:388
@@ -3436,10 +3435,9 @@ msgstr "المحرف"
#. GsQBk
#: sd/uiconfig/sdraw/ui/drawchardialog.ui:136
-#, fuzzy
msgctxt "drawchardialog|RID_SVXPAGE_CHAR_NAME"
msgid "Fonts"
-msgstr "الخط:"
+msgstr "الخطوط"
#. 7LgAf
#: sd/uiconfig/sdraw/ui/drawchardialog.ui:183
@@ -3781,7 +3779,7 @@ msgstr "أدخل عنوان الطبقة."
#: sd/uiconfig/sdraw/ui/insertlayer.ui:149
msgctxt "insertlayer|label5"
msgid "_Title"
-msgstr "الع_نوان"
+msgstr "ال_عنوان"
#. KKC7D
#: sd/uiconfig/sdraw/ui/insertlayer.ui:188
@@ -4228,7 +4226,7 @@ msgstr ""
#: sd/uiconfig/sdraw/ui/notebookbar_compact.ui:15268
msgctxt "notebookbar_draw_compact|ObjectMenuButton"
msgid "Object"
-msgstr ""
+msgstr "كائن"
#. 3gubF
#: sd/uiconfig/sdraw/ui/notebookbar_compact.ui:15324
@@ -4869,21 +4867,21 @@ msgstr ""
#: sd/uiconfig/simpress/ui/customanimationfragment.ui:131
msgctxt "customanimationfragment|25"
msgid "Tiny"
-msgstr ""
+msgstr "بالغ الصغر"
#. KFKEz
#: sd/uiconfig/simpress/ui/customanimationfragment.ui:41
#: sd/uiconfig/simpress/ui/customanimationfragment.ui:139
msgctxt "customanimationfragment|50"
msgid "Smaller"
-msgstr ""
+msgstr "أصغر"
#. 6PRME
#: sd/uiconfig/simpress/ui/customanimationfragment.ui:49
#: sd/uiconfig/simpress/ui/customanimationfragment.ui:147
msgctxt "customanimationfragment|150"
msgid "Larger"
-msgstr ""
+msgstr "أكبر"
#. kt7nE
#: sd/uiconfig/simpress/ui/customanimationfragment.ui:57
@@ -4962,7 +4960,7 @@ msgstr ""
#: sd/uiconfig/simpress/ui/customanimationfragment.ui:213
msgctxt "customanimationfragment|underline"
msgid "Underlined"
-msgstr ""
+msgstr "تحته خط"
#. icBD4
#: sd/uiconfig/simpress/ui/customanimationproperties.ui:8
@@ -5006,25 +5004,25 @@ msgstr ""
#: sd/uiconfig/simpress/ui/customanimationspanel.ui:215
msgctxt "customanimationspanel|lbEffect"
msgid "Effects"
-msgstr ""
+msgstr "التأثيرات"
#. WGWNA
#: sd/uiconfig/simpress/ui/customanimationspanel.ui:236
msgctxt "customanimationspanel|add"
msgid "_Add"
-msgstr ""
+msgstr "أ_ضف"
#. nRqGR
#: sd/uiconfig/simpress/ui/customanimationspanel.ui:240
msgctxt "customanimationspanel|add_effect|tooltip_text"
msgid "Add Effect"
-msgstr ""
+msgstr "أضف تأثيراً"
#. CskWF
#: sd/uiconfig/simpress/ui/customanimationspanel.ui:246
msgctxt "customanimationspanel|extended_tip|add_effect"
msgid "Adds another animation effect for the selected object on the slide."
-msgstr ""
+msgstr "أضِف تأثير تحريك آخر للكائن المحدد على الشريحة."
#. vitMM
#: sd/uiconfig/simpress/ui/customanimationspanel.ui:261
@@ -5066,7 +5064,7 @@ msgstr ""
#: sd/uiconfig/simpress/ui/customanimationspanel.ui:331
msgctxt "customanimationspanel|categorylabel"
msgid "Category:"
-msgstr "الفئة:"
+msgstr "الصنف:"
#. jQcZZ
#: sd/uiconfig/simpress/ui/customanimationspanel.ui:345
@@ -5102,7 +5100,7 @@ msgstr "تأثيرات متنوعة"
#: sd/uiconfig/simpress/ui/customanimationspanel.ui:353
msgctxt "customanimationspanel|extended_tip|categorylb"
msgid "Select an animation effect category."
-msgstr ""
+msgstr "حدد صنف تأثيرات الحركة."
#. EHRAp
#: sd/uiconfig/simpress/ui/customanimationspanel.ui:370
@@ -5234,13 +5232,13 @@ msgstr "كدس التحريك"
#: sd/uiconfig/simpress/ui/customanimationspanel.ui:645
msgctxt "customanimationspanel|custom_animation_list_label"
msgid "Animation List"
-msgstr ""
+msgstr "قائمة التحريك"
#. F7AZL
#: sd/uiconfig/simpress/ui/customanimationspanel.ui:701
msgctxt "customanimationspanel|extended_tip|CustomAnimationsPanel"
msgid "Assigns effects to selected objects."
-msgstr ""
+msgstr "يسند تأثيرات للكائنات المحددة."
#. rYtTX
#: sd/uiconfig/simpress/ui/customanimationtexttab.ui:30
@@ -5951,21 +5949,18 @@ msgstr "أ_زل"
#. DXV9V
#: sd/uiconfig/simpress/ui/fontsizemenu.ui:12
-#, fuzzy
msgctxt "fontsizemenu|25"
msgid "Tiny"
-msgstr "دقيق"
+msgstr "بالغ الصغر"
#. KeRNm
#: sd/uiconfig/simpress/ui/fontsizemenu.ui:20
-#, fuzzy
msgctxt "fontsizemenu|50"
msgid "Smaller"
msgstr "أصغر"
#. 6WKBZ
#: sd/uiconfig/simpress/ui/fontsizemenu.ui:28
-#, fuzzy
msgctxt "fontsizemenu|150"
msgid "Larger"
msgstr "أكبر"
@@ -5984,23 +5979,21 @@ msgstr "ثخين"
#. HgpdJ
#: sd/uiconfig/simpress/ui/fontstylemenu.ui:20
-#, fuzzy
msgctxt "fontstylemenu|italic"
msgid "Italic"
-msgstr "_مائل"
+msgstr "مائل"
#. A5UUL
#: sd/uiconfig/simpress/ui/fontstylemenu.ui:28
-#, fuzzy
msgctxt "fontstylemenu|underline"
msgid "Underlined"
-msgstr "مس_طّر"
+msgstr "تحته خط"
#. BnypD
#: sd/uiconfig/simpress/ui/headerfooterdialog.ui:8
msgctxt "headerfooterdialog|HeaderFooterDialog"
msgid "Header and Footer"
-msgstr "الترويسة و التذييل"
+msgstr "الرأس والتذييل"
#. HmAnf
#: sd/uiconfig/simpress/ui/headerfooterdialog.ui:24
@@ -6030,38 +6023,37 @@ msgstr "الشرائح"
#: sd/uiconfig/simpress/ui/headerfooterdialog.ui:192
msgctxt "headerfooterdialog|notes"
msgid "Notes and Handouts"
-msgstr ""
+msgstr "إبلاغات ونشرات"
#. jAdBZ
#: sd/uiconfig/simpress/ui/headerfooterdialog.ui:219
msgctxt "headerfooterdialog|extended_tip|HeaderFooterDialog"
msgid "Adds or changes text in placeholders at the top and the bottom of slides and master slides."
-msgstr ""
+msgstr "يضيف أو يغيّر النص في الحالّات في أعلى وأسفل الشرائح والشرائح الرئيسة."
#. BgFsS
#: sd/uiconfig/simpress/ui/headerfootertab.ui:35
-#, fuzzy
msgctxt "headerfootertab|header_cb"
msgid "Heade_r"
-msgstr "ترويسة"
+msgstr "_رأس"
#. 7qH6R
#: sd/uiconfig/simpress/ui/headerfootertab.ui:44
msgctxt "headerfootertab|extended_tip|header_cb"
msgid "Adds the text that you enter in the Header text box to the top of the slide."
-msgstr ""
+msgstr "يضيف النص الذي تُدخله في صندوق نص الرأس إلى أعلى الشريحة."
#. Qktzq
#: sd/uiconfig/simpress/ui/headerfootertab.ui:64
msgctxt "headerfootertab|header_label"
msgid "Header _text:"
-msgstr "_نص الترويسة:"
+msgstr "_نص الرأس:"
#. uNdGZ
#: sd/uiconfig/simpress/ui/headerfootertab.ui:83
msgctxt "headerfootertab|extended_tip|header_text"
msgid "Adds the text that you enter to the top of the slide."
-msgstr ""
+msgstr "يضيف النص الذي تُدخله إلى أعلى الشريحة."
#. ruQCk
#: sd/uiconfig/simpress/ui/headerfootertab.ui:105
@@ -6073,45 +6065,43 @@ msgstr "ال_تاريخ والوقت"
#: sd/uiconfig/simpress/ui/headerfootertab.ui:113
msgctxt "headerfootertab|extended_tip|datetime_cb"
msgid "Adds the date and time to the slide."
-msgstr ""
+msgstr "يضيف التأريخ والوقت إلى الشريحة."
#. LDq83
#: sd/uiconfig/simpress/ui/headerfootertab.ui:137
-#, fuzzy
msgctxt "headerfootertab|rb_fixed"
msgid "Fi_xed"
-msgstr "ثابت"
+msgstr "_ثابت"
#. RrPiS
#: sd/uiconfig/simpress/ui/headerfootertab.ui:149
msgctxt "headerfootertab|extended_tip|rb_fixed"
msgid "Displays the date and time that you enter in the text box."
-msgstr ""
+msgstr "يَعرض التأريخ والوقت الذي تُدخله في مربع النص."
#. Nycig
#: sd/uiconfig/simpress/ui/headerfootertab.ui:170
msgctxt "headerfootertab|extended_tip|datetime_value"
msgid "Displays the date and time that you enter in the text box."
-msgstr ""
+msgstr "يَعرض التأريخ والوقت الذي تُدخله في مربع النص."
#. Zch2Q
#: sd/uiconfig/simpress/ui/headerfootertab.ui:195
-#, fuzzy
msgctxt "headerfootertab|rb_auto"
msgid "_Variable"
-msgstr "المتغير"
+msgstr "مت_غير"
#. CA8yX
#: sd/uiconfig/simpress/ui/headerfootertab.ui:207
msgctxt "headerfootertab|extended_tip|rb_auto"
msgid "Displays the date and time that the slide was created. Select a date format from the list."
-msgstr ""
+msgstr "يَعرض التأريخ والوقت الذي أُنشئِت فيه الشريحة. حدد نسَق تأريخ من القائمة."
#. fXSJq
#: sd/uiconfig/simpress/ui/headerfootertab.ui:229
msgctxt "headerfootertab|extended_tip|language_list"
msgid "Select the language for the date and time format."
-msgstr ""
+msgstr "حدد لغةَ لنسَق التأريخ والوقت."
#. iDwM5
#: sd/uiconfig/simpress/ui/headerfootertab.ui:242
@@ -6123,14 +6113,13 @@ msgstr "الل_غة:"
#: sd/uiconfig/simpress/ui/headerfootertab.ui:258
msgctxt "headerfootertab|extended_tip|datetime_format_list"
msgid "Displays the date and time that the slide was created. Select a date format from the list."
-msgstr ""
+msgstr "يَعرض التأريخ والوقت الذي أُنشئِت فيه الشريحة. حدد نسَق تأريخ من القائمة."
#. mDMwW
#: sd/uiconfig/simpress/ui/headerfootertab.ui:271
-#, fuzzy
msgctxt "headerfootertab|language_label1"
msgid "_Format:"
-msgstr "التن_سيق:"
+msgstr "النسَ_ق:"
#. htD4f
#: sd/uiconfig/simpress/ui/headerfootertab.ui:315
@@ -6142,7 +6131,7 @@ msgstr "الت_ذييل"
#: sd/uiconfig/simpress/ui/headerfootertab.ui:323
msgctxt "headerfootertab|extended_tip|footer_cb"
msgid "Adds the text that you enter in the Footer text box to the bottom of the slide."
-msgstr ""
+msgstr "يضيف النص الذي تُدخله في مربع نص التذييل إلى أسفل الشريحة."
#. oA3mG
#: sd/uiconfig/simpress/ui/headerfootertab.ui:343
@@ -6154,7 +6143,7 @@ msgstr "نص ال_تذييل:"
#: sd/uiconfig/simpress/ui/headerfootertab.ui:362
msgctxt "headerfootertab|extended_tip|footer_text"
msgid "Adds the text that you enter to the bottom of the slide."
-msgstr ""
+msgstr "يضيف النص الذي تُدخله إلى أسفل الشريحة."
#. UERZK
#: sd/uiconfig/simpress/ui/headerfootertab.ui:391
@@ -6166,7 +6155,7 @@ msgstr "رقم ال_شريحة"
#: sd/uiconfig/simpress/ui/headerfootertab.ui:399
msgctxt "headerfootertab|extended_tip|slide_number"
msgid "Adds the slide number or the page number."
-msgstr ""
+msgstr "يضيف رقم الشريحة أو رقم الصفحة."
#. ZmRZp
#: sd/uiconfig/simpress/ui/headerfootertab.ui:415
@@ -6184,7 +6173,7 @@ msgstr "لا _تعرض على الشريحة الأولى"
#: sd/uiconfig/simpress/ui/headerfootertab.ui:439
msgctxt "headerfootertab|extended_tip|not_on_title"
msgid "Does not display your specified information on the first slide of your presentation."
-msgstr ""
+msgstr "لا يَعرض المعلومات المحددة خاصتك على الشريحة الأولى من عَرضك التقديمي."
#. jjanG
#: sd/uiconfig/simpress/ui/headerfootertab.ui:453
@@ -6545,10 +6534,9 @@ msgstr "ال~عناصر الرئيسية"
#. 2kiHn
#: sd/uiconfig/simpress/ui/masterlayoutdlg.ui:92
-#, fuzzy
msgctxt "masterlayoutdlg|header"
msgid "_Header"
-msgstr "ترويسة"
+msgstr "الرأ_س"
#. r7Aa8
#: sd/uiconfig/simpress/ui/masterlayoutdlg.ui:100
@@ -6730,7 +6718,7 @@ msgstr "الشريحة الأخيرة"
#: sd/uiconfig/simpress/ui/navigatorpanel.ui:194
msgctxt "navigatorpanel|extended_tip|last"
msgid "Jumps to the last page."
-msgstr ""
+msgstr "يقفز إلى الصفحة الأخيرة."
#. mHVom
#: sd/uiconfig/simpress/ui/navigatorpanel.ui:218
@@ -6766,13 +6754,13 @@ msgstr ""
#: sd/uiconfig/simpress/ui/navigatorpanel.ui:272
msgctxt "navigatorpanel|STR_NAVIGATOR_SHOW_NAMED_SHAPES"
msgid "Named shapes"
-msgstr ""
+msgstr "الأشكال المسمّاة"
#. dLEPF
#: sd/uiconfig/simpress/ui/navigatorpanel.ui:281
msgctxt "navigatorpanel|STR_NAVIGATOR_SHOW_ALL_SHAPES"
msgid "All shapes"
-msgstr ""
+msgstr "كل الأشكال"
#. qGFEo
#: sd/uiconfig/simpress/ui/notebookbar.ui:3189
@@ -7140,7 +7128,7 @@ msgstr ""
#: sd/uiconfig/simpress/ui/notebookbar_compact.ui:14759
msgctxt "notebookbar_impress_compact|ObjectMenuButton"
msgid "Object"
-msgstr ""
+msgstr "كائن"
#. FSjqt
#: sd/uiconfig/simpress/ui/notebookbar_compact.ui:14811
@@ -7743,10 +7731,9 @@ msgstr "المبدئيّ"
#. 7YLfF
#: sd/uiconfig/simpress/ui/notebookbar_groups.ui:265
-#, fuzzy
msgctxt "notebookbar_groups|shapestylenofill"
msgid "No Fill"
-msgstr "بدون تعبئة"
+msgstr "بِلا تعبئة"
#. ZvUBh
#: sd/uiconfig/simpress/ui/notebookbar_groups.ui:273
@@ -7826,7 +7813,7 @@ msgstr "مخطط"
#: sd/uiconfig/simpress/ui/notebookbar_groups.ui:1318
msgctxt "notebookbar_groups|animationb"
msgid "Animation"
-msgstr "الحركة"
+msgstr "متحرك"
#. Dxvi5
#: sd/uiconfig/simpress/ui/notebookbar_groups.ui:1336
@@ -7893,7 +7880,7 @@ msgstr "صورة"
#: sd/uiconfig/simpress/ui/notebookbar_groups.ui:1826
msgctxt "notebookbar_groups|wrapoff"
msgid "None"
-msgstr "بدون"
+msgstr "بِلا"
#. MCMXX
#: sd/uiconfig/simpress/ui/notebookbar_groups.ui:1835
@@ -8911,10 +8898,9 @@ msgstr ""
#. vuFBo
#: sd/uiconfig/simpress/ui/publishingdialog.ui:548
-#, fuzzy
msgctxt "publishingdialog|chgAutoRadiobutton"
msgid "_Automatic"
-msgstr "آ_ليّ"
+msgstr "_تلقائي"
#. 3Wi7b
#: sd/uiconfig/simpress/ui/publishingdialog.ui:557
@@ -8996,10 +8982,9 @@ msgstr ""
#. CgTG4
#: sd/uiconfig/simpress/ui/publishingdialog.ui:840
-#, fuzzy
msgctxt "publishingdialog|kioskRadiobutton"
msgid "_Automatic"
-msgstr "آ_ليّ"
+msgstr "_تلقائي"
#. 3A5Bq
#: sd/uiconfig/simpress/ui/publishingdialog.ui:849
@@ -9383,21 +9368,18 @@ msgstr "عكس اتجاه عقارب الساعة"
#. q5TTG
#: sd/uiconfig/simpress/ui/scalemenu.ui:12
-#, fuzzy
msgctxt "scalemenu|25"
msgid "Tiny"
-msgstr "دقيق"
+msgstr "بالغ الصغر"
#. yDGRR
#: sd/uiconfig/simpress/ui/scalemenu.ui:20
-#, fuzzy
msgctxt "scalemenu|50"
msgid "Smaller"
msgstr "أصغر"
#. V5AAC
#: sd/uiconfig/simpress/ui/scalemenu.ui:28
-#, fuzzy
msgctxt "scalemenu|150"
msgid "Larger"
msgstr "أكبر"
@@ -9492,7 +9474,7 @@ msgstr ""
#: sd/uiconfig/simpress/ui/sidebarslidebackground.ui:38
msgctxt "sidebarslidebackground|label2"
msgid "_Format:"
-msgstr "التن_سيق:"
+msgstr "النسَ_ق:"
#. 497k8
#: sd/uiconfig/simpress/ui/sidebarslidebackground.ui:52
@@ -9806,7 +9788,7 @@ msgstr ""
#: sd/uiconfig/simpress/ui/slidetransitionspanel.ui:275
msgctxt "slidetransitionspanel|rb_auto_after"
msgid "After:"
-msgstr ""
+msgstr "بعد:"
#. rJJQy
#: sd/uiconfig/simpress/ui/slidetransitionspanel.ui:287
@@ -9860,7 +9842,7 @@ msgstr "شغّل"
#: sd/uiconfig/simpress/ui/slidetransitionspanel.ui:416
msgctxt "slidetransitionspanel|play|tooltip_text"
msgid "Preview Effect"
-msgstr ""
+msgstr "عاين التأثير"
#. HddiF
#: sd/uiconfig/simpress/ui/slidetransitionspanel.ui:423
diff --git a/source/ar/sfx2/messages.po b/source/ar/sfx2/messages.po
index c7b42f0010f..bdc65ed5019 100644
--- a/source/ar/sfx2/messages.po
+++ b/source/ar/sfx2/messages.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2022-01-10 12:21+0100\n"
-"PO-Revision-Date: 2022-02-26 21:39+0000\n"
+"PO-Revision-Date: 2022-03-07 07:14+0000\n"
"Last-Translator: Riyadh Talal <riyadhtalal@gmail.com>\n"
"Language-Team: Arabic <https://translations.documentfoundation.org/projects/libo_ui-7-3/sfx2messages/ar/>\n"
"Language: ar\n"
@@ -403,7 +403,7 @@ msgstr "أظهر لوحة الملاحة"
#: include/sfx2/strings.hrc:84
msgctxt "STR_HELP_BUTTON_INDEX_OFF"
msgid "Hide Navigation Pane"
-msgstr "أخفِ قسم الملاحة"
+msgstr "أخفِ لوحة الملاحة"
#. g8Vns
#: include/sfx2/strings.hrc:85
@@ -613,7 +613,7 @@ msgstr "التنسيق"
#: include/sfx2/strings.hrc:119
msgctxt "STR_GID_TEMPLATE"
msgid "Templates"
-msgstr "القوالب"
+msgstr "قوالب"
#. JAdCZ
#: include/sfx2/strings.hrc:120
@@ -871,7 +871,7 @@ msgstr "مستند"
#: include/sfx2/strings.hrc:158
msgctxt "STR_NONE"
msgid "- None -"
-msgstr "- بدون -"
+msgstr "- بِلا -"
#. XBXvE
#: include/sfx2/strings.hrc:159
@@ -946,7 +946,7 @@ msgstr "إصدار ملف الصورة هذا غير مدعوم"
#: include/sfx2/strings.hrc:170
msgctxt "RID_SVXSTR_GRFILTER_FILTERERROR"
msgid "Image filter not found"
-msgstr "تعذّر العثور على مرشّح الصورة"
+msgstr "لم يُعثر على مرشّح الصورة"
#. huEFV
#: include/sfx2/strings.hrc:171
@@ -1036,7 +1036,7 @@ msgstr "مرحبًا بك في %PRODUCTNAME."
#: include/sfx2/strings.hrc:185
msgctxt "STR_WELCOME_LINE2"
msgid "Drop a document here or open an app to create one."
-msgstr "أسقط مستنداً هنا أو افتح تطبيقًا لإنشاء مستند."
+msgstr "ألقِ مستنداً هنا أو افتح تطبيقًا لإنشاء مستند."
#. oTVdA
#. Translators: Target types in Auto-redaction dialog
@@ -1087,13 +1087,13 @@ msgstr "الوِجهة"
#: include/sfx2/strings.hrc:199
msgctxt "STR_REDACTION_LOAD_TARGETS"
msgid "Load Targets"
-msgstr "تحميل الوجهات"
+msgstr "حمّل الأهداف"
#. HgrwX
#: include/sfx2/strings.hrc:200
msgctxt "STR_REDACTION_SAVE_TARGETS"
msgid "Save Targets"
-msgstr "حفظ الوجهات"
+msgstr "احفظ الأهداف"
#. MYMTF
#: include/sfx2/strings.hrc:201
@@ -1105,7 +1105,7 @@ msgstr "كل الحقول مطلوبة"
#: include/sfx2/strings.hrc:202
msgctxt "STR_REDACTION_TARGET_NAME_CLASH"
msgid "There is already a target with this name"
-msgstr "توجد مسبقاً وِجهة بهذا الإسم"
+msgstr "يوجد مسبقاً هدف بهذا الإسم"
#. s248s
#: include/sfx2/strings.hrc:203
@@ -1129,13 +1129,13 @@ msgstr "مجموعة وجهة (*.json)"
#: include/sfx2/strings.hrc:206
msgctxt "STR_REDACTION_EDIT_TARGET"
msgid "Edit Target"
-msgstr "حرّر الوجهة"
+msgstr "حرّر الهدف"
#. ACY9D
#: include/sfx2/strings.hrc:207
msgctxt "STR_REDACTION_TARGET_ADD_ERROR"
msgid "An error occurred while adding new target. Please report this incident."
-msgstr "حصل خطأ أثناء إضافة وجهة جديدة. رجاءا أبلغ عن هذه الحادثة."
+msgstr "حصل خطأ أثناء إضافة هدف جديد. رجاءا أبلغ عن هذه الحادثة."
#. 6Jog7
#: include/sfx2/strings.hrc:208
@@ -1662,7 +1662,7 @@ msgstr ""
#: include/sfx2/strings.hrc:298
msgctxt "STR_TEMPLATE_NAME1"
msgid "Grey Elegant"
-msgstr ""
+msgstr "أناقة رمادية"
#. FkuLG
#: include/sfx2/strings.hrc:299
@@ -1716,7 +1716,7 @@ msgstr "طير الغابة"
#: include/sfx2/strings.hrc:307
msgctxt "STR_TEMPLATE_NAME10"
msgid "Freshes"
-msgstr ""
+msgstr "نَضِرة"
#. C5N9D
#: include/sfx2/strings.hrc:308
@@ -1734,7 +1734,7 @@ msgstr "أضواء"
#: include/sfx2/strings.hrc:310
msgctxt "STR_TEMPLATE_NAME13"
msgid "Growing Liberty"
-msgstr ""
+msgstr "تحرر متنامٍ"
#. xo2gC
#: include/sfx2/strings.hrc:311
@@ -1825,13 +1825,13 @@ msgstr "عصري"
#: include/sfx2/strings.hrc:326
msgctxt "STR_TEMPLATE_NAME28"
msgid "Modern business letter sans-serif"
-msgstr ""
+msgstr "خطاب عمل عصري بحروف غير مذيّلة"
#. 95GeB
#: include/sfx2/strings.hrc:327
msgctxt "STR_TEMPLATE_NAME29"
msgid "Modern business letter serif"
-msgstr ""
+msgstr "خطاب عمل عصري بحروف مذيّلة"
#. XdU49
#: include/sfx2/strings.hrc:328
@@ -1987,7 +1987,7 @@ msgstr ""
#: include/sfx2/strings.hrc:359
msgctxt "STR_WINDOW_TITLE_RENAME_NEW_CATEGORY"
msgid "New Category"
-msgstr ""
+msgstr "فئة جديدة"
#. wH3TZ
msgctxt "stock"
@@ -2244,10 +2244,9 @@ msgstr "الكاتب"
#. xxHtR
#: sfx2/inc/dinfdlg.hrc:56
-#, fuzzy
msgctxt "SFX_CB_PROPERTY_STRINGARRAY"
msgid "URL"
-msgstr "عنوان URL"
+msgstr "رابط"
#. CxTQY
#: sfx2/inc/dinfdlg.hrc:71
@@ -2283,10 +2282,9 @@ msgstr "رقم"
#. CDgvL
#: sfx2/inc/dinfdlg.hrc:76
-#, fuzzy
msgctxt "SFX_CB_PROPERTY_STRINGARRAY"
msgid "Yes or no"
-msgstr "نعم أم لا"
+msgstr "نعم أو لا"
#. AxhLy
#: sfx2/inc/doctempl.hrc:27
@@ -2364,61 +2362,61 @@ msgstr "اللصائق"
#: sfx2/source/devtools/DevToolsStrings.hrc:15
msgctxt "STR_TEXT_PORTION"
msgid "Text Portion %1"
-msgstr ""
+msgstr "جزء النص %1"
#. 5ZXbE
#: sfx2/source/devtools/DevToolsStrings.hrc:16
msgctxt "STR_PARAGRAPH"
msgid "Paragraph %1"
-msgstr ""
+msgstr "فقرة %1"
#. DJi4i
#: sfx2/source/devtools/DevToolsStrings.hrc:17
msgctxt "STR_SHAPE"
msgid "Shape %1"
-msgstr ""
+msgstr "شكل %1"
#. Ucjjh
#: sfx2/source/devtools/DevToolsStrings.hrc:18
msgctxt "STR_PAGE"
msgid "Page %1"
-msgstr ""
+msgstr "صفحة %1"
#. j9DL6
#: sfx2/source/devtools/DevToolsStrings.hrc:19
msgctxt "STR_SLIDE"
msgid "Slide %1"
-msgstr ""
+msgstr "شريحة %1"
#. YQqL8
#: sfx2/source/devtools/DevToolsStrings.hrc:20
msgctxt "STR_MASTER_SLIDE"
msgid "Master Slide %1"
-msgstr ""
+msgstr "شريحة رئيسة %1"
#. CEfNy
#: sfx2/source/devtools/DevToolsStrings.hrc:21
msgctxt "STR_SHEET"
msgid "Sheet %1"
-msgstr ""
+msgstr "ورقة %1"
#. BaABx
#: sfx2/source/devtools/DevToolsStrings.hrc:23
msgctxt "STR_SHAPES_NODE"
msgid "Shapes"
-msgstr ""
+msgstr "أشكال"
#. n4VWE
#: sfx2/source/devtools/DevToolsStrings.hrc:24
msgctxt "STR_CHARTS_ENTRY"
msgid "Charts"
-msgstr ""
+msgstr "رسوم بيانية"
#. 5GWcX
#: sfx2/source/devtools/DevToolsStrings.hrc:25
msgctxt "STR_PIVOT_TABLES_ENTRY"
msgid "Pivot Tables"
-msgstr ""
+msgstr "جداول محورية"
#. BBLBQ
#: sfx2/source/devtools/DevToolsStrings.hrc:26
@@ -2430,7 +2428,7 @@ msgstr "مستند"
#: sfx2/source/devtools/DevToolsStrings.hrc:27
msgctxt "STR_SHEETS_ENTRY"
msgid "Sheets"
-msgstr ""
+msgstr "أوراق"
#. RLwRi
#: sfx2/source/devtools/DevToolsStrings.hrc:28
@@ -2448,19 +2446,19 @@ msgstr "الشرائح"
#: sfx2/source/devtools/DevToolsStrings.hrc:30
msgctxt "STR_MASTER_SLIDES_ENTRY"
msgid "Master Slides"
-msgstr ""
+msgstr "شرائح رئيسة"
#. LRq2A
#: sfx2/source/devtools/DevToolsStrings.hrc:31
msgctxt "STR_PAGES_ENTRY"
msgid "Pages"
-msgstr ""
+msgstr "صفحات"
#. 946kV
#: sfx2/source/devtools/DevToolsStrings.hrc:32
msgctxt "STR_PARAGRAPHS_ENTRY"
msgid "Paragraphs"
-msgstr ""
+msgstr "فقرات"
#. JG2qz
#: sfx2/source/devtools/DevToolsStrings.hrc:33
@@ -2838,13 +2836,13 @@ msgstr "وج_هات التنقيح"
#: sfx2/uiconfig/ui/autoredactdialog.ui:222
msgctxt "autoredactdialog|btnLoadTargets"
msgid "Load Targets"
-msgstr "حمّل الوجهات"
+msgstr "حمّل الأهداف"
#. tpbYA
#: sfx2/uiconfig/ui/autoredactdialog.ui:235
msgctxt "autoredactdialog|btnSaveTargets"
msgid "Save Targets"
-msgstr "احفظ الوجهات"
+msgstr "حمّل الأهداف"
#. TQg85
#: sfx2/uiconfig/ui/autoredactdialog.ui:261
@@ -2856,7 +2854,7 @@ msgstr "أضف وجهة"
#: sfx2/uiconfig/ui/autoredactdialog.ui:274
msgctxt "autoredactdialog|edit"
msgid "Edit Target"
-msgstr "حرّر الوجهة"
+msgstr "حرّر الهدف"
#. knEqb
#: sfx2/uiconfig/ui/autoredactdialog.ui:287
@@ -3075,7 +3073,7 @@ msgstr "أدخِل تعليقات لتساعد في تعريف المستند."
#: sfx2/uiconfig/ui/descriptioninfopage.ui:150
msgctxt "descriptioninfopage|extended_tip|DescriptionInfoPage"
msgid "Contains descriptive information about the document."
-msgstr ""
+msgstr "يحوي معلومات وصفية عن المستند."
#. tC2rt
#: sfx2/uiconfig/ui/developmenttool.ui:116
@@ -3093,61 +3091,61 @@ msgstr "التحديد الحالي"
#: sfx2/uiconfig/ui/developmenttool.ui:128
msgctxt "developmenttool|dom_refresh_button-tooltip"
msgid "Refresh Document Model Tree View"
-msgstr ""
+msgstr "أعِد تحميل المعاينة الشجرية لنموذج المستند."
#. FD2yt
#: sfx2/uiconfig/ui/developmenttool.ui:129
msgctxt "developmenttool|dom_refresh_button"
msgid "Refresh"
-msgstr ""
+msgstr "أعِد التحميل"
#. qVgcX
#: sfx2/uiconfig/ui/developmenttool.ui:175
msgctxt "developmenttool|object"
msgid "Object"
-msgstr ""
+msgstr "كائن"
#. x6GLB
#: sfx2/uiconfig/ui/developmenttool.ui:223
msgctxt "developmenttool|tooltip-back"
msgid "Back"
-msgstr ""
+msgstr "رجوع"
#. SinPk
#: sfx2/uiconfig/ui/developmenttool.ui:224
msgctxt "developmenttool|back"
msgid "Back"
-msgstr ""
+msgstr "رجوع"
#. 4CBb3
#: sfx2/uiconfig/ui/developmenttool.ui:236
msgctxt "developmenttool|tooltip-inspect"
msgid "Inspect"
-msgstr ""
+msgstr "افحص"
#. vCciB
#: sfx2/uiconfig/ui/developmenttool.ui:237
msgctxt "developmenttool|inspect"
msgid "Inspect"
-msgstr ""
+msgstr "افحص"
#. nFMXe
#: sfx2/uiconfig/ui/developmenttool.ui:249
msgctxt "developmenttool|tooltip-refresh"
msgid "Refresh"
-msgstr ""
+msgstr "أعِد التحميل"
#. CFuvW
#: sfx2/uiconfig/ui/developmenttool.ui:250
msgctxt "developmenttool|refresh"
msgid "Refresh"
-msgstr ""
+msgstr "أعِد التحميل"
#. 6gFmn
#: sfx2/uiconfig/ui/developmenttool.ui:273
msgctxt "developmenttool|classname"
msgid "Class name:"
-msgstr ""
+msgstr "اسم الفئة:"
#. a9j7f
#: sfx2/uiconfig/ui/developmenttool.ui:338
@@ -3161,13 +3159,13 @@ msgstr "الاسم"
#: sfx2/uiconfig/ui/developmenttool.ui:358
msgctxt "developmenttool|interfaces"
msgid "Interfaces"
-msgstr ""
+msgstr "الواجهات"
#. iCdWe
#: sfx2/uiconfig/ui/developmenttool.ui:410
msgctxt "developmenttool|services"
msgid "Services"
-msgstr ""
+msgstr "الخدمات"
#. H7pYE
#: sfx2/uiconfig/ui/developmenttool.ui:460
@@ -3185,7 +3183,7 @@ msgstr "النوع"
#: sfx2/uiconfig/ui/developmenttool.ui:488
msgctxt "developmenttool|info"
msgid "Info"
-msgstr ""
+msgstr "معلومات"
#. AUktw
#: sfx2/uiconfig/ui/developmenttool.ui:539
@@ -3197,37 +3195,37 @@ msgstr "الخصائص"
#: sfx2/uiconfig/ui/developmenttool.ui:569
msgctxt "developmenttool|method"
msgid "Method"
-msgstr ""
+msgstr "الطريقة"
#. EnGfg
#: sfx2/uiconfig/ui/developmenttool.ui:584
msgctxt "developmenttool|returntype"
msgid "Return Type"
-msgstr ""
+msgstr "نوع الإرجاع"
#. AKnSa
#: sfx2/uiconfig/ui/developmenttool.ui:598
msgctxt "developmenttool|parameters"
msgid "Parameters"
-msgstr ""
+msgstr "المتغيرات الوسيطة"
#. tmttq
#: sfx2/uiconfig/ui/developmenttool.ui:612
msgctxt "developmenttool|implementation_class"
msgid "Implementation Class"
-msgstr ""
+msgstr "فئة التنفيذ"
#. Q2CBK
#: sfx2/uiconfig/ui/developmenttool.ui:634
msgctxt "developmenttool|methods"
msgid "Methods"
-msgstr ""
+msgstr "الطُرُق"
#. 68CBk
#: sfx2/uiconfig/ui/devtoolsmenu.ui:12
msgctxt "devtoolsmenu|inspect"
msgid "Inspect"
-msgstr ""
+msgstr "افحص"
#. zjFgn
#: sfx2/uiconfig/ui/documentfontspage.ui:28
@@ -3239,37 +3237,37 @@ msgstr "_ضمّن الخطوط في المستند"
#: sfx2/uiconfig/ui/documentfontspage.ui:36
msgctxt "documentfontspage|extended_tip|embedFonts"
msgid "Mark this box to embed document fonts into the document file, for portability between different computer systems."
-msgstr ""
+msgstr "أشّر هذا المربع لتضمّن خطوط المستند في ملف المستند، ليمكن مناقلتها بين أنظمة حاسوب مختلفة."
#. 6rfon
#: sfx2/uiconfig/ui/documentfontspage.ui:48
msgctxt "documentfontspage|embedUsedFonts"
msgid "_Only embed fonts that are used in documents"
-msgstr ""
+msgstr "ضمّن فق_ط الخطوط المستخدمة في المستند."
#. V8E5f
#: sfx2/uiconfig/ui/documentfontspage.ui:67
msgctxt "documentfontspage|fontEmbeddingLabel"
msgid "Font Embedding"
-msgstr ""
+msgstr "تضمين الخط"
#. Gip6V
#: sfx2/uiconfig/ui/documentfontspage.ui:95
msgctxt "documentfontspage|embedLatinScriptFonts"
msgid "_Latin fonts"
-msgstr ""
+msgstr "خطوط _لاتينية"
#. nFM92
#: sfx2/uiconfig/ui/documentfontspage.ui:110
msgctxt "documentfontspage|embedAsianScriptFonts"
msgid "_Asian fonts"
-msgstr ""
+msgstr "خطوط آ_سيوية"
#. nSg9b
#: sfx2/uiconfig/ui/documentfontspage.ui:125
msgctxt "documentfontspage|embedComplexScriptFonts"
msgid "_Complex fonts"
-msgstr ""
+msgstr "خطوط م_ركّبة"
#. EFytK
#: sfx2/uiconfig/ui/documentfontspage.ui:144
@@ -3281,7 +3279,7 @@ msgstr ""
#: sfx2/uiconfig/ui/documentfontspage.ui:158
msgctxt "documentfontspage|extended_tip|DocumentFontsPage"
msgid "Embed document fonts in the current file."
-msgstr ""
+msgstr "ضمّن خطوط المستند في الملف الحالي."
#. CCxGn
#: sfx2/uiconfig/ui/documentinfopage.ui:19
@@ -3797,7 +3795,7 @@ msgstr "المل_فّ:"
#: sfx2/uiconfig/ui/linkeditdialog.ui:130
msgctxt "linkeditdialog|label4"
msgid "_Category:"
-msgstr "ال_فئة:"
+msgstr "الصن_ف:"
#. hNqRS
#: sfx2/uiconfig/ui/linkeditdialog.ui:148
@@ -3815,7 +3813,7 @@ msgstr ""
#: sfx2/uiconfig/ui/linkeditdialog.ui:184
msgctxt "linkeditdialog|extended_tip|category"
msgid "Lists the section or object that the link refers to in the source file. If you want, you can enter a new section or object here."
-msgstr ""
+msgstr "يسرد القسم أو الكائن الذي تريد أن يشير إليه الرابط في ملف المصدر. إذا رغبت، يمكنك أن تُدخِل قسمًا أو كائنًا جديداً هنا."
#. hiapi
#: sfx2/uiconfig/ui/linkeditdialog.ui:199
@@ -3869,7 +3867,7 @@ msgstr "يسرد القوالب المتاحة للصنف المحدد."
#: sfx2/uiconfig/ui/loadtemplatedialog.ui:241
msgctxt "loadtemplatedialog|label2"
msgid "Templates"
-msgstr "القوالب"
+msgstr "قوالب"
#. LAAM3
#: sfx2/uiconfig/ui/loadtemplatedialog.ui:245
@@ -4013,7 +4011,7 @@ msgstr "ورّث من:"
#: sfx2/uiconfig/ui/managestylepage.ui:75
msgctxt "managestylepage|categoryft"
msgid "_Category:"
-msgstr "ال_فئة:"
+msgstr "الصن_ف:"
#. MMhJQ
#: sfx2/uiconfig/ui/managestylepage.ui:99
@@ -4331,7 +4329,7 @@ msgstr ""
#: sfx2/uiconfig/ui/optprintpage.ui:542
msgctxt "optprintpage|reducetransnone"
msgid "_No transparency"
-msgstr "لا _شفافية"
+msgstr "_بِلا شفافية"
#. ZuLVY
#: sfx2/uiconfig/ui/optprintpage.ui:551
@@ -4553,19 +4551,19 @@ msgstr "أدخل إسمًا للقالب."
#: sfx2/uiconfig/ui/saveastemplatedlg.ui:154
msgctxt "saveastemplatedlg|select_label"
msgid "Select Template _Category:"
-msgstr "حدد ف_ئة القالب:"
+msgstr "حدد ص_نف القالب:"
#. 4ANkg
#: sfx2/uiconfig/ui/saveastemplatedlg.ui:155
msgctxt "saveastemplatedlg|select_label"
msgid "Save template in selected category."
-msgstr "احفظ القالب في الفئة المحددة."
+msgstr "احفظ القالب في الصنف المحدد."
#. JBPKb
#: sfx2/uiconfig/ui/saveastemplatedlg.ui:203
msgctxt "saveastemplatedlg|extended_tip|categorylb"
msgid "Select a category in which to save the new template."
-msgstr "حدد فئة لتحفظ فيها القالب الجديد."
+msgstr "حدد صنفًا لتحفظ فيه القالب الجديد."
#. wpZGc
#: sfx2/uiconfig/ui/saveastemplatedlg.ui:223
@@ -4895,25 +4893,25 @@ msgstr "حدد صنفًا"
#: sfx2/uiconfig/ui/templatecategorydlg.ui:108
msgctxt "templatecategorydlg|select_label"
msgid "Select from Existing Category"
-msgstr "اختر من فئة موجودة"
+msgstr "حدد من صنف موجود"
#. 7eShP
#: sfx2/uiconfig/ui/templatecategorydlg.ui:178
msgctxt "templatecategorydlg|create_label"
msgid "or Create a New Category"
-msgstr "أو أنشئ فئة جديدة"
+msgstr "أو أنشئ صنفًا جديداً"
#. eUWTy
#: sfx2/uiconfig/ui/templatedlg.ui:46
msgctxt "templatedlg|TemplateDialog"
msgid "Templates"
-msgstr "القوالب"
+msgstr "قوالب"
#. rhuYP
#: sfx2/uiconfig/ui/templatedlg.ui:77
msgctxt "templatedlg|hidedialogcb"
msgid "Show this dialog at startup"
-msgstr "أظهر هذا الحواري عند البدء"
+msgstr "أظهر هذا الحوار عند البدء"
#. 32zsB
#: sfx2/uiconfig/ui/templatedlg.ui:144
@@ -4931,7 +4929,7 @@ msgstr "ابحث..."
#: sfx2/uiconfig/ui/templatedlg.ui:167
msgctxt "templatedlg|action_menu|label"
msgid "_Manage"
-msgstr "إ_دارة"
+msgstr "أ_دِر"
#. LUs2m
#: sfx2/uiconfig/ui/templatedlg.ui:181
@@ -4979,7 +4977,7 @@ msgstr "الرسومات"
#: sfx2/uiconfig/ui/templatedlg.ui:228
msgctxt "templatedlg|filter_folder|tooltip_text"
msgid "Filter by Category"
-msgstr "رشّح بالفئة"
+msgstr "رشّح حسب الصنف"
#. 93CGw
#: sfx2/uiconfig/ui/templatedlg.ui:230
diff --git a/source/ar/shell/source/win32/shlxthandler/res.po b/source/ar/shell/source/win32/shlxthandler/res.po
index 68c3a64e99d..302208bbec6 100644
--- a/source/ar/shell/source/win32/shlxthandler/res.po
+++ b/source/ar/shell/source/win32/shlxthandler/res.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2019-07-11 18:38+0200\n"
-"PO-Revision-Date: 2022-02-24 15:39+0000\n"
+"PO-Revision-Date: 2022-03-01 21:39+0000\n"
"Last-Translator: Riyadh Talal <riyadhtalal@gmail.com>\n"
"Language-Team: Arabic <https://translations.documentfoundation.org/projects/libo_ui-7-3/shellsourcewin32shlxthandlerres/ar/>\n"
"Language: ar\n"
@@ -113,7 +113,7 @@ msgctxt ""
"%PAGES%\n"
"LngText.text"
msgid "Pages"
-msgstr "الصفحات"
+msgstr "صفحات"
#. vhAWA
#: shlxthdl.ulf
diff --git a/source/ar/starmath/messages.po b/source/ar/starmath/messages.po
index 099c840dffb..62f006f3a92 100644
--- a/source/ar/starmath/messages.po
+++ b/source/ar/starmath/messages.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-09-10 23:12+0200\n"
-"PO-Revision-Date: 2022-02-26 21:39+0000\n"
+"PO-Revision-Date: 2022-03-08 13:51+0000\n"
"Last-Translator: Riyadh Talal <riyadhtalal@gmail.com>\n"
"Language-Team: Arabic <https://translations.documentfoundation.org/projects/libo_ui-7-3/starmathmessages/ar/>\n"
"Language: ar\n"
@@ -2608,7 +2608,7 @@ msgstr ""
#: starmath/inc/strings.hrc:384
msgctxt "RID_ERR_FONTEXPECTED"
msgid "'fixed', 'sans', or 'serif' expected"
-msgstr ""
+msgstr "المتوقع ’ثابت‘ أو ’غير مذيّل‘ أو ’مذيّل‘"
#. jGZdh
#: starmath/inc/strings.hrc:385
@@ -2740,13 +2740,13 @@ msgstr ""
#: starmath/uiconfig/smath/ui/alignmentdialog.ui:134
msgctxt "alignmentdialog|center"
msgid "_Centered"
-msgstr "_توسيط"
+msgstr "_موسَّط"
#. Cppmw
#: starmath/uiconfig/smath/ui/alignmentdialog.ui:143
msgctxt "alignmentdialog|extended_tip|center"
msgid "Aligns the elements of a formula to the center."
-msgstr ""
+msgstr "يحاذي عناصر الصيغة إلى الوسط."
#. 5TgYZ
#: starmath/uiconfig/smath/ui/alignmentdialog.ui:155
@@ -3142,13 +3142,13 @@ msgstr "_ثابت العرض:"
#: starmath/uiconfig/smath/ui/fonttypedialog.ui:429
msgctxt "fonttypedialog|extended_tip|serifCB"
msgid "You can specify the font to be used as serif font."
-msgstr ""
+msgstr "يمكنك تحديد خط ليُستخدَم كخط بحروف مذيَلة."
#. mD8Qp
#: starmath/uiconfig/smath/ui/fonttypedialog.ui:445
msgctxt "fonttypedialog|extended_tip|sansCB"
msgid "You can specify the font to be used for sans serif font."
-msgstr ""
+msgstr "يمكنك تحديد خط ليُستخدَم كخط بحروف غير مذيَلة."
#. BUA9M
#: starmath/uiconfig/smath/ui/fonttypedialog.ui:461
@@ -3491,7 +3491,7 @@ msgstr "ال_مبدئيّ"
#: starmath/uiconfig/smath/ui/spacingdialog.ui:159
msgctxt "spacingdialog|category"
msgid "_Category"
-msgstr "ال_فئة"
+msgstr "الصن_ف"
#. 8prDU
#: starmath/uiconfig/smath/ui/spacingdialog.ui:375
diff --git a/source/ar/svtools/messages.po b/source/ar/svtools/messages.po
index f1969a44cef..e0b2fa69931 100644
--- a/source/ar/svtools/messages.po
+++ b/source/ar/svtools/messages.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-20 13:21+0100\n"
-"PO-Revision-Date: 2022-02-28 17:26+0000\n"
+"PO-Revision-Date: 2022-03-04 05:39+0000\n"
"Last-Translator: Riyadh Talal <riyadhtalal@gmail.com>\n"
"Language-Team: Arabic <https://translations.documentfoundation.org/projects/libo_ui-7-3/svtoolsmessages/ar/>\n"
"Language: ar\n"
@@ -1194,7 +1194,7 @@ msgstr "البريد الالكتروني"
#: include/svtools/strings.hrc:246
msgctxt "STR_FIELD_URL"
msgid "URL"
-msgstr "عنوان URL"
+msgstr "رابط"
#. CGutA
#: include/svtools/strings.hrc:247
@@ -1452,13 +1452,13 @@ msgstr "قالب StarOffice 3.0 - 5.0"
#: include/svtools/strings.hrc:292
msgctxt "STR_DESCRIPTION_EXCEL_DOC"
msgid "MS Excel document"
-msgstr "مستند ميكروسوفت إكسل"
+msgstr "مستند ميكروسوفت أكسل"
#. FWiWT
#: include/svtools/strings.hrc:293
msgctxt "STR_DESCRIPTION_EXCEL_TEMPLATE_DOC"
msgid "MS Excel template"
-msgstr "قالب ميكروسوفت إكسل"
+msgstr "قالب ميكروسوفت أكسل"
#. WBsxH
#: include/svtools/strings.hrc:294
@@ -1805,13 +1805,13 @@ msgstr "_نعم"
#: svtools/inc/borderline.hrc:17
msgctxt "RID_SVXSTR_BORDERLINE"
msgid "None"
-msgstr "بدون"
+msgstr "بِلا"
#. Xx4Fb
#: svtools/inc/borderline.hrc:18
msgctxt "RID_SVXSTR_BORDERLINE"
msgid "Solid"
-msgstr ""
+msgstr "صلب"
#. Paqxg
#: svtools/inc/borderline.hrc:19
@@ -2527,7 +2527,7 @@ msgstr ""
#: svtools/inc/errtxt.hrc:133
msgctxt "RID_ERRHDL"
msgid "File format error found at $(ARG1)(row,col)."
-msgstr ""
+msgstr "عُثر على خطأ في نسَق الملف في $(ARG1)(صف،عمود)."
#. Di7GD
#: svtools/inc/errtxt.hrc:134
@@ -2569,7 +2569,7 @@ msgstr "$(ERR) أثناء تنشيط الكائن"
#: svtools/inc/langtab.hrc:28
msgctxt "STR_ARR_SVT_LANGUAGE_TABLE"
msgid "[None]"
-msgstr "[بدون]"
+msgstr "[بِلا]"
#. aUWzb
#: svtools/inc/langtab.hrc:29
@@ -5113,7 +5113,7 @@ msgstr "اليوم"
#: svtools/uiconfig/ui/calendar.ui:58
msgctxt "calendar|STR_SVT_CALENDAR_NONE"
msgid "None"
-msgstr "بدون"
+msgstr "بِلا"
#. vrBni
#: svtools/uiconfig/ui/fileviewmenu.ui:12
@@ -5317,7 +5317,7 @@ msgstr ""
#: svtools/uiconfig/ui/graphicexport.ui:567
msgctxt "graphicexport|label12"
msgid "Mode"
-msgstr "وضع"
+msgstr "الوضع"
#. Nhj88
#: svtools/uiconfig/ui/graphicexport.ui:587
@@ -5335,7 +5335,7 @@ msgstr ""
#: svtools/uiconfig/ui/graphicexport.ui:607
msgctxt "graphicexport|labe"
msgid "Drawing Objects"
-msgstr "كائنات رسومية"
+msgstr "كائنات رسم"
#. KMCxb
#: svtools/uiconfig/ui/graphicexport.ui:634
@@ -5473,7 +5473,7 @@ msgstr ""
#: svtools/uiconfig/ui/graphicexport.ui:942
msgctxt "graphicexport|compressnone"
msgid "None"
-msgstr "بدون"
+msgstr "بِلا"
#. kW3QD
#: svtools/uiconfig/ui/graphicexport.ui:951
@@ -5509,7 +5509,7 @@ msgstr "يتطلّب %PRODUCTNAME إحدى بيئات جافا التّشغيل
#: svtools/uiconfig/ui/linewindow.ui:19
msgctxt "linewindow|none_line_button"
msgid "None"
-msgstr "بدون"
+msgstr "بِلا"
#. LwyoW
#: svtools/uiconfig/ui/placeedit.ui:18
@@ -5707,7 +5707,7 @@ msgstr "المدخلة: %s"
#: svtools/uiconfig/ui/querydeletedialog.ui:25
msgctxt "querydeletedialog|yes"
msgid "_Delete"
-msgstr "ا_حذف"
+msgstr "اح_ذف"
#. KSj3y
#: svtools/uiconfig/ui/querydeletedialog.ui:41
diff --git a/source/ar/svx/messages.po b/source/ar/svx/messages.po
index eb03c0578ce..290f9663f22 100644
--- a/source/ar/svx/messages.po
+++ b/source/ar/svx/messages.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-11-25 19:34+0100\n"
-"PO-Revision-Date: 2022-02-28 17:26+0000\n"
+"PO-Revision-Date: 2022-03-08 13:51+0000\n"
"Last-Translator: Riyadh Talal <riyadhtalal@gmail.com>\n"
"Language-Team: Arabic <https://translations.documentfoundation.org/projects/libo_ui-7-3/svxmessages/ar/>\n"
"Language: ar\n"
@@ -612,7 +612,7 @@ msgstr "كائن مدمج (OLE)"
#: include/svx/strings.hrc:122
msgctxt "STR_ObjNamePluralOLE2"
msgid "Embedded objects (OLE)"
-msgstr "كائنات مدمجة (OLE)"
+msgstr "كائنات مضمَّنة (OLE)"
#. mAAWu
#: include/svx/strings.hrc:123
@@ -6153,7 +6153,7 @@ msgstr "~4 إنش"
#: include/svx/strings.hrc:1104
msgctxt "RID_SVXSTR_NOFILL"
msgid "No Fill"
-msgstr "بلا تعبئة"
+msgstr "بِلا تعبئة"
#. TFBK3
#: include/svx/strings.hrc:1105
@@ -6203,7 +6203,7 @@ msgstr "حسب المؤلف"
#: include/svx/strings.hrc:1112
msgctxt "RID_SVXSTR_PAGES"
msgid "Pages"
-msgstr "الصفحات"
+msgstr "صفحات"
#. jfL9n
#: include/svx/strings.hrc:1113
@@ -12942,7 +12942,7 @@ msgstr "التاريخ"
#: svx/uiconfig/ui/acceptrejectchangesdialog.ui:291
msgctxt "acceptrejectchangesdialog|writerdesc"
msgid "Comment"
-msgstr "علّق"
+msgstr "تعليق"
#. Z9yjZ
#: svx/uiconfig/ui/acceptrejectchangesdialog.ui:300
@@ -14186,13 +14186,13 @@ msgstr "النوع:"
#: svx/uiconfig/ui/compressgraphicdialog.ui:572
msgctxt "compressgraphicdialog|label7"
msgid "Actual dimensions:"
-msgstr "القياسات الفعلية:"
+msgstr "الأبعاد الفعلية:"
#. BZCWQ
#: svx/uiconfig/ui/compressgraphicdialog.ui:604
msgctxt "compressgraphicdialog|label8"
msgid "Apparent dimensions:"
-msgstr "القياسات الظاهرية:"
+msgstr "الأبعاد الظاهرية:"
#. QzEYW
#: svx/uiconfig/ui/compressgraphicdialog.ui:635
@@ -14424,7 +14424,7 @@ msgstr ""
#: svx/uiconfig/ui/defaultshapespanel.ui:43
msgctxt "defaultshapespanel|label1"
msgid "Lines and Arrows"
-msgstr ""
+msgstr "خطوط و سهام"
#. xvX8C
#: svx/uiconfig/ui/defaultshapespanel.ui:75
@@ -15642,10 +15642,9 @@ msgstr ""
#. EeBXP
#: svx/uiconfig/ui/dockingcolorreplace.ui:446
-#, fuzzy
msgctxt "dockingcolorreplace|label1"
msgid "Colors"
-msgstr "ملوّن"
+msgstr "الألوان"
#. 7cuei
#: svx/uiconfig/ui/dockingcolorreplace.ui:467
@@ -17357,17 +17356,15 @@ msgstr "أدرِج ك_خلفية"
#. 5kjGH
#: svx/uiconfig/ui/gallerymenu2.ui:40
-#, fuzzy
msgctxt "gallerymenu2|preview"
msgid "_Preview"
-msgstr "معاينة"
+msgstr "معاي_نة"
#. AbxBp
#: svx/uiconfig/ui/gallerymenu2.ui:54
-#, fuzzy
msgctxt "gallerymenu2|title"
msgid "_Title"
-msgstr "عنوان"
+msgstr "ال_عنوان"
#. BJRWa
#: svx/uiconfig/ui/gallerymenu2.ui:68
@@ -17914,7 +17911,7 @@ msgstr "السّاب_قة"
#: svx/uiconfig/ui/namespacedialog.ui:209
msgctxt "namespacedialog|url"
msgid "URL"
-msgstr "الرابط"
+msgstr "رابط"
#. c6DzL
#: svx/uiconfig/ui/namespacedialog.ui:220
@@ -18579,7 +18576,7 @@ msgstr ""
#: svx/uiconfig/ui/redlinefilterpage.ui:106
msgctxt "redlinefilterpage|commentedit-atkobject"
msgid "Comment"
-msgstr "التعليق"
+msgstr "تعليق"
#. QXgua
#: svx/uiconfig/ui/redlinefilterpage.ui:107
@@ -19798,7 +19795,7 @@ msgstr "أدخل عرضًا للكائن المحدد."
#: svx/uiconfig/ui/sidebarpossize.ui:140
msgctxt "sidebarpossize|selectwidth"
msgid "Width"
-msgstr ""
+msgstr "العُرض"
#. BrACQ
#: svx/uiconfig/ui/sidebarpossize.ui:153
@@ -19816,14 +19813,13 @@ msgstr "أدخل ارتفاعًا للكائن المحدد."
#: svx/uiconfig/ui/sidebarpossize.ui:174
msgctxt "sidebarpossize|selectheight"
msgid "Height"
-msgstr ""
+msgstr "الارتفاع"
#. nLGDu
#: svx/uiconfig/ui/sidebarpossize.ui:185
-#, fuzzy
msgctxt "sidebarpossize|ratio"
msgid "_Keep ratio"
-msgstr "إب_قاء التناسب"
+msgstr "أب_قِ التناسب"
#. 2ka9i
#: svx/uiconfig/ui/sidebarpossize.ui:189
diff --git a/source/ar/sw/messages.po b/source/ar/sw/messages.po
index 9bf462665d4..c255a44e117 100644
--- a/source/ar/sw/messages.po
+++ b/source/ar/sw/messages.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2022-01-10 12:22+0100\n"
-"PO-Revision-Date: 2022-02-28 17:26+0000\n"
+"PO-Revision-Date: 2022-03-09 16:29+0000\n"
"Last-Translator: Riyadh Talal <riyadhtalal@gmail.com>\n"
"Language-Team: Arabic <https://translations.documentfoundation.org/projects/libo_ui-7-3/swmessages/ar/>\n"
"Language: ar\n"
@@ -487,7 +487,7 @@ msgstr "هاتف العمل"
#: sw/inc/dbui.hrc:59
msgctxt "SA_ADDRESS_HEADER"
msgid "Email Address"
-msgstr ""
+msgstr "عنوان البريد الالكتروني"
#. XdigY
#: sw/inc/dbui.hrc:60
@@ -518,19 +518,19 @@ msgstr "ليس هذا بملف WinWord6 صالح."
#: sw/inc/error.hrc:39
msgctxt "RID_SW_ERRHDL"
msgid "File format error found at $(ARG1)(row,col)."
-msgstr "اكُتشف خطأ في تنسيق الملف في $(ARG1)(صف،عمود)."
+msgstr "عُثر على خطأ في نسَق الملف في $(ARG1)(صف،عمود)."
#. FWd22
#: sw/inc/error.hrc:40
msgctxt "RID_SW_ERRHDL"
msgid "This is not a valid WinWord97 file."
-msgstr "ليس هذا بملف WinWord97 صالح."
+msgstr "ليس هذا بملف وندوز وورد97 صالح."
#. UyAsq
#: sw/inc/error.hrc:41 sw/inc/error.hrc:60
msgctxt "RID_SW_ERRHDL"
msgid "Format error discovered in the file in sub-document $(ARG1) at $(ARG2)(row,col)."
-msgstr "اكتُشف خطأ في تنسيق الملف الموجود بالمستند الفرعي $(ARG1) عند $(ARG2)(الصف،العمود)."
+msgstr "اكتُشف خطأ في نسَق الملف في المستند الفرعي $(ARG1) عند $(ARG2)(الصف،العمود)."
#. xsBuE
#. Export-Errors
@@ -2913,7 +2913,7 @@ msgstr "متابعة القائمة ٥"
#: sw/inc/strings.hrc:137
msgctxt "STR_POOLCOLL_HEADER"
msgid "Header and Footer"
-msgstr "الترويس والتذييل"
+msgstr "الرأس والتذييل"
#. qfrao
#: sw/inc/strings.hrc:138
@@ -2925,13 +2925,13 @@ msgstr "الرأس"
#: sw/inc/strings.hrc:139
msgctxt "STR_POOLCOLL_HEADERL"
msgid "Header Left"
-msgstr "الترويسة اليسرى"
+msgstr "يسار الرأس"
#. uEbyw
#: sw/inc/strings.hrc:140
msgctxt "STR_POOLCOLL_HEADERR"
msgid "Header Right"
-msgstr "الترويسة اليمنى"
+msgstr "يمين الرأس"
#. LVGLN
#: sw/inc/strings.hrc:141
@@ -3534,7 +3534,7 @@ msgstr "تعذّر إنشاء المستند."
#: sw/inc/strings.hrc:250
msgctxt "STR_DLLNOTFOUND"
msgid "Filter not found."
-msgstr "تعذر العثور على المُرشّح."
+msgstr "لم يُعثر على المُرشّح."
#. HhLap
#: sw/inc/strings.hrc:251
@@ -3582,7 +3582,7 @@ msgstr ""
#: sw/inc/strings.hrc:258
msgctxt "SW_STR_NONE"
msgid "[None]"
-msgstr "[بلا]"
+msgstr "[بِلا]"
#. C4tz3
#: sw/inc/strings.hrc:259
@@ -5243,7 +5243,7 @@ msgstr "أعِد تسمية طراز الصفحة: $1 $2 $3"
#: sw/inc/strings.hrc:540
msgctxt "STR_UNDO_HEADER_FOOTER"
msgid "Header/footer changed"
-msgstr "تغيّر الترويس/التذييل"
+msgstr "تغيّرَ الرأس/التذييل"
#. tGyeC
#: sw/inc/strings.hrc:541
@@ -5496,13 +5496,13 @@ msgstr "تحديث نمط الجدول: $1"
#: sw/inc/strings.hrc:582
msgctxt "STR_UNDO_TABLE_DELETE"
msgid "Delete table"
-msgstr "حذف الجدول"
+msgstr "احذف الجدول"
#. KSMpJ
#: sw/inc/strings.hrc:583
msgctxt "STR_UNDO_INSERT_FORM_FIELD"
msgid "Insert form field"
-msgstr ""
+msgstr "أدرِج من حقل"
#. 2zJmG
#: sw/inc/strings.hrc:584
@@ -5526,13 +5526,13 @@ msgstr "عرض المستند"
#: sw/inc/strings.hrc:588
msgctxt "STR_ACCESS_HEADER_NAME"
msgid "Header $(ARG1)"
-msgstr "الترويسة $(ARG1)"
+msgstr "الرأس $(ARG1)"
#. zKdDR
#: sw/inc/strings.hrc:589
msgctxt "STR_ACCESS_HEADER_DESC"
msgid "Header page $(ARG1)"
-msgstr "صفحة الترويسة $(ARG1)"
+msgstr "صفحة الرأس $(ARG1)"
#. NhFrV
#: sw/inc/strings.hrc:590
@@ -5694,7 +5694,7 @@ msgstr "إطار"
#: sw/inc/strings.hrc:619
msgctxt "STR_STYLE_FAMILY_PAGE"
msgid "Pages"
-msgstr "الصّفحات"
+msgstr "صفحات"
#. FFZEr
#: sw/inc/strings.hrc:620
@@ -5754,7 +5754,7 @@ msgstr "خل~فية الصفحة"
#: sw/inc/strings.hrc:630
msgctxt "STR_PRINTOPTUI_PICTURES"
msgid "~Images and other graphic objects"
-msgstr ""
+msgstr "~صور وكائنات رسومية أخرى"
#. L6GSj
#: sw/inc/strings.hrc:631
@@ -6699,7 +6699,7 @@ msgstr "السنة"
#: sw/inc/strings.hrc:796
msgctxt "STR_AUTH_FIELD_URL"
msgid "URL"
-msgstr "المسار"
+msgstr "رابط"
#. xFG3c
#: sw/inc/strings.hrc:797
@@ -6741,7 +6741,7 @@ msgstr "ISBN"
#: sw/inc/strings.hrc:803
msgctxt "STR_AUTH_FIELD_LOCAL_URL"
msgid "Local copy"
-msgstr ""
+msgstr "نسخة محلية"
#. eFnnx
#: sw/inc/strings.hrc:805
@@ -6795,7 +6795,7 @@ msgstr "هل تريد حذف النص التلقائي؟"
#: sw/inc/strings.hrc:815
msgctxt "STR_QUERY_DELETE_GROUP1"
msgid "Delete the category "
-msgstr "هل تريد حذف الفئة "
+msgstr "حذف الصنف "
#. qndNh
#: sw/inc/strings.hrc:816
@@ -7065,7 +7065,7 @@ msgstr "‏dBase‏ (*.dbf)"
#: sw/inc/strings.hrc:864
msgctxt "STR_FILTER_XLS"
msgid "Microsoft Excel (*.xls;*.xlsx)"
-msgstr "ميكروسوفت إكسل (*.xls;*.xlsx)"
+msgstr "ميكروسوفت أكسل (*.xls;*.xlsx)"
#. zAUu8
#: sw/inc/strings.hrc:865
@@ -7659,7 +7659,7 @@ msgstr "اسم الملف"
#: sw/inc/strings.hrc:985
msgctxt "FMT_FF_NAME_NOEXT"
msgid "File name without extension"
-msgstr "اسم الملف بدون امتداد"
+msgstr "اسم الملف بِلا امتداد"
#. BCzy8
#: sw/inc/strings.hrc:986
@@ -7887,13 +7887,13 @@ msgstr "\"أعلى\"/\"أسفل\""
#: sw/inc/strings.hrc:1038
msgctxt "FMT_REF_PAGE_PGDSC"
msgid "Page number (styled)"
-msgstr "رقم الصفحة (ذو طراز)"
+msgstr "رقم الصفحة (بطراز)"
#. CQitd
#: sw/inc/strings.hrc:1039
msgctxt "FMT_REF_ONLYNUMBER"
msgid "Category and Number"
-msgstr "الفئة و الرقم"
+msgstr "الصنف و الرقم"
#. BsvCn
#: sw/inc/strings.hrc:1040
@@ -8061,7 +8061,7 @@ msgstr "انحدار رأسي"
#: sw/inc/strings.hrc:1075
msgctxt "STR_WIDTH"
msgid "Width"
-msgstr "العرض"
+msgstr "العُرض"
#. rdxcb
#: sw/inc/strings.hrc:1076
@@ -8224,7 +8224,7 @@ msgstr "الرأس"
#: sw/inc/strings.hrc:1105
msgctxt "STR_NO_HEADER"
msgid "No header"
-msgstr "لا ترويسة"
+msgstr "لا رأس"
#. 8Jgfg
#: sw/inc/strings.hrc:1106
@@ -8578,7 +8578,7 @@ msgstr "اقتباس"
#: sw/inc/strings.hrc:1163
msgctxt "STR_GRID_NONE"
msgid "No grid"
-msgstr "بدون شبكة"
+msgstr "بِلا شبكة"
#. HEuEv
#: sw/inc/strings.hrc:1164
@@ -9096,25 +9096,25 @@ msgstr ""
#: sw/inc/strings.hrc:1251
msgctxt "STR_HEADER_TITLE"
msgid "Header (%1)"
-msgstr "الترويسة (%1)"
+msgstr "الرأس (%1)"
#. AYjgB
#: sw/inc/strings.hrc:1252
msgctxt "STR_FIRST_HEADER_TITLE"
msgid "First Page Header (%1)"
-msgstr "ترويسة الصفحة الأولى (%1)"
+msgstr "رأس الصفحة الأولى (%1)"
#. qVX2k
#: sw/inc/strings.hrc:1253
msgctxt "STR_LEFT_HEADER_TITLE"
msgid "Left Page Header (%1)"
-msgstr "ترويسة الصفحة اليسرى (%1)"
+msgstr "رأس الصفحة اليسرى (%1)"
#. DSg3b
#: sw/inc/strings.hrc:1254
msgctxt "STR_RIGHT_HEADER_TITLE"
msgid "Right Page Header (%1)"
-msgstr "ترويسة الصفحة اليمنى (%1)"
+msgstr "رأس الصفحة اليمنى (%1)"
#. 6GzuM
#: sw/inc/strings.hrc:1255
@@ -9144,13 +9144,13 @@ msgstr "تذييل الصفحة اليمنى (%1)"
#: sw/inc/strings.hrc:1259
msgctxt "STR_DELETE_HEADER"
msgid "Delete Header..."
-msgstr "احذف الترويسة..."
+msgstr "احذف الرأس..."
#. wL3Fr
#: sw/inc/strings.hrc:1260
msgctxt "STR_FORMAT_HEADER"
msgid "Format Header..."
-msgstr "نسّق الترويسة..."
+msgstr "نسّق الرأس..."
#. DrAUe
#: sw/inc/strings.hrc:1261
@@ -9204,7 +9204,7 @@ msgstr "إصدارة ملفّ الصّورة هذا غير مدعومة"
#: sw/inc/strings.hrc:1272
msgctxt "STR_GRFILTER_FILTERERROR"
msgid "Image filter not found"
-msgstr "تعذّر العثور على مرشّح الصورة"
+msgstr "لم يُعثر على مرشّح الصورة"
#. tEqyq
#: sw/inc/strings.hrc:1273
@@ -9374,7 +9374,7 @@ msgstr "المستوى "
#: sw/inc/strings.hrc:1304
msgctxt "STR_FILE_NOT_FOUND"
msgid "The file, \"%1\" in the \"%2\" path could not be found."
-msgstr "تعذر العثور على الملف ”%1“ في المسار ”%2“."
+msgstr "لم يُعثر على الملف، ”%1“ في مسار ”%2“."
#. zRWDZ
#: sw/inc/strings.hrc:1305
@@ -9464,7 +9464,7 @@ msgstr "مُدخَل"
#: sw/inc/strings.hrc:1319
msgctxt "STR_TOKEN_HELP_TAB_STOP"
msgid "Tab stop"
-msgstr "علامة جدولة"
+msgstr "توقُّف مفتاح التبويب"
#. aXW8y
#: sw/inc/strings.hrc:1320
@@ -9599,7 +9599,7 @@ msgstr "(نمط الفقرة: "
#: sw/inc/strings.hrc:1346
msgctxt "STR_ILLEGAL_PAGENUM"
msgid "Page numbers cannot be applied to the current page. Even numbers can be used on left pages, odd numbers on right pages."
-msgstr "لا يمكن تطبيق أرقام الصفحات على الصفحة الحالية. الأرقام الفردية للصفحات اليمنى والأرقام الزوجية للصفحات اليسرى."
+msgstr "لا يمكن تطبيق أرقام الصفحات على الصفحة الحالية. يمكن استخدام الأرقام الزوجية على الصفحات اليمنى والأرقام الفردية على الصفحات اليسرى."
#. VZnJf
#: sw/inc/strings.hrc:1348
@@ -9611,7 +9611,7 @@ msgstr "مستند %PRODUCTNAME‏ %PRODUCTVERSION رئيسي"
#: sw/inc/strings.hrc:1350
msgctxt "STR_QUERY_CONNECT"
msgid "A file connection will delete the contents of the current section. Connect anyway?"
-msgstr "سيحذف اتّصال الملفّ متحويات القسم الحاليّ. أأتّصل بأيّ حال؟"
+msgstr "الاتصال بالملفّ سيحذف محتويات القسم الحالي. أتّصل بأيّ حال؟"
#. dLuAF
#: sw/inc/strings.hrc:1351
@@ -9897,10 +9897,9 @@ msgstr "المفتاح الثاني"
#. EoAB8
#: sw/inc/strings.hrc:1416
-#, fuzzy
msgctxt "createautomarkdialog|comment"
msgid "Comment"
-msgstr "التعليقات"
+msgstr "تعليق"
#. Shstx
#: sw/inc/strings.hrc:1417
@@ -12067,7 +12066,7 @@ msgstr ""
#: sw/uiconfig/swriter/ui/columnpage.ui:269
msgctxt "columnpage|distft"
msgid "Spacing:"
-msgstr "التّباعد:"
+msgstr "التباعد:"
#. rneea
#: sw/uiconfig/swriter/ui/columnpage.ui:302
@@ -12115,7 +12114,7 @@ msgstr "ال_عرض:"
#: sw/uiconfig/swriter/ui/columnpage.ui:470
msgctxt "columnpage|lineheightft"
msgid "H_eight:"
-msgstr "الا_رتفاع:"
+msgstr "الارت_فاع:"
#. vKEyi
#: sw/uiconfig/swriter/ui/columnpage.ui:484
@@ -12265,7 +12264,7 @@ msgstr ""
#: sw/uiconfig/swriter/ui/columnwidth.ui:15
msgctxt "columnwidth|ColumnWidthDialog"
msgid "Column Width"
-msgstr "عرض العمود"
+msgstr "عُرض العمود"
#. 5xLXA
#: sw/uiconfig/swriter/ui/columnwidth.ui:102
@@ -12295,13 +12294,13 @@ msgstr ""
#: sw/uiconfig/swriter/ui/columnwidth.ui:168
msgctxt "columnwidth|label1"
msgid "Width"
-msgstr "عرض"
+msgstr "العُرض"
#. PKRsa
#: sw/uiconfig/swriter/ui/columnwidth.ui:193
msgctxt "columnwidth|extended_tip|ColumnWidthDialog"
msgid "Changes the width of the selected column(s)."
-msgstr ""
+msgstr "يغير عُرض العمود (الأعمدة) المحدد."
#. X8yvA
#: sw/uiconfig/swriter/ui/conditionpage.ui:75
@@ -12781,7 +12780,7 @@ msgstr ""
#: sw/uiconfig/swriter/ui/createaddresslist.ui:368
msgctxt "createaddresslist|DELETE"
msgid "_Delete"
-msgstr "ح_ذف"
+msgstr "اح_ذف"
#. 9BCh5
#: sw/uiconfig/swriter/ui/createaddresslist.ui:375
@@ -13243,7 +13242,7 @@ msgstr ""
#: sw/uiconfig/swriter/ui/editsectiondialog.ui:154
msgctxt "editsectiondialog|extended_tip|curname"
msgid "Type a name for the new section."
-msgstr ""
+msgstr "اكتب اسمًا للقسم الجديد"
#. qwvCU
#: sw/uiconfig/swriter/ui/editsectiondialog.ui:202
@@ -13369,7 +13368,7 @@ msgstr ""
#: sw/uiconfig/swriter/ui/editsectiondialog.ui:550
msgctxt "editsectiondialog|label6"
msgid "Write Protection"
-msgstr "حماية ضدّ الكتابة"
+msgstr "حماية من الكتابة"
#. W4aLX
#: sw/uiconfig/swriter/ui/editsectiondialog.ui:582
@@ -14669,7 +14668,7 @@ msgstr "الاس_م"
#: sw/uiconfig/swriter/ui/fldrefpage.ui:453
msgctxt "fldrefpage|extended_tip|name"
msgid "Type the name of the user-defined field that you want to create."
-msgstr ""
+msgstr "اكتب اسم الحقل الذي يعرّفه المستخدم والذي تريد إنشاءﻩ."
#. NYEnx
#: sw/uiconfig/swriter/ui/fldrefpage.ui:485
@@ -14729,7 +14728,7 @@ msgstr "ح_في"
#: sw/uiconfig/swriter/ui/fldvarpage.ui:374
msgctxt "fldvarpage|extended_tip|invisible"
msgid "Hides the field contents in the document."
-msgstr ""
+msgstr "يُخفي محتويات الحقل في المستند."
#. hapyp
#: sw/uiconfig/swriter/ui/fldvarpage.ui:405
@@ -14783,7 +14782,7 @@ msgstr "الاس_م"
#: sw/uiconfig/swriter/ui/fldvarpage.ui:530
msgctxt "fldvarpage|extended_tip|name"
msgid "Type the name of the user-defined field that you want to create."
-msgstr ""
+msgstr "اكتب اسم الحقل الذي يعرّفه المستخدم والذي تريد إنشاءﻩ."
#. 5qBE2
#: sw/uiconfig/swriter/ui/fldvarpage.ui:543
@@ -14795,7 +14794,7 @@ msgstr "ال_قيمة"
#: sw/uiconfig/swriter/ui/fldvarpage.ui:563
msgctxt "fldvarpage|extended_tip|value"
msgid "Enter the contents that you want to add to a user-defined field."
-msgstr ""
+msgstr "أدخِل المحتويات التي تريد إضافتها إلى حقل يعرّفه المستخدم."
#. BLiKH
#: sw/uiconfig/swriter/ui/fldvarpage.ui:584
@@ -14807,7 +14806,7 @@ msgstr "طبّق"
#: sw/uiconfig/swriter/ui/fldvarpage.ui:590
msgctxt "fldvarpage|extended_tip|apply"
msgid "Adds the user-defined field to the Select list."
-msgstr ""
+msgstr "يضيف الحقل الذي عرّفه المستخدم إلى قائمة ⟪حدد⟫ ."
#. GKfDe
#: sw/uiconfig/swriter/ui/fldvarpage.ui:604
@@ -14819,7 +14818,7 @@ msgstr "احذف"
#: sw/uiconfig/swriter/ui/fldvarpage.ui:610
msgctxt "fldvarpage|extended_tip|delete"
msgid "Removes the user-defined field from the select list. You can only remove fields that are not used in the current document."
-msgstr ""
+msgstr "يُزيل الحقل الذي عرّفه المستخدم من قائمة ⟪حدد⟫. يمكنك فقط إزالة الحقول غير المستخدمة في المستند الحالي."
#. 27v8z
#: sw/uiconfig/swriter/ui/floatingnavigation.ui:36
@@ -14945,19 +14944,19 @@ msgstr ""
#: sw/uiconfig/swriter/ui/floatingsync.ui:7
msgctxt "floatingsync|FloatingSync"
msgid "Synchronize"
-msgstr "المزامنة"
+msgstr "زامِن"
#. ooBrL
#: sw/uiconfig/swriter/ui/floatingsync.ui:34
msgctxt "floatingsync|sync"
msgid "Synchronize Labels"
-msgstr "مزامنة اللصائق"
+msgstr "زامِن اللصائق"
#. fiqsh
#: sw/uiconfig/swriter/ui/footendnotedialog.ui:8
msgctxt "footendnotedialog|FootEndnoteDialog"
msgid "Settings of Footnotes and Endnotes"
-msgstr ""
+msgstr "إعدادات الحواشي والحواشي الختامية"
#. hBdgx
#: sw/uiconfig/swriter/ui/footendnotedialog.ui:135
@@ -16331,32 +16330,31 @@ msgstr "الربط إلى"
#: sw/uiconfig/swriter/ui/frmurlpage.ui:205
msgctxt "frmurlpage|server"
msgid "_Server-side image map"
-msgstr "تخطيط صورة لجهة ال_خادوم"
+msgstr "خريطة صورية لجهة ال_خادوم"
#. b7kPv
#: sw/uiconfig/swriter/ui/frmurlpage.ui:214
msgctxt "frmurlpage|extended_tip|server"
msgid "Uses a server-side image map."
-msgstr ""
+msgstr "يستخدم خريطة صورية لجهة الخادوم."
#. MWxs6
#: sw/uiconfig/swriter/ui/frmurlpage.ui:225
msgctxt "frmurlpage|client"
msgid "_Client-side image map"
-msgstr "تخطيط صورة لجهة ال_عميل"
+msgstr "خريطة صورية لجهة ال_عميل"
#. FxBbu
#: sw/uiconfig/swriter/ui/frmurlpage.ui:234
msgctxt "frmurlpage|extended_tip|client"
msgid "Uses the image map that you created for the selected object."
-msgstr ""
+msgstr "يستخدم خريطة صورية أنشأتَها للكائن المحدد."
#. Y49PK
#: sw/uiconfig/swriter/ui/frmurlpage.ui:249
-#, fuzzy
msgctxt "frmurlpage|label2"
msgid "Image Map"
-msgstr "تخطيط الصورة"
+msgstr "خريطة صورية"
#. SB3EF
#: sw/uiconfig/swriter/ui/frmurlpage.ui:264
@@ -17179,7 +17177,7 @@ msgstr "طراز الصفحة:"
#: sw/uiconfig/swriter/ui/insertbreak.ui:181
msgctxt "insertbreak|liststore1"
msgid "[None]"
-msgstr "[بدون]"
+msgstr "[بِلا]"
#. 8WDUc
#: sw/uiconfig/swriter/ui/insertbreak.ui:185
@@ -17311,7 +17309,7 @@ msgstr ""
#: sw/uiconfig/swriter/ui/insertcaption.ui:297
msgctxt "insertcaption|label4"
msgid "Category:"
-msgstr "الفئة:"
+msgstr "الصنف:"
#. LySa4
#: sw/uiconfig/swriter/ui/insertcaption.ui:320
@@ -17341,7 +17339,7 @@ msgstr ""
#: sw/uiconfig/swriter/ui/insertcaption.ui:434
msgctxt "insertcaption|liststore1"
msgid "[None]"
-msgstr "[بدون]"
+msgstr "[بِلا]"
#. hKFSr
#: sw/uiconfig/swriter/ui/insertdbcolumnsdialog.ui:57
@@ -17545,10 +17543,9 @@ msgstr ""
#. sDwyx
#: sw/uiconfig/swriter/ui/insertdbcolumnsdialog.ui:788
-#, fuzzy
msgctxt "insertdbcolumnsdialog|userdefined"
msgid "_User-defined"
-msgstr "مستخدم-معرف"
+msgstr "ع_رّفه المستخدم"
#. KRqrf
#: sw/uiconfig/swriter/ui/insertdbcolumnsdialog.ui:800
@@ -18998,7 +18995,7 @@ msgstr "النص"
#: sw/uiconfig/swriter/ui/mastercontextmenu.ui:126
msgctxt "mastercontextmenu|STR_DELETE_ENTRY"
msgid "_Delete"
-msgstr ""
+msgstr "اح_ذف"
#. Gnk7X
#: sw/uiconfig/swriter/ui/mergeconnectdialog.ui:8
@@ -19052,7 +19049,7 @@ msgstr "دمج مع ال_جدول التالي"
#: sw/uiconfig/swriter/ui/mergetabledialog.ui:126
msgctxt "mergetabledialog|label1"
msgid "Mode"
-msgstr "وضع"
+msgstr "الوضع"
#. wCSht
#: sw/uiconfig/swriter/ui/mergetabledialog.ui:151
@@ -20425,7 +20422,7 @@ msgstr ""
#: sw/uiconfig/swriter/ui/navigatorcontextmenu.ui:136
msgctxt "navigatorcontextmenu|STR_DELETE_ENTRY"
msgid "_Delete"
-msgstr ""
+msgstr "اح_ذف"
#. CUqD5
#: sw/uiconfig/swriter/ui/navigatorcontextmenu.ui:145
@@ -21238,7 +21235,7 @@ msgstr ""
#: sw/uiconfig/swriter/ui/notebookbar_compact.ui:14277
msgctxt "notebookbar_compact|ObjectMenuButton"
msgid "Object"
-msgstr ""
+msgstr "كائن"
#. JXKiY
#: sw/uiconfig/swriter/ui/notebookbar_compact.ui:14333
@@ -21945,10 +21942,9 @@ msgstr ""
#. AWqDR
#: sw/uiconfig/swriter/ui/notebookbar_groups.ui:428
-#, fuzzy
msgctxt "notebookbar_groups|tablestyle2"
msgid "Style 2"
-msgstr "النمط2"
+msgstr "الطراز 2"
#. vHoey
#: sw/uiconfig/swriter/ui/notebookbar_groups.ui:436
@@ -22482,7 +22478,7 @@ msgstr "ماكرو"
#: sw/uiconfig/swriter/ui/optcaptionpage.ui:60
msgctxt "optcaptionpage|label7"
msgid "Category:"
-msgstr "الفئة:"
+msgstr "الصنف:"
#. kbdFC
#: sw/uiconfig/swriter/ui/optcaptionpage.ui:74
@@ -23113,7 +23109,7 @@ msgstr ""
#: sw/uiconfig/swriter/ui/optformataidspage.ui:416
msgctxt "optformataidspage|fillmode"
msgid "Insert:"
-msgstr ""
+msgstr "أدرِج:"
#. ACvNA
#: sw/uiconfig/swriter/ui/optformataidspage.ui:433
@@ -23359,7 +23355,7 @@ msgstr "ا_للون:"
#: sw/uiconfig/swriter/ui/optredlinepage.ui:64
msgctxt "optredlinepage|insert"
msgid "[None]"
-msgstr "[بدون]"
+msgstr "[بِلا]"
#. mhAvC
#: sw/uiconfig/swriter/ui/optredlinepage.ui:65
@@ -23546,7 +23542,7 @@ msgstr "ال_لون:"
#: sw/uiconfig/swriter/ui/optredlinepage.ui:525
msgctxt "optredlinepage|markpos"
msgid "[None]"
-msgstr "[بدون]"
+msgstr "[بِلا]"
#. gj7eD
#: sw/uiconfig/swriter/ui/optredlinepage.ui:526
@@ -24036,10 +24032,9 @@ msgstr "_قبل"
#. 3KmsV
#: sw/uiconfig/swriter/ui/outlinenumberingpage.ui:404
-#, fuzzy
msgctxt "outlinenumberingpage|label9"
msgid "After:"
-msgstr "بعد"
+msgstr "بعد:"
#. Vmmga
#: sw/uiconfig/swriter/ui/outlinenumberingpage.ui:420
@@ -24170,10 +24165,9 @@ msgstr ""
#. wnCMF
#: sw/uiconfig/swriter/ui/outlinepositionpage.ui:357
-#, fuzzy
msgctxt "outlinepositionpage|alignedat"
msgid "Aligned at:"
-msgstr "محاذاة إلى"
+msgstr "محاذاة عند:"
#. kWMhW
#: sw/uiconfig/swriter/ui/outlinepositionpage.ui:378
@@ -24185,7 +24179,7 @@ msgstr ""
#: sw/uiconfig/swriter/ui/outlinepositionpage.ui:391
msgctxt "outlinepositionpage|at"
msgid "Tab stop at:"
-msgstr "تتوقّف الجدولة عند:"
+msgstr "يتوقّف مفتاح التبويب عند:"
#. FVvCZ
#: sw/uiconfig/swriter/ui/outlinepositionpage.ui:412
@@ -24197,7 +24191,7 @@ msgstr ""
#: sw/uiconfig/swriter/ui/outlinepositionpage.ui:427
msgctxt "outlinepositionpage|liststore2"
msgid "Tab stop"
-msgstr "علامة الجدولة"
+msgstr "توقُّف مفتاح التبويب"
#. w6UaR
#: sw/uiconfig/swriter/ui/outlinepositionpage.ui:428
@@ -24333,10 +24327,9 @@ msgstr "مخصص"
#. RyvUN
#: sw/uiconfig/swriter/ui/pagefooterpanel.ui:36
-#, fuzzy
msgctxt "pagefooterpanel|spacing"
msgid "Spacing:"
-msgstr "التّباعد:"
+msgstr "التباعد:"
#. uCyAR
#: sw/uiconfig/swriter/ui/pagefooterpanel.ui:50
@@ -24854,7 +24847,7 @@ msgstr "ا_سم الملف"
#: sw/uiconfig/swriter/ui/picturepage.ui:88
msgctxt "picturepage|label11"
msgid "Link"
-msgstr "الرابط"
+msgstr "ارتباط"
#. hCVDF
#: sw/uiconfig/swriter/ui/picturepage.ui:121
@@ -25014,10 +25007,9 @@ msgstr ""
#. K9pGA
#: sw/uiconfig/swriter/ui/printeroptions.ui:46
-#, fuzzy
msgctxt "printeroptions|pictures"
msgid "Images and other graphic objects"
-msgstr "الصور والكائنات الرسومية الأخرى"
+msgstr "صور وكائنات رسومية أخرى"
#. BWWNC
#: sw/uiconfig/swriter/ui/printeroptions.ui:54
@@ -25276,7 +25268,7 @@ msgstr "صفحات"
#: sw/uiconfig/swriter/ui/printoptionspage.ui:289
msgctxt "printoptionspage|none"
msgid "_None"
-msgstr "_بدون"
+msgstr "_بلا"
#. CDv8b
#: sw/uiconfig/swriter/ui/printoptionspage.ui:298
@@ -26000,13 +25992,13 @@ msgstr "غيّر اسم الكائن: "
#: sw/uiconfig/swriter/ui/renameobjectdialog.ui:98
msgctxt "renameobjectdialog|label2"
msgid "New name:"
-msgstr ""
+msgstr "الاسم الجديد:"
#. Yffi5
#: sw/uiconfig/swriter/ui/renameobjectdialog.ui:127
msgctxt "renameobjectdialog|label1"
msgid "Change Name"
-msgstr "عدّل الاسم"
+msgstr "غيّر الاسم"
#. NWjKW
#: sw/uiconfig/swriter/ui/rowheight.ui:15
@@ -26018,19 +26010,19 @@ msgstr "ارتفاع الصف"
#: sw/uiconfig/swriter/ui/rowheight.ui:107
msgctxt "rowheight|extended_tip|heightmf"
msgid "Enter the height that you want for the selected row(s)."
-msgstr ""
+msgstr "أدخل الارتفاع الذي تريده للصف (الصفوف) المحددة."
#. 8JFHg
#: sw/uiconfig/swriter/ui/rowheight.ui:119
msgctxt "rowheight|fit"
msgid "_Fit to size"
-msgstr "_ملاءمة تلقائية للحجم"
+msgstr "لائ_م مع الحجم"
#. FFHCd
#: sw/uiconfig/swriter/ui/rowheight.ui:127
msgctxt "rowheight|extended_tip|fit"
msgid "Automatically adjusts the row height to match the contents of the cells."
-msgstr ""
+msgstr "يضبّط ارتفاع الصف تلقائياً ليطابق محتويات الخلايا."
#. 87zor
#: sw/uiconfig/swriter/ui/rowheight.ui:143
@@ -26042,13 +26034,13 @@ msgstr "الارتفاع"
#: sw/uiconfig/swriter/ui/rowheight.ui:168
msgctxt "rowheight|extended_tip|RowHeightDialog"
msgid "Changes the height of the selected row(s)."
-msgstr ""
+msgstr "يغيّر ارتفاع الصف (صفوف) المحدد."
#. nNUFB
#: sw/uiconfig/swriter/ui/saveashtmldialog.ui:7
msgctxt "saveashtmldialog|SaveAsHTMLDialog"
msgid "Save as HTML?"
-msgstr ""
+msgstr "حفظ كـ HTML؟"
#. nnt82
#: sw/uiconfig/swriter/ui/saveashtmldialog.ui:14
@@ -26066,21 +26058,19 @@ msgstr ""
#: sw/uiconfig/swriter/ui/savelabeldialog.ui:8
msgctxt "savelabeldialog|SaveLabelDialog"
msgid "Save Label Format"
-msgstr ""
+msgstr "احفظ نسَق اللصيقة"
#. PkJVz
#: sw/uiconfig/swriter/ui/savelabeldialog.ui:96
-#, fuzzy
msgctxt "savelabeldialog|label2"
msgid "Brand"
-msgstr "العلامة التجارية:"
+msgstr "العلامة التجارية"
#. AwGvc
#: sw/uiconfig/swriter/ui/savelabeldialog.ui:109
-#, fuzzy
msgctxt "savelabeldialog|label3"
msgid "T_ype"
-msgstr "النوع"
+msgstr "ال_نوع"
#. KX58T
#: sw/uiconfig/swriter/ui/savelabeldialog.ui:127
@@ -26116,14 +26106,13 @@ msgstr ""
#: sw/uiconfig/swriter/ui/savemonitordialog.ui:71
msgctxt "printmonitordialog|saving"
msgid "is being saved to"
-msgstr ""
+msgstr "يجري الحفظ إلى"
#. L7P6y
#: sw/uiconfig/swriter/ui/sectionpage.ui:97
-#, fuzzy
msgctxt "sectionpage|label4"
msgid "New Section"
-msgstr "دالة جديدة"
+msgstr "قسم جديد"
#. Z9GeF
#: sw/uiconfig/swriter/ui/sectionpage.ui:105
@@ -26163,7 +26152,6 @@ msgstr "ا_سم الملف"
#. AYDG6
#: sw/uiconfig/swriter/ui/sectionpage.ui:210
-#, fuzzy
msgctxt "sectionpage|ddelabel"
msgid "DDE _command"
msgstr "أ_مر DDE"
@@ -26196,13 +26184,13 @@ msgstr ""
#: sw/uiconfig/swriter/ui/sectionpage.ui:298
msgctxt "sectionpage|extended_tip|sectionname"
msgid "Type a name for the new section."
-msgstr ""
+msgstr "اكتب اسمًا للقسم الجديد"
#. 9GJeE
#: sw/uiconfig/swriter/ui/sectionpage.ui:320
msgctxt "sectionpage|label1"
msgid "Link"
-msgstr "رابط"
+msgstr "ارتباط"
#. zeESA
#: sw/uiconfig/swriter/ui/sectionpage.ui:351
@@ -26242,10 +26230,9 @@ msgstr ""
#. 4rFEh
#: sw/uiconfig/swriter/ui/sectionpage.ui:432
-#, fuzzy
msgctxt "sectionpage|label2"
msgid "Write Protection"
-msgstr "حماية ضد الكتابة"
+msgstr "حماية من الكتابة"
#. eEPSX
#: sw/uiconfig/swriter/ui/sectionpage.ui:463
@@ -26452,7 +26439,7 @@ msgstr ""
#: sw/uiconfig/swriter/ui/selectblockdialog.ui:131
msgctxt "selectblockdialog|delete"
msgid "_Delete"
-msgstr "ح_ذف"
+msgstr "اح_ذف"
#. Xv9Ub
#: sw/uiconfig/swriter/ui/selectblockdialog.ui:138
@@ -26546,10 +26533,9 @@ msgstr ""
#. aGPFr
#: sw/uiconfig/swriter/ui/selecttabledialog.ui:18
-#, fuzzy
msgctxt "selecttabledialog|SelectTableDialog"
msgid "Select Table"
-msgstr "تقسيم الجدول"
+msgstr "حدد الجدول"
#. SfHVd
#: sw/uiconfig/swriter/ui/selecttabledialog.ui:99
@@ -26567,106 +26553,103 @@ msgstr "الاسم"
#: sw/uiconfig/swriter/ui/selecttabledialog.ui:149
msgctxt "selecttabledialog|column2"
msgid "Type"
-msgstr ""
+msgstr "النوع"
#. GoUkf
#: sw/uiconfig/swriter/ui/selecttabledialog.ui:160
msgctxt "selecttabledialog|extended_tip|table"
msgid "Select the table that you want to use for mail merge addresses."
-msgstr ""
+msgstr "حدد الجدول الذي تريد استخدامه لعناوين دمج البريد."
#. uRHDQ
#: sw/uiconfig/swriter/ui/selecttabledialog.ui:181
-#, fuzzy
msgctxt "selecttabledialog|preview"
msgid "_Preview"
-msgstr "معاينة"
+msgstr "معاي_نة"
#. Wo98B
#: sw/uiconfig/swriter/ui/selecttabledialog.ui:188
msgctxt "selecttabledialog|extended_tip|preview"
msgid "Opens the Mail Merge Recipients dialog."
-msgstr ""
+msgstr "يفتح حوار مستلمي دمج البريد."
#. HvjeJ
#: sw/uiconfig/swriter/ui/selecttabledialog.ui:224
msgctxt "selecttabledialog|extended_tip|SelectTableDialog"
msgid "Select the table that you want to use for mail merge addresses."
-msgstr ""
+msgstr "حدد الجدول الذي تريد استخدامه لعناوين دمج البريد."
#. DSVQt
#: sw/uiconfig/swriter/ui/sidebartableedit.ui:34
msgctxt "sidebatableedit|rowheight|tooltip_text"
msgid "Row Height"
-msgstr ""
+msgstr "ارتفاع الصف"
#. McHyF
#: sw/uiconfig/swriter/ui/sidebartableedit.ui:50
msgctxt "sidebartableedit|insert_label"
msgid "Insert:"
-msgstr ""
+msgstr "أدرِج:"
#. WxnPo
#: sw/uiconfig/swriter/ui/sidebartableedit.ui:117
msgctxt "sidebartableedit|select_label"
msgid "Select:"
-msgstr ""
+msgstr "حدد:"
#. iaj7k
#: sw/uiconfig/swriter/ui/sidebartableedit.ui:194
msgctxt "sidebatableedit|columnwidth|tooltip_text"
msgid "Column Width"
-msgstr ""
+msgstr "عُرض العمود"
#. wBi45
#: sw/uiconfig/swriter/ui/sidebartableedit.ui:211
msgctxt "sidebartableedit|row_height_label"
msgid "Row height:"
-msgstr ""
+msgstr "ارتفاع الصف:"
#. A9e3U
#: sw/uiconfig/swriter/ui/sidebartableedit.ui:226
msgctxt "sidebartableedit|column_width_label"
msgid "Column width:"
-msgstr ""
+msgstr "عُرض العمود:"
#. MDyQt
#: sw/uiconfig/swriter/ui/sidebartableedit.ui:326
msgctxt "sidebartableedit|delete_label"
msgid "Delete:"
-msgstr ""
+msgstr "احذف:"
#. 6wzLa
#: sw/uiconfig/swriter/ui/sidebartableedit.ui:383
msgctxt "sidebartableedit|split_merge_label"
msgid "Split/Merge:"
-msgstr ""
+msgstr "اقسم\\ادمج:"
#. Em3y9
#: sw/uiconfig/swriter/ui/sidebartableedit.ui:484
msgctxt "sidebartableedit|misc_label"
msgid "Miscellaneous:"
-msgstr ""
+msgstr "متنوعة:"
#. zdpW8
#: sw/uiconfig/swriter/ui/sidebartheme.ui:32
-#, fuzzy
msgctxt "sidebartheme|label1"
msgid "Fonts"
-msgstr "الخط"
+msgstr "الخطوط"
#. B25Kd
#: sw/uiconfig/swriter/ui/sidebartheme.ui:85
-#, fuzzy
msgctxt "sidebartheme|label2"
msgid "Colors"
-msgstr "اللون"
+msgstr "الألوان"
#. 9P6rW
#: sw/uiconfig/swriter/ui/sidebarwrap.ui:23
msgctxt "sidebarwrap|label1"
msgid "Spacing:"
-msgstr "التّباعد:"
+msgstr "التباعد:"
#. UfPZU
#: sw/uiconfig/swriter/ui/sidebarwrap.ui:37
@@ -26678,7 +26661,7 @@ msgstr "اضبط المسافة بين الصورة والنص المحيط به
#: sw/uiconfig/swriter/ui/sidebarwrap.ui:49
msgctxt "sidebarwrap|label2"
msgid "Wrap:"
-msgstr ""
+msgstr "لفّ:"
#. CeCh8
#: sw/uiconfig/swriter/ui/sidebarwrap.ui:74
@@ -26750,7 +26733,7 @@ msgstr "تصاعدي"
#: sw/uiconfig/swriter/ui/sortdialog.ui:182
msgctxt "sortdialog|extended_tip|up1"
msgid "Sorts in ascending order, (for example, 1, 2, 3 or a, b, c)."
-msgstr ""
+msgstr "يرتّب بترتيب تصاعدي (مثلا، 1، ‏2، ‏3 أو أ، ب، ج)."
#. yVqST
#: sw/uiconfig/swriter/ui/sortdialog.ui:193
@@ -26762,7 +26745,7 @@ msgstr "تنازلي"
#: sw/uiconfig/swriter/ui/sortdialog.ui:205
msgctxt "sortdialog|extended_tip|down1"
msgid "Sorts in descending order (for example, 9, 8, 7 or z, y, x)."
-msgstr ""
+msgstr "يرتّب بترتيب تنازلي (مثلا، 9، ‏8، ‏7 أو ي، و، ه)."
#. P9D2w
#: sw/uiconfig/swriter/ui/sortdialog.ui:228
@@ -26774,7 +26757,7 @@ msgstr "تصاعدي"
#: sw/uiconfig/swriter/ui/sortdialog.ui:240
msgctxt "sortdialog|extended_tip|up2"
msgid "Sorts in ascending order, (for example, 1, 2, 3 or a, b, c)."
-msgstr ""
+msgstr "يرتّب بترتيب تصاعدي (مثلا، 1، ‏2، ‏3 أو أ، ب، ج)."
#. haL8p
#: sw/uiconfig/swriter/ui/sortdialog.ui:251
@@ -26786,7 +26769,7 @@ msgstr "تنازلي"
#: sw/uiconfig/swriter/ui/sortdialog.ui:263
msgctxt "sortdialog|extended_tip|down2"
msgid "Sorts in descending order (for example, 9, 8, 7 or z, y, x)."
-msgstr ""
+msgstr "يرتّب بترتيب تنازلي (مثلا، 9، ‏8، ‏7 أو ي، و، ه)."
#. PHxUv
#: sw/uiconfig/swriter/ui/sortdialog.ui:286
@@ -26798,7 +26781,7 @@ msgstr "تصاعدي"
#: sw/uiconfig/swriter/ui/sortdialog.ui:298
msgctxt "sortdialog|extended_tip|up3"
msgid "Sorts in ascending order, (for example, 1, 2, 3 or a, b, c)."
-msgstr ""
+msgstr "يرتّب بترتيب تصاعدي (مثلا، 1، ‏2، ‏3 أو أ، ب، ج)."
#. zsggE
#: sw/uiconfig/swriter/ui/sortdialog.ui:309
@@ -26810,7 +26793,7 @@ msgstr "تنازلي"
#: sw/uiconfig/swriter/ui/sortdialog.ui:321
msgctxt "sortdialog|extended_tip|down3"
msgid "Sorts in descending order (for example, 9, 8, 7 or z, y, x)."
-msgstr ""
+msgstr "يرتّب بترتيب تنازلي (مثلا، 9، ‏8، ‏7 أو ي، و، ه)."
#. 3yLB6
#: sw/uiconfig/swriter/ui/sortdialog.ui:338
@@ -27134,7 +27117,7 @@ msgstr ""
#: sw/uiconfig/swriter/ui/splittable.ui:152
msgctxt "splittable|noheading"
msgid "No heading"
-msgstr "بدون ترويسة"
+msgstr "بِلا ترويسة"
#. hhmK9
#: sw/uiconfig/swriter/ui/splittable.ui:161
@@ -27146,7 +27129,7 @@ msgstr ""
#: sw/uiconfig/swriter/ui/splittable.ui:176
msgctxt "splittable|label1"
msgid "Mode"
-msgstr "وضع"
+msgstr "الوضع"
#. 9DBjn
#: sw/uiconfig/swriter/ui/splittable.ui:198
@@ -27380,7 +27363,7 @@ msgstr ""
#: sw/uiconfig/swriter/ui/tablecolumnpage.ui:451
msgctxt "tablecolumnpage|label26"
msgid "Column Width"
-msgstr "عرض العمود"
+msgstr "عُرض العمود"
#. fxTCe
#: sw/uiconfig/swriter/ui/tablepreviewdialog.ui:8
@@ -28139,7 +28122,7 @@ msgstr "الأخطاء"
#: sw/uiconfig/swriter/ui/textgridpage.ui:66
msgctxt "textgridpage|radioRB_NOGRID"
msgid "No grid"
-msgstr "بدون شبكة"
+msgstr "بِلا شبكة"
#. E4P8y
#: sw/uiconfig/swriter/ui/textgridpage.ui:75
@@ -28294,10 +28277,9 @@ msgstr ""
#. SxFyQ
#: sw/uiconfig/swriter/ui/textgridpage.ui:565
-#, fuzzy
msgctxt "textgridpage|labelFL_DISPLAY"
msgid "Grid Display"
-msgstr "إظهار الشبكة"
+msgstr "عَرض الشبكة"
#. F6YEz
#: sw/uiconfig/swriter/ui/textgridpage.ui:580
@@ -28333,7 +28315,7 @@ msgstr "حوّل الصفحات الموجودة إلى إسم الصفحات"
#: sw/uiconfig/swriter/ui/titlepage.ui:208
msgctxt "titlepage|RB_INSERT_NEW_PAGES"
msgid "Insert new title pages"
-msgstr "إدراج عنوانا جديدا للصفحات"
+msgstr "أدرِج صفحات عنوان جديدة"
#. 9UqEG
#: sw/uiconfig/swriter/ui/titlepage.ui:225
@@ -29228,10 +29210,9 @@ msgstr ""
#. E8n8f
#: sw/uiconfig/swriter/ui/tocindexpage.ui:641
-#, fuzzy
msgctxt "tocindexpage|categoryft"
msgid "Category:"
-msgstr "فئة"
+msgstr "الصنف:"
#. VADFj
#: sw/uiconfig/swriter/ui/tocindexpage.ui:657
@@ -29256,7 +29237,7 @@ msgstr "مراجع"
#: sw/uiconfig/swriter/ui/tocindexpage.ui:686
msgctxt "tocindexpage|display"
msgid "Category and Number"
-msgstr "الفئة و الرقم"
+msgstr "الصنف و الرقم"
#. nvrHf
#: sw/uiconfig/swriter/ui/tocindexpage.ui:687
@@ -29310,7 +29291,7 @@ msgstr "رقّم مُدخَلات ثبت المراجع تلقائيًا."
#: sw/uiconfig/swriter/ui/tocindexpage.ui:874
msgctxt "tocindexpage|brackets"
msgid "[none]"
-msgstr "[بدون]"
+msgstr "[بِلا]"
#. hpS6x
#: sw/uiconfig/swriter/ui/tocindexpage.ui:875
@@ -30037,7 +30018,7 @@ msgstr ""
#: sw/uiconfig/swriter/ui/wrappage.ui:61
msgctxt "wrappage|before"
msgid "Be_fore"
-msgstr ""
+msgstr "_قبل"
#. tE9SC
#: sw/uiconfig/swriter/ui/wrappage.ui:74
@@ -30049,7 +30030,7 @@ msgstr ""
#: sw/uiconfig/swriter/ui/wrappage.ui:121
msgctxt "wrappage|after"
msgid "Aft_er"
-msgstr ""
+msgstr "ب_عد"
#. vpZfS
#: sw/uiconfig/swriter/ui/wrappage.ui:134
@@ -30085,7 +30066,7 @@ msgstr ""
#: sw/uiconfig/swriter/ui/wrappage.ui:301
msgctxt "wrappage|none"
msgid "_Wrap Off"
-msgstr ""
+msgstr "لفّ بعيداً"
#. KSWRg
#: sw/uiconfig/swriter/ui/wrappage.ui:314
@@ -30217,7 +30198,7 @@ msgstr ""
#: sw/uiconfig/swriter/ui/wrappage.ui:703
msgctxt "wrappage|outside"
msgid "Allow overlap"
-msgstr ""
+msgstr "اسمح بالتراكب"
#. FDUUk
#: sw/uiconfig/swriter/ui/wrappage.ui:721
diff --git a/source/ar/swext/mediawiki/help.po b/source/ar/swext/mediawiki/help.po
index 2c7042c8b34..fd84f2bb947 100644
--- a/source/ar/swext/mediawiki/help.po
+++ b/source/ar/swext/mediawiki/help.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2019-07-11 18:38+0200\n"
-"PO-Revision-Date: 2022-02-26 21:39+0000\n"
+"PO-Revision-Date: 2022-03-09 14:39+0000\n"
"Last-Translator: Riyadh Talal <riyadhtalal@gmail.com>\n"
"Language-Team: Arabic <https://translations.documentfoundation.org/projects/libo_ui-7-3/swextmediawikihelp/ar/>\n"
"Language: ar\n"
@@ -401,7 +401,7 @@ msgctxt ""
"par_id3112582\n"
"help.text"
msgid "Enter the Internet address of a wiki server in a format like “https://wiki.documentfoundation.org” or copy the URL from a web browser."
-msgstr ""
+msgstr "أدخِل عنوان انترنت لخادوم الويكي بنسَق مثل \"https://wiki.documentfoundation.org\" أو انسخ الرابط من متصفح وَب."
#. boKaA
#: wikiaccount.xhp
@@ -518,7 +518,7 @@ msgctxt ""
"hd_id7026886\n"
"help.text"
msgid "Paragraphs"
-msgstr "الفقرات"
+msgstr "فقرات"
#. LBFtS
#: wikiformats.xhp
@@ -610,7 +610,7 @@ msgctxt ""
"par_id3037202\n"
"help.text"
msgid "Simple tables are supported well. Table headers are translated into corresponding wiki-style table headers. However, custom formatting of table borders, column sizes and background colors is ignored."
-msgstr "الجداول البسيطة مدعومة بشكل جيد. تُترجم ترويسات الجداول إلى نظيراتها بنمط الويكي. إلا أن تنسيق حدود الجدول، و أحجام الأعمدة و ألوان الخلفية يُتجاهل."
+msgstr "الجداول البسيطة مدعومة بشكل جيد. تُترجم رؤوس الجداول إلى نظيراتها بنمط الويكي. إلا أن تنسيق حدود الجدول و أحجام الأعمدة و ألوان الخلفية تُتجاهَل."
#. DF3o9
#: wikiformats.xhp
@@ -656,7 +656,7 @@ msgctxt ""
"par_id1831110\n"
"help.text"
msgid "Irrespective of custom table styles for border and background, a table is always exported as “prettytable,” which renders in the wiki engine with simple borders and bold header."
-msgstr "بغض النظر عن أنماط الجدول المخصصة للحدود والخلفية، يتم دائماً تصدير الجدول كـ \"<emph>prettytable</emph>\"، والتي تظهر في الويكي بحدود بسيطة وترويسة جدول ثخينة."
+msgstr "بغض النظر عن أنماط الجدول المخصصة للحدود والخلفية، يتم دائماً تصدير الجدول كـ \"<emph>prettytable</emph>\"، والتي تظهر في الويكي بحدود بسيطة ورأس جدول ثخين."
#. kDcRS
#: wikiformats.xhp
diff --git a/source/ar/sysui/desktop/share.po b/source/ar/sysui/desktop/share.po
index 3852ac872f5..b5c5261e473 100644
--- a/source/ar/sysui/desktop/share.po
+++ b/source/ar/sysui/desktop/share.po
@@ -4,9 +4,9 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2019-07-11 18:38+0200\n"
-"PO-Revision-Date: 2022-01-23 17:39+0000\n"
+"PO-Revision-Date: 2022-03-02 22:39+0000\n"
"Last-Translator: Riyadh Talal <riyadhtalal@gmail.com>\n"
-"Language-Team: Arabic <https://translations.documentfoundation.org/projects/libo_ui-master/sysuidesktopshare/ar/>\n"
+"Language-Team: Arabic <https://translations.documentfoundation.org/projects/libo_ui-7-3/sysuidesktopshare/ar/>\n"
"Language: ar\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -275,7 +275,7 @@ msgctxt ""
"ms-excel-sheet\n"
"LngText.text"
msgid "Microsoft Excel Worksheet"
-msgstr "ورقة عمل ميكروسوفت إكسل"
+msgstr "ورقة عمل ميكروسوفت أكسل"
#. GFWsF
#: documents.ulf
@@ -311,7 +311,7 @@ msgctxt ""
"ms-excel-sheet-12\n"
"LngText.text"
msgid "Microsoft Excel Worksheet"
-msgstr "ورقة عمل ميكروسوفت إكسل"
+msgstr "ورقة عمل ميكروسوفت أكسل"
#. YMdW5
#: documents.ulf
@@ -320,7 +320,7 @@ msgctxt ""
"ms-excel-template-12\n"
"LngText.text"
msgid "Microsoft Excel Worksheet Template"
-msgstr "قالب ورقة عمل ميكروسوفت إكسل"
+msgstr "قالب ورقة عمل ميكروسوفت أكسل"
#. kg6D4
#: documents.ulf
@@ -383,7 +383,7 @@ msgctxt ""
"openxmlformats-officedocument-spreadsheetml-sheet\n"
"LngText.text"
msgid "Microsoft Excel Worksheet"
-msgstr "ورقة عمل ميكروسوفت إكسل"
+msgstr "ورقة عمل ميكروسوفت أكسل"
#. Dk7Bj
#: documents.ulf
@@ -392,7 +392,7 @@ msgctxt ""
"openxmlformats-officedocument-spreadsheetml-template\n"
"LngText.text"
msgid "Microsoft Excel Worksheet Template"
-msgstr "قالب ورقة عمل ميكروسوفت إكسل"
+msgstr "قالب ورقة عمل ميكروسوفت أكسل"
#. So2PB
#: documents.ulf
@@ -419,7 +419,7 @@ msgctxt ""
"ms-excel-sheet-binary-12\n"
"LngText.text"
msgid "Microsoft Excel Worksheet"
-msgstr "ورقة عمل ميكروسوفت إكسل"
+msgstr "ورقة عمل ميكروسوفت أكسل"
#. Bpj3J
#: launcher_comment.ulf
@@ -482,7 +482,7 @@ msgctxt ""
"startcenter\n"
"LngText.text"
msgid "The office productivity suite compatible to the open and standardized ODF document format. Supported by The Document Foundation."
-msgstr "الحقيبة اﻻنتاجية المكتبية متوافقة مع صيغ الوثائق المفتوحة المدعومة من مؤسسة الوثائق المفتوحة المصدر."
+msgstr "الحزمة المكتبية الإنتاجية المتوافقة مع نسَق الوثائق المفتوحة ODF المعايَر. تدعمه مؤسسة المستند The Document Foundation."
#. BhNQQ
#: launcher_genericname.ulf
diff --git a/source/ar/uui/messages.po b/source/ar/uui/messages.po
index 5bc31ac9797..d4389ed1f57 100644
--- a/source/ar/uui/messages.po
+++ b/source/ar/uui/messages.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-11-19 15:45+0100\n"
-"PO-Revision-Date: 2022-02-16 08:40+0000\n"
+"PO-Revision-Date: 2022-03-04 05:39+0000\n"
"Last-Translator: Riyadh Talal <riyadhtalal@gmail.com>\n"
"Language-Team: Arabic <https://translations.documentfoundation.org/projects/libo_ui-7-3/uuimessages/ar/>\n"
"Language: ar\n"
@@ -647,7 +647,7 @@ msgstr "لا تتطابق كلمة سر التأكيد مع كلمة السر.
#: uui/inc/strings.hrc:32
msgctxt "STR_ALREADYOPEN_TITLE"
msgid "Document in Use"
-msgstr "المستند يُستخدم الآن"
+msgstr "المستند قيد الاستخدام"
#. QU4jD
#: uui/inc/strings.hrc:33
@@ -673,7 +673,7 @@ msgstr "افتح لل~قراءة فقط"
#: uui/inc/strings.hrc:35
msgctxt "STR_ALREADYOPEN_READONLY_NOTIFY_BTN"
msgid "~Notify"
-msgstr ""
+msgstr "إ~بلاغ"
#. ThAZk
#: uui/inc/strings.hrc:36
@@ -745,7 +745,7 @@ msgstr "افتح لل~قراءة فقط"
#: uui/inc/strings.hrc:48
msgctxt "STR_LOCKFAILED_OPENREADONLY_NOTIFY_BTN"
msgid "~Notify"
-msgstr ""
+msgstr "إ~بلاغ"
#. u5nuY
#: uui/inc/strings.hrc:50
@@ -783,7 +783,7 @@ msgstr "افتح لل~قراءة فقط"
#: uui/inc/strings.hrc:54
msgctxt "STR_OPENLOCKED_OPENREADONLY_NOTIFY_BTN"
msgid "~Notify"
-msgstr ""
+msgstr "إ~بلاغ"
#. TsA54
#: uui/inc/strings.hrc:55
@@ -939,7 +939,7 @@ msgstr "افتح لل~قراءة فقط"
#: uui/inc/strings.hrc:81
msgctxt "STR_LOCKCORRUPT_OPENREADONLY_NOTIFY_BTN"
msgid "~Notify"
-msgstr ""
+msgstr "إ~بلاغ"
#. rBAR3
#: uui/inc/strings.hrc:83
diff --git a/source/ar/vcl/messages.po b/source/ar/vcl/messages.po
index 9f0d3d6921c..68cbb592be8 100644
--- a/source/ar/vcl/messages.po
+++ b/source/ar/vcl/messages.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-11-16 12:10+0100\n"
-"PO-Revision-Date: 2022-02-28 17:26+0000\n"
+"PO-Revision-Date: 2022-03-08 13:51+0000\n"
"Last-Translator: Riyadh Talal <riyadhtalal@gmail.com>\n"
"Language-Team: Arabic <https://translations.documentfoundation.org/projects/libo_ui-7-3/vclmessages/ar/>\n"
"Language: ar\n"
@@ -2262,19 +2262,19 @@ msgstr ""
#: vcl/uiconfig/ui/printdialog.ui:890
msgctxt "printdialog|label2"
msgid "Range and Copies"
-msgstr ""
+msgstr "النطاق والنُسخ"
#. CBLet
#: vcl/uiconfig/ui/printdialog.ui:929
msgctxt "printdialog|labelorientation"
msgid "Orientation:"
-msgstr ""
+msgstr "الاتجاه:"
#. U4byk
#: vcl/uiconfig/ui/printdialog.ui:944
msgctxt "printdialog|labelsize"
msgid "Paper size:"
-msgstr ""
+msgstr "حجم الورقة:"
#. X9iBj
#: vcl/uiconfig/ui/printdialog.ui:961
@@ -2334,7 +2334,7 @@ msgstr ""
#: vcl/uiconfig/ui/printdialog.ui:1093
msgctxt "printdialog|pagespersheettxt"
msgid "Pages:"
-msgstr ""
+msgstr "الصفحات:"
#. X8bjE
#: vcl/uiconfig/ui/printdialog.ui:1113
@@ -2592,7 +2592,7 @@ msgstr "حجم ال_ورقة:"
#: vcl/uiconfig/ui/printerpaperpage.ui:34
msgctxt "printerpaperpage|orientft"
msgid "_Orientation:"
-msgstr "الا_تجاه:"
+msgstr "الات_جاه:"
#. yKXAH
#: vcl/uiconfig/ui/printerpaperpage.ui:48
diff --git a/source/ar/wizards/source/resources.po b/source/ar/wizards/source/resources.po
index 354b7ae6e09..749268904a1 100644
--- a/source/ar/wizards/source/resources.po
+++ b/source/ar/wizards/source/resources.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2020-10-27 12:31+0100\n"
-"PO-Revision-Date: 2022-02-24 15:39+0000\n"
+"PO-Revision-Date: 2022-03-09 14:39+0000\n"
"Last-Translator: Riyadh Talal <riyadhtalal@gmail.com>\n"
"Language-Team: Arabic <https://translations.documentfoundation.org/projects/libo_ui-7-3/wizardssourceresources/ar/>\n"
"Language: ar\n"
@@ -321,7 +321,7 @@ msgctxt ""
"RID_REPORT_16\n"
"property.text"
msgid "Layout of headers and footers"
-msgstr "مخطط الترويسات والتذييلات"
+msgstr "مخطط الرؤوس والتذييلات"
#. bN2Fw
#: resources_en_US.properties
@@ -2153,27 +2153,21 @@ msgstr "ال~حقول في النموذج"
#. 6J6EJ
#: resources_en_US.properties
-#, fuzzy
msgctxt ""
"resources_en_US.properties\n"
"RID_FORM_2\n"
"property.text"
msgid "Binary fields are always listed and selectable from the left list.\\nIf possible, they are interpreted as images."
-msgstr ""
-"تُسرَد الحقول الثنائية وتُحدَّد من القائمة اليسرى.\n"
-"إن كان ممكنًا، تُفسَّر الحقول الثنائية كَصور."
+msgstr "تُسرَد الحقول الثنائية وتُحدَّد من القائمة اليسرى دائمًا.\\nإن كان ممكنًا، ستُفسَّر كَصور."
#. BCBCd
#: resources_en_US.properties
-#, fuzzy
msgctxt ""
"resources_en_US.properties\n"
"RID_FORM_3\n"
"property.text"
msgid "A subform is a form that is inserted in another form.\\nUse subforms to show data from tables or queries with a one-to-many relationship."
-msgstr ""
-"النموذج الفرعي هو نموذج مدرج داخل نموذج آخر.\n"
-"تستخدم النماذج الفرعية لإظهار البيانات من الجداول أو الاستعلامات التي ترتبط بعلاقة واحد إلى متعدد."
+msgstr "النموذج الفرعي هو نموذج مدرج داخل نموذج آخر.\\nاستخدم النماذج الفرعية لإظهار البيانات من الجداول أو الاستعلامات التي ترتبط بعلاقة واحد إلى متعدد."
#. h4XzG
#: resources_en_US.properties
@@ -2249,15 +2243,12 @@ msgstr "الحقول في النموذج"
#. fFuDk
#: resources_en_US.properties
-#, fuzzy
msgctxt ""
"resources_en_US.properties\n"
"RID_FORM_19\n"
"property.text"
msgid "The join '<FIELDNAME1>' and '<FIELDNAME2>' has been selected twice.\\nBut joins may only be used once."
-msgstr ""
-"اختير الربط '<FIELDNAME1>' و'<FIELDNAME2>' مرتين.\n"
-"لكن الروابط تُستخدَم مرّة واحدة فقط."
+msgstr "حُدّد الربط '<FIELDNAME1>' و'<FIELDNAME2>' مرتين.\\nلكن الربطات يمكن أن تُستخدَم مرة واحدة فقط."
#. 9uFd2
#: resources_en_US.properties
@@ -2942,7 +2933,7 @@ msgctxt ""
"RID_TABLE_26\n"
"property.text"
msgid "A primary key uniquely identifies each record in a database table. Primary keys ease the linking of information in separate tables, and it is recommended that you have a primary key in every table. Without a primary key, it will not be possible to enter data into this table."
-msgstr "يُميّز المفتاح الأولي كلّ سجلّ في جدول قاعدة البيانات. تسهّل المفاتيح الأولية ربط المعلومات في جداول منفصلة، ومن المستحسن وجود مفتاح أولي في كلّ جدول. بدون مفتاح أوّلي، لن يكون من الممكن إدخال البيانات في هذا الجدول."
+msgstr "يُميّز المفتاح الأولي كلّ سجلّ في جدول قاعدة البيانات. تسهّل المفاتيح الأولية ربط المعلومات في جداول منفصلة، ومن المستحسن وجود مفتاح أولي في كلّ جدول. بِلا مفتاح أوّلي، لن يكون من الممكن إدخال البيانات في هذا الجدول."
#. 3kaaw
#: resources_en_US.properties
@@ -3416,7 +3407,7 @@ msgctxt ""
"STEP_AUTOPILOT_7\n"
"property.text"
msgid "Temporarily unprotect sheet without query"
-msgstr "ألغِ حماية الجدول مؤقتًا بدون استعلام"
+msgstr "ألغِ حماية الجدول مؤقتًا بلا استعلام"
#. BVhae
#: resources_en_US.properties
@@ -3895,7 +3886,7 @@ msgctxt ""
"STEP_LASTPAGE_1\n"
"property.text"
msgid "Retrieving the relevant documents..."
-msgstr "تسجيل المستندات وثيقة الصلة..."
+msgstr "جلب المستندات المعنيّة..."
#. CLY8k
#: resources_en_US.properties
@@ -4340,7 +4331,7 @@ msgctxt ""
"CorrespondenceFields_18\n"
"property.text"
msgid "URL"
-msgstr "عنوان URL"
+msgstr "رابط"
#. bgJJe
#: resources_en_US.properties
@@ -4651,7 +4642,7 @@ msgctxt ""
"MSTemplateCheckbox_2_\n"
"property.text"
msgid "Excel templates"
-msgstr "قوالب إكسل"
+msgstr "قوالب أكسل"
#. hPB75
#: resources_en_US.properties
@@ -4678,7 +4669,7 @@ msgctxt ""
"MSDocumentCheckbox_2_\n"
"property.text"
msgid "Excel documents"
-msgstr "مستندات إكسل"
+msgstr "مستندات أكسل"
#. 9RwAv
#: resources_en_US.properties
@@ -4732,7 +4723,7 @@ msgctxt ""
"ProgressMoreTemplates\n"
"property.text"
msgid "Templates"
-msgstr "القوالب"
+msgstr "قوالب"
#. foG9h
#: resources_en_US.properties
@@ -4796,7 +4787,7 @@ msgctxt ""
"OverwriteallFiles\n"
"property.text"
msgid "Do you want to overwrite documents without being asked?"
-msgstr "هل تريد الكتابة على المستندات بدون السؤال؟"
+msgstr "هل تريد الكتابة على المستندات بلا سؤال؟"
#. rWgBN
#: resources_en_US.properties
@@ -4868,7 +4859,7 @@ msgctxt ""
"ProgressPage2\n"
"property.text"
msgid "Retrieving the relevant documents:"
-msgstr "جلب المستندات وثيقة الصلة:"
+msgstr "جلب المستندات المعنيّة:"
#. zTpAx
#: resources_en_US.properties
@@ -4890,13 +4881,12 @@ msgstr "عُثر على:"
#. 9G86q
#: resources_en_US.properties
-#, fuzzy
msgctxt ""
"resources_en_US.properties\n"
"ProgressPage5\n"
"property.text"
msgid "\"%1 found"
-msgstr "عُثر على %1"
+msgstr "عُثر على \"%1"
#. GmveL
#: resources_en_US.properties
@@ -5013,7 +5003,7 @@ msgctxt ""
"SumMSTableDocuments\n"
"property.text"
msgid "All Excel documents contained in the following directory will be imported:"
-msgstr "كل مستندات إكسل الموجودة في الدليل التالي ستُستورد:"
+msgstr "كل مستندات أكسل الموجودة في الدليل التالي ستُستورد:"
#. kZfUh
#: resources_en_US.properties
diff --git a/source/ar/writerperfect/messages.po b/source/ar/writerperfect/messages.po
index 2238f34077e..fd3acd9d85a 100644
--- a/source/ar/writerperfect/messages.po
+++ b/source/ar/writerperfect/messages.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-03-23 11:46+0100\n"
-"PO-Revision-Date: 2022-02-28 17:26+0000\n"
+"PO-Revision-Date: 2022-03-04 05:39+0000\n"
"Last-Translator: Riyadh Talal <riyadhtalal@gmail.com>\n"
"Language-Team: Arabic <https://translations.documentfoundation.org/projects/libo_ui-7-3/writerperfectmessages/ar/>\n"
"Language: ar\n"
@@ -67,7 +67,7 @@ msgstr "استورد ملف Quattro Pro"
#. wH3TZ
msgctxt "stock"
msgid "_Add"
-msgstr ""
+msgstr "أ_ضف"
#. S9dsC
msgctxt "stock"
diff --git a/source/ast/connectivity/registry/macab/org/openoffice/Office/DataAccess.po b/source/ast/connectivity/registry/macab/org/openoffice/Office/DataAccess.po
index d6ed6624b48..58c6b857d9a 100644
--- a/source/ast/connectivity/registry/macab/org/openoffice/Office/DataAccess.po
+++ b/source/ast/connectivity/registry/macab/org/openoffice/Office/DataAccess.po
@@ -4,16 +4,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2019-07-11 18:38+0200\n"
-"PO-Revision-Date: 2013-05-23 22:25+0000\n"
-"Last-Translator: Anonymous Pootle User\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2022-03-04 05:39+0000\n"
+"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
+"Language-Team: Asturian <https://translations.documentfoundation.org/projects/libo_ui-7-3/connectivityregistrymacaborgopenofficeofficedataaccess/ast/>\n"
"Language: ast\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Accelerator-Marker: ~\n"
-"X-Generator: LibreOffice\n"
+"X-Generator: Weblate 4.8.1\n"
"X-POOTLE-MTIME: 1369347905.000000\n"
#. f596y
@@ -24,4 +24,4 @@ msgctxt ""
"DriverTypeDisplayName\n"
"value.text"
msgid "Mac OS X Address Book"
-msgstr "Llibreta de direiciones de Mac OS X"
+msgstr "Llibreta de señes de Mac OS X"
diff --git a/source/ast/cui/messages.po b/source/ast/cui/messages.po
index 60a0fa6ab2a..609d7064bca 100644
--- a/source/ast/cui/messages.po
+++ b/source/ast/cui/messages.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2022-01-10 12:20+0100\n"
-"PO-Revision-Date: 2022-02-28 17:26+0000\n"
+"PO-Revision-Date: 2022-03-01 21:39+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
"Language-Team: Asturian <https://translations.documentfoundation.org/projects/libo_ui-7-3/cuimessages/ast/>\n"
"Language: ast\n"
@@ -21319,7 +21319,7 @@ msgstr "Cará_uteres al entamu de la llinia"
#: cui/uiconfig/ui/textflowpage.ui:181
msgctxt "textflowpage|labelMaxNum"
msgid "_Maximum consecutive hyphenated lines"
-msgstr ""
+msgstr "Ringleres guionaes consecutives _máximes"
#. GgHhP
#: cui/uiconfig/ui/textflowpage.ui:192
diff --git a/source/ast/dbaccess/messages.po b/source/ast/dbaccess/messages.po
index bba92c25e56..bc494535078 100644
--- a/source/ast/dbaccess/messages.po
+++ b/source/ast/dbaccess/messages.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-11-16 12:08+0100\n"
-"PO-Revision-Date: 2022-02-16 08:40+0000\n"
+"PO-Revision-Date: 2022-03-02 22:39+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
"Language-Team: Asturian <https://translations.documentfoundation.org/projects/libo_ui-7-3/dbaccessmessages/ast/>\n"
"Language: ast\n"
@@ -3013,10 +3013,9 @@ msgstr "Nota: Cuando apaecen rexistros desaniciaos y poro, inactivos, nun pues d
#. fhzxC
#: dbaccess/uiconfig/ui/dbasepage.ui:126
-#, fuzzy
msgctxt "dbasepage|label1"
msgid "Optional Settings"
-msgstr "Configuraciones Opcionales"
+msgstr "Axustes opcionales"
#. sLxfs
#: dbaccess/uiconfig/ui/dbasepage.ui:141
@@ -4043,10 +4042,9 @@ msgstr "Emplegar el catálogu pa bases de datos basaes en ficheros"
#. GMUZg
#: dbaccess/uiconfig/ui/odbcpage.ui:151
-#, fuzzy
msgctxt "odbcpage|label1"
msgid "Optional Settings"
-msgstr "Configuraciones Opcionales"
+msgstr "Axustes opcionales"
#. zjHDt
#: dbaccess/uiconfig/ui/parametersdialog.ui:18
@@ -4071,10 +4069,9 @@ msgstr "Siguiente"
#. xirKR
#: dbaccess/uiconfig/ui/parametersdialog.ui:210
-#, fuzzy
msgctxt "parametersdialog|label1"
msgid "_Parameters"
-msgstr "Parámetros"
+msgstr "_Parámetros"
#. cJozC
#: dbaccess/uiconfig/ui/password.ui:8
@@ -4105,7 +4102,7 @@ msgstr ""
#: dbaccess/uiconfig/ui/password.ui:187
msgctxt "password|label1"
msgid "User “$name$: $”"
-msgstr ""
+msgstr "Usuariu «$name$: $»"
#. 9sAsA
#: dbaccess/uiconfig/ui/querycolmenu.ui:12
diff --git a/source/ast/formula/messages.po b/source/ast/formula/messages.po
index 934dc6fd558..aceb148d99f 100644
--- a/source/ast/formula/messages.po
+++ b/source/ast/formula/messages.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-03-29 16:02+0200\n"
-"PO-Revision-Date: 2022-02-12 16:39+0000\n"
+"PO-Revision-Date: 2022-03-07 07:14+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
"Language-Team: Asturian <https://translations.documentfoundation.org/projects/libo_ui-7-3/formulamessages/ast/>\n"
"Language: ast\n"
@@ -1297,7 +1297,7 @@ msgstr "INDIREUTU"
#: formula/inc/core_resource.hrc:2493
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "ADDRESS"
-msgstr "DIREICIÓN"
+msgstr "SEÑES"
#. oC9GV
#: formula/inc/core_resource.hrc:2494
diff --git a/source/ast/helpcontent2/source/text/scalc/01.po b/source/ast/helpcontent2/source/text/scalc/01.po
index fc8600bf0a0..81be4d2cde6 100644
--- a/source/ast/helpcontent2/source/text/scalc/01.po
+++ b/source/ast/helpcontent2/source/text/scalc/01.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-20 13:20+0100\n"
-"PO-Revision-Date: 2022-02-25 18:38+0000\n"
+"PO-Revision-Date: 2022-03-08 11:39+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
"Language-Team: Asturian <https://translations.documentfoundation.org/projects/libo_help-7-3/textscalc01/ast/>\n"
"Language: ast\n"
@@ -17808,7 +17808,7 @@ msgctxt ""
"hd_id3146968\n"
"help.text"
msgid "ADDRESS"
-msgstr "ADDRESS"
+msgstr "SEÑES"
#. EDZCM
#: 04060109.xhp
diff --git a/source/ast/helpcontent2/source/text/swriter/01.po b/source/ast/helpcontent2/source/text/swriter/01.po
index 77c65459998..578c6318363 100644
--- a/source/ast/helpcontent2/source/text/swriter/01.po
+++ b/source/ast/helpcontent2/source/text/swriter/01.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-11-24 12:03+0100\n"
-"PO-Revision-Date: 2022-02-10 10:40+0000\n"
+"PO-Revision-Date: 2022-03-08 11:39+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
"Language-Team: Asturian <https://translations.documentfoundation.org/projects/libo_help-7-3/textswriter01/ast/>\n"
"Language: ast\n"
@@ -15440,7 +15440,7 @@ msgctxt ""
"hd_id3147405\n"
"help.text"
msgid "<link href=\"text/swriter/01/04990000.xhp\" name=\"Fields\">Field</link>"
-msgstr ""
+msgstr "<link href=\"text/swriter/01/04990000.xhp\" name=\"Fields\">Campu</link>"
#. qVhAD
#: 04990000.xhp
@@ -15575,7 +15575,7 @@ msgctxt ""
"hd_id3149804\n"
"help.text"
msgid "Maximum consecutive hyphenated lines"
-msgstr ""
+msgstr "Ringleres guionaes consecutives máximes"
#. Yv4JU
#: 05030200.xhp
@@ -28031,7 +28031,7 @@ msgctxt ""
"par_idN1057D\n"
"help.text"
msgid "This document shall contain an address block"
-msgstr "Esti documentu va contener un bloque de direiciones"
+msgstr "Esti documentu va contener un bloque de señes"
#. xPizV
#: mailmerge03.xhp
diff --git a/source/ast/sw/messages.po b/source/ast/sw/messages.po
index 0c49f696edb..50f503e7a64 100644
--- a/source/ast/sw/messages.po
+++ b/source/ast/sw/messages.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2022-01-10 12:22+0100\n"
-"PO-Revision-Date: 2022-02-22 00:39+0000\n"
+"PO-Revision-Date: 2022-03-08 08:14+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
"Language-Team: Asturian <https://translations.documentfoundation.org/projects/libo_ui-7-3/swmessages/ast/>\n"
"Language: ast\n"
@@ -6970,7 +6970,7 @@ msgstr "Rempuesta a $1"
#: sw/inc/strings.hrc:839
msgctxt "ST_TITLE_EDIT"
msgid "Edit Address Block"
-msgstr "Editar bloque de direiciones"
+msgstr "Editar el bloque de señes"
#. njGGA
#: sw/inc/strings.hrc:840
@@ -7178,7 +7178,7 @@ msgstr ""
#: sw/inc/strings.hrc:875
msgctxt "ST_ADDRESSBLOCK"
msgid "Insert Address Block"
-msgstr ""
+msgstr "Inxertar un bloque de señes"
#. omRZF
#: sw/inc/strings.hrc:876
@@ -10242,13 +10242,13 @@ msgstr "Amestar a la direición"
#: sw/uiconfig/swriter/ui/addressblockdialog.ui:47
msgctxt "addressblockdialog|AddressBlockDialog"
msgid "New Address Block"
-msgstr "Bloque de direiciones nuevu"
+msgstr "Bloque de señes nuevu"
#. J5BXC
#: sw/uiconfig/swriter/ui/addressblockdialog.ui:128
msgctxt "addressblockdialog|addressesft"
msgid "Address _elements"
-msgstr "_Elementos de direición"
+msgstr "_Elementos de les señes"
#. BFZo7
#: sw/uiconfig/swriter/ui/addressblockdialog.ui:173
@@ -19296,7 +19296,7 @@ msgstr ""
#: sw/uiconfig/swriter/ui/mmaddressblockpage.ui:134
msgctxt "mmaddressblockpage|label3"
msgid "1."
-msgstr ""
+msgstr "1."
#. DNaP6
#: sw/uiconfig/swriter/ui/mmaddressblockpage.ui:164
@@ -19321,13 +19321,13 @@ msgstr ""
#: sw/uiconfig/swriter/ui/mmaddressblockpage.ui:209
msgctxt "mmaddressblockpage|settingsft1"
msgid "3."
-msgstr ""
+msgstr "3."
#. 2rEHZ
#: sw/uiconfig/swriter/ui/mmaddressblockpage.ui:243
msgctxt "mmaddressblockpage|settingsft"
msgid "2."
-msgstr ""
+msgstr "2."
#. KNMW6
#: sw/uiconfig/swriter/ui/mmaddressblockpage.ui:255
@@ -19343,10 +19343,9 @@ msgstr "Amiesta un bloque de direiciones al documentu de combinar correspondenci
#. XGCEE
#: sw/uiconfig/swriter/ui/mmaddressblockpage.ui:291
-#, fuzzy
msgctxt "mmaddressblockpage|settings"
msgid "_More..."
-msgstr "Más..."
+msgstr "_Más..."
#. irYyv
#: sw/uiconfig/swriter/ui/mmaddressblockpage.ui:299
@@ -19404,10 +19403,9 @@ msgstr "Utilice los botones de navegación pa llograr una vista previa de la inf
#. 5FAA9
#: sw/uiconfig/swriter/ui/mmaddressblockpage.ui:477
-#, fuzzy
msgctxt "mmaddressblockpage|documentindex"
msgid "Document: %1"
-msgstr "Documentu: "
+msgstr "Documentu: %1"
#. JmEkU
#: sw/uiconfig/swriter/ui/mmaddressblockpage.ui:509
@@ -19419,14 +19417,13 @@ msgstr ""
#: sw/uiconfig/swriter/ui/mmaddressblockpage.ui:524
msgctxt "mmaddressblockpage|settingsft2"
msgid "4."
-msgstr ""
+msgstr "4."
#. Atojr
#: sw/uiconfig/swriter/ui/mmaddressblockpage.ui:551
-#, fuzzy
msgctxt "mmaddressblockpage|label1"
msgid "Insert Address Block"
-msgstr "Seleicionar bloque de direiciones"
+msgstr "Inxertar un bloque de señes"
#. 6vUFE
#: sw/uiconfig/swriter/ui/mmaddressblockpage.ui:566
@@ -19753,7 +19750,7 @@ msgstr ""
#: sw/uiconfig/swriter/ui/mmoutputtypepage.ui:38
msgctxt "mmoutputtypepage|letterft"
msgid "Send letters to a group of recipients. The letters can contain an address block and a salutation. The letters can be personalized for each recipient."
-msgstr "Unviar cartes a un grupu de destinatarios. Les cartes puen contener un bloque de direición y un saludu, y puen personalizase pa cada destinatariu."
+msgstr "Unviar cartes a un grupu de destinatarios. Les cartes puen contener un bloque de señes y un saludu, y puen personalizase pa cada destinatariu."
#. 8KmNe
#: sw/uiconfig/swriter/ui/mmoutputtypepage.ui:56
@@ -26761,10 +26758,9 @@ msgstr "Escriba la cadena de testu del país o la rexón que nun se debe imprent
#. masP6
#: sw/uiconfig/swriter/ui/selectblockdialog.ui:275
-#, fuzzy
msgctxt "selectblockdialog|label2"
msgid "Address Block Settings"
-msgstr "Configuración del bloque de direiciones"
+msgstr "Axustes del bloque de señes"
#. UE4HD
#: sw/uiconfig/swriter/ui/selectblockdialog.ui:308
diff --git a/source/bg/helpcontent2/source/text/sbasic/shared.po b/source/bg/helpcontent2/source/text/sbasic/shared.po
index b94bb901985..0912e3ad08a 100644
--- a/source/bg/helpcontent2/source/text/sbasic/shared.po
+++ b/source/bg/helpcontent2/source/text/sbasic/shared.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-20 13:20+0100\n"
-"PO-Revision-Date: 2022-01-27 17:38+0000\n"
+"PO-Revision-Date: 2022-03-06 18:39+0000\n"
"Last-Translator: Mihail Balabanov <m.balabanov@gmail.com>\n"
"Language-Team: Bulgarian <https://translations.documentfoundation.org/projects/libo_help-7-3/textsbasicshared/bg/>\n"
"Language: bg\n"
@@ -18158,7 +18158,7 @@ msgctxt ""
"tit\n"
"help.text"
msgid "Mathematical Operators"
-msgstr "Математически оператори"
+msgstr "Математически операции"
#. e5AQV
#: 03070000.xhp
diff --git a/source/bg/helpcontent2/source/text/sdatabase.po b/source/bg/helpcontent2/source/text/sdatabase.po
index 5162cf9e9ca..f0f824adc89 100644
--- a/source/bg/helpcontent2/source/text/sdatabase.po
+++ b/source/bg/helpcontent2/source/text/sdatabase.po
@@ -4,9 +4,9 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-11-19 15:44+0100\n"
-"PO-Revision-Date: 2021-12-25 04:38+0000\n"
+"PO-Revision-Date: 2022-03-02 03:39+0000\n"
"Last-Translator: Mihail Balabanov <m.balabanov@gmail.com>\n"
-"Language-Team: Bulgarian <https://translations.documentfoundation.org/projects/libo_help-master/textsdatabase/bg/>\n"
+"Language-Team: Bulgarian <https://translations.documentfoundation.org/projects/libo_help-7-3/textsdatabase/bg/>\n"
"Language: bg\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -6792,7 +6792,7 @@ msgctxt ""
"par_idN10615\n"
"help.text"
msgid "<ahelp hid=\".\">Enter the name of the JDBC driver for the MySQL database.</ahelp>"
-msgstr ""
+msgstr "<ahelp hid=\".\">Въведете името на JDBC драйвера за базата от данни на MySQL.</ahelp>"
#. evMXj
#: dabapropadd.xhp
@@ -6801,7 +6801,7 @@ msgctxt ""
"par_idN10581\n"
"help.text"
msgid "Character set"
-msgstr ""
+msgstr "Знаков набор"
#. hbyg9
#: dabapropadd.xhp
@@ -6819,7 +6819,7 @@ msgctxt ""
"par_idN10651\n"
"help.text"
msgid "Text and dBASE databases are restricted to character sets with a fixed-size character length, where all characters are encoded with the same number of bytes."
-msgstr ""
+msgstr "Текстовите бази от данни и тези на dBASE са ограничени до знакови набори с фиксирана дължина на знака, в които всички знаци са кодирани с еднакъв брой байтове."
#. VoZcz
#: dabapropadd.xhp
@@ -6837,7 +6837,7 @@ msgctxt ""
"par_idN10653\n"
"help.text"
msgid "<ahelp hid=\".\">Enter the name of the JDBC driver for the Oracle database.</ahelp>"
-msgstr ""
+msgstr "<ahelp hid=\".\">Въведете името на JDBC драйвера за базата от данни на Oracle.</ahelp>"
#. 5KbCC
#: dabapropadd.xhp
@@ -6846,7 +6846,7 @@ msgctxt ""
"par_idN10589\n"
"help.text"
msgid "Driver settings"
-msgstr ""
+msgstr "Настройки на драйвера"
#. tEiQb
#: dabapropadd.xhp
@@ -6855,7 +6855,7 @@ msgctxt ""
"par_idN10672\n"
"help.text"
msgid "<ahelp hid=\".\">Specify additional driver options.</ahelp>"
-msgstr ""
+msgstr "<ahelp hid=\".\">Тук можете да зададете допълнителни настройки на драйвера.</ahelp>"
#. rh98b
#: dabapropadd.xhp
@@ -6864,7 +6864,7 @@ msgctxt ""
"par_idN1058D\n"
"help.text"
msgid "Use catalog for file-based databases"
-msgstr ""
+msgstr "Използване на каталог за файлови бази от данни"
#. TipDh
#: dabapropadd.xhp
@@ -6873,7 +6873,7 @@ msgctxt ""
"par_idN10691\n"
"help.text"
msgid "<ahelp hid=\".\">Uses the current data source of the catalog. This option is useful when the ODBC data source is a database server. Do not select this option if the ODBC data source is a dBASE driver.</ahelp>"
-msgstr ""
+msgstr "<ahelp hid=\".\">Използва текущия източник на данни на каталога. Това е полезно, когато източникът на данни по стандарт ODBC е сървър за бази от данни. Ако ODBC източникът е драйвер за dBASE, оставете това квадратче без отметка.</ahelp>"
#. d3PBB
#: dabapropadd.xhp
@@ -6882,7 +6882,7 @@ msgctxt ""
"par_idN10591\n"
"help.text"
msgid "Base DN"
-msgstr ""
+msgstr "Базов DN"
#. UYaFM
#: dabapropadd.xhp
@@ -6891,7 +6891,7 @@ msgctxt ""
"par_idN106B0\n"
"help.text"
msgid "<ahelp hid=\".\">Enter the starting point to search the LDAP database, for example, dc=com.</ahelp>"
-msgstr ""
+msgstr "<ahelp hid=\".\">Въведете началната точка за търсене на базата от данни LDAP, например dc=com.</ahelp>"
#. bvx2A
#: dabapropadd.xhp
@@ -6900,7 +6900,7 @@ msgctxt ""
"par_idN10595\n"
"help.text"
msgid "Maximum number of records"
-msgstr ""
+msgstr "Максимален брой на записите"
#. AUVCH
#: dabapropadd.xhp
diff --git a/source/bg/helpcontent2/source/text/swriter/01.po b/source/bg/helpcontent2/source/text/swriter/01.po
index 50c0befc574..8d016255f19 100644
--- a/source/bg/helpcontent2/source/text/swriter/01.po
+++ b/source/bg/helpcontent2/source/text/swriter/01.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-11-24 12:03+0100\n"
-"PO-Revision-Date: 2022-02-09 19:38+0000\n"
+"PO-Revision-Date: 2022-03-03 04:39+0000\n"
"Last-Translator: Mihail Balabanov <m.balabanov@gmail.com>\n"
"Language-Team: Bulgarian <https://translations.documentfoundation.org/projects/libo_help-7-3/textswriter01/bg/>\n"
"Language: bg\n"
@@ -4911,7 +4911,7 @@ msgctxt ""
"hd_id3150687\n"
"help.text"
msgid "Write Protection"
-msgstr "Защита от писане"
+msgstr "Защита от промени"
#. NwQMA
#: 04020100.xhp
diff --git a/source/bg/helpcontent2/source/text/swriter/guide.po b/source/bg/helpcontent2/source/text/swriter/guide.po
index 88c2440ba14..200e5550dbd 100644
--- a/source/bg/helpcontent2/source/text/swriter/guide.po
+++ b/source/bg/helpcontent2/source/text/swriter/guide.po
@@ -4,9 +4,9 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-20 13:21+0100\n"
-"PO-Revision-Date: 2022-01-12 14:38+0000\n"
+"PO-Revision-Date: 2022-03-03 04:39+0000\n"
"Last-Translator: Mihail Balabanov <m.balabanov@gmail.com>\n"
-"Language-Team: Bulgarian <https://translations.documentfoundation.org/projects/libo_help-master/textswriterguide/bg/>\n"
+"Language-Team: Bulgarian <https://translations.documentfoundation.org/projects/libo_help-7-3/textswriterguide/bg/>\n"
"Language: bg\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
@@ -14585,7 +14585,7 @@ msgctxt ""
"par_id3149631\n"
"help.text"
msgid "To make a section read-only, select the <emph>Protected</emph> check box in the <emph>Write Protection</emph> area."
-msgstr "За да направите раздел само за четене, отметнете полето <emph>Защитаване</emph> в областта <emph>Защита от писане</emph>."
+msgstr "За да направите раздел само за четене, отметнете полето <emph>Защитаване</emph> в областта <emph>Защита от промени</emph>."
#. QWTQ9
#: section_edit.xhp
diff --git a/source/bg/officecfg/registry/data/org/openoffice/Office/UI.po b/source/bg/officecfg/registry/data/org/openoffice/Office/UI.po
index 0856cf033e9..e004efdd08b 100644
--- a/source/bg/officecfg/registry/data/org/openoffice/Office/UI.po
+++ b/source/bg/officecfg/registry/data/org/openoffice/Office/UI.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-21 12:38+0100\n"
-"PO-Revision-Date: 2022-02-26 21:39+0000\n"
+"PO-Revision-Date: 2022-03-02 22:39+0000\n"
"Last-Translator: Mihail Balabanov <m.balabanov@gmail.com>\n"
"Language-Team: Bulgarian <https://translations.documentfoundation.org/projects/libo_ui-7-3/officecfgregistrydataorgopenofficeofficeui/bg/>\n"
"Language: bg\n"
@@ -18394,7 +18394,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Search Formatted Display String"
-msgstr "Вземане предвид на формàта"
+msgstr "Зачитане на формàта"
#. hoECC
#: GenericCommands.xcu
diff --git a/source/ca/helpcontent2/source/text/swriter/guide.po b/source/ca/helpcontent2/source/text/swriter/guide.po
index c353ae1bbc2..d60555c2ccd 100644
--- a/source/ca/helpcontent2/source/text/swriter/guide.po
+++ b/source/ca/helpcontent2/source/text/swriter/guide.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-20 13:21+0100\n"
-"PO-Revision-Date: 2022-02-25 18:38+0000\n"
+"PO-Revision-Date: 2022-03-08 21:08+0000\n"
"Last-Translator: AssumptaAn <assumptaanglada@gmail.com>\n"
"Language-Team: Catalan <https://translations.documentfoundation.org/projects/libo_help-7-3/textswriterguide/ca/>\n"
"Language: ca\n"
@@ -1358,7 +1358,7 @@ msgctxt ""
"par_idN10A56\n"
"help.text"
msgid "<link href=\"text/shared/02/02160000.xhp\">Character Highlighting Color icon</link>"
-msgstr ""
+msgstr "<link href=\"text/shared/02/02160000.xhp\">Icona del color del ressaltat dels caràcters</link>"
#. 7cNgF
#: background.xhp
@@ -3045,7 +3045,7 @@ msgctxt ""
"hd_id3147684\n"
"help.text"
msgid "<variable id=\"captions_numbers\"><link href=\"text/swriter/guide/captions_numbers.xhp\" name=\"Adding Chapter Numbers to Captions\">Adding Chapter Numbers to Captions</link></variable>"
-msgstr ""
+msgstr "<variable id=\"captions_numbers\"><link href=\"text/swriter/guide/captions_numbers.xhp\" name=\"Adding Chapter Numbers to Captions\">S'estan afegint números de capítol a les llegendes</link></variable>"
#. 5efvj
#: captions_numbers.xhp
@@ -3335,7 +3335,7 @@ msgctxt ""
"par_id3154255\n"
"help.text"
msgid "Choose <menuitem>Tools - Chapter Numbering</menuitem>, and then click the <menuitem>Numbering</menuitem> tab."
-msgstr ""
+msgstr "Trieu <menuitem>Eines - Numeració de capítols</menuitem> i, a continuació, feu clic a la pestanya <menuitem>Numeració</menuitem>."
#. UuWGT
#: chapter_numbering.xhp
@@ -3344,7 +3344,7 @@ msgctxt ""
"par_id3155891\n"
"help.text"
msgid "In the <menuitem>Paragraph style</menuitem> box, select the heading style that you want to add chapter numbers to."
-msgstr ""
+msgstr "Al quadre <menuitem>Estil de paràgraf</menuitem>, seleccioneu l'estil de capçalera al qual voleu afegir números de capítol."
#. EZW6q
#: chapter_numbering.xhp
@@ -3353,7 +3353,7 @@ msgctxt ""
"par_id3150513\n"
"help.text"
msgid "In the <menuitem>Number</menuitem> box, select the numbering scheme that you want to use, and then click <menuitem>OK</menuitem>."
-msgstr ""
+msgstr "Al quadre <menuitem>Número</menuitem>, seleccioneu l'esquema de numeració que voleu utilitzar i, a continuació, feu clic a <menuitem>D'acord</menuitem>."
#. EChDL
#: chapter_numbering.xhp
diff --git a/source/eo/basctl/messages.po b/source/eo/basctl/messages.po
index 9eb750c3a22..15eb9cb0415 100644
--- a/source/eo/basctl/messages.po
+++ b/source/eo/basctl/messages.po
@@ -4,16 +4,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-21 12:37+0100\n"
-"PO-Revision-Date: 2021-05-20 19:37+0000\n"
-"Last-Translator: Donald Rogers <donr2648@clear.net.nz>\n"
-"Language-Team: Esperanto <https://translations.documentfoundation.org/projects/libo_ui-master/basctlmessages/eo/>\n"
+"PO-Revision-Date: 2022-03-09 03:27+0000\n"
+"Last-Translator: Donald Rogers <donr2648@fastmail.fm>\n"
+"Language-Team: Esperanto <https://translations.documentfoundation.org/projects/libo_ui-7-3/basctlmessages/eo/>\n"
"Language: eo\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Accelerator-Marker: ~\n"
-"X-Generator: LibreOffice\n"
+"X-Generator: Weblate 4.8.1\n"
"X-POOTLE-MTIME: 1558238281.000000\n"
#. fniWp
@@ -932,7 +932,7 @@ msgstr "Importi..."
#: basctl/uiconfig/basicide/ui/dialogpage.ui:221
msgctxt "dialogpage|extended_tip|import"
msgid "Locate the %PRODUCTNAME Basic library that you want to add to the current list, and then click Open."
-msgstr ""
+msgstr "Serĉi la %PRODUCTNAME-BASIC-bibliotekon, kiun vi aldonos al la aktuala listo, kaj alklaku al Malfermi."
#. ubE5G
#: basctl/uiconfig/basicide/ui/dialogpage.ui:233
@@ -1100,7 +1100,7 @@ msgstr "Importi..."
#: basctl/uiconfig/basicide/ui/libpage.ui:244
msgctxt "libpage|extended_tip|import"
msgid "Locate the %PRODUCTNAME Basic library that you want to add to the current list, and then click Open."
-msgstr ""
+msgstr "Serĉi la %PRODUCTNAME-BASIC-bibliotekon, kiun vi aldonos al la aktuala listo, kaj alklaku al Malfermi."
#. GhHRH
#: basctl/uiconfig/basicide/ui/libpage.ui:257
@@ -1280,7 +1280,7 @@ msgstr "Importi..."
#: basctl/uiconfig/basicide/ui/modulepage.ui:226
msgctxt "modulepage|extended_tip|import"
msgid "Locate the %PRODUCTNAME Basic library that you want to add to the current list, and then click Open."
-msgstr ""
+msgstr "Serĉi la %PRODUCTNAME-BASIC-bibliotekon, kiun vi aldonos al la aktuala listo, kaj alklaku al Malfermi."
#. GAYBh
#: basctl/uiconfig/basicide/ui/modulepage.ui:238
diff --git a/source/eo/librelogo/source/pythonpath.po b/source/eo/librelogo/source/pythonpath.po
index 3fa0bc2feab..e52984c0421 100644
--- a/source/eo/librelogo/source/pythonpath.po
+++ b/source/eo/librelogo/source/pythonpath.po
@@ -4,16 +4,16 @@ msgstr ""
"Project-Id-Version: LibO 40l10n\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2020-06-29 13:09+0200\n"
-"PO-Revision-Date: 2020-08-18 11:35+0000\n"
-"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
-"Language-Team: Esperanto <https://weblate.documentfoundation.org/projects/libo_ui-master/librelogosourcepythonpath/eo/>\n"
+"PO-Revision-Date: 2022-03-09 03:27+0000\n"
+"Last-Translator: Donald Rogers <donr2648@fastmail.fm>\n"
+"Language-Team: Esperanto <https://translations.documentfoundation.org/projects/libo_ui-7-3/librelogosourcepythonpath/eo/>\n"
"Language: eo\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Accelerator-Marker: ~\n"
-"X-Generator: Weblate 4.1.1\n"
+"X-Generator: Weblate 4.8.1\n"
"X-POOTLE-MTIME: 1494543209.000000\n"
#. tFoAo
@@ -185,7 +185,7 @@ msgctxt ""
"PENCAP\n"
"property.text"
msgid "pencap|linecap"
-msgstr "plumĉapo/liniĉapo"
+msgstr "plumĉapo|liniĉapo"
#. cEECN
#: LibreLogo_en_US.properties
diff --git a/source/eo/svx/messages.po b/source/eo/svx/messages.po
index 9280727ed97..8d094463c5a 100644
--- a/source/eo/svx/messages.po
+++ b/source/eo/svx/messages.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-11-25 19:34+0100\n"
-"PO-Revision-Date: 2022-02-22 00:39+0000\n"
+"PO-Revision-Date: 2022-03-09 03:27+0000\n"
"Last-Translator: Donald Rogers <donr2648@fastmail.fm>\n"
"Language-Team: Esperanto <https://translations.documentfoundation.org/projects/libo_ui-7-3/svxmessages/eo/>\n"
"Language: eo\n"
@@ -9893,7 +9893,7 @@ msgstr "Tangsa"
#: include/svx/strings.hrc:1761
msgctxt "RID_SUBSETMAP"
msgid "Toto"
-msgstr ""
+msgstr "Toto"
#. SEVKT
#: include/svx/strings.hrc:1762
diff --git a/source/es/cui/messages.po b/source/es/cui/messages.po
index 7a0b3c0ca3c..8a553006d96 100644
--- a/source/es/cui/messages.po
+++ b/source/es/cui/messages.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2022-01-10 12:20+0100\n"
-"PO-Revision-Date: 2022-02-28 03:39+0000\n"
+"PO-Revision-Date: 2022-03-09 08:27+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
"Language-Team: Spanish <https://translations.documentfoundation.org/projects/libo_ui-7-3/cuimessages/es/>\n"
"Language: es\n"
@@ -2744,7 +2744,7 @@ msgstr ""
#: cui/inc/tipoftheday.hrc:152
msgctxt "RID_CUI_TIPOFTHEDAY"
msgid "To quickly get a math object in Writer type your formula, mark it, and use Insert ▸ Object ▸ Formula to convert the text."
-msgstr ""
+msgstr "Para obtener rápidamente un objeto matemático en Writer, escriba la fórmula, selecciónela y use Insertar ▸ Objeto ▸ Fórmula para convertir el texto."
#. Zj7NA
#: cui/inc/tipoftheday.hrc:153
@@ -2793,7 +2793,7 @@ msgstr ""
#: cui/inc/tipoftheday.hrc:160
msgctxt "RID_CUI_TIPOFTHEDAY"
msgid "You can customize the middle mouse button per Tools ▸ Options ▸ %PRODUCTNAME ▸ View ▸ Middle Mouse button."
-msgstr ""
+msgstr "Puede personalizar el comportamiento del botón central del ratón a través de Herramientas ▸ Opciones ▸ %PRODUCTNAME ▸ Ver ▸ Botón central."
#. qQsXD
#: cui/inc/tipoftheday.hrc:161
@@ -3386,7 +3386,7 @@ msgstr "¿No obtiene el resultado esperado con la función BUSCARV? Con las func
#: cui/inc/tipoftheday.hrc:255
msgctxt "RID_CUI_TIPOFTHEDAY"
msgid "Want to show hidden column A? Click a cell in column B, press the left mouse button, move the mouse to the left, release. Then switch it on via Format ▸ Columns ▸ Show."
-msgstr ""
+msgstr "¿Quiere mostrar la columna oculta A? Pulse en una celda en la columna B y, con el botón principal del ratón, muévalo hacia la izquierda y suéltelo. Luego, para activarla, vaya a Formato ▸ Columnas ▸ Mostrar."
#. Wzpbw
#: cui/inc/tipoftheday.hrc:256
@@ -5957,7 +5957,7 @@ msgstr ""
#: cui/uiconfig/ui/bulletandposition.ui:821
msgctxt "bulletandposition|extended_tip|numberingwidthmf"
msgid " Enter or select the width of the list element. "
-msgstr ""
+msgstr " Introduzca o seleccione la anchura del elemento de la lista. "
#. CRdNb
#: cui/uiconfig/ui/bulletandposition.ui:832
@@ -15032,7 +15032,7 @@ msgstr "Reinicializa las modificaciones realizadas en la pestaña actual a aquel
#: cui/uiconfig/ui/optionsdialog.ui:74
msgctxt "optionsdialog|apply"
msgid "Save all modifications without closing dialog. Cannot be reverted with Reset."
-msgstr ""
+msgstr "Guarda todas las modificaciones sin cerrar el cuadro de diálogo. No se puede revertir con Restablecer."
#. isfxZ
#: cui/uiconfig/ui/optionsdialog.ui:91
@@ -15050,7 +15050,7 @@ msgstr "Guarda todos los cambios y cierra el cuadro de diálogo."
#: cui/uiconfig/ui/optionsdialog.ui:111
msgctxt "optionsdialog|cancel"
msgid "Discard all unsaved changes and close dialog."
-msgstr ""
+msgstr "Descarta todos los cambios no guardados y cierra el cuadro de diálogo."
#. mVmUq
#: cui/uiconfig/ui/optionsdialog.ui:114
@@ -15488,7 +15488,7 @@ msgstr "Editar módulos de idioma disponibles"
#: cui/uiconfig/ui/optlingupage.ui:152
msgctxt "lingumodulesedit"
msgid "To edit a language module, select it and click Edit."
-msgstr ""
+msgstr "Para editar un módulo de idioma, selecciónelo y pulse en Editar."
#. SBvTc
#: cui/uiconfig/ui/optlingupage.ui:218
@@ -15884,7 +15884,7 @@ msgstr "_Editar…"
#: cui/uiconfig/ui/optpathspage.ui:191
msgctxt "edit"
msgid "Click to display the Select Path or Edit Paths dialog."
-msgstr ""
+msgstr "Pulse para mostrar el cuadro de diálogo Seleccionar ruta o Editar rutas."
#. G5xyX
#: cui/uiconfig/ui/optpathspage.ui:210
diff --git a/source/es/filter/messages.po b/source/es/filter/messages.po
index f43c4518760..c5f91951cb9 100644
--- a/source/es/filter/messages.po
+++ b/source/es/filter/messages.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-11-19 15:43+0100\n"
-"PO-Revision-Date: 2022-02-28 03:39+0000\n"
+"PO-Revision-Date: 2022-03-09 08:27+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
"Language-Team: Spanish <https://translations.documentfoundation.org/projects/libo_ui-7-3/filtermessages/es/>\n"
"Language: es\n"
@@ -796,7 +796,7 @@ msgstr "Exportar solo páginas de _notas"
#: filter/uiconfig/ui/pdfgeneralpage.ui:952
msgctxt "pdfgeneralpage|extended_tip|onlynotes"
msgid "Exports only the Notes page views."
-msgstr ""
+msgstr "Exporta solo las vistas de las páginas de notas."
#. MpRUp
#: filter/uiconfig/ui/pdfgeneralpage.ui:963
@@ -1876,7 +1876,7 @@ msgstr "Muestra un diálogo Abrir para abrir un filtro desde un paquete de filtr
#: filter/uiconfig/ui/xmlfiltersettings.ui:290
msgctxt "xmlfiltersettings|extended_tip|XMLFilterSettingsDialog"
msgid "Opens the XML Filter Settings dialog, where you can create, edit, delete, and test filters to import and to export XML files."
-msgstr ""
+msgstr "Abre el cuadro de diálogo Configuración de filtros XML, donde se puede crear, editar, eliminar y probar filtros para importar y exportar archivos XML."
#. rLZ5z
#: filter/uiconfig/ui/xmlfiltertabpagegeneral.ui:23
@@ -1948,7 +1948,7 @@ msgstr "Introduzca o edite información general para un filtro XML."
#: filter/uiconfig/ui/xmlfiltertabpagetransformation.ui:24
msgctxt "xmlfiltertabpagetransformation|label2"
msgid "_DocType:"
-msgstr "_DocType:"
+msgstr "Tipo de _documento:"
#. x2ex7
#: filter/uiconfig/ui/xmlfiltertabpagetransformation.ui:44
diff --git a/source/es/helpcontent2/source/text/sbasic/guide.po b/source/es/helpcontent2/source/text/sbasic/guide.po
index 78c5ba15dd1..a979225b56d 100644
--- a/source/es/helpcontent2/source/text/sbasic/guide.po
+++ b/source/es/helpcontent2/source/text/sbasic/guide.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-10-20 13:08+0200\n"
-"PO-Revision-Date: 2022-02-28 17:35+0000\n"
+"PO-Revision-Date: 2022-03-04 07:38+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
"Language-Team: Spanish <https://translations.documentfoundation.org/projects/libo_help-7-3/textsbasicguide/es/>\n"
"Language: es\n"
@@ -734,7 +734,7 @@ msgctxt ""
"bas_id131630537785605\n"
"help.text"
msgid "' Creates the UNO struct that will store the new line format"
-msgstr ""
+msgstr "' Crea la estructura UNO que almacenará el formato de línea nuevo"
#. qpADJ
#: calc_borders.xhp
diff --git a/source/es/helpcontent2/source/text/sbasic/shared.po b/source/es/helpcontent2/source/text/sbasic/shared.po
index d92861ce4ac..34f5f830890 100644
--- a/source/es/helpcontent2/source/text/sbasic/shared.po
+++ b/source/es/helpcontent2/source/text/sbasic/shared.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-20 13:20+0100\n"
-"PO-Revision-Date: 2022-02-10 10:40+0000\n"
+"PO-Revision-Date: 2022-03-09 10:50+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
"Language-Team: Spanish <https://translations.documentfoundation.org/projects/libo_help-7-3/textsbasicshared/es/>\n"
"Language: es\n"
@@ -39308,7 +39308,7 @@ msgctxt ""
"par_id601592355758534\n"
"help.text"
msgid "MULTINOMIAL"
-msgstr ""
+msgstr "MULTINOMIAL"
#. wDMMt
#: calc_functions.xhp
diff --git a/source/es/helpcontent2/source/text/scalc/01.po b/source/es/helpcontent2/source/text/scalc/01.po
index 78e6c809296..786370147f7 100644
--- a/source/es/helpcontent2/source/text/scalc/01.po
+++ b/source/es/helpcontent2/source/text/scalc/01.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-20 13:20+0100\n"
-"PO-Revision-Date: 2022-02-28 17:35+0000\n"
+"PO-Revision-Date: 2022-03-09 18:23+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
"Language-Team: Spanish <https://translations.documentfoundation.org/projects/libo_help-7-3/textscalc01/es/>\n"
"Language: es\n"
@@ -4451,7 +4451,7 @@ msgctxt ""
"par_id761615842549780\n"
"help.text"
msgid "<emph>Database</emph>. The cell range of the database."
-msgstr "<emph>Base de datos</emph>. El intervalo de celas de la base de datos."
+msgstr "<emph>BaseDeDatos</emph>. El intervalo de celdas de la base de datos."
#. nw3ya
#: 04060101.xhp
@@ -4469,7 +4469,7 @@ msgctxt ""
"par_id471615842721059\n"
"help.text"
msgid "<emph>SearchCriteria</emph>. The cell range of a separate area of the spreadsheet containing search criteria."
-msgstr ""
+msgstr "<emph>CriteriosDeBúsqueda</emph>. El intervalo de celdas de un área separada de la hoja de cálculo que contiene los criterios de búsqueda."
#. RT3mc
#: 04060101.xhp
@@ -5279,7 +5279,7 @@ msgctxt ""
"par_id171616180137385\n"
"help.text"
msgid "Calc reports Err:502 (invalid argument) if multiple matches are found, or a #VALUE! error (wrong data type) if no matches are found. A #VALUE! error is also reported if a single match is found but the relevant cell is empty."
-msgstr ""
+msgstr "Calc informa Err: 502 (argumento no válido) si se encuentran múltiples coincidencias, o un error #¡VALOR! (tipo de datos incorrecto) si no se encuentran coincidencias. También se devuelve un error #¡VALOR! si se encuentra una sola coincidencia pero la celda correspondiente está vacía."
#. oFi8J
#: 04060101.xhp
@@ -5513,7 +5513,7 @@ msgctxt ""
"bm_id3159269\n"
"help.text"
msgid "<bookmark_value>DPRODUCT function</bookmark_value><bookmark_value>multiplying;cell contents in Calc databases</bookmark_value>"
-msgstr ""
+msgstr "<bookmark_value>Función BDPRODUCTO</bookmark_value><bookmark_value>multiplicar;contenido de celda en bases de datos de Calc</bookmark_value>"
#. gvW9Q
#: 04060101.xhp
@@ -8402,7 +8402,7 @@ msgctxt ""
"par_id5863826\n"
"help.text"
msgid "<input>=A2+B2+STYLE(IF(CURRENT()>10;\"Red\";\"Default\"))</input>"
-msgstr ""
+msgstr "<input>=A2+B2+ESTILO(SI(ACTUAL()>10;\"Rojo\";\"Predeterminado\"))</input>"
#. fNamE
#: 04060104.xhp
@@ -9302,7 +9302,7 @@ msgctxt ""
"par_id31537481\n"
"help.text"
msgid "IFNA(Value; Alternate_value)"
-msgstr ""
+msgstr "SI.ND(Valor; Valor_alternativo)"
#. 6oj7E
#: 04060104.xhp
@@ -9860,7 +9860,7 @@ msgctxt ""
"par_id3147355\n"
"help.text"
msgid "CELL(\"InfoType\" [; Reference])"
-msgstr ""
+msgstr "CELDA(\"TipoInformación\" [; Referencia])"
#. wjBKt
#: 04060104.xhp
@@ -10643,7 +10643,7 @@ msgctxt ""
"par_id3150867\n"
"help.text"
msgid "<input>=IF(A1>5;100;\"too small\")</input> If the value in <literal>A1</literal> is greater than <literal>5</literal>, the value <literal>100</literal> is returned; otherwise, the text <literal>too small</literal> is returned."
-msgstr ""
+msgstr "<input>=SI(A1>5;100;\"demasiado pequeño\")</input> Si el valor en <literal>A1</literal> es mayor que <literal>5</literal>, devuelve <literal>100</literal>; de lo contrario, devuelve el texto <literal>demasiado pequeño</literal>."
#. jvk3H
#: 04060105.xhp
@@ -10652,7 +10652,7 @@ msgctxt ""
"par_id71607569817532\n"
"help.text"
msgid "<input>=IF(A1>5;;\"too small\")</input> If the value in <literal>A1</literal> is greater than <literal>5</literal>, the value <literal>0</literal> is returned because empty parameters are considered to be <literal>0</literal>; otherwise, the text <literal>too small</literal> is returned."
-msgstr ""
+msgstr "<input>=SI(A1>5;;\"demasiado pequeño\")</input> Si el valor en <literal>A1</literal> es mayor que <literal>5</literal>, devuelve <literal>0 </literal> porque los parámetros vacíos se consideran <literal>0</literal>; de lo contrario, devuelve el texto <literal>demasiado pequeño</literal>."
#. Q6yTs
#: 04060105.xhp
@@ -11642,7 +11642,7 @@ msgctxt ""
"par_id5036167\n"
"help.text"
msgid "%PRODUCTNAME results 0 for ATAN2(0;0)."
-msgstr ""
+msgstr "%PRODUCTNAME da como resultado 0 para ATAN2(0;0)."
#. BCKQE
#: 04060106.xhp
@@ -13199,7 +13199,7 @@ msgctxt ""
"par_id3155660\n"
"help.text"
msgid "MULTINOMIAL(<embedvar href=\"text/scalc/01/ful_func.xhp#number255_1\" markup=\"keep\"/>)"
-msgstr ""
+msgstr "MULTINOMIAL(<embedvar href=\"text/scalc/01/ful_func.xhp#number255_1\" markup=\"keep\"/>)"
#. YLFwC
#: 04060106.xhp
@@ -13280,7 +13280,7 @@ msgctxt ""
"par_id241599040594931\n"
"help.text"
msgid "<literal>=POWER(0,0)</literal> returns 1."
-msgstr ""
+msgstr "<literal>=POTENCIA(0,0)</literal> devuelve 1."
#. D3Ghv
#: 04060106.xhp
@@ -13469,7 +13469,7 @@ msgctxt ""
"par_id3160368\n"
"help.text"
msgid "<ahelp hid=\"HID_FUNC_QUADRATESUMME\">Calculates the sum of the squares of a set of numbers.</ahelp>"
-msgstr ""
+msgstr "<ahelp hid=\"HID_FUNC_QUADRATESUMME\">Calcula la suma de los cuadrados de un conjunto de números.</ahelp>"
#. 2gNvN
#: 04060106.xhp
@@ -14261,7 +14261,7 @@ msgctxt ""
"par_id3152043\n"
"help.text"
msgid "<emph>Range</emph> is the range to which the criterion is to be applied."
-msgstr ""
+msgstr "<emph>Intervalo</emph> es el intervalo al que se aplicará el criterio."
#. FCxrw
#: 04060106.xhp
@@ -14882,7 +14882,7 @@ msgctxt ""
"par_id901631901062056\n"
"help.text"
msgid "<emph>Value</emph> is the amount of the currency to be converted."
-msgstr ""
+msgstr "<emph>Valor</emph> es la cantidad de moneda que se va a convertir."
#. AE6XU
#: 04060106.xhp
@@ -15377,7 +15377,7 @@ msgctxt ""
"bm_id461590241346526\n"
"help.text"
msgid "<bookmark_value>random numbers non-volatile; between limits</bookmark_value><bookmark_value>RANDBETWEEN.NV function</bookmark_value>"
-msgstr ""
+msgstr "<bookmark_value>números aleatorios no volátiles;entre límites</bookmark_value><bookmark_value>función ALEATORIO.ENTRE.NV</bookmark_value>"
#. cgHiZ
#: 04060106.xhp
@@ -15386,7 +15386,7 @@ msgctxt ""
"hd_id171590240366277\n"
"help.text"
msgid "RANDBETWEEN.NV"
-msgstr ""
+msgstr "ALEATORIO.ENTRE.NV"
#. Akjyr
#: 04060106.xhp
@@ -15404,7 +15404,7 @@ msgctxt ""
"par_id181590240522012\n"
"help.text"
msgid "RANDBETWEEN.NV(Bottom; Top)"
-msgstr "ALEATORIOENTRE.NV(Inferior; Superior)"
+msgstr "ALEATORIO.ENTRE.NV(Inferior; Superior)"
#. q82vw
#: 04060106.xhp
@@ -15422,7 +15422,7 @@ msgctxt ""
"par_id151590240999839\n"
"help.text"
msgid "<input>=RANDBETWEEN.NV(20;30)</input> returns a non-volatile integer between 20 and 30."
-msgstr "<input>=ALEATORIOENTRE.NV(20;30)</input> devuelve un número entero no volátil entre 20 y 30."
+msgstr "<input>=ALEATORIO.ENTRE.NV(20;30)</input> devuelve un número entero no volátil entre 20 y 30."
#. cAQDh
#: 04060106.xhp
@@ -15431,7 +15431,7 @@ msgctxt ""
"par_id1001590241005601\n"
"help.text"
msgid "<input>=RANDBETWEEN.NV(A1;30)</input> returns a non-volatile integer between the value of cell A1 and 30. The function is recalculated when the contents of cell A1 change."
-msgstr "<input>=ALEATORIOENTRE.NV(A1;30)</input> devuelve un número entero no volátil entre el valor de la celda A1 y 30. La función se vuelve a calcular cuando cambia el contenido de la celda A1."
+msgstr "<input>=ALEATORIO.ENTRE.NV(A1;30)</input> devuelve un número entero no volátil entre el valor de la celda A1 y 30. La función se vuelve a calcular cuando cambia el contenido de la celda A1."
#. odp65
#: 04060106.xhp
@@ -15503,7 +15503,7 @@ msgctxt ""
"par_id801590242114296\n"
"help.text"
msgid "Use the Fill Cell command with random numbers (<menuitem>Sheet - Fill Cells - Fill Random Numbers</menuitem>)."
-msgstr ""
+msgstr "Utilice la orden Rellenar celdas con números aleatorios (<menuitem>Hoja ▸ Rellenar celdas ▸ Rellenar números aleatorios</menuitem>)."
#. o9wUN
#: 04060106.xhp
@@ -15566,7 +15566,7 @@ msgctxt ""
"par_id271590239748534\n"
"help.text"
msgid "This function produces a non-volatile random number on input. A non-volatile function is not recalculated at new input events. The function does not recalculate when pressing <keycode>F9</keycode>, except when the cursor is on the cell containing the function. The function is recalculated when opening the file."
-msgstr ""
+msgstr "Esta función produce un número aleatorio no volátil en la entrada. Una función no volátil no se vuelve a calcular al ocurrir sucesos de entrada nuevis. La función no se vuelve a calcular al presionar <keycode>F9</keycode>, excepto cuando el cursor está en la celda que contiene la función. La función se vuelve a calcular al abrir el archivo."
#. sCwno
#: 04060106.xhp
@@ -15701,7 +15701,7 @@ msgctxt ""
"hd_id3150713\n"
"help.text"
msgid "When do you use array formulas?"
-msgstr "¿Cuándo se deben utilizar fórmulas matriciales?"
+msgstr "¿Cuándo se deben utilizar las fórmulas matriciales?"
#. ytL94
#: 04060107.xhp
@@ -17294,7 +17294,7 @@ msgctxt ""
"par_id3163347\n"
"help.text"
msgid "SUMPRODUCT(Array 1[; Array 2;][...;[Array 255]])"
-msgstr ""
+msgstr "SUMA.PRODUCTO(Matriz 1[; Matriz 2;][...;[Matriz 255]])"
#. gGK9K
#: 04060107.xhp
@@ -17312,7 +17312,7 @@ msgctxt ""
"par_idN11B19\n"
"help.text"
msgid "At least one array must be part of the argument list. If only one array is given, all array elements are summed. If more than one array is given, they must all be the same size."
-msgstr ""
+msgstr "Al menos una matriz debe ser parte de la lista de argumentos. Si solo se proporciona una matriz, se suman todos los elementos de la matriz. Si se proporciona más de una matriz, todas deben tener el mismo tamaño."
#. DgsMB
#: 04060107.xhp
@@ -17717,7 +17717,7 @@ msgctxt ""
"par_id3157874\n"
"help.text"
msgid "<variable id=\"statistiktext\">This category contains the <emph>Statistics</emph> functions.</variable>"
-msgstr ""
+msgstr "<variable id=\"statistiktext\">Esta categoría contiene las funciones de <emph>Estadísticas</emph>.</variable>"
#. HiTED
#: 04060108.xhp
@@ -17807,7 +17807,7 @@ msgctxt ""
"hd_id3146968\n"
"help.text"
msgid "ADDRESS"
-msgstr "ADDRESS"
+msgstr "DIRECCION"
#. EDZCM
#: 04060109.xhp
@@ -19301,7 +19301,7 @@ msgctxt ""
"par_id3149302\n"
"help.text"
msgid "STYLE(\"Style\" [; Time [; \"Style2\"]])"
-msgstr ""
+msgstr "ESTILO(\"Estilo\" [; Tiempo [; \"Estilo2\"]])"
#. Q8SMG
#: 04060109.xhp
@@ -19877,7 +19877,7 @@ msgctxt ""
"par_idN11830\n"
"help.text"
msgid "<input>=HYPERLINK(\"http://www.\";\"Click \") & \"example.org\"</input> displays the text Click example.org in the cell and executes the hyperlink http://www.example.org when clicked."
-msgstr ""
+msgstr "<input>=HIPERVINCULO(\"http://www.\";\"Visite \") & \"ejemplo.org\"</input> muestra el texto «Visite ejemplo.org» en la celda y ejecuta el hiperenlace http://www.ejemplo.org cuando se pulsa con el ratón."
#. DDEtK
#: 04060109.xhp
@@ -21020,7 +21020,7 @@ msgctxt ""
"par_id161617202295558\n"
"help.text"
msgid "<item type=\"input\">=FIXED(12134567.89;-3;1)</item> returns 12135000 as a text string."
-msgstr ""
+msgstr "<item type=\"input\">=FIJO(12134567.89;-3;1)</item> devuelve 12135000 como una cadena de texto."
#. NmXWD
#: 04060110.xhp
@@ -21083,7 +21083,7 @@ msgctxt ""
"par_id3147274\n"
"help.text"
msgid "<emph>Text</emph> is the text where the initial partial words are to be determined."
-msgstr "<emph>Texto</emph> es el texto donde las palabras parciales iniciales deben determinarse."
+msgstr "<emph>Texto</emph> es la cadena de texto cuyas palabras parciales iniciales se determinarán."
#. BQHUb
#: 04060110.xhp
@@ -21137,7 +21137,7 @@ msgctxt ""
"par_id2946786\n"
"help.text"
msgid "LEFTB(\"Text\" [; Number_bytes])"
-msgstr ""
+msgstr "IZQUIERDAB(\"Texto\" [; Número_bytes])"
#. e6CdQ
#: 04060110.xhp
@@ -21551,7 +21551,7 @@ msgctxt ""
"par_id2958417\n"
"help.text"
msgid "<item type=\"input\">=MIDB(\"中国\";1;0)</item> returns \"\" (0 bytes is always an empty string)."
-msgstr ""
+msgstr "<item type=\"input\">=EXTRAEB(\"中国\";1;0)</item> devuelve «» (0 bytes siempre es una cadena vacía)."
#. q6dWL
#: 04060110.xhp
@@ -21560,7 +21560,7 @@ msgctxt ""
"par_id2958427\n"
"help.text"
msgid "<item type=\"input\">=MIDB(\"中国\";1;1)</item> returns \" \" (1 byte is only half a DBCS character and therefore the result is a space character)."
-msgstr "<item type=\"input\">=EXTRAEB(\"中国\";1;1)</item> devuelve \" \" (1 byte es solo la mitad de un carácter DBCS y, por lo tanto, el resultado es un carácter de espacio)."
+msgstr "<item type=\"input\">=EXTRAEB(\"中国\";1;1)</item> devuelve « » (1 byte es solo la mitad de un carácter DBCS y, por lo tanto, el resultado es un carácter de espacio)."
#. CfNES
#: 04060110.xhp
@@ -21569,7 +21569,7 @@ msgctxt ""
"par_id2958437\n"
"help.text"
msgid "<item type=\"input\">=MIDB(\"中国\";1;2)</item> returns \"中\" (2 bytes constitute one complete DBCS character)."
-msgstr ""
+msgstr "<item type=\"input\">=EXTRAEB(\"中国\";1;2)</item> devuelve «中» (2 bytes constituyen un carácter DBCS completo)."
#. wBLqC
#: 04060110.xhp
@@ -21578,7 +21578,7 @@ msgctxt ""
"par_id2958447\n"
"help.text"
msgid "<item type=\"input\">=MIDB(\"中国\";1;3)</item> returns \"中 \" (3 bytes constitute one and a half DBCS character; the last byte results in a space character)."
-msgstr ""
+msgstr "<item type=\"input\">=EXTRAEB(\"中国\";1;3)</item> devuelve «中 » (3 bytes constituyen un carácter DBCS y medio; el último byte da como resultado un carácter de espacio)."
#. GedmG
#: 04060110.xhp
@@ -21587,7 +21587,7 @@ msgctxt ""
"par_id2958457\n"
"help.text"
msgid "<item type=\"input\">=MIDB(\"中国\";1;4)</item> returns \"中国\" (4 bytes constitute two complete DBCS characters)."
-msgstr ""
+msgstr "<item type=\"input\">=EXTRAEB(\"中国\";1;4)</item> devuelve «中国» (4 bytes constituyen dos caracteres DBCS completos)."
#. dAMAA
#: 04060110.xhp
@@ -21596,7 +21596,7 @@ msgctxt ""
"par_id2958467\n"
"help.text"
msgid "<item type=\"input\">=MIDB(\"中国\";2;1)</item> returns \" \" (byte position 2 is not at the beginning of a character in a DBCS string; 1 space character is returned)."
-msgstr ""
+msgstr "<item type=\"input\">=EXTRAEB(\"中国\";2;1)</item> devuelve « » (la posición de byte 2 no está al principio de un carácter en una cadena DBCS; se devuelve 1 carácter de espacio)."
#. SXLij
#: 04060110.xhp
@@ -24521,7 +24521,7 @@ msgctxt ""
"par_id3153291\n"
"help.text"
msgid "Value or Len"
-msgstr "Value or Len"
+msgstr "Valor o Len"
#. 4EsF8
#: 04060112.xhp
@@ -24575,7 +24575,7 @@ msgctxt ""
"par_id3151322\n"
"help.text"
msgid "32 or 26+Len"
-msgstr "32 or 26+Len"
+msgstr "32 o 26+Len"
#. VDmRK
#: 04060112.xhp
diff --git a/source/es/helpcontent2/source/text/shared/00.po b/source/es/helpcontent2/source/text/shared/00.po
index 6b2a6027da2..657b7c8d558 100644
--- a/source/es/helpcontent2/source/text/shared/00.po
+++ b/source/es/helpcontent2/source/text/shared/00.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-21 12:38+0100\n"
-"PO-Revision-Date: 2022-02-28 17:35+0000\n"
+"PO-Revision-Date: 2022-03-03 04:39+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
"Language-Team: Spanish <https://translations.documentfoundation.org/projects/libo_help-7-3/textshared00/es/>\n"
"Language: es\n"
@@ -14693,7 +14693,7 @@ msgctxt ""
"par_id3150396\n"
"help.text"
msgid "Choose <menuitem>Tools - AutoCorrect - Apply and Edit Changes</menuitem>. The <emph>AutoCorrect</emph> dialog appears.<br/>Click the <emph>Edit Changes</emph> button and navigate to the <emph>List</emph> tab."
-msgstr ""
+msgstr "Vaya a <menuitem>Herramientas ▸ Corrección automática ▸ Aplicar y editar cambios</menuitem>. Aparece el cuadro de diálogo <emph>Corrección automática</emph>.<br/>Pulse en el botón <emph>Editar cambios</emph> y navegue a la pestaña <emph>Lista</emph>."
#. DRyHd
#: edit_menu.xhp
diff --git a/source/es/helpcontent2/source/text/shared/01.po b/source/es/helpcontent2/source/text/shared/01.po
index f7ebe9bde9f..55983073602 100644
--- a/source/es/helpcontent2/source/text/shared/01.po
+++ b/source/es/helpcontent2/source/text/shared/01.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2022-01-10 12:21+0100\n"
-"PO-Revision-Date: 2022-02-28 17:35+0000\n"
+"PO-Revision-Date: 2022-03-03 04:39+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
"Language-Team: Spanish <https://translations.documentfoundation.org/projects/libo_help-7-3/textshared01/es/>\n"
"Language: es\n"
@@ -37130,7 +37130,7 @@ msgctxt ""
"par_id791632159942582\n"
"help.text"
msgid "To turn off AutoCorrect in %PRODUCTNAME Writer choose <menuitem>Tools - AutoCorrect - While Typing</menuitem>. Refer to the help page <link href=\"text/swriter/guide/auto_off.xhp\" name=\"auto_off_link1\">Turning Off AutoCorrect</link> to learn more about deactivating AutoCorrect in %PRODUCTNAME Writer."
-msgstr ""
+msgstr "Para inhabilitar la corrección automática en %PRODUCTNAME Writer, seleccione <menuitem>Herramientas ▸ Corrección automática ▸ Al escribir</menuitem>. Consulte la página de ayuda <link href=\"text/swriter/guide/auto_off.xhp\" name=\"auto_off_link1\">Desactivar la corrección automática</link> para conocer más sobre la desactivación de esta función en %PRODUCTNAME Writer."
#. rqivx
#: 06040000.xhp
@@ -37166,7 +37166,7 @@ msgctxt ""
"tit\n"
"help.text"
msgid "Options (AutoCorrect)"
-msgstr "Opciones (corrección automática)"
+msgstr "Opciones (Corrección automática)"
#. tg4my
#: 06040100.xhp
@@ -43151,7 +43151,7 @@ msgctxt ""
"par_id3152937\n"
"help.text"
msgid "<ahelp hid=\".uno:OpenXMLFilterSettings\">Opens the <emph>XML Filter Settings</emph> dialog, where you can create, edit, delete, and test filters to import and to export XML files.</ahelp>"
-msgstr "<ahelp hid=\".uno:OpenXMLFilterSettings\">Abre el cuadro de diálogo <emph>Configuración de filtros XML</emph>, donde es posible crear, editar, eliminar y poner a prueba filtros para importar o exportar archivos XML.</ahelp>"
+msgstr "<ahelp hid=\".uno:OpenXMLFilterSettings\">Abre el cuadro de diálogo <emph>Configuración de filtros XML</emph>, donde se puede crear, editar, eliminar y probar filtros para importar y exportar archivos XML.</ahelp>"
#. 23hBt
#: 06150000.xhp
@@ -43628,7 +43628,7 @@ msgctxt ""
"hd_id3148668\n"
"help.text"
msgid "DocType"
-msgstr "DocType"
+msgstr "Tipo de documento"
#. YNKnw
#: 06150120.xhp
diff --git a/source/es/helpcontent2/source/text/shared/guide.po b/source/es/helpcontent2/source/text/shared/guide.po
index 85791935dce..8a5bb973554 100644
--- a/source/es/helpcontent2/source/text/shared/guide.po
+++ b/source/es/helpcontent2/source/text/shared/guide.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-20 13:21+0100\n"
-"PO-Revision-Date: 2022-02-15 08:38+0000\n"
+"PO-Revision-Date: 2022-03-03 04:39+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
"Language-Team: Spanish <https://translations.documentfoundation.org/projects/libo_help-7-3/textsharedguide/es/>\n"
"Language: es\n"
@@ -13055,7 +13055,7 @@ msgctxt ""
"bm_id3145136\n"
"help.text"
msgid "<bookmark_value>Gallery; inserting pictures from</bookmark_value><bookmark_value>pictures; inserting from Gallery</bookmark_value><bookmark_value>objects; inserting from Gallery</bookmark_value><bookmark_value>patterns for objects</bookmark_value><bookmark_value>textures;inserting from Gallery</bookmark_value><bookmark_value>backgrounds;inserting from Gallery</bookmark_value><bookmark_value>inserting;objects from Gallery</bookmark_value><bookmark_value>copying;from Gallery</bookmark_value>"
-msgstr "<bookmark_value>Galería; insertar imágenes de </bookmark_value><bookmark_value>imágenes; insertar desde la Galeria</bookmark_value><bookmark_value>objectos; insertar desde la Galería</bookmark_value><bookmark_value>patrones de objetos</bookmark_value><bookmark_value>texturas;insertar desde la Galería</bookmark_value><bookmark_value>fondos;insertar desde la Galería</bookmark_value><bookmark_value>insertar;objetos desde la Galería</bookmark_value><bookmark_value>copiar;desde la Galería</bookmark_value>"
+msgstr "<bookmark_value>Galería; insertar imágenes de </bookmark_value><bookmark_value>imágenes; insertar desde la Galeria</bookmark_value><bookmark_value>objectos; insertar desde la Galería</bookmark_value><bookmark_value>motivos de objetos</bookmark_value><bookmark_value>texturas;insertar desde la Galería</bookmark_value><bookmark_value>fondos;insertar desde la Galería</bookmark_value><bookmark_value>insertar;objetos desde la Galería</bookmark_value><bookmark_value>copiar;desde la Galería</bookmark_value>"
#. ApxYf
#: gallery_insert.xhp
@@ -28058,7 +28058,7 @@ msgctxt ""
"par_idN10A26\n"
"help.text"
msgid "(Optional) In the <emph>DocType</emph> box, enter the document type identifier for the external file format."
-msgstr "(Opcional) En el cuadro <emph>DocType</emph>, especifique el identificador del tipo de documento para el formato de archivo externo."
+msgstr "(Opcional) En el cuadro <emph>Tipo de documento</emph>, especifique el identificador del tipo de documento, o «DocType», para el formato de archivo externo."
#. nkD3G
#: xsltfilter_create.xhp
diff --git a/source/es/helpcontent2/source/text/shared/optionen.po b/source/es/helpcontent2/source/text/shared/optionen.po
index 5b57c8240b6..fad3b82e72a 100644
--- a/source/es/helpcontent2/source/text/shared/optionen.po
+++ b/source/es/helpcontent2/source/text/shared/optionen.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-10-25 12:49+0200\n"
-"PO-Revision-Date: 2022-02-28 17:35+0000\n"
+"PO-Revision-Date: 2022-03-02 03:39+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
"Language-Team: Spanish <https://translations.documentfoundation.org/projects/libo_help-7-3/textsharedoptionen/es/>\n"
"Language: es\n"
@@ -1787,7 +1787,7 @@ msgctxt ""
"par_id3145673\n"
"help.text"
msgid "<ahelp hid=\"cui/ui/optlingupage/lingumodulesedit\">To edit a language module, select it and click <emph>Edit</emph>.</ahelp> The <link href=\"text/shared/optionen/01010401.xhp\" name=\"Edit Modules\"><emph>Edit Modules</emph></link> dialog appears."
-msgstr "<ahelp hid=\"cui/ui/optlingupage/lingumodulesedit\">Para editar un módulo lingüístico, selecciónelo y pulse en <emph>Editar</emph>.</ahelp> Aparecerá el cuadro de diálogo <link href=\"text/shared/optionen/01010401.xhp\" name=\"Editar módulos\"><emph>Editar módulos</emph></link>."
+msgstr "<ahelp hid=\"cui/ui/optlingupage/lingumodulesedit\">Para editar un módulo de idioma, selecciónelo y pulse en <emph>Editar</emph>.</ahelp> Aparecerá el cuadro de diálogo <link href=\"text/shared/optionen/01010401.xhp\" name=\"Editar módulos\"><emph>Editar módulos</emph></link>."
#. GBhhC
#: 01010400.xhp
diff --git a/source/es/helpcontent2/source/text/swriter/01.po b/source/es/helpcontent2/source/text/swriter/01.po
index 6a8046a976d..7a6bb1f80b2 100644
--- a/source/es/helpcontent2/source/text/swriter/01.po
+++ b/source/es/helpcontent2/source/text/swriter/01.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-11-24 12:03+0100\n"
-"PO-Revision-Date: 2022-02-22 11:38+0000\n"
+"PO-Revision-Date: 2022-03-03 04:39+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
"Language-Team: Spanish <https://translations.documentfoundation.org/projects/libo_help-7-3/textswriter01/es/>\n"
"Language: es\n"
@@ -22983,7 +22983,7 @@ msgctxt ""
"par_id3147506\n"
"help.text"
msgid "<image id=\"img_id3147512\" src=\"sw/res/sf01.png\" width=\"1cm\" height=\"1cm\"><alt id=\"alt_id3147512\">Icon Paragraph Styles</alt></image>"
-msgstr ""
+msgstr "<image id=\"img_id3147512\" src=\"sw/res/sf01.png\" width=\"1cm\" height=\"1cm\"><alt id=\"alt_id3147512\">Icono Estilos de párrafo</alt></image>"
#. EFWQb
#: 05140000.xhp
@@ -23010,7 +23010,7 @@ msgctxt ""
"par_id3151319\n"
"help.text"
msgid "<image id=\"img_id3152955\" src=\"sw/res/sf02.png\" width=\"1cm\" height=\"1cm\"><alt id=\"alt_id3152955\">Icon Character Styles</alt></image>"
-msgstr ""
+msgstr "<image id=\"img_id3152955\" src=\"sw/res/sf02.png\" width=\"1cm\" height=\"1cm\"><alt id=\"alt_id3152955\">Icono Estilos de carácter</alt></image>"
#. s6xth
#: 05140000.xhp
@@ -23037,7 +23037,7 @@ msgctxt ""
"par_id3159194\n"
"help.text"
msgid "<image id=\"img_id3159200\" src=\"sw/res/sf03.png\" width=\"1cm\" height=\"1cm\"><alt id=\"alt_id3159200\">Icon Frame Styles</alt></image>"
-msgstr ""
+msgstr "<image id=\"img_id3159200\" src=\"sw/res/sf03.png\" width=\"1cm\" height=\"1cm\"><alt id=\"alt_id3159200\">Icono Estilos de marco</alt></image>"
#. pboYw
#: 05140000.xhp
@@ -23064,7 +23064,7 @@ msgctxt ""
"par_id3149819\n"
"help.text"
msgid "<image id=\"img_id3149826\" src=\"sw/res/sf04.png\" width=\"1cm\" height=\"1cm\"><alt id=\"alt_id3149826\">Icon Page Styles</alt></image>"
-msgstr ""
+msgstr "<image id=\"img_id3149826\" src=\"sw/res/sf04.png\" width=\"1cm\" height=\"1cm\"><alt id=\"alt_id3149826\">Icono Estilos de página</alt></image>"
#. EGGG4
#: 05140000.xhp
@@ -23091,7 +23091,7 @@ msgctxt ""
"par_id3152766\n"
"help.text"
msgid "<image id=\"img_id3152772\" src=\"sw/res/sf05.png\" width=\"1cm\" height=\"1cm\"><alt id=\"alt_id3152772\">Icon List Styles</alt></image>"
-msgstr ""
+msgstr "<image id=\"img_id3152772\" src=\"sw/res/sf05.png\" width=\"1cm\" height=\"1cm\"><alt id=\"alt_id3152772\">Icono Estilos de lista</alt></image>"
#. rSCbA
#: 05140000.xhp
@@ -23154,7 +23154,7 @@ msgctxt ""
"par_id3145786\n"
"help.text"
msgid "<link href=\"text/swriter/guide/stylist_fillformat.xhp\" name=\"style_fillformat\">Fill Format Mode</link>"
-msgstr ""
+msgstr "<link href=\"text/swriter/guide/stylist_fillformat.xhp\" name=\"style_fillformat\">Modo de relleno de formato</link>"
#. q3tQu
#: 05140000.xhp
@@ -23199,7 +23199,7 @@ msgctxt ""
"par_idN109DA\n"
"help.text"
msgid "<link href=\"text/swriter/guide/stylist_fromselect.xhp\" name=\"stylist_fromselect\"><menuitem>New Style from Selection</menuitem></link>"
-msgstr ""
+msgstr "<link href=\"text/swriter/guide/stylist_fromselect.xhp\" name=\"stylist_fromselect\"><menuitem>Estilo nuevo a partir de selección</menuitem></link>"
#. L5UYB
#: 05140000.xhp
@@ -23271,7 +23271,7 @@ msgctxt ""
"par_id3150756\n"
"help.text"
msgid "Double-click the desired character style in the Styles window."
-msgstr ""
+msgstr "Pulse dos veces en el estilo de caracteres deseado en la ventana Estilos."
#. EkiBU
#: 05140000.xhp
@@ -23379,7 +23379,7 @@ msgctxt ""
"par_id1029200810080924\n"
"help.text"
msgid "Opens the AutoCorrect dialog."
-msgstr "Abra el diálogo para corrección automática."
+msgstr "Abre el cuadro de diálogo Corrección automática."
#. avdcs
#: 05150000.xhp
@@ -23397,7 +23397,7 @@ msgctxt ""
"tit\n"
"help.text"
msgid "While Typing (AutoCorrect)"
-msgstr ""
+msgstr "Al escribir (corrección automática)"
#. B8ERP
#: 05150100.xhp
@@ -23406,7 +23406,7 @@ msgctxt ""
"bm_id531611675140517\n"
"help.text"
msgid "<bookmark_value>automatic heading formatting</bookmark_value><bookmark_value>AutoCorrect function;headings</bookmark_value><bookmark_value>headings;automatic</bookmark_value><bookmark_value>separator lines;AutoCorrect function</bookmark_value>"
-msgstr ""
+msgstr "<bookmark_value>formato automático de títulos</bookmark_value><bookmark_value>función Corrección automática;títulos</bookmark_value><bookmark_value>títulos;automáticos</bookmark_value><bookmark_value>líneas separadoras;función Corrección automática</bookmark_value>"
#. KEGMD
#: 05150100.xhp
@@ -23415,7 +23415,7 @@ msgctxt ""
"hd_id3147436\n"
"help.text"
msgid "<link href=\"text/swriter/01/05150100.xhp\" name=\"While Typing\">While Typing</link>"
-msgstr ""
+msgstr "<link href=\"text/swriter/01/05150100.xhp\" name=\"While Typing\">Al escribir</link>"
#. FArms
#: 05150100.xhp
@@ -23901,7 +23901,7 @@ msgctxt ""
"bm_id5028839\n"
"help.text"
msgid "<bookmark_value>autocorrect;apply manually</bookmark_value>"
-msgstr ""
+msgstr "<bookmark_value>corrección automática;aplicar manualmente</bookmark_value>"
#. bjjAk
#: 05150200.xhp
diff --git a/source/es/officecfg/registry/data/org/openoffice/Office/UI.po b/source/es/officecfg/registry/data/org/openoffice/Office/UI.po
index 171c7b125b7..355a557086b 100644
--- a/source/es/officecfg/registry/data/org/openoffice/Office/UI.po
+++ b/source/es/officecfg/registry/data/org/openoffice/Office/UI.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-21 12:38+0100\n"
-"PO-Revision-Date: 2022-02-28 17:26+0000\n"
+"PO-Revision-Date: 2022-03-09 07:19+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
"Language-Team: Spanish <https://translations.documentfoundation.org/projects/libo_ui-7-3/officecfgregistrydataorgopenofficeofficeui/es/>\n"
"Language: es\n"
@@ -26766,7 +26766,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Distribute Horizontally Left"
-msgstr ""
+msgstr "Distribuir horizontalmente a la izquierda"
#. gjrG6
#: GenericCommands.xcu
@@ -26786,7 +26786,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Distribute Horizontally Center"
-msgstr ""
+msgstr "Distribuir horizontalmente al centro"
#. SqFTB
#: GenericCommands.xcu
@@ -26826,7 +26826,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Distribute Horizontally Right"
-msgstr ""
+msgstr "Distribuir horizontalmente a la derecha"
#. SDkHd
#: GenericCommands.xcu
@@ -26866,7 +26866,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Distribute Vertically Center"
-msgstr ""
+msgstr "Distribuir verticalmente al centro"
#. PaLDT
#: GenericCommands.xcu
diff --git a/source/es/readlicense_oo/docs.po b/source/es/readlicense_oo/docs.po
index 4cbf03a4351..f1ac010bbfc 100644
--- a/source/es/readlicense_oo/docs.po
+++ b/source/es/readlicense_oo/docs.po
@@ -4,9 +4,9 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-09-10 23:12+0200\n"
-"PO-Revision-Date: 2021-11-17 12:36+0000\n"
+"PO-Revision-Date: 2022-03-02 22:39+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
-"Language-Team: Spanish <https://translations.documentfoundation.org/projects/libo_ui-master/readlicense_oodocs/es/>\n"
+"Language-Team: Spanish <https://translations.documentfoundation.org/projects/libo_ui-7-3/readlicense_oodocs/es/>\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -590,7 +590,7 @@ msgctxt ""
"abcdef\n"
"readmeitem.text"
msgid "Difficulties starting ${PRODUCTNAME} (e.g. applications hang) as well as problems with the screen display are often caused by the graphics card driver. If these problems occur, please update your graphics card driver or try using the graphics driver delivered with your operating system."
-msgstr ""
+msgstr "A menudo, las dificultades de inicio de ${PRODUCTNAME} (p. ej., los bloqueos de la aplicación), así como los problemas relacionados con la representación en pantalla, tienen origen en el controlador de la tarjeta gráfica. Si ocurren estos problemas, actualice el controlador de su tarjeta gráfica o intente utilizar el controlador gráfico que se incluye en el sistema operativo."
#. inrAd
#: readme.xrm
diff --git a/source/es/sc/messages.po b/source/es/sc/messages.po
index 79f738ea330..e3d8fb8ec75 100644
--- a/source/es/sc/messages.po
+++ b/source/es/sc/messages.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-21 12:38+0100\n"
-"PO-Revision-Date: 2022-02-28 17:26+0000\n"
+"PO-Revision-Date: 2022-03-09 07:19+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
"Language-Team: Spanish <https://translations.documentfoundation.org/projects/libo_ui-7-3/scmessages/es/>\n"
"Language: es\n"
@@ -20741,7 +20741,7 @@ msgstr "Fórmula"
#: sc/uiconfig/scalc/ui/databaroptions.ui:145
msgctxt "databaroptions|extended_tip|min"
msgid "Select the way the minimum is set"
-msgstr ""
+msgstr "Seleccione la forma en que se establece el mínimo"
#. DiBWL
#: sc/uiconfig/scalc/ui/databaroptions.ui:160
@@ -20789,19 +20789,19 @@ msgstr "Fórmula"
#: sc/uiconfig/scalc/ui/databaroptions.ui:170
msgctxt "databaroptions|extended_tip|max"
msgid "Select the way the maximum is set"
-msgstr ""
+msgstr "Seleccione la forma en que se establece el máximo"
#. 5P3sd
#: sc/uiconfig/scalc/ui/databaroptions.ui:187
msgctxt "datbaroptions|extended_tip|min_value"
msgid "Enter the value for the minimum"
-msgstr ""
+msgstr "Introduzca el valor para el mínimo"
#. oKw6w
#: sc/uiconfig/scalc/ui/databaroptions.ui:204
msgctxt "datbaroptions|extended_tip|max_value"
msgid "Enter the value for the maximum"
-msgstr ""
+msgstr "Introduzca el valor para el máximo"
#. TKfBV
#: sc/uiconfig/scalc/ui/databaroptions.ui:219
@@ -21101,7 +21101,7 @@ msgstr "Seleccione el elemento del campo de base a partir del cual se obtiene el
#: sc/uiconfig/scalc/ui/datafielddialog.ui:354
msgctxt "datafielddialog|label3"
msgid "Displayed Value"
-msgstr ""
+msgstr "Valor mostrado"
#. mk9vJ
#: sc/uiconfig/scalc/ui/datafielddialog.ui:359
@@ -22794,7 +22794,7 @@ msgstr "Ocultar solo el elemento actual."
#: sc/uiconfig/scalc/ui/findreplaceentry.ui:28
msgctxt "findreplace|label_action"
msgid "Find Replace Action"
-msgstr ""
+msgstr "Acción Buscar/reemplazar"
#. T9kUg
#: sc/uiconfig/scalc/ui/findreplaceentry.ui:45
@@ -24325,13 +24325,13 @@ msgstr "Combinar celdas"
#: sc/uiconfig/scalc/ui/mergecellsdialog.ui:80
msgctxt "mergecellsdialog|label"
msgid "Some cells are not empty."
-msgstr "Algunas celdas no están vacías"
+msgstr "Algunas celdas no están vacías."
#. BWFBt
#: sc/uiconfig/scalc/ui/mergecellsdialog.ui:96
msgctxt "mergecellsdialog|move-cells-radio"
msgid "Move the contents of the hidden cells into the first cell"
-msgstr "Mover a la primera celda el contenido de las celdas ocultas "
+msgstr "Mover a la primera celda el contenido de las celdas ocultas"
#. wzTMG
#: sc/uiconfig/scalc/ui/mergecellsdialog.ui:111
@@ -26532,7 +26532,7 @@ msgstr "Indica que se utilizarán únicamente cadenas literales al realizar bús
#: sc/uiconfig/scalc/ui/optcalculatepage.ui:556
msgctxt "optcalculatepage|label5"
msgid "Formulas Wildcards"
-msgstr ""
+msgstr "Comodines en las fórmulas"
#. Umdv5
#: sc/uiconfig/scalc/ui/optchangespage.ui:32
diff --git a/source/es/sd/messages.po b/source/es/sd/messages.po
index 93d6bccfa84..7489ba3e103 100644
--- a/source/es/sd/messages.po
+++ b/source/es/sd/messages.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-21 12:38+0100\n"
-"PO-Revision-Date: 2022-02-28 03:39+0000\n"
+"PO-Revision-Date: 2022-03-09 07:19+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
"Language-Team: Spanish <https://translations.documentfoundation.org/projects/libo_ui-7-3/sdmessages/es/>\n"
"Language: es\n"
@@ -6183,7 +6183,7 @@ msgstr "Seleccione cuáles partes del documento han de imprimirse."
#: sd/uiconfig/simpress/ui/impressprinteroptions.ui:91
msgctxt "impressprinteroptions|extended_tip|slidesperpage"
msgid "Select how many slides to print per page."
-msgstr ""
+msgstr "Seleccione cuántas diapositivas imprimir por página."
#. B3gRG
#: sd/uiconfig/simpress/ui/impressprinteroptions.ui:106
@@ -9073,7 +9073,7 @@ msgstr "1080p (1_920 × 1080 pixels)"
#: sd/uiconfig/simpress/ui/publishingdialog.ui:1195
msgctxt "publishingdialog|extended_tip|resolution4Radiobutton"
msgid "Select a full hd resolution for a very high quality slide display."
-msgstr ""
+msgstr "Seleccione una resolución Full HD para una visualización de diapositivas de muy alta calidad."
#. zsvW6
#: sd/uiconfig/simpress/ui/publishingdialog.ui:1211
diff --git a/source/es/sfx2/messages.po b/source/es/sfx2/messages.po
index 28fb3dc5631..a4c1bca77b9 100644
--- a/source/es/sfx2/messages.po
+++ b/source/es/sfx2/messages.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2022-01-10 12:21+0100\n"
-"PO-Revision-Date: 2022-02-28 03:39+0000\n"
+"PO-Revision-Date: 2022-03-09 06:18+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
"Language-Team: Spanish <https://translations.documentfoundation.org/projects/libo_ui-7-3/sfx2messages/es/>\n"
"Language: es\n"
@@ -4923,7 +4923,7 @@ msgstr "_Gestionar"
#: sfx2/uiconfig/ui/templatedlg.ui:181
msgctxt "templatedlg|extended_tip|action_menu"
msgid "Provides commands to create, rename and delete categories, reset default templates, and refresh the template manager."
-msgstr ""
+msgstr "Proporciona órdenes para crear, cambiar el nombre de y eliminar categorías, restablecer plantillas predeterminadas y actualizar el gestor de plantillas."
#. fXVNY
#: sfx2/uiconfig/ui/templatedlg.ui:208
diff --git a/source/es/svx/messages.po b/source/es/svx/messages.po
index 8ff93b4dc7e..7c87c8da7cf 100644
--- a/source/es/svx/messages.po
+++ b/source/es/svx/messages.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-11-25 19:34+0100\n"
-"PO-Revision-Date: 2022-02-28 17:26+0000\n"
+"PO-Revision-Date: 2022-03-09 07:19+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
"Language-Team: Spanish <https://translations.documentfoundation.org/projects/libo_ui-7-3/svxmessages/es/>\n"
"Language: es\n"
@@ -13905,7 +13905,7 @@ msgstr "Texto de parte:"
#: svx/uiconfig/ui/classificationdialog.ui:472
msgctxt "classificationdialog|extended_tip|intellectualPropertyPartEntry"
msgid "Enter a custom intellectual property text for the document."
-msgstr ""
+msgstr "Introduzca un texto de propiedad intelectual personalizado para el documento."
#. Q3nGA
#: svx/uiconfig/ui/classificationdialog.ui:517
diff --git a/source/es/sw/messages.po b/source/es/sw/messages.po
index d7f82573464..e7bb77aa4b6 100644
--- a/source/es/sw/messages.po
+++ b/source/es/sw/messages.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2022-01-10 12:22+0100\n"
-"PO-Revision-Date: 2022-02-24 15:39+0000\n"
+"PO-Revision-Date: 2022-03-08 08:14+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
"Language-Team: Spanish <https://translations.documentfoundation.org/projects/libo_ui-7-3/swmessages/es/>\n"
"Language: es\n"
@@ -1454,7 +1454,7 @@ msgstr ""
#: sw/inc/inspectorproperties.hrc:162
msgctxt "RID_ATTRIBUTE_NAMES_MAP"
msgid "Follow Style"
-msgstr ""
+msgstr "Estilo siguiente"
#. 32Vgt
#: sw/inc/inspectorproperties.hrc:163
@@ -1496,19 +1496,19 @@ msgstr "URL de hiperenlace"
#: sw/inc/inspectorproperties.hrc:169
msgctxt "RID_ATTRIBUTE_NAMES_MAP"
msgid "Is Auto Update"
-msgstr ""
+msgstr "Se actualiza automáticamente"
#. DYXxe
#: sw/inc/inspectorproperties.hrc:170
msgctxt "RID_ATTRIBUTE_NAMES_MAP"
msgid "Is Physical"
-msgstr ""
+msgstr "Es físico"
#. AdAo8
#: sw/inc/inspectorproperties.hrc:171
msgctxt "RID_ATTRIBUTE_NAMES_MAP"
msgid "Left Border"
-msgstr ""
+msgstr "Borde izquierdo"
#. tAqBG
#: sw/inc/inspectorproperties.hrc:172
@@ -16967,7 +16967,6 @@ msgstr "Marcadores"
#. fofuv
#: sw/uiconfig/swriter/ui/insertbookmark.ui:108
-#, fuzzy
msgctxt "insertbookmark|extended_tip|name"
msgid "Type the name of the bookmark that you want to create. Then press Insert."
msgstr "Escriba el nombre del marcador que quiere crear. Después, pulse en Insertar."
@@ -23864,7 +23863,7 @@ msgstr "Seleccione el modelo de numeración que quiera aplicar al nivel de esque
#: sw/uiconfig/swriter/ui/outlinenumberingpage.ui:205
msgctxt "outlinenumberingpage|extended_tip|charstyle"
msgid "Select the character style of the numbering character."
-msgstr ""
+msgstr "Seleccione el estilo de carácter del carácter de numeración."
#. 5A5fh
#: sw/uiconfig/swriter/ui/outlinenumberingpage.ui:226
diff --git a/source/es/vcl/messages.po b/source/es/vcl/messages.po
index 272a19e5522..4f6c4cf6c2a 100644
--- a/source/es/vcl/messages.po
+++ b/source/es/vcl/messages.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-11-16 12:10+0100\n"
-"PO-Revision-Date: 2022-02-28 03:39+0000\n"
+"PO-Revision-Date: 2022-03-01 21:39+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
"Language-Team: Spanish <https://translations.documentfoundation.org/projects/libo_ui-7-3/vclmessages/es/>\n"
"Language: es\n"
@@ -1099,13 +1099,13 @@ msgstr "eliminar línea"
#: vcl/inc/strings.hrc:118
msgctxt "STR_TEXTUNDO_CONNECTPARAS"
msgid "delete multiple lines"
-msgstr "eliminar múltiples líneas"
+msgstr "eliminar varios renglones"
#. 7KPRL
#: vcl/inc/strings.hrc:119
msgctxt "STR_TEXTUNDO_SPLITPARA"
msgid "insert multiple lines"
-msgstr "insertar múltiples líneas"
+msgstr "insertar varios renglones"
#. R2cyr
#: vcl/inc/strings.hrc:120
@@ -1194,6 +1194,9 @@ msgid ""
"$1\n"
"Select OK if you want to change default file format registrations."
msgstr ""
+"Los formatos de archivo siguientes no están registrados para su apertura con %PRODUCTNAME:\n"
+"$1\n"
+"Seleccione «Aceptar» si desea cambiar los registros de formatos de archivo predeterminados."
#. EkzSW
#: vcl/inc/strings.hrc:141
diff --git a/source/fa/basic/messages.po b/source/fa/basic/messages.po
index f3c088eb95e..95bbd8c912b 100644
--- a/source/fa/basic/messages.po
+++ b/source/fa/basic/messages.po
@@ -4,16 +4,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-09-20 13:02+0200\n"
-"PO-Revision-Date: 2021-02-26 09:36+0000\n"
-"Last-Translator: Hossein <hossein.ir@gmail.com>\n"
-"Language-Team: Persian <https://translations.documentfoundation.org/projects/libo_ui-master/basicmessages/fa/>\n"
+"PO-Revision-Date: 2022-03-04 05:39+0000\n"
+"Last-Translator: Hossein <hossein@libreoffice.org>\n"
+"Language-Team: Persian <https://translations.documentfoundation.org/projects/libo_ui-7-3/basicmessages/fa/>\n"
"Language: fa\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Accelerator-Marker: ~\n"
-"X-Generator: LibreOffice\n"
+"X-Generator: Weblate 4.8.1\n"
"X-POOTLE-MTIME: 1516029751.000000\n"
#. CacXi
@@ -900,3 +900,5 @@ msgid ""
"$ERR\n"
"Additional information: $MSG"
msgstr ""
+"$ERR\n"
+"اطلاعات بیشتر: $MSG"
diff --git a/source/fa/connectivity/messages.po b/source/fa/connectivity/messages.po
index 9f22625fca4..1bc3fda91ca 100644
--- a/source/fa/connectivity/messages.po
+++ b/source/fa/connectivity/messages.po
@@ -4,9 +4,9 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-09-10 23:10+0200\n"
-"PO-Revision-Date: 2022-01-24 12:45+0000\n"
-"Last-Translator: ali <ali.nourikhah@gmail.com>\n"
-"Language-Team: Persian <https://translations.documentfoundation.org/projects/libo_ui-master/connectivitymessages/fa/>\n"
+"PO-Revision-Date: 2022-03-04 05:39+0000\n"
+"Last-Translator: Hossein <hossein@libreoffice.org>\n"
+"Language-Team: Persian <https://translations.documentfoundation.org/projects/libo_ui-7-3/connectivitymessages/fa/>\n"
"Language: fa\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -281,44 +281,43 @@ msgstr "ایجاد شاخص ممکن نبود. اندازه ستون انتخا
#: connectivity/inc/strings.hrc:69
msgctxt "STR_SQL_NAME_ERROR"
msgid "The name '$name$' doesn't match SQL naming constraints."
-msgstr ""
+msgstr "نام '$name$' با محدودیت‌های نام‌گذاری SQL مطابقت ندارد."
#. wv2Cx
#: connectivity/inc/strings.hrc:70
-#, fuzzy
msgctxt "STR_COULD_NOT_DELETE_FILE"
msgid "The file $filename$ could not be deleted."
-msgstr "پرونده $filename$ قابل بارگذاری نیست."
+msgstr "پرونده $filename$ قابل حذف نبود."
#. rp3rF
#: connectivity/inc/strings.hrc:71
msgctxt "STR_INVALID_COLUMN_TYPE"
msgid "Invalid column type for column '$columnname$'."
-msgstr ""
+msgstr "نوع ستون برای ستون '$columnname$' نامعتبر می باشد."
#. jAStU
#: connectivity/inc/strings.hrc:72
msgctxt "STR_INVALID_COLUMN_PRECISION"
msgid "Invalid precision for column '$columnname$'."
-msgstr ""
+msgstr "دقت برای ستون '$columnname$' نامعتبر است."
#. zJbtr
#: connectivity/inc/strings.hrc:73
msgctxt "STR_INVALID_PRECISION_SCALE"
msgid "Precision is less than scale for column '$columnname$'."
-msgstr ""
+msgstr "برای ستون '$columnname$' دقت کمتر از مقیاس است."
#. PDCV3
#: connectivity/inc/strings.hrc:74
msgctxt "STR_INVALID_COLUMN_NAME_LENGTH"
msgid "Invalid column name length for column '$columnname$'."
-msgstr ""
+msgstr "طول نام ستون '$columnname$' نامعتبر است."
#. NZWGq
#: connectivity/inc/strings.hrc:75
msgctxt "STR_DUPLICATE_VALUE_IN_COLUMN"
msgid "Duplicate value found in column '$columnname$'."
-msgstr ""
+msgstr "مقدار تکراری در ستون '$columnname$' پیدا شده است."
#. sfaxE
#: connectivity/inc/strings.hrc:76
@@ -328,162 +327,160 @@ msgid ""
"\n"
"The specified value \"$value$ is longer than the number of digits allowed."
msgstr ""
+"ستون '$columnname$' به عنوان یک نوع اعشاری تعریف شده است. حداکثر طول $precision$ کاراکتر می باشد.\n"
+"مقدار مشخص شده '$value$' بیشتر از تعداد ارقام مجاز است."
#. ZvEz9
#: connectivity/inc/strings.hrc:77
msgctxt "STR_COLUMN_NOT_ALTERABLE"
msgid "The column '$columnname$' could not be altered. May be the file system is write protected."
-msgstr ""
+msgstr "ستون '$columnname$' قابل تغییر نیست. ممکن است سیستم فایل دارای محافظت از نوشتن باشد."
#. 4BgE9
#: connectivity/inc/strings.hrc:78
msgctxt "STR_INVALID_COLUMN_VALUE"
msgid "The column '$columnname$' could not be updated. The value is invalid for that column."
-msgstr ""
+msgstr "ستون '$columnname$' نمی تواند به روز شود. مقدار برای آن ستون نامعتبر است."
#. dFAFB
#: connectivity/inc/strings.hrc:79
msgctxt "STR_COLUMN_NOT_ADDABLE"
msgid "The column '$columnname$' could not be added. May be the file system is write protected."
-msgstr ""
+msgstr "ستون \"$columnname$\" قابل اضافه شدن نیست. ممکن است سیستم فایل دارای محافظت از نوشتن باشد."
#. zk3QB
#: connectivity/inc/strings.hrc:80
msgctxt "STR_COLUMN_NOT_DROP"
msgid "The column at position '$position$' could not be dropped. May be the file system is write protected."
-msgstr ""
+msgstr "ستون در موقعیت '$position$' نمی تواند حذف شود. ممکن است سیستم فایل دارای محافظت از نوشتن باشد."
#. hAwmi
#: connectivity/inc/strings.hrc:81
msgctxt "STR_TABLE_NOT_DROP"
msgid "The table '$tablename$' could not be dropped. May be the file system is write protected."
-msgstr ""
+msgstr "امکان حذف جدول '$tablename$' وجود ندارد. ممکن است سیستم فایل دارای محافظت از نوشتن باشد."
#. R3BGx
#: connectivity/inc/strings.hrc:82
-#, fuzzy
msgctxt "STR_COULD_NOT_ALTER_TABLE"
msgid "The table could not be altered."
-msgstr "این نوع قابل تبدیل نیست."
+msgstr "این جدول قابل تغییر نیست."
#. UuoNm
#: connectivity/inc/strings.hrc:83
msgctxt "STR_INVALID_DBASE_FILE"
msgid "The file '$filename$' is an invalid (or unrecognized) dBase file."
-msgstr ""
+msgstr "فایل '$filename$' یک فایل dBase نامعتبر (یا شناسایی نشده) است."
#. LhHTA
#. Evoab2
#: connectivity/inc/strings.hrc:85
msgctxt "STR_CANNOT_OPEN_BOOK"
msgid "Cannot open Evolution address book."
-msgstr ""
+msgstr "دفترچه آدرس اولوشن را نمی توان باز کرد."
#. sxbEF
#: connectivity/inc/strings.hrc:86
msgctxt "STR_SORT_BY_COL_ONLY"
msgid "Can only sort by table columns."
-msgstr ""
+msgstr "فقط می تواند بر اساس ستون های جدول مرتب شود."
#. E4wn2
#. File
#: connectivity/inc/strings.hrc:88
msgctxt "STR_QUERY_COMPLEX_COUNT"
msgid "The query can not be executed. It is too complex. Only \"COUNT(*)\" is supported."
-msgstr ""
+msgstr "پرس و جو را نمی‌توان اجرا کرد. خیلی پیچیده است. فقط \"(*)COUNT\" پشتیبانی می‌شود."
#. 8VQo4
#: connectivity/inc/strings.hrc:89
msgctxt "STR_QUERY_INVALID_BETWEEN"
msgid "The query can not be executed. The 'BETWEEN' arguments are not correct."
-msgstr ""
+msgstr "پرس و جو را نمی توان اجرا کرد. آرگومان‌های \"BETWEEN\" صحیح نیستند."
#. 4oK7N
#: connectivity/inc/strings.hrc:90
msgctxt "STR_QUERY_FUNCTION_NOT_SUPPORTED"
msgid "The query can not be executed. The function is not supported."
-msgstr ""
+msgstr "پرس و جو را نمی توان اجرا کرد. تابع پشتیبانی نمی شود."
#. kCjVU
#: connectivity/inc/strings.hrc:91
msgctxt "STR_TABLE_READONLY"
msgid "The table can not be changed. It is read only."
-msgstr ""
+msgstr "جدول قابل تغییر نیست. فقط خواندنی است."
#. cqWEv
#: connectivity/inc/strings.hrc:92
msgctxt "STR_DELETE_ROW"
msgid "The row could not be deleted. The option \"Display inactive records\" is set."
-msgstr ""
+msgstr "سطر را نمی توان حذف کرد. گزینه \"نمایش رکوردهای غیرفعال\" تنظیم شده است."
#. TZTfv
#: connectivity/inc/strings.hrc:93
msgctxt "STR_ROW_ALREADY_DELETED"
msgid "The row could not be deleted. It is already deleted."
-msgstr ""
+msgstr "سطر را نمی توان حذف کرد. قبلاً حذف شده است."
#. fuJot
#: connectivity/inc/strings.hrc:94
-#, fuzzy
msgctxt "STR_QUERY_MORE_TABLES"
msgid "The query can not be executed. It contains more than one table."
-msgstr "امکان اجرای جُستار وجود ندارد. حداقل به یک جدول نیاز دارد."
+msgstr "امکان اجرای پرس و جو وجود ندارد. شامل بیش از یک جدول است.."
#. w7AzE
#: connectivity/inc/strings.hrc:95
-#, fuzzy
msgctxt "STR_QUERY_NO_TABLE"
msgid "The query can not be executed. It contains no valid table."
-msgstr "امکان اجرای جُستار وجود ندارد. حداقل به یک جدول نیاز دارد."
+msgstr "پرس و جو را نمی‌توان اجرا کرد. شامل هیچ جدول معتبری نیست."
#. CRsGn
#: connectivity/inc/strings.hrc:96
-#, fuzzy
msgctxt "STR_QUERY_NO_COLUMN"
msgid "The query can not be executed. It contains no valid columns."
-msgstr "امکان اجرای جُستار وجود ندارد. حداقل به یک جدول نیاز دارد."
+msgstr "امکان اجرای پرس و جو وجود ندارد. شامل هیچ ستون معتبری نیست."
#. ucGyR
#: connectivity/inc/strings.hrc:97
msgctxt "STR_INVALID_PARA_COUNT"
msgid "The count of the given parameter values doesn't match the parameters."
-msgstr ""
+msgstr "تعداد مقادیر داده شده با پارامترها مطابقت ندارد."
#. 3EDJB
#: connectivity/inc/strings.hrc:98
msgctxt "STR_NO_VALID_FILE_URL"
msgid "The URL '$URL$' is not valid. A connection can not be created."
-msgstr ""
+msgstr "آدرس '$URL$' معتبر نیست. اتصال قابل ایجاد نمی باشد."
#. 9n4j2
#: connectivity/inc/strings.hrc:99
msgctxt "STR_NO_CLASSNAME"
msgid "The driver class '$classname$' could not be loaded."
-msgstr ""
+msgstr "کلاس راه انداز '$classname$' قابل بارگذاری نیست."
#. jbnZZ
#: connectivity/inc/strings.hrc:100
msgctxt "STR_NO_JAVA"
msgid "No Java installation could be found. Please check your installation."
-msgstr ""
+msgstr "هیچ گونه نصب شده ای از جاوا پیدا نشد. لطفا نصب خود را بررسی کنید."
#. iKnFy
#: connectivity/inc/strings.hrc:101
msgctxt "STR_NO_RESULTSET"
msgid "The execution of the query doesn't return a valid result set."
-msgstr ""
+msgstr "اجرای پرس و جو مجموعه نتایج معتبری را بر نمی گرداند."
#. kiYDS
#: connectivity/inc/strings.hrc:102
msgctxt "STR_NO_ROWCOUNT"
msgid "The execution of the update statement doesn't effect any rows."
-msgstr ""
+msgstr "اجرای دستور بروز رسانی روی هیچ سطری تأثیر نمی گذارد."
#. xiRq3
#: connectivity/inc/strings.hrc:103
msgctxt "STR_NO_CLASSNAME_PATH"
msgid "The additional driver class path is '$classpath$'."
-msgstr ""
+msgstr "مسیر کلاس راه انداز اضافه، '$classpath$' می باشد."
#. QxNVP
#: connectivity/inc/strings.hrc:104
diff --git a/source/fa/connectivity/registry/firebird/org/openoffice/Office/DataAccess.po b/source/fa/connectivity/registry/firebird/org/openoffice/Office/DataAccess.po
index 4605a1cc846..f5cc619a4fa 100644
--- a/source/fa/connectivity/registry/firebird/org/openoffice/Office/DataAccess.po
+++ b/source/fa/connectivity/registry/firebird/org/openoffice/Office/DataAccess.po
@@ -4,16 +4,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-10-20 13:07+0200\n"
-"PO-Revision-Date: 2021-02-26 09:36+0000\n"
-"Last-Translator: Hossein <hossein.ir@gmail.com>\n"
-"Language-Team: Persian <https://translations.documentfoundation.org/projects/libo_ui-master/connectivityregistryfirebirdorgopenofficeofficedataaccess/fa/>\n"
+"PO-Revision-Date: 2022-03-04 05:39+0000\n"
+"Last-Translator: Hossein <hossein@libreoffice.org>\n"
+"Language-Team: Persian <https://translations.documentfoundation.org/projects/libo_ui-7-3/connectivityregistryfirebirdorgopenofficeofficedataaccess/fa/>\n"
"Language: fa\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Accelerator-Marker: ~\n"
-"X-Generator: LibreOffice\n"
+"X-Generator: Weblate 4.8.1\n"
"X-POOTLE-MTIME: 1388786103.000000\n"
#. DfEKx
@@ -34,4 +34,4 @@ msgctxt ""
"DriverTypeDisplayName\n"
"value.text"
msgid "Firebird External"
-msgstr ""
+msgstr "فایربرد خارجی"
diff --git a/source/fa/dbaccess/messages.po b/source/fa/dbaccess/messages.po
index 292b0075149..68f7fa4a13a 100644
--- a/source/fa/dbaccess/messages.po
+++ b/source/fa/dbaccess/messages.po
@@ -4,16 +4,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-11-16 12:08+0100\n"
-"PO-Revision-Date: 2021-02-26 09:37+0000\n"
-"Last-Translator: Hossein <hossein.ir@gmail.com>\n"
-"Language-Team: Persian <https://translations.documentfoundation.org/projects/libo_ui-master/dbaccessmessages/fa/>\n"
+"PO-Revision-Date: 2022-03-04 05:39+0000\n"
+"Last-Translator: Hossein <hossein@libreoffice.org>\n"
+"Language-Team: Persian <https://translations.documentfoundation.org/projects/libo_ui-7-3/dbaccessmessages/fa/>\n"
"Language: fa\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Accelerator-Marker: ~\n"
-"X-Generator: LibreOffice\n"
+"X-Generator: Weblate 4.8.1\n"
"X-POOTLE-MTIME: 1524566860.000000\n"
#. BiN6g
@@ -26,7 +26,7 @@ msgstr "نمای جدولی"
#: dbaccess/inc/query.hrc:27
msgctxt "RSC_QUERY_OBJECT_TYPE"
msgid "The query"
-msgstr "پرس و جو"
+msgstr "این پرس وجو"
#. akGh9
#: dbaccess/inc/query.hrc:28
diff --git a/source/fa/dictionaries/eo.po b/source/fa/dictionaries/eo.po
index cb3b1e690cd..d9a3391a161 100644
--- a/source/fa/dictionaries/eo.po
+++ b/source/fa/dictionaries/eo.po
@@ -4,14 +4,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-04-12 12:05+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2022-03-04 05:39+0000\n"
+"Last-Translator: Hossein <hossein@libreoffice.org>\n"
+"Language-Team: Persian <https://translations.documentfoundation.org/projects/libo_ui-7-3/dictionarieseo/fa/>\n"
+"Language: fa\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Accelerator-Marker: ~\n"
-"X-Generator: LibreOffice\n"
+"X-Generator: Weblate 4.8.1\n"
#. 8TKYb
#: description.xml
@@ -20,4 +22,4 @@ msgctxt ""
"dispname\n"
"description.text"
msgid "Spelling dictionary, thesaurus, and hyphenator for Esperanto"
-msgstr ""
+msgstr "واژه‌نامهٔ املایی، اصطلاح‌نامه، و خط فاصله گذاری برای اسپرانتو"
diff --git a/source/fa/dictionaries/ko_KR.po b/source/fa/dictionaries/ko_KR.po
index 17a741c850b..2f460edc2c0 100644
--- a/source/fa/dictionaries/ko_KR.po
+++ b/source/fa/dictionaries/ko_KR.po
@@ -4,16 +4,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2020-11-03 12:42+0100\n"
-"PO-Revision-Date: 2021-02-24 20:36+0000\n"
-"Last-Translator: Hossein <hossein.ir@gmail.com>\n"
-"Language-Team: Persian <https://translations.documentfoundation.org/projects/libo_ui-master/dictionariesko_kr/fa/>\n"
+"PO-Revision-Date: 2022-03-04 05:39+0000\n"
+"Last-Translator: Hossein <hossein@libreoffice.org>\n"
+"Language-Team: Persian <https://translations.documentfoundation.org/projects/libo_ui-7-3/dictionariesko_kr/fa/>\n"
"Language: fa\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Accelerator-Marker: ~\n"
-"X-Generator: Weblate 4.4\n"
+"X-Generator: Weblate 4.8.1\n"
#. DbXEb
#: description.xml
@@ -22,4 +22,4 @@ msgctxt ""
"dispname\n"
"description.text"
msgid "Korean spellcheck dictionary"
-msgstr "واژه‌نامه املایی کره‌ای"
+msgstr "واژه‌نامه بررسی املایی کره‌ای"
diff --git a/source/fa/dictionaries/mn_MN.po b/source/fa/dictionaries/mn_MN.po
index b53104d879a..b961edff198 100644
--- a/source/fa/dictionaries/mn_MN.po
+++ b/source/fa/dictionaries/mn_MN.po
@@ -4,14 +4,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-04-27 17:02+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2022-03-04 05:39+0000\n"
+"Last-Translator: Hossein <hossein@libreoffice.org>\n"
+"Language-Team: Persian <https://translations.documentfoundation.org/projects/libo_ui-7-3/dictionariesmn_mn/fa/>\n"
+"Language: fa\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Accelerator-Marker: ~\n"
-"X-Generator: LibreOffice\n"
+"X-Generator: Weblate 4.8.1\n"
#. UsF8V
#: description.xml
@@ -20,4 +22,4 @@ msgctxt ""
"dispname\n"
"description.text"
msgid "Mongolian spelling and hyphenation dictionaries"
-msgstr ""
+msgstr "واژه‌نامه‌های املایی و خط‌فاصله‌گذاری مغولی"
diff --git a/source/fa/extras/source/gallery/share.po b/source/fa/extras/source/gallery/share.po
index 1da74cec023..9c2762bf29a 100644
--- a/source/fa/extras/source/gallery/share.po
+++ b/source/fa/extras/source/gallery/share.po
@@ -4,16 +4,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-04-27 17:02+0200\n"
-"PO-Revision-Date: 2021-02-26 09:37+0000\n"
-"Last-Translator: Hossein <hossein.ir@gmail.com>\n"
-"Language-Team: Persian <https://translations.documentfoundation.org/projects/libo_ui-master/extrassourcegalleryshare/fa/>\n"
+"PO-Revision-Date: 2022-03-04 05:39+0000\n"
+"Last-Translator: Hossein <hossein@libreoffice.org>\n"
+"Language-Team: Persian <https://translations.documentfoundation.org/projects/libo_ui-7-3/extrassourcegalleryshare/fa/>\n"
"Language: fa\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Accelerator-Marker: ~\n"
-"X-Generator: LibreOffice\n"
+"X-Generator: Weblate 4.8.1\n"
"X-POOTLE-MTIME: 1519742312.000000\n"
#. oG3Mq
@@ -41,7 +41,7 @@ msgctxt ""
"bullets\n"
"LngText.text"
msgid "Bullets"
-msgstr ""
+msgstr "گلوله‌ها"
#. kuNKS
#: gallery_names.ulf
diff --git a/source/fa/filter/source/config/fragments/types.po b/source/fa/filter/source/config/fragments/types.po
index 30b8859edf9..22e3095f080 100644
--- a/source/fa/filter/source/config/fragments/types.po
+++ b/source/fa/filter/source/config/fragments/types.po
@@ -4,16 +4,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2019-07-11 18:38+0200\n"
-"PO-Revision-Date: 2018-06-04 14:06+0000\n"
-"Last-Translator: Anonymous Pootle User\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2022-03-04 05:39+0000\n"
+"Last-Translator: Hossein <hossein@libreoffice.org>\n"
+"Language-Team: Persian <https://translations.documentfoundation.org/projects/libo_ui-7-3/filtersourceconfigfragmentstypes/fa/>\n"
"Language: fa\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Accelerator-Marker: ~\n"
-"X-Generator: LibreOffice\n"
+"X-Generator: Weblate 4.8.1\n"
"X-POOTLE-MTIME: 1528121172.000000\n"
#. VQegi
@@ -34,7 +34,7 @@ msgctxt ""
"UIName\n"
"value.text"
msgid "Microsoft Excel 2007–365 VBA XML"
-msgstr ""
+msgstr "VBA XML اکسل 2007-365 مایکروسافت"
#. wZRKn
#: MS_Excel_2007_XML.xcu
@@ -44,7 +44,7 @@ msgctxt ""
"UIName\n"
"value.text"
msgid "Excel 2007–365"
-msgstr ""
+msgstr "اکسل 2007–365"
#. gE2YN
#: MS_Excel_2007_XML_Template.xcu
@@ -54,7 +54,7 @@ msgctxt ""
"UIName\n"
"value.text"
msgid "Excel 2007–365 Template"
-msgstr ""
+msgstr "Excel 2007–365 Template"
#. GGcpF
#: MS_PowerPoint_2007_XML.xcu
diff --git a/source/fa/formula/messages.po b/source/fa/formula/messages.po
index b8394f6771b..2f9d876fd08 100644
--- a/source/fa/formula/messages.po
+++ b/source/fa/formula/messages.po
@@ -4,16 +4,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-03-29 16:02+0200\n"
-"PO-Revision-Date: 2021-02-26 09:37+0000\n"
-"Last-Translator: Hossein <hossein.ir@gmail.com>\n"
-"Language-Team: Persian <https://translations.documentfoundation.org/projects/libo_ui-master/formulamessages/fa/>\n"
+"PO-Revision-Date: 2022-03-04 05:39+0000\n"
+"Last-Translator: Hossein <hossein@libreoffice.org>\n"
+"Language-Team: Persian <https://translations.documentfoundation.org/projects/libo_ui-7-3/formulamessages/fa/>\n"
"Language: fa\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Accelerator-Marker: ~\n"
-"X-Generator: LibreOffice\n"
+"X-Generator: Weblate 4.8.1\n"
"X-POOTLE-MTIME: 1542023217.000000\n"
#. YfKFn
@@ -66,14 +66,14 @@ msgstr "#داده"
#: formula/inc/core_resource.hrc:2288
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "#Totals"
-msgstr ""
+msgstr "#جمع کل"
#. ZF2Pc
#. L10n: preserve the leading '#' hash character in translations.
#: formula/inc/core_resource.hrc:2290
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "#This Row"
-msgstr ""
+msgstr "#این سطر"
#. kHXXq
#: formula/inc/core_resource.hrc:2291
diff --git a/source/fa/framework/messages.po b/source/fa/framework/messages.po
index 0eb2d806445..0db9af6c9fc 100644
--- a/source/fa/framework/messages.po
+++ b/source/fa/framework/messages.po
@@ -4,16 +4,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-06-11 17:08+0200\n"
-"PO-Revision-Date: 2021-03-23 10:56+0000\n"
-"Last-Translator: Hossein <hossein.ir@gmail.com>\n"
-"Language-Team: Persian <https://translations.documentfoundation.org/projects/libo_ui-master/frameworkmessages/fa/>\n"
+"PO-Revision-Date: 2022-03-04 05:39+0000\n"
+"Last-Translator: Hossein <hossein@libreoffice.org>\n"
+"Language-Team: Persian <https://translations.documentfoundation.org/projects/libo_ui-7-3/frameworkmessages/fa/>\n"
"Language: fa\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Accelerator-Marker: ~\n"
-"X-Generator: LibreOffice\n"
+"X-Generator: Weblate 4.8.1\n"
"X-POOTLE-MTIME: 1507240197.000000\n"
#. 5dTDC
@@ -154,7 +154,7 @@ msgstr "~بازنشانی"
#: framework/inc/strings.hrc:44
msgctxt "STR_LOCK_TOOLBARS"
msgid "~Lock Toolbars"
-msgstr ""
+msgstr "~قفل کردن نوارهای ابزار"
#. ntyDa
#: framework/inc/strings.hrc:45
diff --git a/source/fa/nlpsolver/help/en/com.sun.star.comp.Calc.NLPSolver.po b/source/fa/nlpsolver/help/en/com.sun.star.comp.Calc.NLPSolver.po
index 845ae22fd95..9843c99f8e5 100644
--- a/source/fa/nlpsolver/help/en/com.sun.star.comp.Calc.NLPSolver.po
+++ b/source/fa/nlpsolver/help/en/com.sun.star.comp.Calc.NLPSolver.po
@@ -4,16 +4,16 @@ msgstr ""
"Project-Id-Version: LibO 350-l10n\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2019-07-11 18:38+0200\n"
-"PO-Revision-Date: 2017-12-14 12:15+0000\n"
-"Last-Translator: Anonymous Pootle User\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2022-03-04 05:39+0000\n"
+"Last-Translator: Hossein <hossein@libreoffice.org>\n"
+"Language-Team: Persian <https://translations.documentfoundation.org/projects/libo_ui-7-3/nlpsolverhelpencomsunstarcompcalcnlpsolver/fa/>\n"
"Language: fa\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Accelerator-Marker: ~\n"
-"X-Generator: LibreOffice\n"
+"X-Generator: Weblate 4.8.1\n"
"X-POOTLE-MTIME: 1513253733.000000\n"
#. XpeLj
@@ -32,7 +32,7 @@ msgctxt ""
"bm_id0503200917110375_scalc\n"
"help.text"
msgid "<bookmark_value>Solver for Nonlinear Problems;Options</bookmark_value>"
-msgstr ""
+msgstr "<bookmark_value>حل‌کننده مساله‌های غیرخطی؛ انتخاب‌ها</bookmark_value>"
#. FCECT
#: Options.xhp
diff --git a/source/fa/officecfg/registry/data/org/openoffice/Office/UI.po b/source/fa/officecfg/registry/data/org/openoffice/Office/UI.po
index 07f84145d16..f9844b074c5 100644
--- a/source/fa/officecfg/registry/data/org/openoffice/Office/UI.po
+++ b/source/fa/officecfg/registry/data/org/openoffice/Office/UI.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-21 12:38+0100\n"
-"PO-Revision-Date: 2022-01-26 12:32+0000\n"
+"PO-Revision-Date: 2022-03-04 05:39+0000\n"
"Last-Translator: Hossein <hossein@libreoffice.org>\n"
"Language-Team: Persian <https://translations.documentfoundation.org/projects/libo_ui-7-3/officecfgregistrydataorgopenofficeofficeui/fa/>\n"
"Language: fa\n"
@@ -105,7 +105,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Line Numbers"
-msgstr "شماره خطوط"
+msgstr "شماره خط"
#. jKn8k
#: BasicIDECommands.xcu
@@ -175,7 +175,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Form Spin Button"
-msgstr ""
+msgstr "دکمه چرخشی فرم"
#. Hw5Uq
#: BasicIDECommands.xcu
@@ -267,7 +267,7 @@ msgctxt ""
"UIName\n"
"value.text"
msgid "Tab Bar"
-msgstr "نوار عنوان"
+msgstr "نوار برگه"
#. MD35M
#: BasicIDEWindowState.xcu
@@ -438,7 +438,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Reset Filter"
-msgstr "آخرین فیلتر"
+msgstr "بازنشانی پالایه"
#. YF5sR
#: CalcCommands.xcu
@@ -520,7 +520,7 @@ msgctxt ""
"ContextLabel\n"
"value.text"
msgid "Clear ~Direct Formatting"
-msgstr ""
+msgstr "پاک‌سازی ~قالب‌بندی مستقیم"
#. uGVyg
#: CalcCommands.xcu
@@ -530,7 +530,7 @@ msgctxt ""
"TooltipLabel\n"
"value.text"
msgid "Clear Direct Formatting"
-msgstr ""
+msgstr "پاک‌سازی قالب‌بندی مستقیم"
#. BDpWM
#: CalcCommands.xcu
@@ -580,7 +580,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Freeze ~Cells"
-msgstr "ثابت نگه‌داشتن ~سلول‌ها"
+msgstr "ثابت کردن ~سلول‌ها"
#. p5wLA
#: CalcCommands.xcu
@@ -684,7 +684,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Exit Fill Mode"
-msgstr ""
+msgstr "خروج از حالت پر کردن"
#. JEXBA
#: CalcCommands.xcu
@@ -754,7 +754,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Spreadsheet Theme"
-msgstr ""
+msgstr "زمینهٔ صفحه‌گسترده"
#. Q4Yq2
#: CalcCommands.xcu
diff --git a/source/fa/scp2/source/ooo.po b/source/fa/scp2/source/ooo.po
index be1b92f5755..70c625a1567 100644
--- a/source/fa/scp2/source/ooo.po
+++ b/source/fa/scp2/source/ooo.po
@@ -4,16 +4,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-09-10 23:12+0200\n"
-"PO-Revision-Date: 2021-03-08 13:46+0000\n"
-"Last-Translator: Hossein <hossein.ir@gmail.com>\n"
-"Language-Team: Persian <https://translations.documentfoundation.org/projects/libo_ui-master/scp2sourceooo/fa/>\n"
+"PO-Revision-Date: 2022-03-04 05:39+0000\n"
+"Last-Translator: Hossein <hossein@libreoffice.org>\n"
+"Language-Team: Persian <https://translations.documentfoundation.org/projects/libo_ui-7-3/scp2sourceooo/fa/>\n"
"Language: fa\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Accelerator-Marker: ~\n"
-"X-Generator: LibreOffice\n"
+"X-Generator: Weblate 4.8.1\n"
"X-POOTLE-MTIME: 1542023222.000000\n"
#. CYBGJ
@@ -41,7 +41,7 @@ msgctxt ""
"STR_FI_NAME_SAFEMODE\n"
"LngText.text"
msgid "%PRODUCTNAME (Safe Mode)"
-msgstr ""
+msgstr "%PRODUCTNAME (حالت ایمن)"
#. sRSeW
#: folderitem_ooo.ulf
@@ -50,7 +50,7 @@ msgctxt ""
"STR_FI_TOOLTIP_SOFFICE\n"
"LngText.text"
msgid "LibreOffice, the office productivity suite provided by The Document Foundation. See https://www.documentfoundation.org"
-msgstr ""
+msgstr "لیبره آفیس، مجموعه نرم افزار اداری ارائه شده توسط بنیاد مستندات. آدرس https://www.documentfoundation.org را ببینید."
#. Bf97K
#: module_helppack.ulf
@@ -77,7 +77,7 @@ msgctxt ""
"STR_NAME_MODULE_HELPPACK_EN_US\n"
"LngText.text"
msgid "English (United States)"
-msgstr ""
+msgstr "انگلیسی (ایالات متحده)"
#. Bz4jG
#: module_helppack.ulf
diff --git a/source/fa/wizards/source/resources.po b/source/fa/wizards/source/resources.po
index ba90befb08d..a5dbdab8a1b 100644
--- a/source/fa/wizards/source/resources.po
+++ b/source/fa/wizards/source/resources.po
@@ -4,16 +4,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2020-10-27 12:31+0100\n"
-"PO-Revision-Date: 2021-03-08 13:45+0000\n"
-"Last-Translator: Hossein <hossein.ir@gmail.com>\n"
-"Language-Team: Persian <https://translations.documentfoundation.org/projects/libo_ui-master/wizardssourceresources/fa/>\n"
+"PO-Revision-Date: 2022-03-04 05:39+0000\n"
+"Last-Translator: Hossein <hossein@libreoffice.org>\n"
+"Language-Team: Persian <https://translations.documentfoundation.org/projects/libo_ui-7-3/wizardssourceresources/fa/>\n"
"Language: fa\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Accelerator-Marker: ~\n"
-"X-Generator: Weblate 4.4.2\n"
+"X-Generator: Weblate 4.8.1\n"
"X-POOTLE-MTIME: 1541615853.000000\n"
#. 8UKfi
@@ -277,7 +277,7 @@ msgctxt ""
"RID_REPORT_11\n"
"property.text"
msgid "Grouping"
-msgstr ""
+msgstr "گروه‌بندی"
#. wVXwx
#: resources_en_US.properties
@@ -286,7 +286,7 @@ msgctxt ""
"RID_REPORT_12\n"
"property.text"
msgid "Sort options"
-msgstr ""
+msgstr "گزینه های دسته بندی"
#. 7EUD3
#: resources_en_US.properties
@@ -304,7 +304,7 @@ msgctxt ""
"RID_REPORT_14\n"
"property.text"
msgid "Create report"
-msgstr ""
+msgstr "ایجاد گزارش"
#. cKDcw
#: resources_en_US.properties
@@ -313,7 +313,7 @@ msgctxt ""
"RID_REPORT_15\n"
"property.text"
msgid "Layout of data"
-msgstr ""
+msgstr "چیدمان داده"
#. HhPzF
#: resources_en_US.properties
@@ -387,7 +387,7 @@ msgctxt ""
"RID_REPORT_28\n"
"property.text"
msgid "Which fields do you want to have in your report?"
-msgstr ""
+msgstr "شما می خواهید در گزارش خود کدام قسمت ها را داشته باشید؟"
#. HZgJU
#: resources_en_US.properties
diff --git a/source/fi/sd/messages.po b/source/fi/sd/messages.po
index 924ded19a7b..42464f9498b 100644
--- a/source/fi/sd/messages.po
+++ b/source/fi/sd/messages.po
@@ -4,9 +4,9 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-21 12:38+0100\n"
-"PO-Revision-Date: 2022-01-18 17:38+0000\n"
+"PO-Revision-Date: 2022-03-01 21:38+0000\n"
"Last-Translator: Tuomas Hietala <tuomas.hietala@iki.fi>\n"
-"Language-Team: Finnish <https://translations.documentfoundation.org/projects/libo_ui-master/sdmessages/fi/>\n"
+"Language-Team: Finnish <https://translations.documentfoundation.org/projects/libo_ui-7-3/sdmessages/fi/>\n"
"Language: fi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -3787,7 +3787,7 @@ msgstr "N_äkyvä"
#: sd/uiconfig/sdraw/ui/insertlayer.ui:223
msgctxt "insertlayer|extended_tip|visible"
msgid "Show or hide the layer."
-msgstr ""
+msgstr "Näytä tai piilota kerros."
#. BtGRo
#: sd/uiconfig/sdraw/ui/insertlayer.ui:235
diff --git a/source/fr/helpcontent2/source/text/scalc/01.po b/source/fr/helpcontent2/source/text/scalc/01.po
index d31a1a43969..737cb0e0ac2 100644
--- a/source/fr/helpcontent2/source/text/scalc/01.po
+++ b/source/fr/helpcontent2/source/text/scalc/01.po
@@ -4,9 +4,9 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-20 13:20+0100\n"
-"PO-Revision-Date: 2022-01-11 13:38+0000\n"
+"PO-Revision-Date: 2022-03-03 04:39+0000\n"
"Last-Translator: serval2412 <serval2412@yahoo.fr>\n"
-"Language-Team: French <https://translations.documentfoundation.org/projects/libo_help-master/textscalc01/fr/>\n"
+"Language-Team: French <https://translations.documentfoundation.org/projects/libo_help-7-3/textscalc01/fr/>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -65219,7 +65219,7 @@ msgctxt ""
"par_id135761606425300\n"
"help.text"
msgid "<item type=\"input\">=SUMIFS(C2:C6;A2:A6;E2&\".*\";B2:B6;\"<\"&MAX(B2:B6))</item>"
-msgstr "<item type=\"input\">=SOMME.SI.ENS(C2:C6;A2:A6;\".*\";B2:B6;\"<\"&MAX(B2:B6))</item>"
+msgstr "<item type=\"input\">=SOMME.SI.ENS(C2:C6;A2:A6;E2&\".*\";B2:B6;\"<\"&MAX(B2:B6))</item>"
#. wGhZA
#: func_sumifs.xhp
diff --git a/source/gl/cui/messages.po b/source/gl/cui/messages.po
index 1e9652e66cf..67ed7c42643 100644
--- a/source/gl/cui/messages.po
+++ b/source/gl/cui/messages.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2022-01-10 12:20+0100\n"
-"PO-Revision-Date: 2022-02-16 08:40+0000\n"
+"PO-Revision-Date: 2022-03-06 09:39+0000\n"
"Last-Translator: Xosé <xosecalvo@gmail.com>\n"
"Language-Team: Galician <https://translations.documentfoundation.org/projects/libo_ui-7-3/cuimessages/gl/>\n"
"Language: gl\n"
@@ -8553,7 +8553,7 @@ msgstr "Debaixo do texto"
#: cui/uiconfig/ui/effectspage.ui:173
msgctxt "effectspage|extended_tip|positionlb"
msgid "Specify where to display the emphasis marks."
-msgstr " Especifique onde amosar as marcas de énfase."
+msgstr "Especifique onde amosar as marcas de énfase."
#. ycUGm
#: cui/uiconfig/ui/effectspage.ui:186
@@ -8577,7 +8577,7 @@ msgstr "Co_ntorno"
#: cui/uiconfig/ui/effectspage.ui:221
msgctxt "effectspage|extended_tip|outlinecb"
msgid "Displays the outline of the selected characters. This effect does not work with every font."
-msgstr " Mostra o contorno dos caracteres seleccionados. Este efecto non funciona con todas as fontes."
+msgstr "Mostra o contorno dos caracteres seleccionados. Este efecto non funciona con todos os tipos de letra."
#. zanV7
#: cui/uiconfig/ui/effectspage.ui:232
@@ -8589,7 +8589,7 @@ msgstr "Som_bra"
#: cui/uiconfig/ui/effectspage.ui:241
msgctxt "effectspage|extended_tip|shadowcb"
msgid "Adds a shadow that casts below and to the right of the selected characters."
-msgstr " Engade unha sombra que lanza abaixo e á dereita dos caracteres seleccionados."
+msgstr "Engade unha sombra que se proxecta abaixo e á dereita dos caracteres seleccionados."
#. ZCZb6
#: cui/uiconfig/ui/effectspage.ui:252
@@ -8733,7 +8733,7 @@ msgstr "Ondulación dupla"
#: cui/uiconfig/ui/effectspage.ui:386
msgctxt "effectspage|extended_tip|overlinelb"
msgid "Select the overlining style that you want to apply. To apply the overlining to words only, select the Individual Words box."
-msgstr " Seleccione o estilo overlining que quere aplicar. Para aplicar o overlining só as palabras, seleccione a caixa palabras individuais ."
+msgstr "Seleccione o estilo de sobreliña que desexe aplicar. Para aplicar a sobreliña só as palabras, seleccione a opción Palabras individuais."
#. jbrhD
#: cui/uiconfig/ui/effectspage.ui:420
@@ -8781,19 +8781,19 @@ msgstr "Con X"
#: cui/uiconfig/ui/effectspage.ui:443
msgctxt "effectspage|extended_tip|strikeoutlb"
msgid "Select a strikethrough style for the selected text."
-msgstr " Seleccione un estilo de tachado para o texto seleccionado."
+msgstr "Seleccione un estilo de riscado para o texto seleccionado."
#. qtErr
#: cui/uiconfig/ui/effectspage.ui:465
msgctxt "effectspage|extended_tip|underlinecolorlb"
msgid "Select the color for the underlining."
-msgstr " Seleccione a cor para o subliñado."
+msgstr "Seleccione a cor para o subliñado."
#. vuxpt
#: cui/uiconfig/ui/effectspage.ui:487
msgctxt "effectspage|extended_tip|overlinecolorlb"
msgid "Select the color for the overlining."
-msgstr " Seleccione a cor para o overlining."
+msgstr "Seleccione a cor da sobreliña."
#. JP4PB
#: cui/uiconfig/ui/effectspage.ui:498
@@ -8805,7 +8805,7 @@ msgstr "Palabras _individuais"
#: cui/uiconfig/ui/effectspage.ui:506
msgctxt "effectspage|extended_tip|individualwordscb"
msgid "Applies the selected effect only to words and ignores spaces."
-msgstr " Aplica o efecto seleccionado só a palabras e ignora os espazos."
+msgstr "Aplica o efecto seleccionado só a palabras e ignora os espazos."
#. oFKJN
#: cui/uiconfig/ui/effectspage.ui:550
@@ -8847,7 +8847,7 @@ msgstr "Cor da letra"
#: cui/uiconfig/ui/effectspage.ui:678
msgctxt "effectspage|extended_tip|EffectsPage"
msgid "Specify the font effects that you want to use."
-msgstr " Especifique os efectos de fonte que quere usar."
+msgstr "Especifique os efectos tipográficos que quere usar."
#. GypUU
#: cui/uiconfig/ui/embossdialog.ui:8
@@ -9405,7 +9405,7 @@ msgstr "Tipo de letra"
#: cui/uiconfig/ui/formatcellsdialog.ui:185
msgctxt "formatcellsdialog|effects"
msgid "Font Effects"
-msgstr "Bordos"
+msgstr "Efectos do tipo de letra"
#. Pz8yJ
#: cui/uiconfig/ui/formatcellsdialog.ui:233
@@ -12802,7 +12802,7 @@ msgstr "_Número de columnas:"
#: cui/uiconfig/ui/newtabledialog.ui:117
msgctxt "newtabledialog|rows_label"
msgid "_Number of rows:"
-msgstr "_Número de liñas:"
+msgstr "_Número de filas:"
#. VWxkk
#: cui/uiconfig/ui/newtoolbardialog.ui:8
diff --git a/source/gl/sw/messages.po b/source/gl/sw/messages.po
index ea13c62ebe2..7af582a8044 100644
--- a/source/gl/sw/messages.po
+++ b/source/gl/sw/messages.po
@@ -4,16 +4,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2022-01-10 12:22+0100\n"
-"PO-Revision-Date: 2021-12-12 19:38+0000\n"
+"PO-Revision-Date: 2022-03-05 08:39+0000\n"
"Last-Translator: Xosé <xosecalvo@gmail.com>\n"
-"Language-Team: Galician <https://translations.documentfoundation.org/projects/libo_ui-master/swmessages/gl/>\n"
+"Language-Team: Galician <https://translations.documentfoundation.org/projects/libo_ui-7-3/swmessages/gl/>\n"
"Language: gl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Accelerator-Marker: ~\n"
-"X-Generator: LibreOffice\n"
+"X-Generator: Weblate 4.8.1\n"
"X-POOTLE-MTIME: 1562578065.000000\n"
#. v3oJv
@@ -17688,13 +17688,13 @@ msgstr "Texto:"
#: sw/uiconfig/swriter/ui/insertscript.ui:245
msgctxt "insertscript|extended_tip|text"
msgid "Enter the script code that you want to insert."
-msgstr " Introduza ocódigo de script que desexa inserir."
+msgstr "Introduza o código de script que desexe inserir."
#. 8GXCG
#: sw/uiconfig/swriter/ui/insertscript.ui:270
msgctxt "insertscript|extended_tip|textentry"
msgid "Enter the script code that you want to insert."
-msgstr " Introduza ocódigo de script que desexa inserir."
+msgstr "Introduza o código de script que desexe inserir."
#. nSrqS
#: sw/uiconfig/swriter/ui/insertscript.ui:307
@@ -17772,7 +17772,7 @@ msgstr "Pecha a caixa de diálogo e descarta todos os cambios."
#: sw/uiconfig/swriter/ui/inserttable.ui:147
msgctxt "inserttable|extended_tip|nameedit"
msgid "Enter a name for the table."
-msgstr " Introduzaun nome para a táboa."
+msgstr "Introduza un nome para a táboa."
#. nrFC2
#: sw/uiconfig/swriter/ui/inserttable.ui:161
@@ -17790,7 +17790,7 @@ msgstr "_Columnas:"
#: sw/uiconfig/swriter/ui/inserttable.ui:195
msgctxt "inserttable|extended_tip|colspin"
msgid "Enter the number of columns that you want in the table."
-msgstr " Introduzao número de columnas que quere na táboa."
+msgstr "Introduza o número de columnas que quere na táboa."
#. f3nKw
#: sw/uiconfig/swriter/ui/inserttable.ui:208
@@ -17802,7 +17802,7 @@ msgstr "_Filas:"
#: sw/uiconfig/swriter/ui/inserttable.ui:228
msgctxt "inserttable|extended_tip|rowspin"
msgid "Enter the number of rows that you want in the table."
-msgstr " Introduzao número de liñas que desexa na táboa."
+msgstr "Introduza o número de filas que desexe na táboa."
#. odHbY
#: sw/uiconfig/swriter/ui/inserttable.ui:240
@@ -17826,7 +17826,7 @@ msgstr "Tít_ulo"
#: sw/uiconfig/swriter/ui/inserttable.ui:295
msgctxt "inserttable|extended_tip|headercb"
msgid "Includes a heading row in the table."
-msgstr " Inclúeunha liña de título na táboa."
+msgstr "Inclúe unha fila de título na táboa."
#. 7obXo
#: sw/uiconfig/swriter/ui/inserttable.ui:306
@@ -17838,7 +17838,7 @@ msgstr "Re_petir as filas de cabeceira nas páxinas novas"
#: sw/uiconfig/swriter/ui/inserttable.ui:317
msgctxt "inserttable|extended_tip|repeatcb"
msgid "Repeats the heading of the table at the top of subsequent page if the table spans more than one page."
-msgstr " Repite otítulo da táboa na parte superior da páxina posterior a táboa ocupar máisdunha páxina."
+msgstr "Repite o título da táboa na parte superior da páxina seguinte se a táboa ocupar máis dunha páxina."
#. EkDeF
#: sw/uiconfig/swriter/ui/inserttable.ui:328
@@ -17850,13 +17850,13 @@ msgstr "Non _dividir a táboa entre páxinas"
#: sw/uiconfig/swriter/ui/inserttable.ui:336
msgctxt "inserttable|extended_tip|dontsplitcb"
msgid "Prevents the table from spanning more than one page."
-msgstr " Impideque a táboa que engloban máis dunha páxina."
+msgstr "Impide que a táboa ocupe máis de unha páxina."
#. NveMH
#: sw/uiconfig/swriter/ui/inserttable.ui:363
msgctxt "inserttable|extended_tip|repeatheaderspin"
msgid "Select the number of rows that you want to use for the heading."
-msgstr "Seleccione o número de liñas que desexa usar para o título."
+msgstr "Seleccione o número de filas que desexe usar para o título."
#. kkA32
#: sw/uiconfig/swriter/ui/inserttable.ui:376
@@ -27467,7 +27467,7 @@ msgstr "filas"
#: sw/uiconfig/swriter/ui/tabletextflowpage.ui:427
msgctxt "tabletextflowpage|extended_tip|repeatheadernf"
msgid "Enter the number of rows to include in the heading."
-msgstr " Introduza o número de liñas a incluír no título."
+msgstr "Introduza o número de filas que incluír no título."
#. yLhbA
#: sw/uiconfig/swriter/ui/tabletextflowpage.ui:454
@@ -28031,7 +28031,7 @@ msgstr "Caracteres por liña:"
#: sw/uiconfig/swriter/ui/textgridpage.ui:231
msgctxt "textgridpage|extended_tip|spinNF_CHARSPERLINE"
msgid "Enter the maximum number of characters that you want on a line."
-msgstr " Introduza o número máximo de caracteres que quere nunha liña."
+msgstr "Introduza o número máximo de caracteres que quere nunha liña."
#. YoUGQ
#: sw/uiconfig/swriter/ui/textgridpage.ui:258
@@ -28043,7 +28043,7 @@ msgstr "Liñas por páxina:"
#: sw/uiconfig/swriter/ui/textgridpage.ui:276
msgctxt "textgridpage|extended_tip|spinNF_LINESPERPAGE"
msgid "Enter the maximum number of lines that you want on a page."
-msgstr " Introduza o número máximo de liñas que quere nunha páxina."
+msgstr "Introduza o número máximo de liñas que quere nunha páxina."
#. VKRDD
#: sw/uiconfig/swriter/ui/textgridpage.ui:330
diff --git a/source/gug/helpcontent2/source/text/sbasic/guide.po b/source/gug/helpcontent2/source/text/sbasic/guide.po
index 78c5ba15dd1..a979225b56d 100644
--- a/source/gug/helpcontent2/source/text/sbasic/guide.po
+++ b/source/gug/helpcontent2/source/text/sbasic/guide.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-10-20 13:08+0200\n"
-"PO-Revision-Date: 2022-02-28 17:35+0000\n"
+"PO-Revision-Date: 2022-03-04 07:38+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
"Language-Team: Spanish <https://translations.documentfoundation.org/projects/libo_help-7-3/textsbasicguide/es/>\n"
"Language: es\n"
@@ -734,7 +734,7 @@ msgctxt ""
"bas_id131630537785605\n"
"help.text"
msgid "' Creates the UNO struct that will store the new line format"
-msgstr ""
+msgstr "' Crea la estructura UNO que almacenará el formato de línea nuevo"
#. qpADJ
#: calc_borders.xhp
diff --git a/source/gug/helpcontent2/source/text/sbasic/shared.po b/source/gug/helpcontent2/source/text/sbasic/shared.po
index d92861ce4ac..34f5f830890 100644
--- a/source/gug/helpcontent2/source/text/sbasic/shared.po
+++ b/source/gug/helpcontent2/source/text/sbasic/shared.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-20 13:20+0100\n"
-"PO-Revision-Date: 2022-02-10 10:40+0000\n"
+"PO-Revision-Date: 2022-03-09 10:50+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
"Language-Team: Spanish <https://translations.documentfoundation.org/projects/libo_help-7-3/textsbasicshared/es/>\n"
"Language: es\n"
@@ -39308,7 +39308,7 @@ msgctxt ""
"par_id601592355758534\n"
"help.text"
msgid "MULTINOMIAL"
-msgstr ""
+msgstr "MULTINOMIAL"
#. wDMMt
#: calc_functions.xhp
diff --git a/source/gug/helpcontent2/source/text/scalc/01.po b/source/gug/helpcontent2/source/text/scalc/01.po
index 78e6c809296..786370147f7 100644
--- a/source/gug/helpcontent2/source/text/scalc/01.po
+++ b/source/gug/helpcontent2/source/text/scalc/01.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-20 13:20+0100\n"
-"PO-Revision-Date: 2022-02-28 17:35+0000\n"
+"PO-Revision-Date: 2022-03-09 18:23+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
"Language-Team: Spanish <https://translations.documentfoundation.org/projects/libo_help-7-3/textscalc01/es/>\n"
"Language: es\n"
@@ -4451,7 +4451,7 @@ msgctxt ""
"par_id761615842549780\n"
"help.text"
msgid "<emph>Database</emph>. The cell range of the database."
-msgstr "<emph>Base de datos</emph>. El intervalo de celas de la base de datos."
+msgstr "<emph>BaseDeDatos</emph>. El intervalo de celdas de la base de datos."
#. nw3ya
#: 04060101.xhp
@@ -4469,7 +4469,7 @@ msgctxt ""
"par_id471615842721059\n"
"help.text"
msgid "<emph>SearchCriteria</emph>. The cell range of a separate area of the spreadsheet containing search criteria."
-msgstr ""
+msgstr "<emph>CriteriosDeBúsqueda</emph>. El intervalo de celdas de un área separada de la hoja de cálculo que contiene los criterios de búsqueda."
#. RT3mc
#: 04060101.xhp
@@ -5279,7 +5279,7 @@ msgctxt ""
"par_id171616180137385\n"
"help.text"
msgid "Calc reports Err:502 (invalid argument) if multiple matches are found, or a #VALUE! error (wrong data type) if no matches are found. A #VALUE! error is also reported if a single match is found but the relevant cell is empty."
-msgstr ""
+msgstr "Calc informa Err: 502 (argumento no válido) si se encuentran múltiples coincidencias, o un error #¡VALOR! (tipo de datos incorrecto) si no se encuentran coincidencias. También se devuelve un error #¡VALOR! si se encuentra una sola coincidencia pero la celda correspondiente está vacía."
#. oFi8J
#: 04060101.xhp
@@ -5513,7 +5513,7 @@ msgctxt ""
"bm_id3159269\n"
"help.text"
msgid "<bookmark_value>DPRODUCT function</bookmark_value><bookmark_value>multiplying;cell contents in Calc databases</bookmark_value>"
-msgstr ""
+msgstr "<bookmark_value>Función BDPRODUCTO</bookmark_value><bookmark_value>multiplicar;contenido de celda en bases de datos de Calc</bookmark_value>"
#. gvW9Q
#: 04060101.xhp
@@ -8402,7 +8402,7 @@ msgctxt ""
"par_id5863826\n"
"help.text"
msgid "<input>=A2+B2+STYLE(IF(CURRENT()>10;\"Red\";\"Default\"))</input>"
-msgstr ""
+msgstr "<input>=A2+B2+ESTILO(SI(ACTUAL()>10;\"Rojo\";\"Predeterminado\"))</input>"
#. fNamE
#: 04060104.xhp
@@ -9302,7 +9302,7 @@ msgctxt ""
"par_id31537481\n"
"help.text"
msgid "IFNA(Value; Alternate_value)"
-msgstr ""
+msgstr "SI.ND(Valor; Valor_alternativo)"
#. 6oj7E
#: 04060104.xhp
@@ -9860,7 +9860,7 @@ msgctxt ""
"par_id3147355\n"
"help.text"
msgid "CELL(\"InfoType\" [; Reference])"
-msgstr ""
+msgstr "CELDA(\"TipoInformación\" [; Referencia])"
#. wjBKt
#: 04060104.xhp
@@ -10643,7 +10643,7 @@ msgctxt ""
"par_id3150867\n"
"help.text"
msgid "<input>=IF(A1>5;100;\"too small\")</input> If the value in <literal>A1</literal> is greater than <literal>5</literal>, the value <literal>100</literal> is returned; otherwise, the text <literal>too small</literal> is returned."
-msgstr ""
+msgstr "<input>=SI(A1>5;100;\"demasiado pequeño\")</input> Si el valor en <literal>A1</literal> es mayor que <literal>5</literal>, devuelve <literal>100</literal>; de lo contrario, devuelve el texto <literal>demasiado pequeño</literal>."
#. jvk3H
#: 04060105.xhp
@@ -10652,7 +10652,7 @@ msgctxt ""
"par_id71607569817532\n"
"help.text"
msgid "<input>=IF(A1>5;;\"too small\")</input> If the value in <literal>A1</literal> is greater than <literal>5</literal>, the value <literal>0</literal> is returned because empty parameters are considered to be <literal>0</literal>; otherwise, the text <literal>too small</literal> is returned."
-msgstr ""
+msgstr "<input>=SI(A1>5;;\"demasiado pequeño\")</input> Si el valor en <literal>A1</literal> es mayor que <literal>5</literal>, devuelve <literal>0 </literal> porque los parámetros vacíos se consideran <literal>0</literal>; de lo contrario, devuelve el texto <literal>demasiado pequeño</literal>."
#. Q6yTs
#: 04060105.xhp
@@ -11642,7 +11642,7 @@ msgctxt ""
"par_id5036167\n"
"help.text"
msgid "%PRODUCTNAME results 0 for ATAN2(0;0)."
-msgstr ""
+msgstr "%PRODUCTNAME da como resultado 0 para ATAN2(0;0)."
#. BCKQE
#: 04060106.xhp
@@ -13199,7 +13199,7 @@ msgctxt ""
"par_id3155660\n"
"help.text"
msgid "MULTINOMIAL(<embedvar href=\"text/scalc/01/ful_func.xhp#number255_1\" markup=\"keep\"/>)"
-msgstr ""
+msgstr "MULTINOMIAL(<embedvar href=\"text/scalc/01/ful_func.xhp#number255_1\" markup=\"keep\"/>)"
#. YLFwC
#: 04060106.xhp
@@ -13280,7 +13280,7 @@ msgctxt ""
"par_id241599040594931\n"
"help.text"
msgid "<literal>=POWER(0,0)</literal> returns 1."
-msgstr ""
+msgstr "<literal>=POTENCIA(0,0)</literal> devuelve 1."
#. D3Ghv
#: 04060106.xhp
@@ -13469,7 +13469,7 @@ msgctxt ""
"par_id3160368\n"
"help.text"
msgid "<ahelp hid=\"HID_FUNC_QUADRATESUMME\">Calculates the sum of the squares of a set of numbers.</ahelp>"
-msgstr ""
+msgstr "<ahelp hid=\"HID_FUNC_QUADRATESUMME\">Calcula la suma de los cuadrados de un conjunto de números.</ahelp>"
#. 2gNvN
#: 04060106.xhp
@@ -14261,7 +14261,7 @@ msgctxt ""
"par_id3152043\n"
"help.text"
msgid "<emph>Range</emph> is the range to which the criterion is to be applied."
-msgstr ""
+msgstr "<emph>Intervalo</emph> es el intervalo al que se aplicará el criterio."
#. FCxrw
#: 04060106.xhp
@@ -14882,7 +14882,7 @@ msgctxt ""
"par_id901631901062056\n"
"help.text"
msgid "<emph>Value</emph> is the amount of the currency to be converted."
-msgstr ""
+msgstr "<emph>Valor</emph> es la cantidad de moneda que se va a convertir."
#. AE6XU
#: 04060106.xhp
@@ -15377,7 +15377,7 @@ msgctxt ""
"bm_id461590241346526\n"
"help.text"
msgid "<bookmark_value>random numbers non-volatile; between limits</bookmark_value><bookmark_value>RANDBETWEEN.NV function</bookmark_value>"
-msgstr ""
+msgstr "<bookmark_value>números aleatorios no volátiles;entre límites</bookmark_value><bookmark_value>función ALEATORIO.ENTRE.NV</bookmark_value>"
#. cgHiZ
#: 04060106.xhp
@@ -15386,7 +15386,7 @@ msgctxt ""
"hd_id171590240366277\n"
"help.text"
msgid "RANDBETWEEN.NV"
-msgstr ""
+msgstr "ALEATORIO.ENTRE.NV"
#. Akjyr
#: 04060106.xhp
@@ -15404,7 +15404,7 @@ msgctxt ""
"par_id181590240522012\n"
"help.text"
msgid "RANDBETWEEN.NV(Bottom; Top)"
-msgstr "ALEATORIOENTRE.NV(Inferior; Superior)"
+msgstr "ALEATORIO.ENTRE.NV(Inferior; Superior)"
#. q82vw
#: 04060106.xhp
@@ -15422,7 +15422,7 @@ msgctxt ""
"par_id151590240999839\n"
"help.text"
msgid "<input>=RANDBETWEEN.NV(20;30)</input> returns a non-volatile integer between 20 and 30."
-msgstr "<input>=ALEATORIOENTRE.NV(20;30)</input> devuelve un número entero no volátil entre 20 y 30."
+msgstr "<input>=ALEATORIO.ENTRE.NV(20;30)</input> devuelve un número entero no volátil entre 20 y 30."
#. cAQDh
#: 04060106.xhp
@@ -15431,7 +15431,7 @@ msgctxt ""
"par_id1001590241005601\n"
"help.text"
msgid "<input>=RANDBETWEEN.NV(A1;30)</input> returns a non-volatile integer between the value of cell A1 and 30. The function is recalculated when the contents of cell A1 change."
-msgstr "<input>=ALEATORIOENTRE.NV(A1;30)</input> devuelve un número entero no volátil entre el valor de la celda A1 y 30. La función se vuelve a calcular cuando cambia el contenido de la celda A1."
+msgstr "<input>=ALEATORIO.ENTRE.NV(A1;30)</input> devuelve un número entero no volátil entre el valor de la celda A1 y 30. La función se vuelve a calcular cuando cambia el contenido de la celda A1."
#. odp65
#: 04060106.xhp
@@ -15503,7 +15503,7 @@ msgctxt ""
"par_id801590242114296\n"
"help.text"
msgid "Use the Fill Cell command with random numbers (<menuitem>Sheet - Fill Cells - Fill Random Numbers</menuitem>)."
-msgstr ""
+msgstr "Utilice la orden Rellenar celdas con números aleatorios (<menuitem>Hoja ▸ Rellenar celdas ▸ Rellenar números aleatorios</menuitem>)."
#. o9wUN
#: 04060106.xhp
@@ -15566,7 +15566,7 @@ msgctxt ""
"par_id271590239748534\n"
"help.text"
msgid "This function produces a non-volatile random number on input. A non-volatile function is not recalculated at new input events. The function does not recalculate when pressing <keycode>F9</keycode>, except when the cursor is on the cell containing the function. The function is recalculated when opening the file."
-msgstr ""
+msgstr "Esta función produce un número aleatorio no volátil en la entrada. Una función no volátil no se vuelve a calcular al ocurrir sucesos de entrada nuevis. La función no se vuelve a calcular al presionar <keycode>F9</keycode>, excepto cuando el cursor está en la celda que contiene la función. La función se vuelve a calcular al abrir el archivo."
#. sCwno
#: 04060106.xhp
@@ -15701,7 +15701,7 @@ msgctxt ""
"hd_id3150713\n"
"help.text"
msgid "When do you use array formulas?"
-msgstr "¿Cuándo se deben utilizar fórmulas matriciales?"
+msgstr "¿Cuándo se deben utilizar las fórmulas matriciales?"
#. ytL94
#: 04060107.xhp
@@ -17294,7 +17294,7 @@ msgctxt ""
"par_id3163347\n"
"help.text"
msgid "SUMPRODUCT(Array 1[; Array 2;][...;[Array 255]])"
-msgstr ""
+msgstr "SUMA.PRODUCTO(Matriz 1[; Matriz 2;][...;[Matriz 255]])"
#. gGK9K
#: 04060107.xhp
@@ -17312,7 +17312,7 @@ msgctxt ""
"par_idN11B19\n"
"help.text"
msgid "At least one array must be part of the argument list. If only one array is given, all array elements are summed. If more than one array is given, they must all be the same size."
-msgstr ""
+msgstr "Al menos una matriz debe ser parte de la lista de argumentos. Si solo se proporciona una matriz, se suman todos los elementos de la matriz. Si se proporciona más de una matriz, todas deben tener el mismo tamaño."
#. DgsMB
#: 04060107.xhp
@@ -17717,7 +17717,7 @@ msgctxt ""
"par_id3157874\n"
"help.text"
msgid "<variable id=\"statistiktext\">This category contains the <emph>Statistics</emph> functions.</variable>"
-msgstr ""
+msgstr "<variable id=\"statistiktext\">Esta categoría contiene las funciones de <emph>Estadísticas</emph>.</variable>"
#. HiTED
#: 04060108.xhp
@@ -17807,7 +17807,7 @@ msgctxt ""
"hd_id3146968\n"
"help.text"
msgid "ADDRESS"
-msgstr "ADDRESS"
+msgstr "DIRECCION"
#. EDZCM
#: 04060109.xhp
@@ -19301,7 +19301,7 @@ msgctxt ""
"par_id3149302\n"
"help.text"
msgid "STYLE(\"Style\" [; Time [; \"Style2\"]])"
-msgstr ""
+msgstr "ESTILO(\"Estilo\" [; Tiempo [; \"Estilo2\"]])"
#. Q8SMG
#: 04060109.xhp
@@ -19877,7 +19877,7 @@ msgctxt ""
"par_idN11830\n"
"help.text"
msgid "<input>=HYPERLINK(\"http://www.\";\"Click \") & \"example.org\"</input> displays the text Click example.org in the cell and executes the hyperlink http://www.example.org when clicked."
-msgstr ""
+msgstr "<input>=HIPERVINCULO(\"http://www.\";\"Visite \") & \"ejemplo.org\"</input> muestra el texto «Visite ejemplo.org» en la celda y ejecuta el hiperenlace http://www.ejemplo.org cuando se pulsa con el ratón."
#. DDEtK
#: 04060109.xhp
@@ -21020,7 +21020,7 @@ msgctxt ""
"par_id161617202295558\n"
"help.text"
msgid "<item type=\"input\">=FIXED(12134567.89;-3;1)</item> returns 12135000 as a text string."
-msgstr ""
+msgstr "<item type=\"input\">=FIJO(12134567.89;-3;1)</item> devuelve 12135000 como una cadena de texto."
#. NmXWD
#: 04060110.xhp
@@ -21083,7 +21083,7 @@ msgctxt ""
"par_id3147274\n"
"help.text"
msgid "<emph>Text</emph> is the text where the initial partial words are to be determined."
-msgstr "<emph>Texto</emph> es el texto donde las palabras parciales iniciales deben determinarse."
+msgstr "<emph>Texto</emph> es la cadena de texto cuyas palabras parciales iniciales se determinarán."
#. BQHUb
#: 04060110.xhp
@@ -21137,7 +21137,7 @@ msgctxt ""
"par_id2946786\n"
"help.text"
msgid "LEFTB(\"Text\" [; Number_bytes])"
-msgstr ""
+msgstr "IZQUIERDAB(\"Texto\" [; Número_bytes])"
#. e6CdQ
#: 04060110.xhp
@@ -21551,7 +21551,7 @@ msgctxt ""
"par_id2958417\n"
"help.text"
msgid "<item type=\"input\">=MIDB(\"中国\";1;0)</item> returns \"\" (0 bytes is always an empty string)."
-msgstr ""
+msgstr "<item type=\"input\">=EXTRAEB(\"中国\";1;0)</item> devuelve «» (0 bytes siempre es una cadena vacía)."
#. q6dWL
#: 04060110.xhp
@@ -21560,7 +21560,7 @@ msgctxt ""
"par_id2958427\n"
"help.text"
msgid "<item type=\"input\">=MIDB(\"中国\";1;1)</item> returns \" \" (1 byte is only half a DBCS character and therefore the result is a space character)."
-msgstr "<item type=\"input\">=EXTRAEB(\"中国\";1;1)</item> devuelve \" \" (1 byte es solo la mitad de un carácter DBCS y, por lo tanto, el resultado es un carácter de espacio)."
+msgstr "<item type=\"input\">=EXTRAEB(\"中国\";1;1)</item> devuelve « » (1 byte es solo la mitad de un carácter DBCS y, por lo tanto, el resultado es un carácter de espacio)."
#. CfNES
#: 04060110.xhp
@@ -21569,7 +21569,7 @@ msgctxt ""
"par_id2958437\n"
"help.text"
msgid "<item type=\"input\">=MIDB(\"中国\";1;2)</item> returns \"中\" (2 bytes constitute one complete DBCS character)."
-msgstr ""
+msgstr "<item type=\"input\">=EXTRAEB(\"中国\";1;2)</item> devuelve «中» (2 bytes constituyen un carácter DBCS completo)."
#. wBLqC
#: 04060110.xhp
@@ -21578,7 +21578,7 @@ msgctxt ""
"par_id2958447\n"
"help.text"
msgid "<item type=\"input\">=MIDB(\"中国\";1;3)</item> returns \"中 \" (3 bytes constitute one and a half DBCS character; the last byte results in a space character)."
-msgstr ""
+msgstr "<item type=\"input\">=EXTRAEB(\"中国\";1;3)</item> devuelve «中 » (3 bytes constituyen un carácter DBCS y medio; el último byte da como resultado un carácter de espacio)."
#. GedmG
#: 04060110.xhp
@@ -21587,7 +21587,7 @@ msgctxt ""
"par_id2958457\n"
"help.text"
msgid "<item type=\"input\">=MIDB(\"中国\";1;4)</item> returns \"中国\" (4 bytes constitute two complete DBCS characters)."
-msgstr ""
+msgstr "<item type=\"input\">=EXTRAEB(\"中国\";1;4)</item> devuelve «中国» (4 bytes constituyen dos caracteres DBCS completos)."
#. dAMAA
#: 04060110.xhp
@@ -21596,7 +21596,7 @@ msgctxt ""
"par_id2958467\n"
"help.text"
msgid "<item type=\"input\">=MIDB(\"中国\";2;1)</item> returns \" \" (byte position 2 is not at the beginning of a character in a DBCS string; 1 space character is returned)."
-msgstr ""
+msgstr "<item type=\"input\">=EXTRAEB(\"中国\";2;1)</item> devuelve « » (la posición de byte 2 no está al principio de un carácter en una cadena DBCS; se devuelve 1 carácter de espacio)."
#. SXLij
#: 04060110.xhp
@@ -24521,7 +24521,7 @@ msgctxt ""
"par_id3153291\n"
"help.text"
msgid "Value or Len"
-msgstr "Value or Len"
+msgstr "Valor o Len"
#. 4EsF8
#: 04060112.xhp
@@ -24575,7 +24575,7 @@ msgctxt ""
"par_id3151322\n"
"help.text"
msgid "32 or 26+Len"
-msgstr "32 or 26+Len"
+msgstr "32 o 26+Len"
#. VDmRK
#: 04060112.xhp
diff --git a/source/gug/helpcontent2/source/text/shared/00.po b/source/gug/helpcontent2/source/text/shared/00.po
index 6b2a6027da2..657b7c8d558 100644
--- a/source/gug/helpcontent2/source/text/shared/00.po
+++ b/source/gug/helpcontent2/source/text/shared/00.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-21 12:38+0100\n"
-"PO-Revision-Date: 2022-02-28 17:35+0000\n"
+"PO-Revision-Date: 2022-03-03 04:39+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
"Language-Team: Spanish <https://translations.documentfoundation.org/projects/libo_help-7-3/textshared00/es/>\n"
"Language: es\n"
@@ -14693,7 +14693,7 @@ msgctxt ""
"par_id3150396\n"
"help.text"
msgid "Choose <menuitem>Tools - AutoCorrect - Apply and Edit Changes</menuitem>. The <emph>AutoCorrect</emph> dialog appears.<br/>Click the <emph>Edit Changes</emph> button and navigate to the <emph>List</emph> tab."
-msgstr ""
+msgstr "Vaya a <menuitem>Herramientas ▸ Corrección automática ▸ Aplicar y editar cambios</menuitem>. Aparece el cuadro de diálogo <emph>Corrección automática</emph>.<br/>Pulse en el botón <emph>Editar cambios</emph> y navegue a la pestaña <emph>Lista</emph>."
#. DRyHd
#: edit_menu.xhp
diff --git a/source/gug/helpcontent2/source/text/shared/01.po b/source/gug/helpcontent2/source/text/shared/01.po
index f7ebe9bde9f..55983073602 100644
--- a/source/gug/helpcontent2/source/text/shared/01.po
+++ b/source/gug/helpcontent2/source/text/shared/01.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2022-01-10 12:21+0100\n"
-"PO-Revision-Date: 2022-02-28 17:35+0000\n"
+"PO-Revision-Date: 2022-03-03 04:39+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
"Language-Team: Spanish <https://translations.documentfoundation.org/projects/libo_help-7-3/textshared01/es/>\n"
"Language: es\n"
@@ -37130,7 +37130,7 @@ msgctxt ""
"par_id791632159942582\n"
"help.text"
msgid "To turn off AutoCorrect in %PRODUCTNAME Writer choose <menuitem>Tools - AutoCorrect - While Typing</menuitem>. Refer to the help page <link href=\"text/swriter/guide/auto_off.xhp\" name=\"auto_off_link1\">Turning Off AutoCorrect</link> to learn more about deactivating AutoCorrect in %PRODUCTNAME Writer."
-msgstr ""
+msgstr "Para inhabilitar la corrección automática en %PRODUCTNAME Writer, seleccione <menuitem>Herramientas ▸ Corrección automática ▸ Al escribir</menuitem>. Consulte la página de ayuda <link href=\"text/swriter/guide/auto_off.xhp\" name=\"auto_off_link1\">Desactivar la corrección automática</link> para conocer más sobre la desactivación de esta función en %PRODUCTNAME Writer."
#. rqivx
#: 06040000.xhp
@@ -37166,7 +37166,7 @@ msgctxt ""
"tit\n"
"help.text"
msgid "Options (AutoCorrect)"
-msgstr "Opciones (corrección automática)"
+msgstr "Opciones (Corrección automática)"
#. tg4my
#: 06040100.xhp
@@ -43151,7 +43151,7 @@ msgctxt ""
"par_id3152937\n"
"help.text"
msgid "<ahelp hid=\".uno:OpenXMLFilterSettings\">Opens the <emph>XML Filter Settings</emph> dialog, where you can create, edit, delete, and test filters to import and to export XML files.</ahelp>"
-msgstr "<ahelp hid=\".uno:OpenXMLFilterSettings\">Abre el cuadro de diálogo <emph>Configuración de filtros XML</emph>, donde es posible crear, editar, eliminar y poner a prueba filtros para importar o exportar archivos XML.</ahelp>"
+msgstr "<ahelp hid=\".uno:OpenXMLFilterSettings\">Abre el cuadro de diálogo <emph>Configuración de filtros XML</emph>, donde se puede crear, editar, eliminar y probar filtros para importar y exportar archivos XML.</ahelp>"
#. 23hBt
#: 06150000.xhp
@@ -43628,7 +43628,7 @@ msgctxt ""
"hd_id3148668\n"
"help.text"
msgid "DocType"
-msgstr "DocType"
+msgstr "Tipo de documento"
#. YNKnw
#: 06150120.xhp
diff --git a/source/gug/helpcontent2/source/text/shared/guide.po b/source/gug/helpcontent2/source/text/shared/guide.po
index 85791935dce..8a5bb973554 100644
--- a/source/gug/helpcontent2/source/text/shared/guide.po
+++ b/source/gug/helpcontent2/source/text/shared/guide.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-20 13:21+0100\n"
-"PO-Revision-Date: 2022-02-15 08:38+0000\n"
+"PO-Revision-Date: 2022-03-03 04:39+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
"Language-Team: Spanish <https://translations.documentfoundation.org/projects/libo_help-7-3/textsharedguide/es/>\n"
"Language: es\n"
@@ -13055,7 +13055,7 @@ msgctxt ""
"bm_id3145136\n"
"help.text"
msgid "<bookmark_value>Gallery; inserting pictures from</bookmark_value><bookmark_value>pictures; inserting from Gallery</bookmark_value><bookmark_value>objects; inserting from Gallery</bookmark_value><bookmark_value>patterns for objects</bookmark_value><bookmark_value>textures;inserting from Gallery</bookmark_value><bookmark_value>backgrounds;inserting from Gallery</bookmark_value><bookmark_value>inserting;objects from Gallery</bookmark_value><bookmark_value>copying;from Gallery</bookmark_value>"
-msgstr "<bookmark_value>Galería; insertar imágenes de </bookmark_value><bookmark_value>imágenes; insertar desde la Galeria</bookmark_value><bookmark_value>objectos; insertar desde la Galería</bookmark_value><bookmark_value>patrones de objetos</bookmark_value><bookmark_value>texturas;insertar desde la Galería</bookmark_value><bookmark_value>fondos;insertar desde la Galería</bookmark_value><bookmark_value>insertar;objetos desde la Galería</bookmark_value><bookmark_value>copiar;desde la Galería</bookmark_value>"
+msgstr "<bookmark_value>Galería; insertar imágenes de </bookmark_value><bookmark_value>imágenes; insertar desde la Galeria</bookmark_value><bookmark_value>objectos; insertar desde la Galería</bookmark_value><bookmark_value>motivos de objetos</bookmark_value><bookmark_value>texturas;insertar desde la Galería</bookmark_value><bookmark_value>fondos;insertar desde la Galería</bookmark_value><bookmark_value>insertar;objetos desde la Galería</bookmark_value><bookmark_value>copiar;desde la Galería</bookmark_value>"
#. ApxYf
#: gallery_insert.xhp
@@ -28058,7 +28058,7 @@ msgctxt ""
"par_idN10A26\n"
"help.text"
msgid "(Optional) In the <emph>DocType</emph> box, enter the document type identifier for the external file format."
-msgstr "(Opcional) En el cuadro <emph>DocType</emph>, especifique el identificador del tipo de documento para el formato de archivo externo."
+msgstr "(Opcional) En el cuadro <emph>Tipo de documento</emph>, especifique el identificador del tipo de documento, o «DocType», para el formato de archivo externo."
#. nkD3G
#: xsltfilter_create.xhp
diff --git a/source/gug/helpcontent2/source/text/shared/optionen.po b/source/gug/helpcontent2/source/text/shared/optionen.po
index 5b57c8240b6..fad3b82e72a 100644
--- a/source/gug/helpcontent2/source/text/shared/optionen.po
+++ b/source/gug/helpcontent2/source/text/shared/optionen.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-10-25 12:49+0200\n"
-"PO-Revision-Date: 2022-02-28 17:35+0000\n"
+"PO-Revision-Date: 2022-03-02 03:39+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
"Language-Team: Spanish <https://translations.documentfoundation.org/projects/libo_help-7-3/textsharedoptionen/es/>\n"
"Language: es\n"
@@ -1787,7 +1787,7 @@ msgctxt ""
"par_id3145673\n"
"help.text"
msgid "<ahelp hid=\"cui/ui/optlingupage/lingumodulesedit\">To edit a language module, select it and click <emph>Edit</emph>.</ahelp> The <link href=\"text/shared/optionen/01010401.xhp\" name=\"Edit Modules\"><emph>Edit Modules</emph></link> dialog appears."
-msgstr "<ahelp hid=\"cui/ui/optlingupage/lingumodulesedit\">Para editar un módulo lingüístico, selecciónelo y pulse en <emph>Editar</emph>.</ahelp> Aparecerá el cuadro de diálogo <link href=\"text/shared/optionen/01010401.xhp\" name=\"Editar módulos\"><emph>Editar módulos</emph></link>."
+msgstr "<ahelp hid=\"cui/ui/optlingupage/lingumodulesedit\">Para editar un módulo de idioma, selecciónelo y pulse en <emph>Editar</emph>.</ahelp> Aparecerá el cuadro de diálogo <link href=\"text/shared/optionen/01010401.xhp\" name=\"Editar módulos\"><emph>Editar módulos</emph></link>."
#. GBhhC
#: 01010400.xhp
diff --git a/source/gug/helpcontent2/source/text/swriter/01.po b/source/gug/helpcontent2/source/text/swriter/01.po
index 6a8046a976d..7a6bb1f80b2 100644
--- a/source/gug/helpcontent2/source/text/swriter/01.po
+++ b/source/gug/helpcontent2/source/text/swriter/01.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-11-24 12:03+0100\n"
-"PO-Revision-Date: 2022-02-22 11:38+0000\n"
+"PO-Revision-Date: 2022-03-03 04:39+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fito@libreoffice.org>\n"
"Language-Team: Spanish <https://translations.documentfoundation.org/projects/libo_help-7-3/textswriter01/es/>\n"
"Language: es\n"
@@ -22983,7 +22983,7 @@ msgctxt ""
"par_id3147506\n"
"help.text"
msgid "<image id=\"img_id3147512\" src=\"sw/res/sf01.png\" width=\"1cm\" height=\"1cm\"><alt id=\"alt_id3147512\">Icon Paragraph Styles</alt></image>"
-msgstr ""
+msgstr "<image id=\"img_id3147512\" src=\"sw/res/sf01.png\" width=\"1cm\" height=\"1cm\"><alt id=\"alt_id3147512\">Icono Estilos de párrafo</alt></image>"
#. EFWQb
#: 05140000.xhp
@@ -23010,7 +23010,7 @@ msgctxt ""
"par_id3151319\n"
"help.text"
msgid "<image id=\"img_id3152955\" src=\"sw/res/sf02.png\" width=\"1cm\" height=\"1cm\"><alt id=\"alt_id3152955\">Icon Character Styles</alt></image>"
-msgstr ""
+msgstr "<image id=\"img_id3152955\" src=\"sw/res/sf02.png\" width=\"1cm\" height=\"1cm\"><alt id=\"alt_id3152955\">Icono Estilos de carácter</alt></image>"
#. s6xth
#: 05140000.xhp
@@ -23037,7 +23037,7 @@ msgctxt ""
"par_id3159194\n"
"help.text"
msgid "<image id=\"img_id3159200\" src=\"sw/res/sf03.png\" width=\"1cm\" height=\"1cm\"><alt id=\"alt_id3159200\">Icon Frame Styles</alt></image>"
-msgstr ""
+msgstr "<image id=\"img_id3159200\" src=\"sw/res/sf03.png\" width=\"1cm\" height=\"1cm\"><alt id=\"alt_id3159200\">Icono Estilos de marco</alt></image>"
#. pboYw
#: 05140000.xhp
@@ -23064,7 +23064,7 @@ msgctxt ""
"par_id3149819\n"
"help.text"
msgid "<image id=\"img_id3149826\" src=\"sw/res/sf04.png\" width=\"1cm\" height=\"1cm\"><alt id=\"alt_id3149826\">Icon Page Styles</alt></image>"
-msgstr ""
+msgstr "<image id=\"img_id3149826\" src=\"sw/res/sf04.png\" width=\"1cm\" height=\"1cm\"><alt id=\"alt_id3149826\">Icono Estilos de página</alt></image>"
#. EGGG4
#: 05140000.xhp
@@ -23091,7 +23091,7 @@ msgctxt ""
"par_id3152766\n"
"help.text"
msgid "<image id=\"img_id3152772\" src=\"sw/res/sf05.png\" width=\"1cm\" height=\"1cm\"><alt id=\"alt_id3152772\">Icon List Styles</alt></image>"
-msgstr ""
+msgstr "<image id=\"img_id3152772\" src=\"sw/res/sf05.png\" width=\"1cm\" height=\"1cm\"><alt id=\"alt_id3152772\">Icono Estilos de lista</alt></image>"
#. rSCbA
#: 05140000.xhp
@@ -23154,7 +23154,7 @@ msgctxt ""
"par_id3145786\n"
"help.text"
msgid "<link href=\"text/swriter/guide/stylist_fillformat.xhp\" name=\"style_fillformat\">Fill Format Mode</link>"
-msgstr ""
+msgstr "<link href=\"text/swriter/guide/stylist_fillformat.xhp\" name=\"style_fillformat\">Modo de relleno de formato</link>"
#. q3tQu
#: 05140000.xhp
@@ -23199,7 +23199,7 @@ msgctxt ""
"par_idN109DA\n"
"help.text"
msgid "<link href=\"text/swriter/guide/stylist_fromselect.xhp\" name=\"stylist_fromselect\"><menuitem>New Style from Selection</menuitem></link>"
-msgstr ""
+msgstr "<link href=\"text/swriter/guide/stylist_fromselect.xhp\" name=\"stylist_fromselect\"><menuitem>Estilo nuevo a partir de selección</menuitem></link>"
#. L5UYB
#: 05140000.xhp
@@ -23271,7 +23271,7 @@ msgctxt ""
"par_id3150756\n"
"help.text"
msgid "Double-click the desired character style in the Styles window."
-msgstr ""
+msgstr "Pulse dos veces en el estilo de caracteres deseado en la ventana Estilos."
#. EkiBU
#: 05140000.xhp
@@ -23379,7 +23379,7 @@ msgctxt ""
"par_id1029200810080924\n"
"help.text"
msgid "Opens the AutoCorrect dialog."
-msgstr "Abra el diálogo para corrección automática."
+msgstr "Abre el cuadro de diálogo Corrección automática."
#. avdcs
#: 05150000.xhp
@@ -23397,7 +23397,7 @@ msgctxt ""
"tit\n"
"help.text"
msgid "While Typing (AutoCorrect)"
-msgstr ""
+msgstr "Al escribir (corrección automática)"
#. B8ERP
#: 05150100.xhp
@@ -23406,7 +23406,7 @@ msgctxt ""
"bm_id531611675140517\n"
"help.text"
msgid "<bookmark_value>automatic heading formatting</bookmark_value><bookmark_value>AutoCorrect function;headings</bookmark_value><bookmark_value>headings;automatic</bookmark_value><bookmark_value>separator lines;AutoCorrect function</bookmark_value>"
-msgstr ""
+msgstr "<bookmark_value>formato automático de títulos</bookmark_value><bookmark_value>función Corrección automática;títulos</bookmark_value><bookmark_value>títulos;automáticos</bookmark_value><bookmark_value>líneas separadoras;función Corrección automática</bookmark_value>"
#. KEGMD
#: 05150100.xhp
@@ -23415,7 +23415,7 @@ msgctxt ""
"hd_id3147436\n"
"help.text"
msgid "<link href=\"text/swriter/01/05150100.xhp\" name=\"While Typing\">While Typing</link>"
-msgstr ""
+msgstr "<link href=\"text/swriter/01/05150100.xhp\" name=\"While Typing\">Al escribir</link>"
#. FArms
#: 05150100.xhp
@@ -23901,7 +23901,7 @@ msgctxt ""
"bm_id5028839\n"
"help.text"
msgid "<bookmark_value>autocorrect;apply manually</bookmark_value>"
-msgstr ""
+msgstr "<bookmark_value>corrección automática;aplicar manualmente</bookmark_value>"
#. bjjAk
#: 05150200.xhp
diff --git a/source/he/sw/messages.po b/source/he/sw/messages.po
index de849d2554a..1ffc4adc2f7 100644
--- a/source/he/sw/messages.po
+++ b/source/he/sw/messages.po
@@ -4,16 +4,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2022-01-10 12:22+0100\n"
-"PO-Revision-Date: 2021-11-23 08:10+0000\n"
+"PO-Revision-Date: 2022-03-06 09:39+0000\n"
"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
-"Language-Team: Hebrew <https://translations.documentfoundation.org/projects/libo_ui-master/swmessages/he/>\n"
+"Language-Team: Hebrew <https://translations.documentfoundation.org/projects/libo_ui-7-3/swmessages/he/>\n"
"Language: he\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Accelerator-Marker: ~\n"
-"X-Generator: LibreOffice\n"
+"X-Generator: Weblate 4.8.1\n"
"X-POOTLE-MTIME: 1565194319.000000\n"
#. v3oJv
@@ -597,10 +597,9 @@ msgstr "לא ניתן לקרוא את כל המאפיינים."
#. sFAMg
#: sw/inc/error.hrc:56
-#, fuzzy
msgctxt "RID_SW_ERRHDL"
msgid "Not all attributes could be recorded."
-msgstr "לא ניתן היה לרשום את כל המאפיינים"
+msgstr "לא ניתן היה לתעד את כל המאפיינים."
#. a5Kkw
#: sw/inc/error.hrc:57
@@ -9132,10 +9131,9 @@ msgstr ""
#. DRCyp
#: sw/inc/strings.hrc:1248
-#, fuzzy
msgctxt "STR_ENDNOTE"
msgid "Endnote: "
-msgstr "הערת סיום"
+msgstr "הערת סיום: "
#. qpW2q
#: sw/inc/strings.hrc:1249
@@ -9179,7 +9177,7 @@ msgstr "כותרת עליונה לעמוד הראשון (%1)"
#: sw/inc/strings.hrc:1255
msgctxt "STR_FOOTER_TITLE"
msgid "Footer (%1)"
-msgstr ""
+msgstr "כותרת תחתונה (%1)"
#. FDVNH
#: sw/inc/strings.hrc:1256
@@ -14429,10 +14427,9 @@ msgstr ""
#. 2eALF
#: sw/uiconfig/swriter/ui/flddbpage.ui:388
-#, fuzzy
msgctxt "flddbpage|userdefinedcb"
msgid "User-defined"
-msgstr "הגדרת-המשתמש1"
+msgstr "הגדרת-המשתמש"
#. ExYpF
#: sw/uiconfig/swriter/ui/flddbpage.ui:400
@@ -30491,55 +30488,51 @@ msgstr "הגדרות"
#. QBuPZ
#: sw/uiconfig/swriter/ui/wrappage.ui:461
-#, fuzzy
msgctxt "wrappage|label4"
msgid "L_eft:"
-msgstr "שמאל"
+msgstr "_שמאל:"
#. wDFKF
#: sw/uiconfig/swriter/ui/wrappage.ui:475
-#, fuzzy
msgctxt "wrappage|label5"
msgid "_Right:"
-msgstr "ימין"
+msgstr "י_מין:"
#. xsX5s
#: sw/uiconfig/swriter/ui/wrappage.ui:489
-#, fuzzy
msgctxt "wrappage|label6"
msgid "_Top:"
-msgstr "למעלה"
+msgstr "למ_עלה:"
#. NQ77D
#: sw/uiconfig/swriter/ui/wrappage.ui:503
-#, fuzzy
msgctxt "wrappage|label7"
msgid "_Bottom:"
-msgstr "למטה"
+msgstr "למ_טה:"
#. AXBwG
#: sw/uiconfig/swriter/ui/wrappage.ui:523
msgctxt "wrappage|extended_tip|left"
msgid "Enter the amount of space that you want between the left edge of the object and the text."
-msgstr ""
+msgstr "נא לציין את כמות המרווח הרצוי בין הקצה השמאלי של הפריט לבין הטקסט."
#. xChMU
#: sw/uiconfig/swriter/ui/wrappage.ui:542
msgctxt "wrappage|extended_tip|right"
msgid "Enter the amount of space that you want between the right edge of the object and the text."
-msgstr ""
+msgstr "נא לציין את כמות המרווח הרצוי בין הקצה הימני של הפריט לבין הטקסט."
#. p4GHR
#: sw/uiconfig/swriter/ui/wrappage.ui:561
msgctxt "wrappage|extended_tip|top"
msgid "Enter the amount of space that you want between the top edge of the object and the text."
-msgstr ""
+msgstr "נא לציין את כמות המרווח הרצוי בין הקצה העליון של הפריט לבין הטקסט."
#. GpgCP
#: sw/uiconfig/swriter/ui/wrappage.ui:580
msgctxt "wrappage|extended_tip|bottom"
msgid "Enter the amount of space that you want between the bottom edge of the object and the text."
-msgstr ""
+msgstr "נא לציין את כמות המרווח הרצויה בין הקצה התחתון של הפריט לבין הטקסט."
#. g7ssN
#: sw/uiconfig/swriter/ui/wrappage.ui:595
diff --git a/source/ja/helpcontent2/source/text/swriter/01.po b/source/ja/helpcontent2/source/text/swriter/01.po
index b5bf0bc82b4..b7c7a92890c 100644
--- a/source/ja/helpcontent2/source/text/swriter/01.po
+++ b/source/ja/helpcontent2/source/text/swriter/01.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-11-24 12:03+0100\n"
-"PO-Revision-Date: 2022-02-10 10:40+0000\n"
+"PO-Revision-Date: 2022-03-08 11:39+0000\n"
"Last-Translator: JO3EMC <jo3emc@jarl.com>\n"
"Language-Team: Japanese <https://translations.documentfoundation.org/projects/libo_help-7-3/textswriter01/ja/>\n"
"Language: ja\n"
@@ -15998,7 +15998,7 @@ msgctxt ""
"tit\n"
"help.text"
msgid "Outline & List"
-msgstr ""
+msgstr "アウトラインと箇条書き"
#. Nprja
#: 05030800.xhp
@@ -16007,7 +16007,7 @@ msgctxt ""
"hd_id3151173\n"
"help.text"
msgid "<variable id=\"outlinelisth1\"><link href=\"text/swriter/01/05030800.xhp\" name=\"Numbering\">Outline & List</link></variable>"
-msgstr ""
+msgstr "<variable id=\"outlinelisth1\"><link href=\"text/swriter/01/05030800.xhp\" name=\"Numbering\">アウトラインと箇条書き</link></variable>"
#. x3BNB
#: 05030800.xhp
@@ -16043,7 +16043,7 @@ msgctxt ""
"hd_id1209200804386034\n"
"help.text"
msgid "Outline"
-msgstr ""
+msgstr "アウトライン"
#. biGWu
#: 05030800.xhp
@@ -16052,7 +16052,7 @@ msgctxt ""
"hd_id1209200804371034\n"
"help.text"
msgid "Outline level"
-msgstr "表示する見出しレベル"
+msgstr "アウトラインレベル"
#. oF8Bd
#: 05030800.xhp
@@ -16070,7 +16070,7 @@ msgctxt ""
"hd_id3143283\n"
"help.text"
msgid "Apply List Style"
-msgstr ""
+msgstr "リストスタイル"
#. fFAFo
#: 05030800.xhp
@@ -16079,7 +16079,7 @@ msgctxt ""
"hd_id3154188\n"
"help.text"
msgid "List Style"
-msgstr ""
+msgstr "リストスタイル"
#. T2yMF
#: 05030800.xhp
@@ -16097,7 +16097,7 @@ msgctxt ""
"hd_id3154189\n"
"help.text"
msgid "Edit Style"
-msgstr ""
+msgstr "スタイルの編集"
#. PmMzY
#: 05030800.xhp
@@ -16142,7 +16142,7 @@ msgctxt ""
"hd_id3151250\n"
"help.text"
msgid "Restart numbering at this paragraph"
-msgstr ""
+msgstr "この段落から新しく開始"
#. Fqcca
#: 05030800.xhp
@@ -16196,7 +16196,7 @@ msgctxt ""
"hd_id3147581\n"
"help.text"
msgid "Line numbering"
-msgstr ""
+msgstr "行番号付け"
#. GvBPK
#: 05030800.xhp
@@ -16214,7 +16214,7 @@ msgctxt ""
"hd_id3153345\n"
"help.text"
msgid "Include this paragraph in line numbering"
-msgstr ""
+msgstr "この段落を行番号に含める"
#. Ntu3q
#: 05030800.xhp
@@ -16232,7 +16232,7 @@ msgctxt ""
"hd_id3151026\n"
"help.text"
msgid "Restart at this paragraph"
-msgstr ""
+msgstr "この段落から新しく開始"
#. 2Bpmw
#: 05030800.xhp
@@ -16250,7 +16250,7 @@ msgctxt ""
"hd_id3145775\n"
"help.text"
msgid "Start with"
-msgstr ""
+msgstr "開始"
#. NJNU3
#: 05030800.xhp
diff --git a/source/ja/officecfg/registry/data/org/openoffice/Office/UI.po b/source/ja/officecfg/registry/data/org/openoffice/Office/UI.po
index 2a0c7a6c385..bafcb87a963 100644
--- a/source/ja/officecfg/registry/data/org/openoffice/Office/UI.po
+++ b/source/ja/officecfg/registry/data/org/openoffice/Office/UI.po
@@ -4,8 +4,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-21 12:38+0100\n"
-"PO-Revision-Date: 2022-02-23 03:39+0000\n"
-"Last-Translator: JO3EMC <jo3emc@jarl.com>\n"
+"PO-Revision-Date: 2022-03-06 09:38+0000\n"
+"Last-Translator: Shinji Enoki <shinji.enoki@gmail.com>\n"
"Language-Team: Japanese <https://translations.documentfoundation.org/projects/libo_ui-7-3/officecfgregistrydataorgopenofficeofficeui/ja/>\n"
"Language: ja\n"
"MIME-Version: 1.0\n"
@@ -30326,7 +30326,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Show outline-folding buttons"
-msgstr "見出しの折りたたみボタンを表示"
+msgstr "アウトラインの折りたたみボタンを表示"
#. 4hvcy
#: WriterCommands.xcu
@@ -35726,7 +35726,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Toggle Outline Folding"
-msgstr "見出しの折りたたみ切り替え"
+msgstr "アウトラインの折りたたみ切り替え"
#. mByUW
#: WriterCommands.xcu
diff --git a/source/ja/scp2/source/ooo.po b/source/ja/scp2/source/ooo.po
index b15bbdc2892..a01fcfa3c62 100644
--- a/source/ja/scp2/source/ooo.po
+++ b/source/ja/scp2/source/ooo.po
@@ -4,9 +4,9 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-09-10 23:12+0200\n"
-"PO-Revision-Date: 2021-11-25 15:38+0000\n"
+"PO-Revision-Date: 2022-03-09 06:18+0000\n"
"Last-Translator: JO3EMC <jo3emc@jarl.com>\n"
-"Language-Team: Japanese <https://translations.documentfoundation.org/projects/libo_ui-master/scp2sourceooo/ja/>\n"
+"Language-Team: Japanese <https://translations.documentfoundation.org/projects/libo_ui-7-3/scp2sourceooo/ja/>\n"
"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -4829,7 +4829,7 @@ msgctxt ""
"STR_NAME_MODULE_EXTENSION_DICTIONARY_KMR_LATN\n"
"LngText.text"
msgid "Kurdish, Northern, Latin script"
-msgstr "北部クルド語 (ラテン文字)"
+msgstr "北部クルド語(ラテン文字)"
#. eVdFs
#: module_ooo.ulf
@@ -4838,7 +4838,7 @@ msgctxt ""
"STR_DESC_MODULE_EXTENSION_DICTIONARY_KMR_LATN\n"
"LngText.text"
msgid "Kurdish, Northern, Latin script spelling dictionary"
-msgstr "北部クルド語 (ラテン文字) スペル辞書"
+msgstr "北部クルド語(ラテン文字)スペル辞書"
#. UrEiC
#: module_ooo.ulf
diff --git a/source/ja/svtools/messages.po b/source/ja/svtools/messages.po
index 33a0d5ec5c8..24fbcf9bf2d 100644
--- a/source/ja/svtools/messages.po
+++ b/source/ja/svtools/messages.po
@@ -4,8 +4,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-20 13:21+0100\n"
-"PO-Revision-Date: 2022-02-20 13:18+0000\n"
-"Last-Translator: Shinji Enoki <shinji.enoki@gmail.com>\n"
+"PO-Revision-Date: 2022-03-09 12:45+0000\n"
+"Last-Translator: JO3EMC <jo3emc@jarl.com>\n"
"Language-Team: Japanese <https://translations.documentfoundation.org/projects/libo_ui-7-3/svtoolsmessages/ja/>\n"
"Language: ja\n"
"MIME-Version: 1.0\n"
@@ -3304,13 +3304,13 @@ msgstr "サンスクリット語"
#: svtools/inc/langtab.hrc:152
msgctxt "STR_ARR_SVT_LANGUAGE_TABLE"
msgid "Serbian Cyrillic (Serbia and Montenegro)"
-msgstr "セルビア語(キリル文字、セルビア・モンテネグロ)"
+msgstr "セルビア語(キリル文字、セルビア・モンテネグロ)"
#. sFnB8
#: svtools/inc/langtab.hrc:153
msgctxt "STR_ARR_SVT_LANGUAGE_TABLE"
msgid "Serbian Latin (Serbia and Montenegro)"
-msgstr "セルビア語(ラテン文字、セルビア・モンテネグロ)"
+msgstr "セルビア語(ラテン文字、セルビア・モンテネグロ)"
#. WbsFA
#: svtools/inc/langtab.hrc:154
@@ -5266,13 +5266,13 @@ msgstr "品質"
#: svtools/uiconfig/ui/graphicexport.ui:458
msgctxt "graphicexport|extended_tip|compressionpngnf"
msgid "Sets the compression for the export. A high compression means a smaller, but slower to load image."
-msgstr "エクスポートの圧縮形式を設定します。値を大きくすると画像の容量は小さくなりますが、読み込みが遅くなります。"
+msgstr "エクスポートの圧縮レベルを設定します。値を大きくすると画像の容量は小さくなりますが、読み込みが遅くなります。"
#. f4LYz
#: svtools/uiconfig/ui/graphicexport.ui:487
msgctxt "graphicexport|label"
msgid "Compression"
-msgstr "圧縮形式"
+msgstr "圧縮レベル"
#. hQadL
#: svtools/uiconfig/ui/graphicexport.ui:507
diff --git a/source/ja/svx/messages.po b/source/ja/svx/messages.po
index 603ab54e406..cf192bd4801 100644
--- a/source/ja/svx/messages.po
+++ b/source/ja/svx/messages.po
@@ -4,8 +4,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-11-25 19:34+0100\n"
-"PO-Revision-Date: 2022-02-24 15:39+0000\n"
-"Last-Translator: JO3EMC <jo3emc@jarl.com>\n"
+"PO-Revision-Date: 2022-03-06 09:38+0000\n"
+"Last-Translator: Shinji Enoki <shinji.enoki@gmail.com>\n"
"Language-Team: Japanese <https://translations.documentfoundation.org/projects/libo_ui-7-3/svxmessages/ja/>\n"
"Language: ja\n"
"MIME-Version: 1.0\n"
@@ -14027,7 +14027,7 @@ msgstr "非可逆圧縮"
#: svx/uiconfig/ui/compressgraphicdialog.ui:164
msgctxt "compressgraphicdialog|radio-lossless"
msgid "PNG Compression"
-msgstr "PNG 圧縮"
+msgstr "PNG圧縮レベル"
#. 75Ef7
#: svx/uiconfig/ui/compressgraphicdialog.ui:168
diff --git a/source/ja/sw/messages.po b/source/ja/sw/messages.po
index e0095be760e..fd726ae6eab 100644
--- a/source/ja/sw/messages.po
+++ b/source/ja/sw/messages.po
@@ -4,16 +4,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2022-01-10 12:22+0100\n"
-"PO-Revision-Date: 2021-12-27 06:38+0000\n"
-"Last-Translator: JO3EMC <jo3emc@jarl.com>\n"
-"Language-Team: Japanese <https://translations.documentfoundation.org/projects/libo_ui-master/swmessages/ja/>\n"
+"PO-Revision-Date: 2022-03-06 09:39+0000\n"
+"Last-Translator: Shinji Enoki <shinji.enoki@gmail.com>\n"
+"Language-Team: Japanese <https://translations.documentfoundation.org/projects/libo_ui-7-3/swmessages/ja/>\n"
"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Accelerator-Marker: ~\n"
-"X-Generator: LibreOffice\n"
+"X-Generator: Weblate 4.8.1\n"
"X-POOTLE-MTIME: 1563165692.000000\n"
#. v3oJv
@@ -20356,19 +20356,19 @@ msgstr "すべて削除"
#: sw/uiconfig/swriter/ui/navigatorcontextmenu.ui:183
msgctxt "navigatorcontextmenu|STR_OUTLINE_CONTENT"
msgid "Outline Folding"
-msgstr "見出しの折りたたみ"
+msgstr "アウトラインの折りたたみ"
#. cECoG
#: sw/uiconfig/swriter/ui/navigatorcontextmenu.ui:203
msgctxt "navigatorcontextmenu|STR_OUTLINE_LEVEL"
msgid "Outline Level"
-msgstr "見出しレベル"
+msgstr "アウトラインレベル"
#. EBK2E
#: sw/uiconfig/swriter/ui/navigatorcontextmenu.ui:217
msgctxt "navigatorcontextmenu|STR_OUTLINE_TRACKING"
msgid "Outline Tracking"
-msgstr "見出しの追跡"
+msgstr "アウトラインの追跡"
#. fZEEr
#: sw/uiconfig/swriter/ui/navigatorcontextmenu.ui:231
@@ -29575,7 +29575,7 @@ msgstr "設定"
#: sw/uiconfig/swriter/ui/viewoptionspage.ui:587
msgctxt "viewoptionspage|outlinecontentvisibilitybutton"
msgid "_Show outline-folding buttons"
-msgstr "見出しの折りたたみボタンの表示(_S)"
+msgstr "アウトラインの折りたたみボタンの表示(_S)"
#. 4RBet
#: sw/uiconfig/swriter/ui/viewoptionspage.ui:595
@@ -29599,7 +29599,7 @@ msgstr "下位の見出しレベルの折りたたみボタンを表示します
#: sw/uiconfig/swriter/ui/viewoptionspage.ui:651
msgctxt "viewoptionspage|outlinelabel"
msgid "Outline Folding"
-msgstr "見出しの折りたたみ"
+msgstr "アウトラインの折りたたみ"
#. LZT9X
#: sw/uiconfig/swriter/ui/viewoptionspage.ui:679
diff --git a/source/ja/vcl/messages.po b/source/ja/vcl/messages.po
index acca202fce0..05502218a46 100644
--- a/source/ja/vcl/messages.po
+++ b/source/ja/vcl/messages.po
@@ -4,9 +4,9 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-11-16 12:10+0100\n"
-"PO-Revision-Date: 2021-12-10 15:38+0000\n"
-"Last-Translator: JO3EMC <jo3emc@jarl.com>\n"
-"Language-Team: Japanese <https://translations.documentfoundation.org/projects/libo_ui-master/vclmessages/ja/>\n"
+"PO-Revision-Date: 2022-03-06 09:39+0000\n"
+"Last-Translator: Shinji Enoki <shinji.enoki@gmail.com>\n"
+"Language-Team: Japanese <https://translations.documentfoundation.org/projects/libo_ui-7-3/vclmessages/ja/>\n"
"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -2147,7 +2147,7 @@ msgstr "印刷対象:"
#: vcl/uiconfig/ui/printdialog.ui:633
msgctxt "printdialog|liststore3"
msgid "Odd and Even Pages"
-msgstr "奇数/偶数ページ"
+msgstr "奇数と偶数ページ"
#. 49y67
#: vcl/uiconfig/ui/printdialog.ui:634
diff --git a/source/nb/helpcontent2/source/text/sbasic/shared.po b/source/nb/helpcontent2/source/text/sbasic/shared.po
index 63626434cb4..e50284d0b48 100644
--- a/source/nb/helpcontent2/source/text/sbasic/shared.po
+++ b/source/nb/helpcontent2/source/text/sbasic/shared.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-20 13:20+0100\n"
-"PO-Revision-Date: 2022-02-18 14:38+0000\n"
+"PO-Revision-Date: 2022-03-06 18:39+0000\n"
"Last-Translator: Karl Morten Ramberg <karl.m.ramberg@gmail.com>\n"
"Language-Team: Norwegian Bokmål <https://translations.documentfoundation.org/projects/libo_help-7-3/textsbasicshared/nb_NO/>\n"
"Language: nb\n"
@@ -2228,7 +2228,7 @@ msgctxt ""
"par_idm1341205936\n"
"help.text"
msgid "Dim c As Boolean 'Declares c as a Boolean variable that can be TRUE or FALSE'"
-msgstr ""
+msgstr "Dim c As Boolean 'Erklærer c som en boolsk variabel som kan være SANN eller USANN'"
#. PWdLi
#: 01020100.xhp
@@ -2246,7 +2246,7 @@ msgctxt ""
"par_id421619551219763\n"
"help.text"
msgid "When you declare multiple variables in a single line of code you need to specify the type of each variable. If the type of a variable is not explicitly specified, then Basic will assume that the variable is of the <emph>Variant</emph> type."
-msgstr ""
+msgstr "Når du erklærer flere variabler i en enkelt kodelinje, må du spesifisere typen for hver variabel. Hvis typen til en variabel ikke er eksplisitt spesifisert, vil Basic anta at variabelen er av typen <emph>Variant</emph>."
#. FzKND
#: 01020100.xhp
@@ -2255,7 +2255,7 @@ msgctxt ""
"bas_id321619555442706\n"
"help.text"
msgid "' Both variables \"a\" and \"b\" are of the Integer type"
-msgstr ""
+msgstr "' Begge variablene \"a\" og \"b\" er av typen heltall"
#. NCE7F
#: 01020100.xhp
@@ -2264,7 +2264,7 @@ msgctxt ""
"bas_id451619555463988\n"
"help.text"
msgid "' Variable \"c\" is a Variant and \"d\" is an Integer"
-msgstr ""
+msgstr "' Variabel \"c\" er en variant og \"d\" er et heltall"
#. fsaNa
#: 01020100.xhp
@@ -2273,7 +2273,7 @@ msgctxt ""
"bas_id161619555482237\n"
"help.text"
msgid "' A variable can also be explicitly declared as a Variant"
-msgstr ""
+msgstr "' En variabel kan også eksplisitt deklareres som en variant"
#. uQD9L
#: 01020100.xhp
@@ -2282,7 +2282,7 @@ msgctxt ""
"par_id521619551687371\n"
"help.text"
msgid "The <emph>Variant</emph> type is a special data type that can store any kind of value. To learn more, refer to the section <link href=\"text/sbasic/shared/01020100.xhp#VariantTypeH2\" name=\"Variant Type\">The Variant type</link> below."
-msgstr ""
+msgstr "<emph>Variant</emph>-typen er en spesiell datatype som kan lagre alle slags verdier. For å lære mer, se delen <link href=\"text/sbasic/shared/01020100.xhp#VariantTypeH2\" name=\"Variant Type\">Varianttypen</link> nedenfor."
#. RENXG
#: 01020100.xhp
@@ -2453,7 +2453,7 @@ msgctxt ""
"par_id3153070\n"
"help.text"
msgid "Single variables can take positive or negative values ranging from 3.402823 x 10E38 to 1.401298 x 10E-45. Single variables are floating-point variables, in which the decimal precision decreases as the non-decimal part of the number increases. Single variables are suitable for mathematical calculations of average precision. Calculations require more time than for Integer variables, but are faster than calculations with Double variables. A Single variable requires 4 bytes of memory. The type-declaration character is \"!\"."
-msgstr ""
+msgstr "Enkeltvariabler kan ha positive eller negative verdier fra 3,402823 x 10E38 til 1,401298 x 10E-45. Enkeltvariabler er flyttallvariabler, der desimalpresisjonen avtar når den ikke-desimale delen av tallet øker. Enkeltvariabler egner seg for matematiske beregninger av gjennomsnittlig presisjon. Beregninger krever mer tid enn for heltallsvariabler, men er raskere enn beregninger med doble variabler. En enkelt variabel krever 4 byte minne. Typedeklarasjonstegnet er \"!\"."
#. X2BBe
#: 01020100.xhp
@@ -2471,7 +2471,7 @@ msgctxt ""
"par_id3150953\n"
"help.text"
msgid "Double variables can take positive or negative values ranging from 1.79769313486232 x 10E308 to 4.94065645841247 x 10E-324. Double variables are floating-point variables, in which the decimal precision decreases as the non-decimal part of the number increases. Double variables are suitable for precise calculations. Calculations require more time than for Single variables. A Double variable requires 8 bytes of memory. The type-declaration character is \"#\"."
-msgstr ""
+msgstr "Doble variabler kan ta positive eller negative verdier fra 1,79769313486232 x 10E308 til 4,94065645841247 x 10E-324. Doble variabler er flyttallsvariabler, der desimalpresisjonen avtar når den ikke-desimale delen av tallet øker. Doble variabler er egnet for nøyaktige beregninger. Beregninger krever mer tid enn for enkeltvariabler. En dobbel variabel krever 8 byte minne. Typedeklarasjonstegnet er \"#\"."
#. KYBFy
#: 01020100.xhp
@@ -2480,7 +2480,7 @@ msgctxt ""
"par_idm1341130144\n"
"help.text"
msgid "Dim Variable#"
-msgstr ""
+msgstr "Dim Variabel#"
#. vFZcZ
#: 01020100.xhp
@@ -2502,7 +2502,6 @@ msgstr "Valutavariabler lagres internt som 64-biters tall (8 byte) og vises som
#. rs7qz
#: 01020100.xhp
-#, fuzzy
msgctxt ""
"01020100.xhp\n"
"hd_id301576839713868\n"
@@ -2512,13 +2511,12 @@ msgstr "Direkteverdi for heltall"
#. PTiRZ
#: 01020100.xhp
-#, fuzzy
msgctxt ""
"01020100.xhp\n"
"par_id1001576839723156\n"
"help.text"
msgid "Numbers can be encoded using octal and hexadecimal forms."
-msgstr "Tall kan kodes i åttetallsformat, og som heksadesimaler."
+msgstr "Tall kan kodes som oktal, og som heksadesimaler."
#. nGGUD
#: 01020100.xhp
@@ -2536,7 +2534,7 @@ msgctxt ""
"par_id3151393\n"
"help.text"
msgid "String variables can hold character strings with up to 2,147,483,648 characters. Each character is stored as the corresponding Unicode value. String variables are suitable for word processing within programs and for temporary storage of any non-printable character up to a maximum length of 2 Gbytes. The memory required for storing string variables depends on the number of characters in the variable. The type-declaration character is \"$\"."
-msgstr ""
+msgstr "Strengvariabler kan inneholde tegnstrenger med opptil 2 147 483 648 tegn. Hvert tegn lagres som den tilsvarende Unicode-verdien. Strengvariabler er egnet for tekstbehandling i programmer og for midlertidig lagring av alle tegn som ikke kan skrives ut, opptil en maksimal lengde på 2 Gbyte. Minnet som kreves for å lagre strengvariabler avhenger av antall tegn i variabelen. Typedeklarasjonstegnet er \"$\"."
#. RBcLt
#: 01020100.xhp
@@ -2788,7 +2786,7 @@ msgctxt ""
"par_idm1341065280\n"
"help.text"
msgid "Dim Text$(20) '21 elements numbered from 0 to 20'"
-msgstr ""
+msgstr "Dim Tekst$(20) '21 elementer nummerert fra 0 til 20'"
#. Tpkw3
#: 01020100.xhp
@@ -2797,7 +2795,7 @@ msgctxt ""
"par_idm1341059776\n"
"help.text"
msgid "Dim Text$(5,4) '30 elements (a matrix of 6 x 5 elements)'"
-msgstr ""
+msgstr "Dim Tekst$(5,4) '30 elementer (en matrise på 6 x 5 elementer)'"
#. qZxBE
#: 01020100.xhp
@@ -2806,7 +2804,7 @@ msgctxt ""
"par_idm1341054256\n"
"help.text"
msgid "Dim Text$(5 To 25) '21 elements numbered from 5 to 25'"
-msgstr ""
+msgstr "Dim tekst$(5 til 25) '21 elementer nummerert fra 5 til 25'"
#. NfXEB
#: 01020100.xhp
@@ -2815,7 +2813,7 @@ msgctxt ""
"par_idm1341048752\n"
"help.text"
msgid "Dim Text$(-15 To 5) '21 elements (including 0), numbered from -15 to 5'"
-msgstr ""
+msgstr "Dim tekst$(-15 til 5) '21 elementer (inkludert 0), nummerert fra -15 til 5'"
#. 6iBW4
#: 01020100.xhp
@@ -2905,7 +2903,7 @@ msgctxt ""
"tit\n"
"help.text"
msgid "Using Procedures, Functions or Properties"
-msgstr ""
+msgstr "Bruke prosedyrer, funksjoner eller egenskaper"
#. 6jwBY
#: 01020300.xhp
diff --git a/source/nb/helpcontent2/source/text/sbasic/shared/03.po b/source/nb/helpcontent2/source/text/sbasic/shared/03.po
index 03220ed2d20..b6ca5dee321 100644
--- a/source/nb/helpcontent2/source/text/sbasic/shared/03.po
+++ b/source/nb/helpcontent2/source/text/sbasic/shared/03.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-20 13:20+0100\n"
-"PO-Revision-Date: 2022-02-22 11:38+0000\n"
+"PO-Revision-Date: 2022-03-04 07:39+0000\n"
"Last-Translator: Karl Morten Ramberg <karl.m.ramberg@gmail.com>\n"
"Language-Team: Norwegian Bokmål <https://translations.documentfoundation.org/projects/libo_help-7-3/textsbasicshared03/nb_NO/>\n"
"Language: nb\n"
@@ -5081,7 +5081,7 @@ msgctxt ""
"par_id431592904964362\n"
"help.text"
msgid "Next is an example where the source and destination are in the same file:"
-msgstr ""
+msgstr "Neste er et eksempel der kilden og destinasjonen er i samme fil:"
#. Zh3Wp
#: sf_calc.xhp
@@ -5090,7 +5090,7 @@ msgctxt ""
"par_id751592905035452\n"
"help.text"
msgid "The example below illustrates how to copy a range from another open Calc document:"
-msgstr ""
+msgstr "Eksemplet nedenfor illustrerer hvordan du kopierer et område fra et annet åpent Calc-dokument:"
#. uFAEe
#: sf_calc.xhp
@@ -5099,7 +5099,7 @@ msgctxt ""
"bas_id351592558768880\n"
"help.text"
msgid "'Open the source document in the background (hidden)"
-msgstr ""
+msgstr "'Åpne kildedokumentet i bakgrunnen (skjult)"
#. PBgwL
#: sf_calc.xhp
@@ -5108,7 +5108,7 @@ msgctxt ""
"bas_id1001611708508251\n"
"help.text"
msgid "'Do not forget to close the source document because it was opened as hidden"
-msgstr ""
+msgstr "'Ikke glem å lukke kildedokumentet fordi det ble åpnet som skjult"
#. ZzDAQ
#: sf_calc.xhp
@@ -5117,7 +5117,7 @@ msgctxt ""
"par_id61592905442071\n"
"help.text"
msgid "To simulate a Copy/Paste from a range to a single cell, use <literal>CopyToCell</literal>. To simulate a Copy/Paste from a range to a larger range (with the same cells being replicated several times), use <literal>CopyToRange</literal>."
-msgstr ""
+msgstr "For å simulere en Kopier/ Lim inn fra et område til en enkelt celle, bruk <literal>KopierTilCelle</literal>. For å simulere en Kopier/ Lim inn fra et område til et større område (med de samme cellene som blir replikert flere ganger), bruk <literal>KopierTilOmråde</literal>."
#. maHke
#: sf_calc.xhp
@@ -5126,7 +5126,7 @@ msgctxt ""
"par_id1615929031212\n"
"help.text"
msgid "Copies downwards and/or rightwards a specified source range (values, formulas and formats) to a destination range. The method imitates the behaviour of a Copy/Paste operation from a source range to a larger destination range."
-msgstr ""
+msgstr "Kopierer nedover og/eller mot høyre et spesifisert kildeområde (verdier, formler og formater) til et målområde. Metoden imiterer oppførselen til en Kopier/Lim inn-operasjon fra et kildeområde til et større målområde."
#. G4qky
#: sf_calc.xhp
@@ -5135,7 +5135,7 @@ msgctxt ""
"par_id271592904084534\n"
"help.text"
msgid "If the height (or width) of the destination area is > 1 row (or column) then the height (or width) of the source must be <= the height (or width) of the destination. Otherwise nothing happens."
-msgstr ""
+msgstr "Hvis høyden (eller bredden) på destinasjonsområdet er > 1 rad (eller kolonne), må høyden (eller bredden) på kilden være <= høyden (eller bredden) på destinasjonen. Ellers skjer det ingenting."
#. Pko2R
#: sf_calc.xhp
@@ -5144,7 +5144,7 @@ msgctxt ""
"par_id131592904286834\n"
"help.text"
msgid "If the height (or width) of the destination is = 1 then the destination is expanded downwards (or rightwards) up to the height (or width) of the source range."
-msgstr ""
+msgstr "Hvis høyden (eller bredden) til destinasjonen er = 1, utvides destinasjonen nedover (eller mot høyre) opp til høyden (eller bredden) av kildeområdet."
#. jYha4
#: sf_calc.xhp
@@ -5153,7 +5153,7 @@ msgctxt ""
"par_id661592904348877\n"
"help.text"
msgid "The method returns a string representing the modified range of cells."
-msgstr ""
+msgstr "Metoden returnerer en streng som representerer det modifiserte celleområdet."
#. wfzcw
#: sf_calc.xhp
@@ -5162,7 +5162,7 @@ msgctxt ""
"par_id41592903121807\n"
"help.text"
msgid "The source range may belong to another <emph>open</emph> document."
-msgstr ""
+msgstr "Kildeområdet kan tilhøre et annet <emph>åpent</emph> dokument."
#. CEaED
#: sf_calc.xhp
@@ -5171,7 +5171,7 @@ msgctxt ""
"par_id841592903121145\n"
"help.text"
msgid "<emph>sourcerange</emph>: The source range as a string when it belongs to the same document or as a reference when it belongs to another open Calc document."
-msgstr ""
+msgstr "<emph>kildeområde</emph>: Kildeområdet som en streng når det tilhører samme dokument eller som en referanse når det tilhører et annet åpent Calc-dokument."
#. v3d3d
#: sf_calc.xhp
@@ -5180,7 +5180,7 @@ msgctxt ""
"par_id5515929031211000\n"
"help.text"
msgid "<emph>destinationrange</emph>: The destination of the copied range of cells, as a string."
-msgstr ""
+msgstr "<emph>destinationrange</emph>: Destinasjonen for det kopierte celleområdet, som en streng."
#. LsHF6
#: sf_calc.xhp
@@ -5189,7 +5189,7 @@ msgctxt ""
"par_id461592905128991\n"
"help.text"
msgid "Copy within the same document:"
-msgstr ""
+msgstr "Kopier innenfor samme dokument:"
#. dNdmJ
#: sf_calc.xhp
@@ -5198,7 +5198,7 @@ msgctxt ""
"bas_id601592904507182\n"
"help.text"
msgid "' Returns a range string: \"$SheetY.$C$5:$J$14\""
-msgstr ""
+msgstr "' Returnerer en områdestreng: \"$SheetY.$C$5:$J$14\""
#. FBbwi
#: sf_calc.xhp
@@ -5207,7 +5207,7 @@ msgctxt ""
"par_id1001592905195364\n"
"help.text"
msgid "Copy from one file to another:"
-msgstr ""
+msgstr "Kopier fra en fil til en annen:"
#. L3GHp
#: sf_calc.xhp
@@ -5216,7 +5216,7 @@ msgctxt ""
"par_id1615929033642\n"
"help.text"
msgid "Creates a new chart object showing the data in the specified range. The returned chart object can be further manipulated using the <literal>Chart</literal> service."
-msgstr ""
+msgstr "Oppretter et nytt diagramobjekt som viser dataene i det angitte området. Det returnerte kartobjektet kan manipuleres ytterligere ved å bruke <literal>Diagram</literal>-tjenesten."
#. 2YZ5H
#: sf_calc.xhp
@@ -5225,7 +5225,7 @@ msgctxt ""
"par_id841592903121025\n"
"help.text"
msgid "<emph>chartname:</emph> The user-defined name of the chart to be created. The name must be unique in the same sheet."
-msgstr ""
+msgstr "<emph>diagramnavn:</emph> Det brukerdefinerte navnet på diagrammet som skal opprettes. Navnet må være unikt i samme ark."
#. BBtB3
#: sf_calc.xhp
@@ -5234,7 +5234,7 @@ msgctxt ""
"par_id5515929031213680\n"
"help.text"
msgid "<emph>sheetname:</emph> The name of the sheet where the chart will be placed."
-msgstr ""
+msgstr "<emph>arknavn:</emph> Navnet på arket der diagrammet skal plasseres."
#. GEiCb
#: sf_calc.xhp
@@ -5243,7 +5243,7 @@ msgctxt ""
"par_id5515929031211522\n"
"help.text"
msgid "<emph>range:</emph> The range to be used as the data source for the chart. The range may refer to any sheet of the Calc document."
-msgstr ""
+msgstr "<emph>område:</emph> Området som skal brukes som datakilde for diagrammet. Området kan referere til et hvilket som helst ark i Calc-dokumentet."
#. L3dSo
#: sf_calc.xhp
@@ -5252,7 +5252,7 @@ msgctxt ""
"par_id5515929031216390\n"
"help.text"
msgid "<emph>columnheader:</emph> When <literal>True</literal>, the topmost row of the range is used as labels for the category axis or the legend (Default = <literal>False</literal>)."
-msgstr ""
+msgstr "<emph>kolonnehode:</emph> Når <literal>True</literal>, brukes den øverste raden i området som etiketter for kategoriaksen eller forklaringen (Standard = <literal>Usann</literal>)."
#. iyq5m
#: sf_calc.xhp
@@ -5261,7 +5261,7 @@ msgctxt ""
"par_id5515929031211633\n"
"help.text"
msgid "<emph>rowheader:</emph> When <literal>True</literal>, the leftmost column of the range is used as labels for the category axis or the legend. (Default = <literal>False</literal>)."
-msgstr ""
+msgstr "<emph>radhoder:</emph> Når <literal>Sann</literal>, brukes kolonnen lengst til venstre i området som etiketter for kategoriaksen eller forklaringen. (Standard = <literal>Usann</literal>)."
#. CKzBZ
#: sf_calc.xhp
@@ -5270,7 +5270,7 @@ msgctxt ""
"par_id61635441176547\n"
"help.text"
msgid "The examples below in Basic and Python create a chart using the data contained in the range \"A1:B5\" of \"Sheet1\" and place the chart in \"Sheet2\"."
-msgstr ""
+msgstr "Eksemplene nedenfor i Basic og Python lager et diagram ved å bruke dataene i området \"A1:B5\" til \"Ark1\" og plasser diagrammet i \"Ark2\"."
#. uBCvA
#: sf_calc.xhp
@@ -5279,7 +5279,7 @@ msgctxt ""
"par_id231635441342180\n"
"help.text"
msgid "Refer to the help page about ScriptForge's <link href=\"text/sbasic/shared/03/sf_chart.xhp\" name=\"Chart service\">Chart service</link> to learn more how to further manipulate chart objects. It is possible to change properties as the chart type, chart and axes titles and chart position."
-msgstr ""
+msgstr "Se hjelpesiden om ScriptForges <link href=\"text/sbasic/shared/03/sf_chart.xhp\" name=\"Chart service\">Diagramjeneste</link> for å lære mer hvordan du kan ytterligere manipulere diagramobjekter. Det er mulig å endre egenskaper som diagramtype, diagram- og aksetitler og diagramposisjon."
#. so8uw
#: sf_calc.xhp
@@ -5288,7 +5288,7 @@ msgctxt ""
"par_id601595777001498\n"
"help.text"
msgid "Apply the functions Average, Count, Max, Min and Sum, respectively, to all the cells containing numeric values on a given range."
-msgstr ""
+msgstr "Bruk funksjonene Gjennomsnitt, Tell, Maks, Min og Sum, henholdsvis på alle cellene som inneholder numeriske verdier i et gitt område."
#. F2UTC
#: sf_calc.xhp
@@ -5297,7 +5297,7 @@ msgctxt ""
"par_id741595777001537\n"
"help.text"
msgid "<emph>range</emph>: The range to which the function will be applied, as a string."
-msgstr ""
+msgstr "<emph>område</emph>: Området som funksjonen skal brukes på, som en streng."
#. ZhAYY
#: sf_calc.xhp
@@ -5306,7 +5306,7 @@ msgctxt ""
"par_id121611752704572\n"
"help.text"
msgid "The example below applies the <literal>Sum</literal> function to the range \"A1:A1000\" of the currently selected sheet:"
-msgstr ""
+msgstr "Eksemplet nedenfor bruker <literal>Sum</literal>-funksjonen på området \"A1:A1000\" for det valgte arket:"
#. iTEts
#: sf_calc.xhp
@@ -5315,7 +5315,7 @@ msgctxt ""
"par_id31611752782288\n"
"help.text"
msgid "Cells in the given range that contain text will be ignored by all of these functions. For example, the <literal>DCount</literal> method will not count cells with text, only numerical cells."
-msgstr ""
+msgstr "Celler i det gitte området som inneholder tekst vil bli ignorert av alle disse funksjonene. For eksempel vil <literal>DCount</literal>-metoden ikke telle celler med tekst, kun numeriske celler."
#. BVKEy
#: sf_calc.xhp
@@ -5324,7 +5324,7 @@ msgctxt ""
"par_id501623063693649\n"
"help.text"
msgid "Depending on the parameters provided this method will return:"
-msgstr ""
+msgstr "Avhengig av parametrene som er gitt, vil denne metoden returnere:"
#. pBZm6
#: sf_calc.xhp
@@ -5333,7 +5333,7 @@ msgctxt ""
"par_id611623063742045\n"
"help.text"
msgid "A zero-based Array (or a tuple in Python) with the names of all the forms contained in a given sheet (if the <literal>form</literal> argument is absent)"
-msgstr ""
+msgstr "En nullbasert matrise (eller en tuppel i Python) med navnene på alle skjemaene i et gitt ark (hvis <literal>form</literal>-argumentet er fraværende)"
#. FHWZs
#: sf_calc.xhp
@@ -5342,7 +5342,7 @@ msgctxt ""
"par_id641623063744536\n"
"help.text"
msgid "A <literal>SFDocuments.Form</literal> service instance representing the form specified as argument."
-msgstr ""
+msgstr "En <literal>SFDocuments.Form</literal> tjenesteforekomst som representerer skjemaet angitt som argument."
#. YdQaD
#: sf_calc.xhp
@@ -5351,7 +5351,7 @@ msgctxt ""
"par_id441623090893210\n"
"help.text"
msgid "<emph>sheetname</emph>: The name of the sheet, as a string, from which the form will be retrieved."
-msgstr ""
+msgstr "<emph>arknavn</emph>: Navnet på arket, som en streng, som skjemaet vil bli hentet fra."
#. BV8GH
#: sf_calc.xhp
@@ -5360,7 +5360,7 @@ msgctxt ""
"par_id451623063459286\n"
"help.text"
msgid "<emph>form</emph>: The name or index corresponding to a form stored in the specified sheet. If this argument is absent, the method will return a list with the names of all forms available in the sheet."
-msgstr ""
+msgstr "<emph>skjema</emph>: Navnet eller indeksen som tilsvarer et skjema som er lagret i det angitte arket. Hvis dette argumentet er fraværende, vil metoden returnere en liste med navnene på alle tilgjengelige skjemaer i arket."
#. sFFyE
#: sf_calc.xhp
@@ -5369,7 +5369,7 @@ msgctxt ""
"par_id251623063305557\n"
"help.text"
msgid "In the following examples, the first line gets the names of all forms stored in \"Sheet1\" and the second line retrieves the <literal>Form</literal> object of the form named \"Form_A\" which is stored in \"Sheet1\"."
-msgstr ""
+msgstr "I de følgende eksemplene får den første linjen navnene på alle skjemaer som er lagret i \"Ark1\", og den andre linjen henter <literal>Skjema</literal>-objektet til skjemaet kalt \"Skjema_A\" som er lagret i \"Ark1\"."
#. y9kCE
#: sf_calc.xhp
@@ -5378,7 +5378,7 @@ msgctxt ""
"par_id401591632726431\n"
"help.text"
msgid "Converts a column number ranging between 1 and 1024 into its corresponding letter (column 'A', 'B', ..., 'AMJ'). If the given column number is outside the allowed range, a zero-length string is returned."
-msgstr ""
+msgstr "Konverterer et kolonnenummer mellom 1 og 1024 til dens tilsvarende bokstav (kolonne 'A', 'B', ..., 'AMJ'). Hvis det gitte kolonnenummeret er utenfor det tillatte området, returneres en streng med null lengde."
#. EfsXe
#: sf_calc.xhp
@@ -5387,7 +5387,7 @@ msgctxt ""
"par_id83159163272628\n"
"help.text"
msgid "<emph>columnnumber</emph>: The column number as an integer value in the interval 1 ... 1024."
-msgstr ""
+msgstr "<emph>kolonnenummer</emph>: Kolonnenummeret som en heltallsverdi i intervallet 1 ... 1024."
#. 6yjtp
#: sf_calc.xhp
@@ -5396,7 +5396,7 @@ msgctxt ""
"par_id11621539831303\n"
"help.text"
msgid "Displays a message box with the name of the third column, which by default is \"C\"."
-msgstr ""
+msgstr "Viser en meldingsboks med navnet på den tredje kolonnen, som som standard er \"C\"."
#. XNAhU
#: sf_calc.xhp
@@ -5405,7 +5405,7 @@ msgctxt ""
"par_id451611753568778\n"
"help.text"
msgid "The maximum number of columns allowed on a Calc sheet is 1024."
-msgstr ""
+msgstr "Maksimalt antall kolonner tillatt på et Calc-ark er 1024."
#. ksYoG
#: sf_calc.xhp
@@ -5414,7 +5414,7 @@ msgctxt ""
"par_id921593880142573\n"
"help.text"
msgid "Get the formula(s) stored in the given range of cells as a single string, a 1D or a 2D array of strings."
-msgstr ""
+msgstr "Få formelen(e) lagret i det gitte celleområdet som en enkelt streng, en 1D eller en 2D rekke strenger."
#. KDFkQ
#: sf_calc.xhp
@@ -5423,7 +5423,7 @@ msgctxt ""
"par_id891593880142588\n"
"help.text"
msgid "<emph>range</emph>: The range where to get the formulas from, as a string."
-msgstr ""
+msgstr "<emph>område</emph>: Området hvor formlene skal hentes fra, som en streng."
#. tBeSN
#: sf_calc.xhp
@@ -5432,7 +5432,7 @@ msgctxt ""
"par_id461611755257141\n"
"help.text"
msgid "The following example returns a 3 by 2 array with the formulas in the range \"A1:B3\" (3 rows by 2 columns):"
-msgstr ""
+msgstr "Følgende eksempel returnerer en 3 x 2 matrise med formlene i området \"A1:B3\" (3 rader x 2 kolonner):"
#. AoHGB
#: sf_calc.xhp
@@ -5441,7 +5441,7 @@ msgctxt ""
"par_id331592231156425\n"
"help.text"
msgid "Get the value(s) stored in the given range of cells as a single value, a 1D array or a 2D array. All values are either doubles or strings."
-msgstr ""
+msgstr "Få verdien(e) lagret i det gitte celleområdet som en enkelt verdi, en 1D-matrise eller en 2D-matrise. Alle verdier er enten doble eller strenger."
#. XACNZ
#: sf_calc.xhp
@@ -5450,7 +5450,7 @@ msgctxt ""
"par_id91592231156434\n"
"help.text"
msgid "<emph>range</emph>: The range where to get the values from, as a string."
-msgstr ""
+msgstr "<emph>område</emph>: Området hvor du skal hente verdiene fra, som en streng."
#. ojRBo
#: sf_calc.xhp
@@ -5459,7 +5459,7 @@ msgctxt ""
"par_id991611756492772\n"
"help.text"
msgid "If a cell contains a date, the number corresponding to that date will be returned. To convert numeric values to dates in Basic scripts, use the Basic <link href=\"text/sbasic/shared/03100300.xhp\" name=\"CDate Basic\"><literal>CDate</literal> builtin function</link>. In Python scripts, use the <link href=\"text/sbasic/shared/03/sf_basic.xhp#CDate\" name=\"CDate Python\"><literal>CDate</literal> function from the <literal>Basic</literal> service.</link>"
-msgstr ""
+msgstr "Hvis en celle inneholder en dato, vil tallet som tilsvarer den datoen bli returnert. For å konvertere numeriske verdier til datoer i grunnleggende skript, bruk den grunnleggende <link href=\"text/sbasic/shared/03100300.xhp\" name=\"CDate Basic\"><literal>CDate</literal> innebygde funksjon</link>. I Python-skript bruker du <link href=\"text/sbasic/shared/03/sf_basic.xhp#CDate\" name=\"CDate Python\"><literal>CDate</literal>-funksjonen fra <literal>Basic</literal>-funksjonen > tjeneste.</link>"
#. YYMuH
#: sf_calc.xhp
@@ -5468,7 +5468,7 @@ msgctxt ""
"par_id771593685490395\n"
"help.text"
msgid "Imports the contents of a CSV-formatted text file and places it on a given destination cell."
-msgstr ""
+msgstr "Importerer innholdet i en CSV-formatert tekstfil og plasserer den på en gitt destinasjonscelle."
#. cxrHr
#: sf_calc.xhp
@@ -5477,7 +5477,7 @@ msgctxt ""
"par_id751611756909199\n"
"help.text"
msgid "The destination area is cleared of all contents and formats before inserting the contents of the CSV file. The size of the modified area is fully determined by the contents of the input file."
-msgstr ""
+msgstr "Destinasjonsområdet tømmes for alt innhold og formater før innholdet i CSV-filen settes inn. Størrelsen på det modifiserte området bestemmes fullt ut av innholdet i inndatafilen."
#. D2w2A
#: sf_calc.xhp
@@ -5486,7 +5486,7 @@ msgctxt ""
"par_id911593685490873\n"
"help.text"
msgid "The method returns a string representing the modified range of cells."
-msgstr ""
+msgstr "Metoden returnerer en streng som representerer det modifiserte celleområdet."
#. GrquM
#: sf_calc.xhp
@@ -5495,7 +5495,7 @@ msgctxt ""
"par_id851593685490824\n"
"help.text"
msgid "<emph>filename</emph>: Identifies the file to open. It must follow the <literal>SF_FileSystem.FileNaming</literal> notation."
-msgstr ""
+msgstr "<emph>filnavn</emph>: Identifiserer filen som skal åpnes. Den må følge <literal>SF_FileSystem.FileNaming</literal>-notasjonen."
#. VdTtY
#: sf_calc.xhp
@@ -5504,7 +5504,7 @@ msgctxt ""
"par_id641593685490936\n"
"help.text"
msgid "<emph>destinationcell</emph>: The destination cell to insert the imported data, as a string. If instead a range is given, only its top-left cell is considered."
-msgstr ""
+msgstr "<emph>destinationcell</emph>: Destinasjonscellen for å sette inn importerte data, som en streng. Hvis det i stedet angis et område, vurderes bare dens øverste venstre celle."
#. BrTfu
#: sf_calc.xhp
@@ -5513,7 +5513,7 @@ msgctxt ""
"par_id641593685863838\n"
"help.text"
msgid "<emph>filteroptions</emph>: The arguments for the CSV input filter. The default filter makes following assumptions:"
-msgstr ""
+msgstr "<emph>filteralternativer</emph>: Argumentene for CSV-inndatafilteret. Standardfilteret gjør følgende forutsetninger:"
#. Mb4c6
#: sf_calc.xhp
@@ -5522,7 +5522,7 @@ msgctxt ""
"par_id661593686250471\n"
"help.text"
msgid "The input file encoding is UTF8."
-msgstr ""
+msgstr "Inndatafilens koding er UTF8."
#. CEpDn
#: sf_calc.xhp
@@ -5531,7 +5531,7 @@ msgctxt ""
"par_id161593686260876\n"
"help.text"
msgid "The field separator is a comma, a semi-colon or a Tab character."
-msgstr ""
+msgstr "Feltseparatoren er et komma, et semikolon eller et tabulatortegn."
#. CDfys
#: sf_calc.xhp
@@ -5540,7 +5540,7 @@ msgctxt ""
"par_id711593686274293\n"
"help.text"
msgid "The string delimiter is the double quote (\")."
-msgstr ""
+msgstr "Strengavgrensningstegnet er det doble anførselstegn (\")."
#. qowXx
#: sf_calc.xhp
@@ -5549,7 +5549,7 @@ msgctxt ""
"par_id171593686280838\n"
"help.text"
msgid "All lines are included."
-msgstr ""
+msgstr "Alle linjer er inkludert."
#. MBwZg
#: sf_calc.xhp
@@ -5558,7 +5558,7 @@ msgctxt ""
"par_id881593686287161\n"
"help.text"
msgid "Quoted strings are formatted as text."
-msgstr ""
+msgstr "Strenger i anførselstegn er formatert som tekst."
#. bujFG
#: sf_calc.xhp
@@ -5567,7 +5567,7 @@ msgctxt ""
"par_id161593686293473\n"
"help.text"
msgid "Special numbers are detected."
-msgstr ""
+msgstr "Spesielle tall blir oppdaget."
#. TYXKD
#: sf_calc.xhp
@@ -5576,7 +5576,7 @@ msgctxt ""
"par_id791593686300499\n"
"help.text"
msgid "All columns are presumed to be texts, except if recognized as valid numbers."
-msgstr ""
+msgstr "Alle kolonner antas å være tekster, bortsett fra hvis de gjenkjennes som gyldige tall."
#. Byno7
#: sf_calc.xhp
@@ -5585,7 +5585,7 @@ msgctxt ""
"par_id381593686307406\n"
"help.text"
msgid "The language is English/US, which implies that the decimal separator is \".\" and the thousands separator is \",\"."
-msgstr ""
+msgstr "Språket er engelsk/amerikansk, noe som betyr at desimalskilletegn er \".\" og tusenskilletegn er \",\"."
#. TX82d
#: sf_calc.xhp
@@ -5594,7 +5594,7 @@ msgctxt ""
"par_id531611757154931\n"
"help.text"
msgid "To learn more about the CSV Filter Options, refer to the <link href=\"https://wiki.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Filter_Options#Filter_Options_for_the_CSV_Filter\" name=\"Filter Options\">Filter Options Wiki page</link>."
-msgstr ""
+msgstr "For å lære mer om CSV-filteralternativene, se <link href=\"https://wiki.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Filter_Options#Filter_Options_for_the_CSV_Filter\" name=\"Filter Options\">Filteralternativer Wiki-siden </link>."
#. vPPYx
#: sf_calc.xhp
@@ -5603,7 +5603,7 @@ msgctxt ""
"par_id881599568986824\n"
"help.text"
msgid "Imports the contents of a database table, query or resultset, i.e. the result of a SELECT SQL command, inserting it on a destination cell."
-msgstr ""
+msgstr "Importerer innholdet i en databasetabell, spørring eller resultatsett, dvs. resultatet av en SELECT SQL-kommando, setter den inn i en destinasjonscelle."
#. DorV6
#: sf_calc.xhp
@@ -5612,7 +5612,7 @@ msgctxt ""
"par_id81611763957509\n"
"help.text"
msgid "The destination area is cleared of all contents and formats before inserting the imported contents. The size of the modified area is fully determined by the contents in the table or query."
-msgstr ""
+msgstr "Destinasjonsområdet tømmes for alt innhold og formater før det importerte innholdet settes inn. Størrelsen på det modifiserte området bestemmes fullt ut av innholdet i tabellen eller spørringen."
#. tfp3o
#: sf_calc.xhp
@@ -5621,7 +5621,7 @@ msgctxt ""
"par_id51599568986387\n"
"help.text"
msgid "The method returns <literal>True</literal> when the import was successful."
-msgstr ""
+msgstr "Metoden returnerer <literal>Sann</literal> når importen var vellykket."
#. rgoAd
#: sf_calc.xhp
@@ -5630,7 +5630,7 @@ msgctxt ""
"par_id311599568986784\n"
"help.text"
msgid "<emph>filename</emph>: Identifies the file to open. It must follow the <literal>SF_FileSystem.FileNaming</literal> notation."
-msgstr ""
+msgstr "<emph>filnavn</emph>: Identifiserer filen som skal åpnes. Den må følge <literal>SF_FileSystem.FileNaming</literal>-notasjonen."
#. j2J5e
#: sf_calc.xhp
@@ -5639,7 +5639,7 @@ msgctxt ""
"par_id711596555746281\n"
"help.text"
msgid "<emph>registrationname</emph>: The name to use to find the database in the databases register. This argument is ignored if a <literal>filename</literal> is provided."
-msgstr ""
+msgstr "<emph>registreringsnavn</emph>: Navnet som skal brukes for å finne databasen i databaseregisteret. Dette argumentet ignoreres hvis et <literal>filnavn</literal> er oppgitt."
#. 2hSHw
#: sf_calc.xhp
@@ -5648,7 +5648,7 @@ msgctxt ""
"par_id211599568986329\n"
"help.text"
msgid "<emph>destinationcell</emph>: The destination of the imported data, as a string. If a range is given, only its top-left cell is considered."
-msgstr ""
+msgstr "<emph>destinationcell</emph>: Destinasjonen for de importerte dataene, som en streng. Hvis et område er gitt, vurderes kun dens øverste venstre celle."
#. aMfVw
#: sf_calc.xhp
@@ -5657,7 +5657,7 @@ msgctxt ""
"par_id451599489278429\n"
"help.text"
msgid "<emph>sqlcommand</emph>: A table or query name (without surrounding quotes or square brackets) or a SELECT SQL statement in which table and field names may be surrounded by square brackets or quotes to improve its readability."
-msgstr ""
+msgstr "<emph>sqlcommand</emph>: Et tabell- eller spørringsnavn (uten anførselstegn eller hakeparenteser) eller en SELECT SQL-setning der tabell- og feltnavn kan være omgitt av hakeparenteser eller anførselstegn for å forbedre lesbarheten."
#. wFpLr
#: sf_calc.xhp
@@ -5666,7 +5666,7 @@ msgctxt ""
"par_id271599489278141\n"
"help.text"
msgid "<emph>directsql</emph>: When <literal>True</literal>, the SQL command is sent to the database engine without pre-analysis. Default is <literal>False</literal>. The argument is ignored for tables. For queries, the applied option is the one set when the query was defined."
-msgstr ""
+msgstr "<emph>directsql</emph>: Når <literal>True</literal>, sendes SQL-kommandoen til databasemotoren uten forhåndsanalyse. Standard er <literal>Usann</literal>. Argumentet ignoreres for tabeller. For spørringer er det valgte alternativet det som ble angitt da spørringen ble definert."
#. toj8z
#: sf_calc.xhp
@@ -5675,7 +5675,7 @@ msgctxt ""
"par_id121591698472929\n"
"help.text"
msgid "Inserts a new empty sheet before an existing sheet or at the end of the list of sheets."
-msgstr ""
+msgstr "Setter inn et nytt tomt ark før et eksisterende ark eller på slutten av listen over ark."
#. Xbm7k
#: sf_calc.xhp
@@ -5684,7 +5684,7 @@ msgctxt ""
"par_id941591698472748\n"
"help.text"
msgid "<emph>sheetname</emph>: The name of the new sheet."
-msgstr ""
+msgstr "<emph>arknavn</emph>: Navnet på det nye arket."
#. XbXNM
#: sf_calc.xhp
@@ -5693,7 +5693,7 @@ msgctxt ""
"par_id84159169847269\n"
"help.text"
msgid "<emph>beforesheet</emph>: The name (string) or index (numeric, starting from 1) of the sheet before which to insert the new sheet. This argument is optional and the default behavior is to insert the sheet at the last position."
-msgstr ""
+msgstr "<emph>beforesheet</emph>: Navnet (strengen) eller indeksen (numerisk, fra 1) til arket som det nye arket skal settes inn før. Dette argumentet er valgfritt, og standard oppførsel er å sette inn arket på den siste posisjonen."
#. UCmit
#: sf_calc.xhp
@@ -5702,7 +5702,7 @@ msgctxt ""
"par_id241611764359510\n"
"help.text"
msgid "The following example inserts a new empty sheet named \"SheetX\" and places it before \"SheetY\":"
-msgstr ""
+msgstr "Følgende eksempel setter inn et nytt tomt ark kalt \"ArkX\" og plasserer det før \"ArkY\":"
#. DcrWC
#: sf_calc.xhp
@@ -5711,7 +5711,7 @@ msgctxt ""
"par_id6415925694762\n"
"help.text"
msgid "Moves a specified source range to a destination range of cells. The method returns a string representing the modified range of cells. The dimension of the modified area is fully determined by the size of the source area."
-msgstr ""
+msgstr "Flytter et spesifisert kildeområde til et målområde med celler. Metoden returnerer en streng som representerer det modifiserte celleområdet. Dimensjonen til det modifiserte området er fullt ut bestemt av størrelsen på kildeområdet."
#. UqxZv
#: sf_calc.xhp
@@ -5720,7 +5720,7 @@ msgctxt ""
"par_id571592569476332\n"
"help.text"
msgid "<emph>source</emph>: The source range of cells, as a string."
-msgstr ""
+msgstr "<emph>kilde</emph>: Kildeområdet for celler, som en streng."
#. G6BSW
#: sf_calc.xhp
@@ -5729,7 +5729,7 @@ msgctxt ""
"par_id891592569476362\n"
"help.text"
msgid "<emph>destination</emph>: The destination cell, as a string. If a range is given, its top-left cell is considered as the destination."
-msgstr ""
+msgstr "<emph>destinasjon</emph>: Destinasjonscellen, som en streng. Hvis et område er gitt, anses dens øverste venstre celle som destinasjonen."
#. NorEd
#: sf_calc.xhp
@@ -5738,7 +5738,7 @@ msgctxt ""
"par_id831591698903829\n"
"help.text"
msgid "Moves an existing sheet and places it before a specified sheet or at the end of the list of sheets."
-msgstr ""
+msgstr "Flytter et eksisterende ark og plasserer det foran et spesifisert ark eller på slutten av listen over ark."
#. dgAxB
#: sf_calc.xhp
@@ -5747,7 +5747,7 @@ msgctxt ""
"par_id351591698903911\n"
"help.text"
msgid "<emph>sheetname</emph>: The name of the sheet to move. The sheet must exist or an exception is raised."
-msgstr ""
+msgstr "<emph>arknavn</emph>: Navnet på arket som skal flyttes. Arket må eksistere eller et unntak oppstår."
#. fevuS
#: sf_calc.xhp
@@ -5756,7 +5756,7 @@ msgctxt ""
"par_id9159169890334\n"
"help.text"
msgid "<emph>beforesheet</emph>: The name (string) or index (numeric, starting from 1) of the sheet before which the original sheet will be placed. This argument is optional and the default behavior is to move the sheet to the last position."
-msgstr ""
+msgstr "<emph>beforesheet</emph>: Navnet (strengen) eller indeksen (numerisk, fra 1) til arket som det originale arket skal plasseres foran. Dette argumentet er valgfritt, og standard oppførsel er å flytte arket til siste posisjon."
#. pd5t4
#: sf_calc.xhp
@@ -5765,7 +5765,7 @@ msgctxt ""
"par_id951611766058734\n"
"help.text"
msgid "The example below moves the existing sheet \"SheetX\" and places it before \"SheetY\":"
-msgstr ""
+msgstr "Eksemplet nedenfor flytter det eksisterende arket \"SheetS\" og plasserer det før \"ShettY\":"
#. Q9iwN
#: sf_calc.xhp
@@ -5774,7 +5774,7 @@ msgctxt ""
"par_id51592233506371\n"
"help.text"
msgid "Returns a new range (as a string) offset by a certain number of rows and columns from a given range."
-msgstr ""
+msgstr "Returnerer et nytt område (som en streng) forskjøvet med et visst antall rader og kolonner fra et gitt område."
#. VCUXL
#: sf_calc.xhp
@@ -5783,7 +5783,7 @@ msgctxt ""
"par_id61611768400376\n"
"help.text"
msgid "This method has the same behavior as the homonymous Calc's <link href=\"text/scalc/01/04060109.xhp\" name=\"Offset function\">Offset function</link>."
-msgstr ""
+msgstr "Denne metoden har samme oppførsel som den homonyme Calcs <link href=\"text/scalc/01/04060109.xhp\" name=\"Offset function\">Offset-funksjon</link>."
#. G2oD2
#: sf_calc.xhp
@@ -5792,7 +5792,7 @@ msgctxt ""
"par_id901592233506293\n"
"help.text"
msgid "<emph>reference</emph>: The range, as a string, that the method will use as reference to perform the offset operation."
-msgstr ""
+msgstr "<emph>referanse</emph>: Området, som en streng, som metoden vil bruke som referanse for å utføre offset-operasjonen."
#. Ra7aW
#: sf_calc.xhp
@@ -5801,7 +5801,7 @@ msgctxt ""
"par_id781592234124856\n"
"help.text"
msgid "<emph>rows</emph>: The number of rows by which the initial range is offset upwards (negative value) or downwards (positive value). Use 0 (default) to stay in the same row."
-msgstr ""
+msgstr "<emph>rader</emph>: Antall rader som startområdet forskyves med oppover (negativ verdi) eller nedover (positiv verdi). Bruk 0 (standard) for å bli i samme rad."
#. FvqjV
#: sf_calc.xhp
@@ -5810,7 +5810,7 @@ msgctxt ""
"par_id971592234138769\n"
"help.text"
msgid "<emph>columns</emph>: The number of columns by which the initial range is offset to the left (negative value) or to the right (positive value). Use 0 (default) to stay in the same column."
-msgstr ""
+msgstr "<emph>kolonner</emph>: Antall kolonner som startområdet forskyves med til venstre (negativ verdi) eller til høyre (positiv verdi). Bruk 0 (standard) for å bli i samme kolonne."
#. VzgGM
#: sf_calc.xhp
@@ -5819,7 +5819,7 @@ msgctxt ""
"par_id321592234150061\n"
"help.text"
msgid "<emph>height</emph>: The vertical height for an area that starts at the new range position. Omit this argument when no vertical resizing is needed."
-msgstr ""
+msgstr "<emph>høyde</emph>: Den vertikale høyden for et område som starter ved den nye rekkeviddeposisjonen. Utelat dette argumentet når ingen vertikal endring av størrelse er nødvendig."
#. JxENN
#: sf_calc.xhp
diff --git a/source/nb/helpcontent2/source/text/scalc/01.po b/source/nb/helpcontent2/source/text/scalc/01.po
index 3758201e819..63e532bc934 100644
--- a/source/nb/helpcontent2/source/text/scalc/01.po
+++ b/source/nb/helpcontent2/source/text/scalc/01.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-20 13:20+0100\n"
-"PO-Revision-Date: 2022-02-12 18:39+0000\n"
+"PO-Revision-Date: 2022-03-04 07:39+0000\n"
"Last-Translator: Karl Morten Ramberg <karl.m.ramberg@gmail.com>\n"
"Language-Team: Norwegian Bokmål <https://translations.documentfoundation.org/projects/libo_help-7-3/textscalc01/nb_NO/>\n"
"Language: nb\n"
@@ -725,7 +725,7 @@ msgctxt ""
"par_id3150717\n"
"help.text"
msgid "<ahelp hid=\"modules/scalc/ui/headerfootercontent/buttonBTN_TEXT\">Opens a dialog to assign formats to new or selected text.</ahelp> The <emph>Text Attributes</emph> dialog contains the tab pages <link href=\"text/shared/01/05020100.xhp\" name=\"Font\"><emph>Font</emph></link>, <link href=\"text/shared/01/05020200.xhp\" name=\"Font Effects\"><emph>Font Effects</emph></link> and <link href=\"text/shared/01/05020500.xhp\" name=\"Font Position\"><emph>Font Position</emph></link>."
-msgstr ""
+msgstr "<ahelp hid=\"modules/scalc/ui/headerfootercontent/buttonBTN_TEXT\">Åpner en dialogboks for å tilordne formater til ny eller valgt tekst.</ahelp> Dialogboksen <emph>Tekstattributter</emph> inneholder fanesidene <link href=\"text/shared/01/05020100.xhp\" name=\"Font\"><emph>Font</emph></link>, <link href=\"text/shared/01/05020200.xhp\" name=\"Font Effects\"><emph>Font Effekter</emph></link> og <link href=\"text/shared/01/05020500.xhp\" name=\"Font Position\"><emph>Font Posisjon</emph></link>."
#. 5DMJG
#: 02120100.xhp
@@ -1040,7 +1040,7 @@ msgctxt ""
"par_id3145384\n"
"help.text"
msgid "Call the <link href=\"text/shared/00/00000005.xhp#contextmenu\" name=\"context menu\">context menu</link> when positioned in a cell and choose <emph>Selection List</emph>."
-msgstr ""
+msgstr "Anrop <link href=\"text/shared/00/00000005.xhp#contextmenu\" name=\"context menu\">kontekstmenyen</link> når den er plassert i en celle, og velg <emph>Utvalgsliste</emph>."
#. BzAsX
#: 02140000.xhp
@@ -1247,7 +1247,7 @@ msgctxt ""
"par_id3150769\n"
"help.text"
msgid "To select multiple sheets, click each sheet tab while pressing <switchinline select=\"sys\"><caseinline select=\"MAC\"><keycode>Command</keycode></caseinline><defaultinline><keycode>Ctrl</keycode></defaultinline></switchinline> or <keycode>Shift</keycode>."
-msgstr ""
+msgstr "For å velge flere ark, klikk på hver arkfane mens du trykker på <switchinline select=\"sys\"><caseinline select=\"MAC\"><keycode> Command </keycode></caseinline><defaultinline><keycode>Ctrl</keycode> </defaultinline></switchinline> eller <keycode>Shift</keycode>."
#. FYuCU
#: 02140500.xhp
@@ -1283,7 +1283,7 @@ msgctxt ""
"par_id3153726\n"
"help.text"
msgid "Press <switchinline select=\"sys\"><caseinline select=\"MAC\"><keycode>Command</keycode></caseinline><defaultinline><keycode>Ctrl</keycode></defaultinline></switchinline> and click the tab of the sheet where you want to insert the contents."
-msgstr ""
+msgstr "Trykk <switchinline select=\"sys\"><caseinline select=\"MAC\"><keycode> Command </keycode></caseinline><defaultinline><keycode>Ctrl</keycode></defaultinline></switchinline> og klikk fanen på arket der du vil sette inn innholdet."
#. medyk
#: 02140500.xhp
@@ -1292,7 +1292,7 @@ msgctxt ""
"par_id3147436\n"
"help.text"
msgid "Select the command <menuitem>Sheet - Fill Cells - Sheets</menuitem>. In the dialog which appears, the check box <emph>Numbers</emph> must be selected (or <emph>Paste All</emph>) if you want to combine operations with the values. You can also choose the desired operation here."
-msgstr ""
+msgstr "Velg kommandoen <menuitem>Ark - Fyll celler - Ark</menuitem>. I dialogboksen som vises, må avkrysningsboksen <emph>Tall</emph> velges (eller <emph>Lim inn alle</emph>) hvis du vil kombinere operasjoner med verdiene. Du kan også velge ønsket operasjon her."
#. yNrLG
#: 02140500.xhp
@@ -1310,7 +1310,7 @@ msgctxt ""
"par_id3156283\n"
"help.text"
msgid "This dialog is similar to the <link href=\"text/shared/01/02070000.xhp\" name=\"Paste Special\"><emph>Paste Special</emph></link> dialog, where you can find additional tips."
-msgstr ""
+msgstr "Denne dialogboksen ligner <link href=\"text/shared/01/02070000.xhp\" name=\"Paste Special\"><emph>Lim inn spesial</emph></link>-dialogen, hvor du kan finne flere tips."
#. B6GAM
#: 02140600.xhp
@@ -1337,7 +1337,7 @@ msgctxt ""
"par_id3148797\n"
"help.text"
msgid "<variable id=\"reihenfuellentext\"><ahelp hid=\".uno:FillSeries\">Automatically generate series with the options in this dialog. Determine direction, increment, time unit and series type.</ahelp></variable>"
-msgstr ""
+msgstr "<variable id=\"reihenfuellentext\"><ahelp hid=\".uno:FillSeries\">Generer serier automatisk med alternativene i denne dialogboksen. Bestem retning, inkrement, tidsenhet og serietype.</ahelp></variable>"
#. WnPsX
#: 02140600.xhp
@@ -1463,7 +1463,7 @@ msgctxt ""
"par_id3149257\n"
"help.text"
msgid "Defines the series type. Choose between <emph>Linear</emph>, <emph>Growth</emph>, <emph>Date</emph> and <emph>AutoFill</emph>."
-msgstr ""
+msgstr "Definerer serietypen. Velg mellom <emph>Lineær</emph>, <emph>Økning</emph>, <emph>Dato</emph> og <emph>AutoFyll</emph>."
#. yfoVv
#: 02140600.xhp
@@ -1535,7 +1535,7 @@ msgctxt ""
"par_id3156288\n"
"help.text"
msgid "<ahelp hid=\"modules/scalc/ui/filldlg/autofill\">Forms a series directly in the sheet.</ahelp> The <emph>AutoFill</emph> function takes account of customized lists. For example, by entering <emph>January</emph> in the first cell, the series is completed using the list defined under <switchinline select=\"sys\"><caseinline select=\"MAC\"><emph>%PRODUCTNAME - Preferences</emph></caseinline><defaultinline><emph>Tools - Options</emph></defaultinline></switchinline><emph> - %PRODUCTNAME Calc - Sort Lists</emph>."
-msgstr ""
+msgstr "<ahelp hid=\"modules/scalc/ui/filldlg/autofill\">Former en serie direkte i arket.</ahelp> <emph>Autofyll</emph>-funksjonen tar hensyn til sorterte lister. For eksempel, ved å skrive inn <emph>Januar</emph> i den første cellen, fullføres serien ved å bruke listen definert under <switchinline select=\"sys\"><caseinline select=\"MAC\"><emph>%PRODUCTNAME - Innstillinger </emph></caseinline><defaultinline><emph>Verktøy - Alternativer</emph></defaultinline></switchinline><emph> - %PRODUCTNAME Calc - Sorter lister</emph>."
#. 2JEap
#: 02140600.xhp
diff --git a/source/nl/formula/messages.po b/source/nl/formula/messages.po
index 22bcfcad0d9..7e59aca9875 100644
--- a/source/nl/formula/messages.po
+++ b/source/nl/formula/messages.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-03-29 16:02+0200\n"
-"PO-Revision-Date: 2022-02-28 17:26+0000\n"
+"PO-Revision-Date: 2022-03-09 19:38+0100\n"
"Last-Translator: kees538 <kees538@gmail.com>\n"
"Language-Team: Dutch <https://translations.documentfoundation.org/projects/libo_ui-7-3/formulamessages/nl/>\n"
"Language: nl\n"
@@ -13,7 +13,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Accelerator-Marker: ~\n"
-"X-Generator: Weblate 4.8.1\n"
+"X-Generator: LibreOffice\n"
#. YfKFn
#: formula/inc/core_resource.hrc:2277
@@ -37,7 +37,7 @@ msgstr "ALSNB"
#: formula/inc/core_resource.hrc:2280
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "CHOOSE"
-msgstr "KIES"
+msgstr "KIEZEN"
#. nMD3h
#. L10n: preserve the leading '#' hash character in translations.
@@ -307,7 +307,7 @@ msgstr "WORTEL"
#: formula/inc/core_resource.hrc:2329
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "FACT"
-msgstr "FACT"
+msgstr "FACULTEIT"
#. E77CE
#: formula/inc/core_resource.hrc:2330
@@ -661,25 +661,25 @@ msgstr "BOOGTAN2"
#: formula/inc/core_resource.hrc:2388
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "CEILING.MATH"
-msgstr "BOVENGRENS.WISKUNDIG"
+msgstr "AFRONDEN.BOVEN.WISK"
#. MCSCn
#: formula/inc/core_resource.hrc:2389
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "CEILING"
-msgstr "BOVENGRENS"
+msgstr "AFRONDEN.BOVEN"
#. scaZA
#: formula/inc/core_resource.hrc:2390
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "CEILING.XCL"
-msgstr "BOVENGRENS.EXCEL"
+msgstr "AFRONDEN.BOVEN.EXCEL"
#. WvaBc
#: formula/inc/core_resource.hrc:2391
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "CEILING.PRECISE"
-msgstr "BOVENGRENS.NAUWKEURIG"
+msgstr "AFRONDEN.BOVEN.NAUWKEURIG"
#. rEus7
#: formula/inc/core_resource.hrc:2392
@@ -883,7 +883,7 @@ msgstr "AANTAL"
#: formula/inc/core_resource.hrc:2425
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "COUNTA"
-msgstr "AANTALA"
+msgstr "AANTALARG"
#. JjXDM
#: formula/inc/core_resource.hrc:2426
@@ -1003,25 +1003,25 @@ msgstr "NORM.VERD"
#: formula/inc/core_resource.hrc:2445
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "EXPONDIST"
-msgstr "EXPONVERD"
+msgstr "EXPON.VERD"
#. QR4X5
#: formula/inc/core_resource.hrc:2446
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "EXPON.DIST"
-msgstr "EXPON.VERD"
+msgstr "T.VERD"
#. rj7xi
#: formula/inc/core_resource.hrc:2447
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "BINOMDIST"
-msgstr "BINOMIALEVERD"
+msgstr "BINOMIALE.VERD"
#. 3DUoC
#: formula/inc/core_resource.hrc:2448
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "BINOM.DIST"
-msgstr "BINOMIALE.VERD"
+msgstr "BINOM.VERD"
#. 5PEVt
#: formula/inc/core_resource.hrc:2449
@@ -1045,7 +1045,7 @@ msgstr "COMBINATIES"
#: formula/inc/core_resource.hrc:2452
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "COMBINA"
-msgstr "COMBINATIESA"
+msgstr "COMBIN.A"
#. YAwK5
#: formula/inc/core_resource.hrc:2453
@@ -1195,7 +1195,7 @@ msgstr "CUM.HOOFDSOM"
#: formula/inc/core_resource.hrc:2477
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "EFFECT"
-msgstr "EFFECTIEF"
+msgstr "EFFECT.RENTE"
#. fovF4
#: formula/inc/core_resource.hrc:2478
@@ -1225,7 +1225,7 @@ msgstr "DBAANTAL"
#: formula/inc/core_resource.hrc:2482
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "DCOUNTA"
-msgstr "DBAANTALA"
+msgstr "DBAANTALALC"
#. 3SNxX
#: formula/inc/core_resource.hrc:2483
@@ -1607,12 +1607,6 @@ msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "T.DIST.2T"
msgstr "T.VERD.2Z"
-#. F5Pfo
-#: formula/inc/core_resource.hrc:2546
-msgctxt "RID_STRLIST_FUNCTION_NAMES"
-msgid "T.DIST"
-msgstr "T.VERD"
-
#. BVPMN
#: formula/inc/core_resource.hrc:2547
msgctxt "RID_STRLIST_FUNCTION_NAMES"
@@ -1629,19 +1623,19 @@ msgstr "FVERDELING"
#: formula/inc/core_resource.hrc:2549
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "F.DIST"
-msgstr "F.VERDELING"
+msgstr "F.VERD"
#. P9uGQ
#: formula/inc/core_resource.hrc:2550
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "F.DIST.RT"
-msgstr "F.VERDELING.RZ"
+msgstr "F.VERD.RECHTS"
#. 9iTFp
#: formula/inc/core_resource.hrc:2551
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "CHIDIST"
-msgstr "CHIVERD"
+msgstr "CHI.KWADRAAT"
#. 4bU9E
#: formula/inc/core_resource.hrc:2552
@@ -1773,7 +1767,7 @@ msgstr "Z.TOETS"
#: formula/inc/core_resource.hrc:2573
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "AGGREGATE"
-msgstr "AGGREGATIE"
+msgstr "AGGREGAAT"
#. ky6Cc
#: formula/inc/core_resource.hrc:2574
@@ -2067,13 +2061,13 @@ msgstr "VOORSPELLEN.LINEAIR"
#: formula/inc/core_resource.hrc:2622
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "CHIINV"
-msgstr "CHIINV"
+msgstr "CHI.KWADRAAT.INV"
#. W4s9c
#: formula/inc/core_resource.hrc:2623
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "CHISQ.INV.RT"
-msgstr "CHIKWADR.INV.RZ"
+msgstr "CHIKW.INV.RECHTS"
#. FAYGA
#: formula/inc/core_resource.hrc:2624
@@ -2127,7 +2121,7 @@ msgstr "FINVERSE"
#: formula/inc/core_resource.hrc:2632
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "F.INV"
-msgstr "F.INVERSE"
+msgstr "F.INV"
#. zQB8F
#: formula/inc/core_resource.hrc:2633
@@ -2139,13 +2133,13 @@ msgstr "F.INV.RZ"
#: formula/inc/core_resource.hrc:2634
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "CHITEST"
-msgstr "CHITOETS"
+msgstr "CHI.TOETS"
#. 8RNiE
#: formula/inc/core_resource.hrc:2635
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "CHISQ.TEST"
-msgstr "CHIKWADR.TOETS"
+msgstr "CHIKW.TEST"
#. SHLfw
#: formula/inc/core_resource.hrc:2636
@@ -2175,7 +2169,7 @@ msgstr "BETAVERD"
#: formula/inc/core_resource.hrc:2640
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "BETAINV"
-msgstr "BETAINV"
+msgstr "BETA.INV"
#. LKwJS
#: formula/inc/core_resource.hrc:2641
@@ -2183,12 +2177,6 @@ msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "BETA.DIST"
msgstr "BETA.VERD"
-#. psoXo
-#: formula/inc/core_resource.hrc:2642
-msgctxt "RID_STRLIST_FUNCTION_NAMES"
-msgid "BETA.INV"
-msgstr "BETA.INV"
-
#. yg6Em
#: formula/inc/core_resource.hrc:2643
msgctxt "RID_STRLIST_FUNCTION_NAMES"
@@ -2296,7 +2284,7 @@ msgstr "INFO"
#: formula/inc/core_resource.hrc:2661
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "BAHTTEXT"
-msgstr "BAHTTEKST"
+msgstr "BAHT.TEKST"
#. AUXa8
#: formula/inc/core_resource.hrc:2662
@@ -2308,7 +2296,7 @@ msgstr "DRAAITABEL.OPHALEN"
#: formula/inc/core_resource.hrc:2663
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "EUROCONVERT"
-msgstr "EURO.CONVERTEREN"
+msgstr "EUROCONVERT"
#. WAGGZ
#: formula/inc/core_resource.hrc:2664
@@ -2332,7 +2320,7 @@ msgstr "CHIKWADRVERD"
#: formula/inc/core_resource.hrc:2667
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "CHISQ.DIST"
-msgstr "CHIKWADR.VERD"
+msgstr "CHIKW.VERD"
#. XA6Hg
#: formula/inc/core_resource.hrc:2668
@@ -2344,7 +2332,7 @@ msgstr "CHIKWADRINV"
#: formula/inc/core_resource.hrc:2669
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "CHISQ.INV"
-msgstr "CHIKWADR.INV"
+msgstr "CHIKW.INV"
#. B7QQq
#: formula/inc/core_resource.hrc:2670
@@ -2456,13 +2444,13 @@ msgstr "WEBSERVICE"
#: formula/inc/core_resource.hrc:2702
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "ERF.PRECISE"
-msgstr "ERF.PRECIES"
+msgstr "FOUTFUNCTIE.NAUWKEURIG"
#. Gz4Zt
#: formula/inc/core_resource.hrc:2703
msgctxt "RID_STRLIST_FUNCTION_NAMES"
msgid "ERFC.PRECISE"
-msgstr "ERFC.PRECIES"
+msgstr "FOUT.COMPLEMENT.NAUWKEURIG"
#. ywAMF
#: formula/inc/core_resource.hrc:2704
diff --git a/source/nl/helpcontent2/source/text/scalc/01.po b/source/nl/helpcontent2/source/text/scalc/01.po
index 4a1851a6880..e8b9f0e35b2 100644
--- a/source/nl/helpcontent2/source/text/scalc/01.po
+++ b/source/nl/helpcontent2/source/text/scalc/01.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-20 13:20+0100\n"
-"PO-Revision-Date: 2022-02-15 08:39+0000\n"
+"PO-Revision-Date: 2022-03-06 18:39+0000\n"
"Last-Translator: kees538 <kees538@gmail.com>\n"
"Language-Team: Dutch <https://translations.documentfoundation.org/projects/libo_help-7-3/textscalc01/nl/>\n"
"Language: nl\n"
@@ -4622,7 +4622,7 @@ msgctxt ""
"par_id181615889841279\n"
"help.text"
msgid "The <emph>DatabaseField</emph> argument is optional for the DCOUNT and DCOUNTA functions but it is required for the other ten Database functions."
-msgstr "Het argument <emph>Databaseveld</emph> is optioneel voor de functies DBAANTAL en DBAANTALA, maar is vereist voor de andere tien databasefuncties."
+msgstr "Het argument <emph>Databaseveld</emph> is optioneel voor de functies DBAANTAL en DBAANTALALC, maar is vereist voor de andere tien databasefuncties."
#. Af4va
#: 04060101.xhp
@@ -5189,7 +5189,7 @@ msgctxt ""
"bm_id3156123\n"
"help.text"
msgid "<bookmark_value>DCOUNTA function</bookmark_value><bookmark_value>records;counting in Calc databases</bookmark_value><bookmark_value>counting rows;with numeric or alphanumeric values</bookmark_value>"
-msgstr "<bookmark_value>DBAANTALA functie</bookmark_value><bookmark_value>records;tellen in Calc databases</bookmark_value><bookmark_value>rijen tellen;met numerieke of alfanumerieke waarden</bookmark_value>"
+msgstr "<bookmark_value>DBAANTALALC-functie</bookmark_value><bookmark_value>records;tellen in Calc databases</bookmark_value><bookmark_value>rijen tellen;met numerieke of alfanumerieke waarden</bookmark_value>"
#. aJdyL
#: 04060101.xhp
@@ -5198,7 +5198,7 @@ msgctxt ""
"hd_id3156123\n"
"help.text"
msgid "DCOUNTA"
-msgstr "DBAANTALC"
+msgstr "DBAANTALALC"
#. T7ebL
#: 04060101.xhp
@@ -5207,7 +5207,7 @@ msgctxt ""
"par_id3156110\n"
"help.text"
msgid "<ahelp hid=\"HID_FUNC_DBANZAHL2\">DCOUNTA counts the number of cells (fields) of the specified column that are not blank, for all rows (database records) that match the specified search criteria.</ahelp> Blank cells of the specified column are not counted. However, if no column is specified, DCOUNTA returns the count of all records that match the specified search criteria irrespective of their contents."
-msgstr "<ahelp hid=\"HID_FUNC_DBANZAHL2\">DBAANTALA telt het aantal cellen (velden) van de opgegeven kolom die niet leeg zijn, voor alle rijen (databaserecords) die voldoen aan de opgegeven zoekcriteria.</ahelp> Lege cellen van de opgegeven kolom worden niet meegeteld. Als er echter geen kolom is opgegeven, retourneert DBAANTALA de telling van alle records die overeenkomen met de opgegeven zoekcriteria, ongeacht hun inhoud."
+msgstr "<ahelp hid=\"HID_FUNC_DBANZAHL2\">DBAANTALALC telt het aantal cellen (velden) van de opgegeven kolom die niet leeg zijn, voor alle rijen (databaserecords) die voldoen aan de opgegeven zoekcriteria.</ahelp> Lege cellen van de opgegeven kolom worden niet meegeteld. Als er echter geen kolom is opgegeven, retourneert DBAANTALALC de telling van alle records die overeenkomen met de opgegeven zoekcriteria, ongeacht hun inhoud."
#. CxWGV
#: 04060101.xhp
@@ -5216,7 +5216,7 @@ msgctxt ""
"par_id3146893\n"
"help.text"
msgid "DCOUNTA(Database; [DatabaseField]; SearchCriteria)"
-msgstr "DBAANTALC(Database; Databaseveld; Zoekcriteria)"
+msgstr "DBAANTALALC(Database; Databaseveld; Zoekcriteria)"
#. dLvi2
#: 04060101.xhp
@@ -5234,7 +5234,7 @@ msgctxt ""
"par_id61616368616093\n"
"help.text"
msgid "Insert the formula <input>=DCOUNTA(A1:E10;; A12:E13)</input> into an empty cell elsewhere in the sheet to calculate how many of Joe’s party guests travel further than 600 meters to school. The value 5 is returned."
-msgstr "Voer de formule <input>=DBAANTALA(A1:E10;; A12:E13)</input> in een lege cel elders in het blad in om te berekenen hoeveel van Joe's feestgangers verder dan 600 meter naar school reizen. De waarde 5 wordt geretourneerd."
+msgstr "Voer de formule <input>=DBAANTALALC(A1:E10;; A12:E13)</input> in een lege cel elders in het blad in om te berekenen hoeveel van Joe's feestgangers verder dan 600 meter naar school reizen. De waarde 5 wordt geretourneerd."
#. WyEGc
#: 04060101.xhp
@@ -5243,7 +5243,7 @@ msgctxt ""
"par_id841616368623207\n"
"help.text"
msgid "The same result is obtained if you use the formula <input>=DCOUNTA(A1:E10; \"Distance\"; A12:E13)</input> or the formula <input>=DCOUNTA(A1:E10; \"Name\"; A12:E13)</input>. The latter case reflects that in contrast to DCOUNT, DCOUNTA counts both numeric and alphanumeric values in the column indicated by the <emph>DatabaseField</emph> argument."
-msgstr "Hetzelfde resultaat wordt verkregen als u de formule <input>=DBAANTALA(A1:E10; \"Afstand\"; A12:E13)</input> of de formule <input>=DBAANTALA(A1:E10; \"Naam\"; A12) gebruikt :E13)</input>. Het laatste geval geeft aan dat, in tegenstelling tot DBAANTAL, DBAANTALA zowel numerieke als alfanumerieke waarden telt in de kolom die wordt aangegeven door het argument <emph>DatabaseVeld</emph>."
+msgstr "Hetzelfde resultaat wordt verkregen als u de formule <input>=DBAANTALALC(A1:E10; \"Afstand\"; A12:E13)</input> of de formule <input>=DBAANTALALC(A1:E10; \"Naam\"; A12) gebruikt :E13)</input>. Het laatste geval geeft aan dat, in tegenstelling tot DBAANTAL, DBAANTALALC zowel numerieke als alfanumerieke waarden telt in de kolom die wordt aangegeven door het argument <emph>DatabaseVeld</emph>."
#. GasLC
#: 04060101.xhp
@@ -12767,7 +12767,7 @@ msgctxt ""
"hd_id3150284\n"
"help.text"
msgid "COMBINA"
-msgstr "COMBINATIES2"
+msgstr "COMBIN.A"
#. A5Pzi
#: 04060106.xhp
@@ -12785,7 +12785,7 @@ msgctxt ""
"par_id3145765\n"
"help.text"
msgid "COMBINA(Count1; Count2)"
-msgstr "COMBINATIES2(Aantal1; Aantal2)"
+msgstr "COMBIN.A(Aantal1; Aantal2)"
#. kGFDH
#: 04060106.xhp
@@ -12812,7 +12812,7 @@ msgctxt ""
"par_id1997131\n"
"help.text"
msgid "COMBINA returns the number of unique ways to choose these items, where the order of choosing is irrelevant, and repetition of items is allowed. For example if there are 3 items A, B and C in a set, you can choose 2 items in 6 different ways, namely AA, AB, AC, BB, BC and CC."
-msgstr "COMBINATIES2 geeft het aantal unieke manieren weer om deze items te kiezen, waarbij de volgorde van kiezen niet belangrijk is en herhaling van items is toegestaan. Als er bijvoorbeeld 3 items A, B en C in een verzameling zijn opgenomen, kunt u 2 items kiezen op 6 verschillende manieren, namelijk AA, AB, AC, BB, BC en CC."
+msgstr "COMBIN.A geeft het aantal unieke manieren weer om deze items te kiezen, waarbij de volgorde van kiezen niet belangrijk is en herhaling van items is toegestaan. Als er bijvoorbeeld 3 items A, B en C in een verzameling zijn opgenomen, kunt u 2 items kiezen op 6 verschillende manieren, namelijk AA, AB, AC, BB, BC en CC."
#. MCEcT
#: 04060106.xhp
@@ -12821,7 +12821,7 @@ msgctxt ""
"par_id2052064\n"
"help.text"
msgid "COMBINA implements the formula: (Count1+Count2-1)! / (Count2!(Count1-1)!)"
-msgstr "COMBINATIES2 implementeert de formule: (Aantal1+Aantal2-1)! / (Aantal2!(Aantal1-1)!)"
+msgstr "COMBIN.A implementeert de formule: (Aantal1+Aantal2-1)! / (Aantal2!(Aantal1-1)!)"
#. AGZXg
#: 04060106.xhp
@@ -12830,7 +12830,7 @@ msgctxt ""
"par_id3152904\n"
"help.text"
msgid "<item type=\"input\">=COMBINA(3;2)</item> returns 6."
-msgstr "<item type=\"input\">=COMBINATIES2(3;2)</item> geeft 6 terug."
+msgstr "<item type=\"input\">=COMBIN.A(3;2)</item> geeft 6 terug."
#. qUACJ
#: 04060106.xhp
@@ -14738,7 +14738,7 @@ msgctxt ""
"bm_id3143672\n"
"help.text"
msgid "<bookmark_value>Euro; converting</bookmark_value> <bookmark_value>EUROCONVERT function</bookmark_value>"
-msgstr "<bookmark_value>euro; converteren naar</bookmark_value> <bookmark_value>EURO.CONVERTEREN-functie</bookmark_value>"
+msgstr "<bookmark_value>euro; converteren naar</bookmark_value> <bookmark_value>EUROCONVERT-functie</bookmark_value>"
#. EThTd
#: 04060106.xhp
@@ -14747,7 +14747,7 @@ msgctxt ""
"hd_id3143672\n"
"help.text"
msgid "EUROCONVERT"
-msgstr "EURO.CONVERTEREN"
+msgstr "EUROCONVERT"
#. cb4XC
#: 04060106.xhp
@@ -14765,7 +14765,7 @@ msgctxt ""
"par_id3143748\n"
"help.text"
msgid "EUROCONVERT(Value; \"From_currency\"; \"To_currency\" [; full_precision [; triangulation_precision]])"
-msgstr "EURO.CONVERTEREN(Waarde; \"Van valuta\"; \"Naar valuta\" [;Volledige precisie [; Driehoeksprecisie]])"
+msgstr "EUROCONVERT(Waarde; \"Van valuta\"; \"Naar valuta\" [;Volledige precisie [; Driehoeksprecisie]])"
#. 4KJUc
#: 04060106.xhp
@@ -14819,7 +14819,7 @@ msgctxt ""
"par_id3143837\n"
"help.text"
msgid "<item type=\"input\">=EUROCONVERT(100;\"ATS\";\"EUR\")</item> converts 100 Austrian Schillings into Euros."
-msgstr "<item type=\"input\">=EURO.CONVERTEREN(100;\"ATS\";\"EUR\")</item> converteert 100 Oostenrijkse schilling naar Euro's."
+msgstr "<item type=\"input\">=EUROCONVERT(100;\"ATS\";\"EUR\")</item> converteert 100 Oostenrijkse schilling naar Euro's."
#. 55HyN
#: 04060106.xhp
@@ -14828,7 +14828,7 @@ msgctxt ""
"par_id3143853\n"
"help.text"
msgid "<item type=\"input\">=EUROCONVERT(100;\"EUR\";\"DEM\")</item> converts 100 Euros into German Marks."
-msgstr "<item type=\"input\">=EURO.CONVERTEREN(100;\"EUR\";\"DEM\")</item> converteert 100 Euro's naar Duitse marken."
+msgstr "<item type=\"input\">=EUROCONVERT(100;\"EUR\";\"DEM\")</item> converteert 100 Euro's naar Duitse marken."
#. GVxB4
#: 04060106.xhp
@@ -20221,7 +20221,7 @@ msgctxt ""
"bm_id9323709\n"
"help.text"
msgid "<bookmark_value>BAHTTEXT function</bookmark_value>"
-msgstr "<bookmark_value>BAHTTEXT-functie</bookmark_value>"
+msgstr "<bookmark_value>BAHT.TEXT-functie</bookmark_value>"
#. BP3ky
#: 04060110.xhp
@@ -20230,7 +20230,7 @@ msgctxt ""
"hd_id6695455\n"
"help.text"
msgid "BAHTTEXT"
-msgstr "BAHTTEXT"
+msgstr "BAHT.TEXT"
#. pFWbm
#: 04060110.xhp
@@ -20248,7 +20248,7 @@ msgctxt ""
"par_id8780785\n"
"help.text"
msgid "BAHTTEXT(Number)"
-msgstr "BAHTTEXT(Getal)"
+msgstr "BAHT.TEXT(Getal)"
#. AYpkE
#: 04060110.xhp
@@ -20266,7 +20266,7 @@ msgctxt ""
"par_id3289284\n"
"help.text"
msgid "<item type=\"input\">=BAHTTEXT(12.65)</item> returns a string in Thai characters with the meaning of \"Twelve Baht and sixty five Satang\"."
-msgstr "<item type=\"input\">=BAHTTEKST(12.65)</item> geeft een tekenreeks terug in Thaise tekens in de betekenis van \"twaalf Baht en vijfenzestig Satang\"."
+msgstr "<item type=\"input\">=BAHT.TEKST(12.65)</item> geeft een tekenreeks terug in Thaise tekens in de betekenis van \"twaalf Baht en vijfenzestig Satang\"."
#. QCSWQ
#: 04060110.xhp
@@ -25443,7 +25443,7 @@ msgctxt ""
"bm_id2983446\n"
"help.text"
msgid "<bookmark_value>ERF.PRECISE function</bookmark_value> <bookmark_value>Gaussian error integral</bookmark_value>"
-msgstr "<bookmark_value>ERF.PRECIES-functie</bookmark_value> <bookmark_value>Gaussische foutintegraal</bookmark_value>"
+msgstr "<bookmark_value>FOUTFUNCTIE.NAUWKEURIG-functie</bookmark_value> <bookmark_value>Gaussische foutintegraal</bookmark_value>"
#. KGiWM
#: 04060115.xhp
@@ -25452,7 +25452,7 @@ msgctxt ""
"hd_id2983446\n"
"help.text"
msgid "ERF.PRECISE"
-msgstr "ERF.PRECIES"
+msgstr "FOUTFUNCTIE.NAUWKEURIG"
#. oWXzy
#: 04060115.xhp
@@ -25470,7 +25470,7 @@ msgctxt ""
"par_id2963824\n"
"help.text"
msgid "ERF.PRECISE(LowerLimit)"
-msgstr "ERF.PRECIES(Ondergrens)"
+msgstr "FOUTFUNCTIE.NAUWKEURIG(Ondergrens)"
#. VGFZF
#: 04060115.xhp
@@ -25488,7 +25488,7 @@ msgctxt ""
"par_id2952974\n"
"help.text"
msgid "<item type=\"input\">=ERF.PRECISE(1)</item> returns 0.842701."
-msgstr "<item type=\"input\">=ERF.PRECIES(1)</item> geeft 0.842701 terug."
+msgstr "<item type=\"input\">=FOUTFUNCTIE.NAUWKEURIG(1)</item> geeft 0.842701 terug."
#. 76xV5
#: 04060115.xhp
@@ -25560,7 +25560,7 @@ msgctxt ""
"hd_id2945082\n"
"help.text"
msgid "ERFC.PRECISE"
-msgstr "ERFC.PRECIES"
+msgstr "FOUT.COMPLEMENT.NAUWKEURIG"
#. 2iuRt
#: 04060115.xhp
@@ -25578,7 +25578,7 @@ msgctxt ""
"par_id2953220\n"
"help.text"
msgid "ERFC.PRECISE(LowerLimit)"
-msgstr "ERFC.PRECIES(Ondergrens)"
+msgstr "FOUT.COMPLEMENT.NAUWKEURIG(Ondergrens)"
#. fce8U
#: 04060115.xhp
@@ -30402,7 +30402,7 @@ msgctxt ""
"bm_id3159087\n"
"help.text"
msgid "<bookmark_value>DOLLARFR function</bookmark_value><bookmark_value>converting;decimal fractions, into mixed decimal fractions</bookmark_value>"
-msgstr "<bookmark_value>BEDRAG.BR-functie</bookmark_value><bookmark_value>converteren;decimale breuken, naar gemengde decimale breuken</bookmark_value>"
+msgstr "<bookmark_value>EURO.BR-functie</bookmark_value><bookmark_value>converteren;decimale breuken, naar gemengde decimale breuken</bookmark_value>"
#. Qhe3N
#: 04060119.xhp
@@ -30411,7 +30411,7 @@ msgctxt ""
"hd_id3159087\n"
"help.text"
msgid "DOLLARFR"
-msgstr "BEDRAG.BR"
+msgstr "EURO.BR"
#. F57wX
#: 04060119.xhp
@@ -30429,7 +30429,7 @@ msgctxt ""
"par_id3152959\n"
"help.text"
msgid "DOLLARFR(DecimalDollar; Fraction)"
-msgstr "BEDRAG.BR(DecimaalDollar; Noemer)"
+msgstr "EURO.BR(DecimaalDollar; Noemer)"
#. N5WPe
#: 04060119.xhp
@@ -30456,7 +30456,7 @@ msgctxt ""
"par_id3153795\n"
"help.text"
msgid "<item type=\"input\">=DOLLARFR(1.125;16)</item> converts into sixteenths. The result is 1.02 for 1 plus 2/16."
-msgstr "<item type=\"input\">=BEDRAG.BR(1,125;16)</item> converteert naar zestienden. Het resultaat is 1,02 voor 1 plus 2/16."
+msgstr "<item type=\"input\">=EURO.BR(1,125;16)</item> converteert naar zestienden. Het resultaat is 1,02 voor 1 plus 2/16."
#. Bkq9d
#: 04060119.xhp
@@ -30465,7 +30465,7 @@ msgctxt ""
"par_id3150995\n"
"help.text"
msgid "<item type=\"input\">=DOLLARFR(1.125;8)</item> converts into eighths. The result is 1.1 for 1 plus 1/8."
-msgstr "<item type=\"input\">=BEDRAG.BR(1,125;8)</item> converteert naar achtsten. Het resultaat is 1,1 voor 1 plus 1/8."
+msgstr "<item type=\"input\">=EURO.BR(1,125;8)</item> converteert naar achtsten. Het resultaat is 1,1 voor 1 plus 1/8."
#. oTXcz
#: 04060119.xhp
@@ -30474,7 +30474,7 @@ msgctxt ""
"bm_id3154671\n"
"help.text"
msgid "<bookmark_value>fractions; converting</bookmark_value><bookmark_value>converting;decimal fractions, into decimal numbers</bookmark_value><bookmark_value>DOLLARDE function</bookmark_value>"
-msgstr "<bookmark_value>breuken; converteren</bookmark_value><bookmark_value>converteren;decimale breuken, naar decimale getallen</bookmark_value><bookmark_value>BEDRAG.DE-functie</bookmark_value>"
+msgstr "<bookmark_value>breuken; converteren</bookmark_value><bookmark_value>converteren;decimale breuken, naar decimale getallen</bookmark_value><bookmark_value>EURO.DE-functie</bookmark_value>"
#. M5fCi
#: 04060119.xhp
@@ -30483,7 +30483,7 @@ msgctxt ""
"hd_id3154671\n"
"help.text"
msgid "DOLLARDE"
-msgstr "BEDRAG.DE"
+msgstr "EURO.DE"
#. AzXDV
#: 04060119.xhp
@@ -30501,7 +30501,7 @@ msgctxt ""
"par_id3150348\n"
"help.text"
msgid "DOLLARDE(FractionalDollar; Fraction)"
-msgstr "BEDRAG.DE(BreukDollar; Noemer)"
+msgstr "EURO.DE(BreukEURO; Noemer)"
#. gtkuA
#: 04060119.xhp
@@ -30528,7 +30528,7 @@ msgctxt ""
"par_id3150941\n"
"help.text"
msgid "<item type=\"input\">=DOLLARDE(1.02;16)</item> stands for 1 and 2/16. This returns 1.125."
-msgstr "<item type=\"input\">=BEDRAG.DE(1,02;16)</item> staat voor 1 en 2/16e. Dit geeft 1,125 terug."
+msgstr "<item type=\"input\">=EURO.DE(1,02;16)</item> staat voor 1 en 2/16e. Dit geeft 1,125 terug."
#. Z3ukC
#: 04060119.xhp
@@ -30537,7 +30537,7 @@ msgctxt ""
"par_id3150830\n"
"help.text"
msgid "<item type=\"input\">=DOLLARDE(1.1;8)</item> stands for 1 and 1/8. This returns 1.125."
-msgstr "<item type=\"input\">=BEDRAG.DE(1,1;8)</item> staat voor 1 en 1/8e. Dit geeft 1,125 terug."
+msgstr "<item type=\"input\">=EURO.DE(1,1;8)</item> staat voor 1 en 1/8e. Dit geeft 1,125 terug."
#. KvbAk
#: 04060119.xhp
@@ -31788,7 +31788,7 @@ msgctxt ""
"par_id3153111\n"
"help.text"
msgid "COUNTA(<embedvar href=\"text/scalc/01/ful_func.xhp#number255_1\" markup=\"keep\"/>)"
-msgstr "AANTALA(<embedvar href=\"text/scalc/01/ful_func.xhp#number255_1\" markup=\"keep\"/>)"
+msgstr "AANTALARG(<embedvar href=\"text/scalc/01/ful_func.xhp#number255_1\" markup=\"keep\"/>)"
#. QKY5C
#: 04060181.xhp
@@ -31806,7 +31806,7 @@ msgctxt ""
"par_id3158000\n"
"help.text"
msgid "<item type=\"input\">=COUNTA(2;4;6;\"eight\")</item> = 4. The count of values is therefore 4."
-msgstr "<item type=\"input\">=AANTAL.ALS(2;4;6;\"acht\")</item> = 4. De telling van getallen is daarom 4."
+msgstr "<item type=\"input\">=AANTALARG(2;4;6;\"acht\")</item> = 4. De telling van getallen is daarom 4."
#. uuPnw
#: 04060181.xhp
@@ -32130,7 +32130,7 @@ msgctxt ""
"bm_id3145620\n"
"help.text"
msgid "<bookmark_value>BETAINV function</bookmark_value> <bookmark_value>cumulative probability density function;inverse of</bookmark_value>"
-msgstr "<bookmark_value>BETAINV-functie</bookmark_value> <bookmark_value>cumulatieve kansdichtheidsfunctie;inverse van</bookmark_value>"
+msgstr "<bookmark_value>BETA.INV-functie</bookmark_value> <bookmark_value>cumulatieve kansdichtheidsfunctie;inverse van</bookmark_value>"
#. H7CXC
#: 04060181.xhp
@@ -32139,7 +32139,7 @@ msgctxt ""
"hd_id3145620\n"
"help.text"
msgid "BETAINV"
-msgstr "BETAINV"
+msgstr "BETA.INV"
#. zmDJ2
#: 04060181.xhp
@@ -32157,7 +32157,7 @@ msgctxt ""
"par_id3156300\n"
"help.text"
msgid "BETAINV(Number; Alpha; Beta [; Start [; End]])"
-msgstr "BETAINV(Getal; Alfa; Beta [; Begin [; Einde]])"
+msgstr "BETA.INV(Getal; Alfa; Beta [; Begin [; Einde]])"
#. nrAdm
#: 04060181.xhp
@@ -32310,7 +32310,7 @@ msgctxt ""
"bm_id3156096\n"
"help.text"
msgid "<bookmark_value>BETADIST function</bookmark_value> <bookmark_value>cumulative probability density function;calculating</bookmark_value>"
-msgstr "<bookmark_value>BETAVERD-functie</bookmark_value> <bookmark_value>cumulatieve kansdichtheidsfunctie;berekenen</bookmark_value>"
+msgstr "<bookmark_value>BETA.VERD-functie</bookmark_value> <bookmark_value>cumulatieve kansdichtheidsfunctie;berekenen</bookmark_value>"
#. i7WAn
#: 04060181.xhp
@@ -32319,7 +32319,7 @@ msgctxt ""
"hd_id3156096\n"
"help.text"
msgid "BETADIST"
-msgstr "BETAVERD"
+msgstr "BETA.VERD"
#. KQn8d
#: 04060181.xhp
@@ -32337,7 +32337,7 @@ msgctxt ""
"par_id3147571\n"
"help.text"
msgid "BETADIST(Number; Alpha; Beta [; Start [; End [; Cumulative]]])"
-msgstr "BETAVERD(Getal; Alfa; Beta [; Begin [; Einde [; Cumulatief]]])"
+msgstr "BETA.VERD(Getal; Alfa; Beta [; Begin [; Einde [; Cumulatief]]])"
#. jfrX3
#: 04060181.xhp
@@ -32400,7 +32400,7 @@ msgctxt ""
"par_id3156118\n"
"help.text"
msgid "<item type=\"input\">=BETADIST(0.75;3;4)</item> returns the value 0.96."
-msgstr "<item type=\"input\">=BETAVERD(0,75;3;4)</item> geeft de waarde 0,96 terug."
+msgstr "<item type=\"input\">=BETA.VERD(0,75;3;4)</item> geeft de waarde 0,96 terug."
#. J4qKJ
#: 04060181.xhp
@@ -32517,7 +32517,7 @@ msgctxt ""
"bm_id3143228\n"
"help.text"
msgid "<bookmark_value>BINOMDIST function</bookmark_value>"
-msgstr "<bookmark_value>BINOMIALEVERD-functie</bookmark_value>"
+msgstr "<bookmark_value>BINOMIALE.VERD-functie</bookmark_value>"
#. HqQTx
#: 04060181.xhp
@@ -32526,7 +32526,7 @@ msgctxt ""
"hd_id3143228\n"
"help.text"
msgid "BINOMDIST"
-msgstr "BINOMIALEVERD"
+msgstr "BINOMIALE.VERD"
#. wgcwF
#: 04060181.xhp
@@ -32544,7 +32544,7 @@ msgctxt ""
"par_id3156009\n"
"help.text"
msgid "BINOMDIST(X; Trials; SP; C)"
-msgstr "BINOMIALEVERD(X; Experimenten; KS; C)"
+msgstr "BINOMIALE.VERD(X; Experimenten; KS; C)"
#. vCwaa
#: 04060181.xhp
@@ -32589,7 +32589,7 @@ msgctxt ""
"par_id3145666\n"
"help.text"
msgid "<item type=\"input\">=BINOMDIST(A1;12;0.5;0)</item> shows (if the values <item type=\"input\">0</item> to <item type=\"input\">12</item> are entered in A1) the probabilities for 12 flips of a coin that <emph>Heads</emph> will come up exactly the number of times entered in A1."
-msgstr "<item type=\"input\">=BINOMIALEVERD(A1;12;0,5;0)</item> toont (als de waarden <item type=\"input\">0</item> tot en met <item type=\"input\">12</item> zijn ingevoerd in A1) de mogelijkheden voor het 12 keer opgooien van een munt waarbij <emph>Kop</emph> exact het aantal keren zal vallen als werd ingevoerd in A1."
+msgstr "<item type=\"input\">=BINOMIALE.VERD(A1;12;0,5;0)</item> toont (als de waarden <item type=\"input\">0</item> tot en met <item type=\"input\">12</item> zijn ingevoerd in A1) de mogelijkheden voor het 12 keer opgooien van een munt waarbij <emph>Kop</emph> exact het aantal keren zal vallen als werd ingevoerd in A1."
#. FEzB6
#: 04060181.xhp
@@ -32598,7 +32598,7 @@ msgctxt ""
"par_id3150120\n"
"help.text"
msgid "<item type=\"input\">=BINOMDIST(A1;12;0.5;1)</item> shows the cumulative probabilities for the same series. For example, if A1 = <item type=\"input\">4</item>, the cumulative probability of the series is 0, 1, 2, 3 or 4 times <emph>Heads</emph> (non-exclusive OR)."
-msgstr "<item type=\"input\">=BINOMIALEVERD(A1;12;0,5;1)</item> toont de cumulatieve kansen voor dezelfde reeksen. Als bijvoorbeeld A1 = <item type=\"input\">4</item> is de cumulatieve kans van de reeks 0, 1, 2, 3 of 4 keer <emph>Kop</emph> (niet-exclusieve OF)."
+msgstr "<item type=\"input\">=BINOMIALE.VERD(A1;12;0,5;1)</item> toont de cumulatieve kansen voor dezelfde reeksen. Als bijvoorbeeld A1 = <item type=\"input\">4</item> is de cumulatieve kans van de reeks 0, 1, 2, 3 of 4 keer <emph>Kop</emph> (niet-exclusieve OF)."
#. nFFdt
#: 04060181.xhp
@@ -32823,7 +32823,7 @@ msgctxt ""
"bm_id2919200902432928\n"
"help.text"
msgid "<bookmark_value>CHISQ.INV function</bookmark_value>"
-msgstr "<bookmark_value>CHIKWADR.INV-functie</bookmark_value>"
+msgstr "<bookmark_value>CHIKW.INV-functie</bookmark_value>"
#. zBgd5
#: 04060181.xhp
@@ -32832,7 +32832,7 @@ msgctxt ""
"hd_id2919200902421451\n"
"help.text"
msgid "CHISQ.INV"
-msgstr "CHIKWADR.INV"
+msgstr "CHIKW.INV"
#. sweX9
#: 04060181.xhp
@@ -32850,7 +32850,7 @@ msgctxt ""
"par_id1150504\n"
"help.text"
msgid "CHISQ.INV(Probability; DegreesFreedom)"
-msgstr "CHIKWADR.INV(Waarschijnlijkheid; Vrijheidsgraden)"
+msgstr "CHIKW.INV(Waarschijnlijkheid; Vrijheidsgraden)"
#. UzSVT
#: 04060181.xhp
@@ -32877,7 +32877,7 @@ msgctxt ""
"par_id275666\n"
"help.text"
msgid "<item type=\"input\">=CHISQ.INV(0,5;1)</item> returns 0.4549364231."
-msgstr "<item type=\"input\">=CHIKWADRAAT.INV(0,5;1)</item> geeft 0,4549364231 terug."
+msgstr "<item type=\"input\">=CHIKW.INV(0,5;1)</item> geeft 0,4549364231 terug."
#. eYKBG
#: 04060181.xhp
@@ -32886,7 +32886,7 @@ msgctxt ""
"bm_id3148835\n"
"help.text"
msgid "<bookmark_value>CHIINV function</bookmark_value>"
-msgstr "<bookmark_value>CHIINV-functie</bookmark_value>"
+msgstr "<bookmark_value>CHI.KWADRAAT.INV-functie</bookmark_value>"
#. 6wz6r
#: 04060181.xhp
@@ -32895,7 +32895,7 @@ msgctxt ""
"hd_id3148835\n"
"help.text"
msgid "CHIINV"
-msgstr "CHIINV"
+msgstr "CHI.KWADRAAT.INV"
#. sgKAu
#: 04060181.xhp
@@ -32913,7 +32913,7 @@ msgctxt ""
"par_id3150504\n"
"help.text"
msgid "CHIINV(Number; DegreesFreedom)"
-msgstr "CHIINV(Getal; VrijheidsGraden)"
+msgstr "CHI.KWADRAAT.INV(Getal; VrijheidsGraden)"
#. nPgaN
#: 04060181.xhp
@@ -32958,7 +32958,7 @@ msgctxt ""
"par_id3148806\n"
"help.text"
msgid "If the (observed) Chi square is greater than or equal to the (theoretical) Chi square CHIINV, the hypothesis will be discarded, since the deviation between theory and experiment is too great. If the observed Chi square is less that CHIINV, the hypothesis is confirmed with the indicated probability of error."
-msgstr "Als het (waargenomen) Chi-kwadraat groter is dan of gelijk is aan het (theoretische) Chi-kwadraat CHIINV, wordt de hypothese verworpen, aangezien de afwijking tussen theorie en experiment te groot is. Is het waargenomen Chi-kwadraat minder dan CHIINV, dan wordt de hypothese bevestigd met de aangegeven foutkans."
+msgstr "Als het (waargenomen) Chi-kwadraat groter is dan of gelijk is aan het (theoretische) Chi-kwadraat CHI.KWADRAAT.INV, wordt de hypothese verworpen, aangezien de afwijking tussen theorie en experiment te groot is. Is het waargenomen Chi-kwadraat minder dan CHI.KWADRAAT.INV, dan wordt de hypothese bevestigd met de aangegeven foutkans."
#. 8tDhw
#: 04060181.xhp
@@ -32967,7 +32967,7 @@ msgctxt ""
"par_id3149763\n"
"help.text"
msgid "<item type=\"input\">=CHIINV(0.05;5)</item> returns 11.07."
-msgstr "<item type=\"input\">=CHIINV(0,05;5)</item> geeft 11,07 terug."
+msgstr "<item type=\"input\">=CHI.KWADRAAT.INV(0,05;5)</item> geeft 11,07 terug."
#. ZDwAj
#: 04060181.xhp
@@ -32976,7 +32976,7 @@ msgctxt ""
"par_id3159142\n"
"help.text"
msgid "<item type=\"input\">=CHIINV(0.02;5)</item> returns 13.39."
-msgstr "<item type=\"input\">=CHIINV(0.02;5)</item> geeft 13,39 terug."
+msgstr "<item type=\"input\">=CHI.KWADRAAT.INV(0.02;5)</item> geeft 13,39 terug."
#. fvNEF
#: 04060181.xhp
@@ -32994,7 +32994,7 @@ msgctxt ""
"bm_id2948835\n"
"help.text"
msgid "<bookmark_value>CHISQ.INV.RT function</bookmark_value>"
-msgstr "<bookmark_value>CHIKWADR.INV.RZ-functie</bookmark_value>"
+msgstr "<bookmark_value>CHIKW.INV.RECHTS-functie</bookmark_value>"
#. unAAZ
#: 04060181.xhp
@@ -33003,7 +33003,7 @@ msgctxt ""
"hd_id2948835\n"
"help.text"
msgid "CHISQ.INV.RT"
-msgstr "CHIKWADR.INV.RZ"
+msgstr "CHIKW.INV.RECHTS"
#. UAFyq
#: 04060181.xhp
@@ -33021,7 +33021,7 @@ msgctxt ""
"par_id2950504\n"
"help.text"
msgid "CHISQ.INV.RT(Number; DegreesFreedom)"
-msgstr "CHIKWADR.INV.RZ(Getal; Vrijheidsgraden)"
+msgstr "CHIKW.INV.RECHTS(Getal; Vrijheidsgraden)"
#. LLocG
#: 04060181.xhp
@@ -33066,7 +33066,7 @@ msgctxt ""
"par_id2948806\n"
"help.text"
msgid "If the (observed) Chi square is greater than or equal to the (theoretical) Chi square CHIINV, the hypothesis will be discarded, since the deviation between theory and experiment is too great. If the observed Chi square is less that CHIINV, the hypothesis is confirmed with the indicated probability of error."
-msgstr "Als het (waargenomen) Chi-kwadraat groter is dan of gelijk is aan het (theoretische) Chi-kwadraat CHIINV, wordt de hypothese verworpen, aangezien de afwijking tussen theorie en experiment te groot is. Is het waargenomen Chi-kwadraat minder dan CHIINV, dan wordt de hypothese bevestigd met de aangegeven foutkans."
+msgstr "Als het (waargenomen) Chi-kwadraat groter is dan of gelijk is aan het (theoretische) Chi-kwadraat CHI.KWADRAAT.INV, wordt de hypothese verworpen, aangezien de afwijking tussen theorie en experiment te groot is. Is het waargenomen Chi-kwadraat minder dan CHI.KWADRAAT.INV, dan wordt de hypothese bevestigd met de aangegeven foutkans."
#. 2vYvm
#: 04060181.xhp
@@ -33075,7 +33075,7 @@ msgctxt ""
"par_id2949763\n"
"help.text"
msgid "<item type=\"input\">=CHISQ.INV.RT(0.05;5)</item> returns 11.0704976935."
-msgstr "<item type=\"input\">=CHIKWADR.INV.RZ(0,05;5)</item> geeft 11,0704976935 terug."
+msgstr "<item type=\"input\">=CHIKW.INV.RECHTS(0,05;5)</item> geeft 11,0704976935 terug."
#. mCnAh
#: 04060181.xhp
@@ -33084,7 +33084,7 @@ msgctxt ""
"par_id2959142\n"
"help.text"
msgid "<item type=\"input\">=CHISQ.INV.RT(0.02;5)</item> returns 13.388222599."
-msgstr "<item type=\"input\">=CHIKWADR.INV.RZ(0.02;5)</item> geeft 13,388222599 terug."
+msgstr "<item type=\"input\">=CHIKW.INV.RECHTS(0.02;5)</item> geeft 13,388222599 terug."
#. kJWrn
#: 04060181.xhp
@@ -33102,7 +33102,7 @@ msgctxt ""
"bm_id3154260\n"
"help.text"
msgid "<bookmark_value>CHITEST function</bookmark_value>"
-msgstr "<bookmark_value>CHITOETS-functie</bookmark_value>"
+msgstr "<bookmark_value>CHI.TOETS-functie</bookmark_value>"
#. VuKE2
#: 04060181.xhp
@@ -33111,7 +33111,7 @@ msgctxt ""
"hd_id3154260\n"
"help.text"
msgid "CHITEST"
-msgstr "CHITOETS"
+msgstr "CHI.TOETS"
#. sytmD
#: 04060181.xhp
@@ -33120,7 +33120,7 @@ msgctxt ""
"par_id3151052\n"
"help.text"
msgid "<ahelp hid=\"HID_FUNC_CHITEST\">Returns the probability of a deviance from a random distribution of two test series based on the chi-squared test for independence.</ahelp> CHITEST returns the chi-squared distribution of the data."
-msgstr "<ahelp hid=\"HID_FUNC_CHITEST\">Geeft de kans op een afwijking van een willekeurige verdeling van twee testreeksen op basis van de chi-kwadraatstest voor onafhankelijkheid.</ahelp> CHITOETS geeft de chi-kwadraatsverdeling van de gegevens."
+msgstr "<ahelp hid=\"HID_FUNC_CHITEST\">Geeft de kans op een afwijking van een willekeurige verdeling van twee testreeksen op basis van de chi-kwadraatstest voor onafhankelijkheid.</ahelp> CHI.TOETS geeft de chi-kwadraatsverdeling van de gegevens."
#. xV9Ae
#: 04060181.xhp
@@ -33129,7 +33129,7 @@ msgctxt ""
"par_id3148925\n"
"help.text"
msgid "The probability determined by CHITEST can also be determined with CHIDIST, in which case the Chi square of the random sample must then be passed as a parameter instead of the data row."
-msgstr "De kans die bepaald wordt door CHITOETS, kan ook met CHIVERD bepaald worden. In dat geval moet het Chi-kwadraat van de willekeurige steekproef als parameter doorgegeven worden in plaats van de gegevensrij."
+msgstr "De kans die bepaald wordt door CHI.TOETS, kan ook met CHI.KWADRAAT bepaald worden. In dat geval moet het Chi-kwadraat van de willekeurige steekproef als parameter doorgegeven worden in plaats van de gegevensrij."
#. FQEZF
#: 04060181.xhp
@@ -33138,7 +33138,7 @@ msgctxt ""
"par_id3149162\n"
"help.text"
msgid "CHITEST(DataB; DataE)"
-msgstr "CHITOETS(GegevensB; GegevensE)"
+msgstr "CHI.TOETS(GegevensB; GegevensE)"
#. KYPvX
#: 04060181.xhp
@@ -33345,7 +33345,7 @@ msgctxt ""
"par_id3149481\n"
"help.text"
msgid "<item type=\"input\">=CHITEST(A1:A6;B1:B6)</item> equals 0.02. This is the probability which suffices the observed data of the theoretical Chi-square distribution."
-msgstr "<item type=\"input\">=CHITOETS(A1:A6;B1:B6)</item> is gelijk aan 0,02. Dit is de waarschijnlijkheid die de geobserveerde gegevens voor de theoretische chi-kwadraat verdeling verschaffen."
+msgstr "<item type=\"input\">=CHI.TOETS(A1:A6;B1:B6)</item> is gelijk aan 0,02. Dit is de waarschijnlijkheid die de geobserveerde gegevens voor de theoretische chi-kwadraat verdeling verschaffen."
#. Gt8M7
#: 04060181.xhp
@@ -33354,7 +33354,7 @@ msgctxt ""
"bm_id2954260\n"
"help.text"
msgid "<bookmark_value>CHISQ.TEST function</bookmark_value>"
-msgstr "<bookmark_value>CHIKWADR.TOETS-functie</bookmark_value>"
+msgstr "<bookmark_value>CHIKW.TEST-functie</bookmark_value>"
#. h5wnW
#: 04060181.xhp
@@ -33363,7 +33363,7 @@ msgctxt ""
"hd_id2954260\n"
"help.text"
msgid "CHISQ.TEST"
-msgstr "CHIKWADR.TOETS"
+msgstr "CHIKW.TEST"
#. TEfCH
#: 04060181.xhp
@@ -33372,7 +33372,7 @@ msgctxt ""
"par_id2951052\n"
"help.text"
msgid "<ahelp hid=\"HID_FUNC_CHITEST_MS\">Returns the probability of a deviance from a random distribution of two test series based on the chi-squared test for independence.</ahelp> CHISQ.TEST returns the chi-squared distribution of the data."
-msgstr "<ahelp hid=\"HID_FUNC_CHITEST_MS\">Geeft de kans op een afwijking van een willekeurige verdeling van twee testreeksen op basis van de chi-kwadraatstest voor onafhankelijkheid.</ahelp> CHIKWADR.TOETS geeft de chi-kwadraatsverdeling van de gegevens."
+msgstr "<ahelp hid=\"HID_FUNC_CHITEST_MS\">Geeft de kans op een afwijking van een willekeurige verdeling van twee testreeksen op basis van de chi-kwadraatstest voor onafhankelijkheid.</ahelp> CHIKW.TEST geeft de chi-kwadraatsverdeling van de gegevens."
#. Uf7CA
#: 04060181.xhp
@@ -33381,7 +33381,7 @@ msgctxt ""
"par_id2948925\n"
"help.text"
msgid "The probability determined by CHISQ.TEST can also be determined with CHISQ.DIST, in which case the Chi square of the random sample must then be passed as a parameter instead of the data row."
-msgstr "De kans die bepaald wordt door CHIKWADR.TOETS, kan ook met CHI.VERD bepaald worden. In dat geval moet het Chi-kwadraat van de willekeurige steekproef als parameter doorgegeven worden in plaats van de gegevensrij."
+msgstr "De kans die bepaald wordt door CHIKW.TEST, kan ook met CHIKW.VERD bepaald worden. In dat geval moet het Chi-kwadraat van de willekeurige steekproef als parameter doorgegeven worden in plaats van de gegevensrij."
#. zGBVz
#: 04060181.xhp
@@ -33390,7 +33390,7 @@ msgctxt ""
"par_id2949162\n"
"help.text"
msgid "CHISQ.TEST(DataB; DataE)"
-msgstr "CHIKWADR.TOETS(GegevensB; GegevensE)"
+msgstr "CHIKW.TEST(GegevensB; GegevensE)"
#. UDBk6
#: 04060181.xhp
@@ -33597,7 +33597,7 @@ msgctxt ""
"par_id2949481\n"
"help.text"
msgid "<item type=\"input\">=CHISQ.TEST(A1:A6;B1:B6)</item> equals 0.0209708029. This is the probability which suffices the observed data of the theoretical Chi-square distribution."
-msgstr "<item type=\"input\">=CHIKWADR.TOETS(A1:A6;B1:B6)</item> is gelijk aan 0,0209708029. Dit is de waarschijnlijkheid die de geobserveerde gegevens voor de theoretische chi-kwadraat verdeling verschaffen."
+msgstr "<item type=\"input\">=CHIKW.TEST(A1:A6;B1:B6)</item> is gelijk aan 0,0209708029. Dit is de waarschijnlijkheid die de geobserveerde gegevens voor de theoretische chi-kwadraat verdeling verschaffen."
#. i2JiW
#: 04060181.xhp
@@ -33606,7 +33606,7 @@ msgctxt ""
"bm_id3148690\n"
"help.text"
msgid "<bookmark_value>CHIDIST function</bookmark_value>"
-msgstr "<bookmark_value>CHIVERD-functie</bookmark_value>"
+msgstr "<bookmark_value>CHI.KWADRAAT-functie</bookmark_value>"
#. 4bowE
#: 04060181.xhp
@@ -33615,7 +33615,7 @@ msgctxt ""
"hd_id3148690\n"
"help.text"
msgid "CHIDIST"
-msgstr "CHIVERD"
+msgstr "CHI.KWADRAAT"
#. QHbpD
#: 04060181.xhp
@@ -33624,7 +33624,7 @@ msgctxt ""
"par_id3156338\n"
"help.text"
msgid "<ahelp hid=\"HID_FUNC_CHIVERT\">Returns the probability value from the indicated Chi square that a hypothesis is confirmed.</ahelp> CHIDIST compares the Chi square value to be given for a random sample that is calculated from the sum of (observed value-expected value)^2/expected value for all values with the theoretical Chi square distribution and determines from this the probability of error for the hypothesis to be tested."
-msgstr "<ahelp hid=\"HID_FUNC_CHIVERT\">Geeft de kanswaarde van het aangegeven Chi-kwadraat dat een hypothese bevestigd wordt.</ahelp> CHIVERD vergelijkt de te geven Chi-kwadraatswaarde voor een willekeurige steekproef die berekend wordt uit de som van (waargenomen waarde-verwachte waarde)^2/verwachte waarde voor alle waarden met de theoretische Chi-kwadraatsverdeling, en haalt hieruit de foutkans voor de hypothese die getest moet worden."
+msgstr "<ahelp hid=\"HID_FUNC_CHIVERT\">Geeft de kanswaarde van het aangegeven Chi-kwadraat dat een hypothese bevestigd wordt.</ahelp> CHI.KWADRAAT vergelijkt de te geven Chi-kwadraatswaarde voor een willekeurige steekproef die berekend wordt uit de som van (waargenomen waarde-verwachte waarde)^2/verwachte waarde voor alle waarden met de theoretische Chi-kwadraatsverdeling, en haalt hieruit de foutkans voor de hypothese die getest moet worden."
#. ACBVU
#: 04060181.xhp
@@ -33633,7 +33633,7 @@ msgctxt ""
"par_id3151316\n"
"help.text"
msgid "The probability determined by CHIDIST can also be determined by CHITEST."
-msgstr "De kans die bepaald wordt door CHIVERD kan ook door CHITOETS bepaald worden."
+msgstr "De kans die bepaald wordt door CHI.KWADRAAT kan ook door CHI.TOETS bepaald worden."
#. Aqvza
#: 04060181.xhp
@@ -33642,7 +33642,7 @@ msgctxt ""
"par_id3158439\n"
"help.text"
msgid "CHIDIST(Number; DegreesFreedom)"
-msgstr "CHIVERD(Getal; VrijheidsGraden)"
+msgstr "CHI.KWADRAAT(Getal; VrijheidsGraden)"
#. DD6iS
#: 04060181.xhp
@@ -33669,7 +33669,7 @@ msgctxt ""
"par_id3145774\n"
"help.text"
msgid "<item type=\"input\">=CHIDIST(13.27; 5)</item> equals 0.02."
-msgstr "<item type=\"input\">=CHIVERD(13,27; 5)</item> is gelijk aan 0,02."
+msgstr "<item type=\"input\">=CHI.KWADRAAT(13,27; 5)</item> is gelijk aan 0,02."
#. ED5xr
#: 04060181.xhp
@@ -33687,7 +33687,7 @@ msgctxt ""
"bm_id2848690\n"
"help.text"
msgid "<bookmark_value>CHISQ.DIST function</bookmark_value>"
-msgstr "<bookmark_value>CHI.KWADRAAT-functie</bookmark_value>"
+msgstr "<bookmark_value>CHIKW.VERD-functie</bookmark_value>"
#. FEGDg
#: 04060181.xhp
@@ -33696,7 +33696,7 @@ msgctxt ""
"hd_id2848690\n"
"help.text"
msgid "CHISQ.DIST"
-msgstr "CHIKWADR.VERD"
+msgstr "CHIKW.VERD"
#. TA6Uq
#: 04060181.xhp
@@ -33714,7 +33714,7 @@ msgctxt ""
"par_id2858439\n"
"help.text"
msgid "CHISQ.DIST(Number; DegreesFreedom; Cumulative)"
-msgstr "CHIKWADR.VERD(Getal; Vrijheidsgraden; Cumulatief)"
+msgstr "CHIKW.VERD(Getal; Vrijheidsgraden; Cumulatief)"
#. gCLJq
#: 04060181.xhp
@@ -33750,7 +33750,7 @@ msgctxt ""
"par_id2845774\n"
"help.text"
msgid "<item type=\"input\">=CHISQ.DIST(3; 2; 0) </item>equals 0.1115650801, the probability density function with 2 degrees of freedom, at x = 3."
-msgstr "<item type=\"input\">=CHIKWADRAAT.DIST(3; 2; 0) </item> is gelijk aan 0,1115650801, dit is de densiteit van de waarschijnlijkheid met 2 graden vrijheid voor x = 3."
+msgstr "<item type=\"input\">=CHIKW.VERD(3; 2; 0) </item> is gelijk aan 0,1115650801, dit is de densiteit van de waarschijnlijkheid met 2 graden vrijheid voor x = 3."
#. poM23
#: 04060181.xhp
@@ -33759,7 +33759,7 @@ msgctxt ""
"par_id2745774\n"
"help.text"
msgid "<item type=\"input\">=CHISQ.DIST(3; 2; 1) </item>equals 0.7768698399, the cumulative chi-square distribution with 2 degrees of freedom, at the value x = 3."
-msgstr "<item type=\"input\">=CHIKWADRAAT.DIST(3; 2; 1) </item> is gelijk aan 0,7768698399, dit is de cumulatieve distributie met 2 graden vrijheid voor de waarde x = 3."
+msgstr "<item type=\"input\">=CHIKW.VERD(3; 2; 1) </item> is gelijk aan 0,7768698399, dit is de cumulatieve distributie met 2 graden vrijheid voor de waarde x = 3."
#. NE9BQ
#: 04060181.xhp
@@ -33795,7 +33795,7 @@ msgctxt ""
"par_id2951316\n"
"help.text"
msgid "The probability determined by CHISQ.DIST.RT can also be determined by CHITEST."
-msgstr "De kans die bepaald wordt door CHIKWADR.VERD.RZ kan ook door CHITOETS bepaald worden."
+msgstr "De kans die bepaald wordt door CHIKWADR.VERD.RZ kan ook door CHI.TOETS bepaald worden."
#. 2ZmC6
#: 04060181.xhp
@@ -33912,7 +33912,7 @@ msgctxt ""
"bm_id3150603\n"
"help.text"
msgid "<bookmark_value>EXPONDIST function</bookmark_value> <bookmark_value>exponential distributions</bookmark_value>"
-msgstr "<bookmark_value>EXPONVERD-functie</bookmark_value> <bookmark_value>exponentiële verdelingen</bookmark_value>"
+msgstr "<bookmark_value>EXPON.VERD-functie</bookmark_value> <bookmark_value>exponentiële verdelingen</bookmark_value>"
#. pPiNF
#: 04060181.xhp
@@ -33921,7 +33921,7 @@ msgctxt ""
"hd_id3150603\n"
"help.text"
msgid "EXPONDIST"
-msgstr "EXPONVERD"
+msgstr "EXPON.VERD"
#. PRnz8
#: 04060181.xhp
@@ -33939,7 +33939,7 @@ msgctxt ""
"par_id3150987\n"
"help.text"
msgid "EXPONDIST(Number; Lambda; C)"
-msgstr "EXPONVERD(Getal; Lambda; C)"
+msgstr "EXPON.VERD(Getal; Lambda; C)"
#. hFuao
#: 04060181.xhp
@@ -33975,7 +33975,7 @@ msgctxt ""
"par_id3150357\n"
"help.text"
msgid "<item type=\"input\">=EXPONDIST(3;0.5;1)</item> returns 0.78."
-msgstr "<item type=\"input\">=EXPONVERD(3;0,5;1)</item> geeft 0,78 terug."
+msgstr "<item type=\"input\">=EXPON.VERD(3;0,5;1)</item> geeft 0,78 terug."
#. zSBBn
#: 04060181.xhp
@@ -33984,7 +33984,7 @@ msgctxt ""
"bm_id2950603\n"
"help.text"
msgid "<bookmark_value>EXPON.DIST function</bookmark_value> <bookmark_value>exponential distributions</bookmark_value>"
-msgstr "<bookmark_value>EXPON.VERD-functie</bookmark_value> <bookmark_value>exponentiële verdelingen</bookmark_value>"
+msgstr "<bookmark_value>T.VERD-functie</bookmark_value> <bookmark_value>exponentiële verdelingen</bookmark_value>"
#. 3AfCq
#: 04060181.xhp
@@ -33993,7 +33993,7 @@ msgctxt ""
"hd_id2950603\n"
"help.text"
msgid "EXPON.DIST"
-msgstr "EXPON.VERD"
+msgstr "T.VERD"
#. 2Nrho
#: 04060181.xhp
@@ -34011,7 +34011,7 @@ msgctxt ""
"par_id2950987\n"
"help.text"
msgid "EXPON.DIST(Number; Lambda; C)"
-msgstr "EXPON.VERD(Getal; Lambda; C)"
+msgstr "T.VERD(Getal; Lambda; C)"
#. c42NV
#: 04060181.xhp
@@ -34047,7 +34047,7 @@ msgctxt ""
"par_id2950357\n"
"help.text"
msgid "<item type=\"input\">=EXPON.DIST(3;0.5;1)</item> returns 0.7768698399."
-msgstr "<item type=\"input\">=EXPON.VERD(3;0,5;1)</item> geeft 0,7768698399 terug."
+msgstr "<item type=\"input\">=T.VERD(3;0,5;1)</item> geeft 0,7768698399 terug."
#. EcuRS
#: 04060182.xhp
@@ -34155,7 +34155,7 @@ msgctxt ""
"hd_id2945388\n"
"help.text"
msgid "F.INV"
-msgstr "F.INVERSE"
+msgstr "F.INV"
#. dhG8L
#: 04060182.xhp
@@ -34173,7 +34173,7 @@ msgctxt ""
"par_id2953068\n"
"help.text"
msgid "F.INV(Number; DegreesFreedom1; DegreesFreedom2)"
-msgstr "F.INVERSE(Getal; Vrijheidsgraden1; Vrijheidsgraden2)"
+msgstr "F.INV(Getal; Vrijheidsgraden1; Vrijheidsgraden2)"
#. 3t3iq
#: 04060182.xhp
@@ -34209,7 +34209,7 @@ msgctxt ""
"par_id2945073\n"
"help.text"
msgid "<item type=\"input\">=F.INV(0.5;5;10)</item> yields 0.9319331609."
-msgstr "<item type=\"input\">=F.INVERSE(0,5;5;10)</item> levert 0,93 op."
+msgstr "<item type=\"input\">=F.INV(0,5;5;10)</item> levert 0,93 op."
#. CWfPm
#: 04060182.xhp
@@ -34596,7 +34596,7 @@ msgctxt ""
"bm_id2950372\n"
"help.text"
msgid "<bookmark_value>F.DIST function</bookmark_value>"
-msgstr "<bookmark_value>F.VERDELING-functie</bookmark_value>"
+msgstr "<bookmark_value>F.VERD-functie</bookmark_value>"
#. JCFFP
#: 04060182.xhp
@@ -34605,7 +34605,7 @@ msgctxt ""
"hd_id2950372\n"
"help.text"
msgid "F.DIST"
-msgstr "F.VERDELING"
+msgstr "F.VERD"
#. SiEUr
#: 04060182.xhp
@@ -34623,7 +34623,7 @@ msgctxt ""
"par_id2945826\n"
"help.text"
msgid "F.DIST(Number; DegreesFreedom1; DegreesFreedom2 [; Cumulative])"
-msgstr "F.VERDELING(Getal; Vrijheidsgraden 1; Vrijheidsgraden 2 [; Cumulatief])"
+msgstr "F.VERD(Getal; Vrijheidsgraden 1; Vrijheidsgraden 2 [; Cumulatief])"
#. TeZSu
#: 04060182.xhp
@@ -34668,7 +34668,7 @@ msgctxt ""
"par_id2950696\n"
"help.text"
msgid "<item type=\"input\">=F.DIST(0.8;8;12;0)</item> yields 0.7095282499."
-msgstr "<item type=\"input\">=F.VERDELING(0,8;8;12)</item> levert 0,61 op."
+msgstr "<item type=\"input\">=F.VERD(0,8;8;12)</item> levert 0,61 op."
#. QZ4ha
#: 04060182.xhp
@@ -34677,7 +34677,7 @@ msgctxt ""
"par_id2950697\n"
"help.text"
msgid "<item type=\"input\">=F.DIST(0.8;8;12;1)</item> yields 0.3856603563."
-msgstr "<item type=\"input\">=F.VERDELING(0,8;8;12)</item> levert 0,61 op."
+msgstr "<item type=\"input\">=F.VERD(0,8;8;12)</item> levert 0,61 op."
#. fxvxG
#: 04060182.xhp
@@ -34686,7 +34686,7 @@ msgctxt ""
"bm_id2850372\n"
"help.text"
msgid "<bookmark_value>F.DIST.RT function</bookmark_value>"
-msgstr "<bookmark_value>F.VERDELING.RZ-functie</bookmark_value>"
+msgstr "<bookmark_value>F.VERD.RECHTS-functie</bookmark_value>"
#. eeM5C
#: 04060182.xhp
@@ -34695,7 +34695,7 @@ msgctxt ""
"hd_id280372\n"
"help.text"
msgid "F.DIST.RT"
-msgstr "F.VERDELING.RZ"
+msgstr "F.VERD.RECHTS"
#. Sj3wx
#: 04060182.xhp
@@ -34713,7 +34713,7 @@ msgctxt ""
"par_id2845826\n"
"help.text"
msgid "F.DIST.RT(Number; DegreesFreedom1; DegreesFreedom2)"
-msgstr "F.VERDELING.RZ(Getal; Vrijheidsgraden1; Vrijheidsgraden2)"
+msgstr "F.VERD.RECHTS(Getal; Vrijheidsgraden1; Vrijheidsgraden2)"
#. iS6YC
#: 04060182.xhp
@@ -34749,7 +34749,7 @@ msgctxt ""
"par_id2850696\n"
"help.text"
msgid "<item type=\"input\">=F.DIST.RT(0.8;8;12)</item> yields 0.6143396437."
-msgstr "<item type=\"input\">=F.VERDELING.RZ(0,8;8;12)</item> levert 0,61 op."
+msgstr "<item type=\"input\">=F.VERD.RECHTS(0,8;8;12)</item> levert 0,61 op."
#. sP7Ai
#: 04060182.xhp
@@ -51174,7 +51174,7 @@ msgctxt ""
"par_id3147264\n"
"help.text"
msgid "If the <emph>Regular Expression</emph> check box is selected, you can use EQUAL (=) and NOT EQUAL (<>) also in comparisons. You can also use the following functions: DCOUNTA, DGET, MATCH, COUNTIF, SUMIF, LOOKUP, VLOOKUP and HLOOKUP."
-msgstr "Als het vakje <emph>Reguliere expressie</emph> geselecteerd is, kunt u ook ISGELIJKTEKEN (=) en ONGELIJKTEKEN (<>) in vergelijkingen gebruiken. U kunt ook de volgende functies gebruiken: DBAANTAL, DBLEZEN, VERGELIJKEN, AANTAL.ALS, SOM.ALS, OPZOEKEN, VERT.ZOEKEN en HORIZ.ZOEKEN."
+msgstr "Als het vakje <emph>Reguliere expressie</emph> geselecteerd is, kunt u ook ISGELIJKTEKEN (=) en ONGELIJKTEKEN (<>) in vergelijkingen gebruiken. U kunt ook de volgende functies gebruiken: DBAANTALALC, DBLEZEN, VERGELIJKEN, AANTAL.ALS, SOM.ALS, OPZOEKEN, VERT.ZOEKEN en HORIZ.ZOEKEN."
#. Mbq5A
#: 12090104.xhp
@@ -54432,7 +54432,7 @@ msgctxt ""
"par_id0403201618594696\n"
"help.text"
msgid "Aggregation"
-msgstr "Aggregatie"
+msgstr "Aggregaat"
#. bTUni
#: exponsmooth_embd.xhp
@@ -55044,7 +55044,7 @@ msgctxt ""
"par_id2209201514174373\n"
"help.text"
msgid "<ahelp hid=\".\"><variable id=\"aggregate_des\">This function returns an aggregate result of the calculations in the range. You can use different aggregate functions listed below. The Aggregate function enables you to omit hidden rows, errors, SUBTOTAL and other AGGREGATE function results in the calculation.</variable></ahelp>"
-msgstr "<ahelp hid=\".\"><variable id=\"aggregate_des\">Deze functie geeft een aggregatie-resultaat van de berekeningen in het assortiment. U kunt verschillende statistische functies die hieronder staan gebruiken. Met de Aggregatie-functie kunt u verborgen rijen, fouten, SUBTOTAAL en andere statistische functie resultaten weglaten uit de berekening.</variable></ahelp>"
+msgstr "<ahelp hid=\".\"><variable id=\"aggregate_des\">Deze functie geeft een aggregatie-resultaat van de berekeningen in het assortiment. U kunt verschillende statistische functies die hieronder staan gebruiken. Met de Aggregaat-functie kunt u verborgen rijen, fouten, SUBTOTAAL en andere statistische functie resultaten weglaten uit de berekening.</variable></ahelp>"
#. swMHB
#: func_aggregate.xhp
@@ -55053,7 +55053,7 @@ msgctxt ""
"par_id2209201514174453\n"
"help.text"
msgid "AGGREGATE function is applied to vertical ranges of data with activated AutoFilter. If AutoFilter is not activated, automatic recalculation of the function result does not work for newly hidden rows. It is not supposed to work with horizontal ranges, however it can be applied to them as well, but with limitations. In particular, the AGGREGATE function applied to a horizontal data range does not recognize hiding columns, however correctly omits errors and results of SUBTOTAL and other AGGREGATE functions embedded into the row."
-msgstr "De functie AGGREGATIE wordt toegepast op verticale data-bereiken met een actief AutoFilter. Als het AutoFilter niet actief is, werkt de automatische herberekening niet voor recent verborgen rijen. De functie is niet bedoeld voor gebruik met horizontale bereiken. Toch kan de functie er wel op worden toegepast, maar met beperkingen. Zo zal de AGGREGATIE-functie toegepast op een horizontaal data-bereik het verbergen van kolommen niet herkennen. Maar de functie gaat wel correct om met fouten en resultaten van SUBTOTAAL en andere AGGREGATIE-functies die in de rij zijn opgenomen."
+msgstr "De functie AGGREGATIE wordt toegepast op verticale data-bereiken met een actief AutoFilter. Als het AutoFilter niet actief is, werkt de automatische herberekening niet voor recent verborgen rijen. De functie is niet bedoeld voor gebruik met horizontale bereiken. Toch kan de functie er wel op worden toegepast, maar met beperkingen. Zo zal de AGGREGAAT-functie toegepast op een horizontaal data-bereik het verbergen van kolommen niet herkennen. Maar de functie gaat wel correct om met fouten en resultaten van SUBTOTAAL en andere AGGREGAAT-functies die in de rij zijn opgenomen."
#. 7VEyN
#: func_aggregate.xhp
@@ -55062,7 +55062,7 @@ msgctxt ""
"par_id200801176228491\n"
"help.text"
msgid "AGGREGATE(Function; Option; Number 1[; Number 2][; ... ;[Number 253]])"
-msgstr "AGGREGATIE(Functie; Optie; Verwijzing 1 of matrix[; Verwijzing 2.n of k 1][; ... ;[Verwijzing 2.n of k 252]])"
+msgstr "AGGREGAAT(Functie; Optie; Verwijzing 1 of matrix[; Verwijzing 2.n of k 1][; ... ;[Verwijzing 2.n of k 252]])"
#. Xt2VS
#: func_aggregate.xhp
@@ -55314,7 +55314,7 @@ msgctxt ""
"par_id2309201512011567\n"
"help.text"
msgid "Ignore only nested SUBTOTAL and AGGREGATE functions"
-msgstr "Negeer alleen genest SUBTOTAAL en AGGREGATIE-functies"
+msgstr "Negeer alleen genest SUBTOTAAL en AGGREGAAT-functies"
#. AGUis
#: func_aggregate.xhp
@@ -55323,7 +55323,7 @@ msgctxt ""
"par_id315771547630277\n"
"help.text"
msgid "Ignore only hidden rows, nested SUBTOTAL and AGGREGATE functions"
-msgstr "Negeer alleen verborgen rijen, genest SUBTOTAAL en AGGREGATIE-functies"
+msgstr "Negeer alleen verborgen rijen, genest SUBTOTAAL en AGGREGAAT-functies"
#. EAKJn
#: func_aggregate.xhp
@@ -55332,7 +55332,7 @@ msgctxt ""
"par_id2309201512011514\n"
"help.text"
msgid "Ignore only errors, nested SUBTOTAL and AGGREGATE functions"
-msgstr "Negeer alleen fouten, genest SUBTOTAAL en AGGREGATIE-functies"
+msgstr "Negeer alleen fouten, genest SUBTOTAAL en AGGREGAAT-functies"
#. ofBiE
#: func_aggregate.xhp
@@ -55341,7 +55341,7 @@ msgctxt ""
"par_id2309201512011547\n"
"help.text"
msgid "Ignore hidden rows, errors, nested SUBTOTAL and AGGREGATE functions"
-msgstr "Negeer verborgen rijen, fouten, genest SUBTOTAAL en AGGREGATIE-functies"
+msgstr "Negeer verborgen rijen, fouten, genest SUBTOTAAL en AGGREGAAT-functies"
#. oTDkv
#: func_aggregate.xhp
@@ -55494,7 +55494,7 @@ msgctxt ""
"par_id2309201520064180\n"
"help.text"
msgid "<item type=\"input\">=AGGREGATE(9;5;A5:C5)</item><br/>Returns sum for the range A5:C5 = 29, even if some of the columns are hidden."
-msgstr "<item type=\"input\">=AGGREGATIE(9;5;A5:C5)</item><br/>Geeft de som van de reeks A5:C5 = 29, zelfs als sommige kolommen verborgen zijn."
+msgstr "<item type=\"input\">=AGGREGAAT(9;5;A5:C5)</item><br/>Geeft de som van de reeks A5:C5 = 29, zelfs als sommige kolommen verborgen zijn."
#. GPwbY
#: func_aggregate.xhp
@@ -55521,7 +55521,7 @@ msgctxt ""
"par_id2309201520180167\n"
"help.text"
msgid "<item type=\"input\">=AGGREGATE(13;3;Sheet1.B2:B9:Sheet3.B2:B9)</item><br/>The function returns mode of the values of second columns through sheets 1:3 (that have the same data) = 8."
-msgstr "<item type=\"input\">=AGGREGATIE(13;3;Blad1.B2:B9:Blad3.B2:B9)</item><br/>De functie geeft de modus van de waarden van de tweede kolom van bladen 1:3 (die hetzelfde gegeven hebben) = 8."
+msgstr "<item type=\"input\">=AGGREGAAT(13;3;Blad1.B2:B9:Blad3.B2:B9)</item><br/>De functie geeft de modus van de waarden van de tweede kolom van bladen 1:3 (die hetzelfde gegeven hebben) = 8."
#. kDEuY
#: func_aggregate.xhp
@@ -55548,7 +55548,7 @@ msgctxt ""
"par_id241712879431120\n"
"help.text"
msgid "<link href=\"text/scalc/01/04060184.xhp#average\">AVERAGE</link>, <link href=\"text/scalc/01/04060181.xhp#count\">COUNT</link>, <link href=\"text/scalc/01/04060181.xhp#counta\">COUNTA</link>, <link href=\"text/scalc/01/04060184.xhp#max\">MAX</link>, <link href=\"text/scalc/01/04060184.xhp#min\">MIN</link>, <link href=\"text/scalc/01/04060106.xhp#Section26\">PRODUCT</link>, <link href=\"text/scalc/01/04060185.xhp#stdevdots\">STDEV.S</link>, <link href=\"text/scalc/01/04060185.xhp#stdevdotp\">STDEV.P</link>, <link href=\"text/scalc/01/04060106.xhp#Section16\">SUM</link>, <link href=\"text/scalc/01/04060185.xhp#vardots\">VAR.S</link>, <link href=\"text/scalc/01/04060185.xhp#vardotp\">VAR.P</link>, <link href=\"text/scalc/01/04060184.xhp#median\">MEDIAN</link>, <link href=\"text/scalc/01/04060184.xhp#modedotsngl\">MODE.SNGL</link>, <link href=\"text/scalc/01/04060183.xhp#large\">LARGE</link>, <link href=\"text/scalc/01/04060183.xhp#small\">SMALL</link>, <link href=\"text/scalc/01/04060184.xhp#percentileinc\">PERCENTILE.INC</link> , <link href=\"text/scalc/01/04060184.xhp#quartileinc\">QUARTILE.INC</link>, <link href=\"text/scalc/01/04060184.xhp#percentileexc\">PERCENTILE.EXC</link>, <link href=\"text/scalc/01/04060184.xhp#quartileexc\">QUARTILE.EXC</link>"
-msgstr "<link href=\"text/scalc/01/04060184.xhp#average\">AVERAGE</link>, <link href=\"text/scalc/01/04060181.xhp#count\">COUNT</link>, <link href=\"text/scalc/01/04060181.xhp#counta\">COUNTA</link>, <link href=\"text/scalc/01/04060184.xhp#max\">MAX</link>, <link href=\"text/scalc/01/04060184.xhp#min\">MIN</link>, <link href=\"text/scalc/01/04060106.xhp#Section26\">PRODUCT</link>, <link href=\"text/scalc/01/04060185.xhp#stdevdots\">STDEV.S</link>, <link href=\"text/scalc/01/04060185.xhp#stdevdotp\">STDEV.P</link>, <link href=\"text/scalc/01/04060106.xhp#Section16\">SUM</link>, <link href=\"text/scalc/01/04060185.xhp#vardots\">VAR.S</link>, <link href=\"text/scalc/01/04060185.xhp#vardotp\">VAR.P</link>, <link href=\"text/scalc/01/04060184.xhp#median\">MEDIAN</link>, <link href=\"text/scalc/01/04060184.xhp#modedotsngl\">MODE.SNGL</link>, <link href=\"text/scalc/01/04060183.xhp#large\">LARGE</link>, <link href=\"text/scalc/01/04060183.xhp#small\">SMALL</link>, <link href=\"text/scalc/01/04060184.xhp#percentileinc\">PERCENTILE.INC</link> , <link href=\"text/scalc/01/04060184.xhp#quartileinc\">QUARTILE.INC</link>, <link href=\"text/scalc/01/04060184.xhp#percentileexc\">PERCENTILE.EXC</link>, <link href=\"text/scalc/01/04060184.xhp#quartileexc\">QUARTILE.EXC</link>"
+msgstr "<link href=\"text/scalc/01/04060184.xhp#average\">AVERAGE</link>, <link href=\"text/scalc/01/04060181.xhp#count\">COUNT</link>, <link href=\"text/scalc/01/04060181.xhp#counta\">AANTALARG</link>, <link href=\"text/scalc/01/04060184.xhp#max\">MAX</link>, <link href=\"text/scalc/01/04060184.xhp#min\">MIN</link>, <link href=\"text/scalc/01/04060106.xhp#Section26\">PRODUCT</link>, <link href=\"text/scalc/01/04060185.xhp#stdevdots\">STDEV.S</link>, <link href=\"text/scalc/01/04060185.xhp#stdevdotp\">STDEV.P</link>, <link href=\"text/scalc/01/04060106.xhp#Section16\">SUM</link>, <link href=\"text/scalc/01/04060185.xhp#vardots\">VAR.S</link>, <link href=\"text/scalc/01/04060185.xhp#vardotp\">VAR.P</link>, <link href=\"text/scalc/01/04060184.xhp#median\">MEDIAN</link>, <link href=\"text/scalc/01/04060184.xhp#modedotsngl\">MODE.SNGL</link>, <link href=\"text/scalc/01/04060183.xhp#large\">LARGE</link>, <link href=\"text/scalc/01/04060183.xhp#small\">SMALL</link>, <link href=\"text/scalc/01/04060184.xhp#percentileinc\">PERCENTILE.INC</link> , <link href=\"text/scalc/01/04060184.xhp#quartileinc\">QUARTILE.INC</link>, <link href=\"text/scalc/01/04060184.xhp#percentileexc\">PERCENTILE.EXC</link>, <link href=\"text/scalc/01/04060184.xhp#quartileexc\">QUARTILE.EXC</link>"
#. DCMbQ
#: func_aggregate.xhp
@@ -56250,7 +56250,7 @@ msgctxt ""
"tit\n"
"help.text"
msgid "Ceiling functions"
-msgstr "Bovengrens functies"
+msgstr "AFRONDEN.BOVEN functies"
#. EWCte
#: func_ceiling.xhp
@@ -56259,7 +56259,7 @@ msgctxt ""
"hd_id971586216771519\n"
"help.text"
msgid "Ceiling functions"
-msgstr "Bovengrens functies"
+msgstr "AFRONDEN.BOVEN functies"
#. M92qb
#: func_ceiling.xhp
@@ -56268,7 +56268,7 @@ msgctxt ""
"bm_id3152518\n"
"help.text"
msgid "<bookmark_value>CEILING function</bookmark_value><bookmark_value>rounding;up to multiples of significance</bookmark_value>"
-msgstr "<bookmark_value>BOVENGRENS functie</bookmark_value><bookmark_value>afronding; tot veelvouden van betekenis</bookmark_value>"
+msgstr "<bookmark_value>AFRONDEN.BOVEN functie</bookmark_value><bookmark_value>afronding; tot veelvouden van betekenis</bookmark_value>"
#. XR3RK
#: func_ceiling.xhp
@@ -56277,7 +56277,7 @@ msgctxt ""
"hd_id3152518\n"
"help.text"
msgid "<variable id=\"CEILINGh1\"><link href=\"text/scalc/01/func_ceiling.xhp#ceiling\" name=\"CEILING\">CEILING</link></variable>"
-msgstr "<variable id=\"CEILINGh1\"><link href=\"text/scalc/01/func_ceiling.xhp#ceiling\" name=\"CEILING\">BOVENGRENS</link></variable>"
+msgstr "<variable id=\"CEILINGh1\"><link href=\"text/scalc/01/func_ceiling.xhp#ceiling\" name=\"CEILING\">AFRONDEN.BOVEN</link></variable>"
#. Co8xT
#: func_ceiling.xhp
@@ -56304,7 +56304,7 @@ msgctxt ""
"par_id3163792\n"
"help.text"
msgid "If the spreadsheet is exported to Microsoft Excel, the CEILING function is exported as the equivalent CEILING.MATH function that has existed since Excel 2013. If you plan to use the spreadsheet with earlier Excel versions, use either CEILING.PRECISE that has existed since Excel 2010, or CEILING.XCL that is exported as the CEILING function compatible with all Excel versions."
-msgstr "Als het werkblad wordt geëxporteerd naar Microsoft Excel, wordt de functie BOVENGRENS geëxporteerd als de equivalente functie BOVENGRENS.WISKUNDIG die bestaat sinds Excel 2013. Als u van plan bent het werkblad te gebruiken met eerdere Excel-versies, gebruikt u BOVENGRENS.NAUWKEURIG dat bestaat sinds Excel 2010 of BOVENGRENS.EXCEL dat wordt geëxporteerd als de BOVENGRENS-functie die compatibel is met alle Excel-versies."
+msgstr "Als het werkblad wordt geëxporteerd naar Microsoft Excel, wordt de functie BOVENGRENS geëxporteerd als de equivalente functie AFRONDEN.BOVEN.WISK die bestaat sinds Excel 2013. Als u van plan bent het werkblad te gebruiken met eerdere Excel-versies, gebruikt u AFRONDEN.BOVEN.NAUWKEURIG dat bestaat sinds Excel 2010 of BOVENGRENS.EXCEL dat wordt geëxporteerd als de AFRONDEN.BOVEN-functie die compatibel is met alle Excel-versies."
#. 3DwLL
#: func_ceiling.xhp
@@ -56313,7 +56313,7 @@ msgctxt ""
"par_id3153454\n"
"help.text"
msgid "CEILING(Number [; Significance [; Mode]])"
-msgstr "BOVENGRENS(Getal [; Stapgrootte [; Modus]])"
+msgstr "AFRONDEN.BOVEN(Getal [; Stapgrootte [; Modus]])"
#. XHjhc
#: func_ceiling.xhp
@@ -56349,7 +56349,7 @@ msgctxt ""
"par_id281586208138400\n"
"help.text"
msgid "<input>=CEILING(3.45)</input> returns 4."
-msgstr "<input>=BOVENGRENS(3,45)</input> retourneert 4."
+msgstr "<input>=AFRONDEN.BOVEN(3,45)</input> retourneert 4."
#. UTtFZ
#: func_ceiling.xhp
@@ -56358,7 +56358,7 @@ msgctxt ""
"par_id921586208142416\n"
"help.text"
msgid "<input>=CEILING(3.45; 3)</input> returns 6."
-msgstr "<input>=BOVENGRENS(3,45; 3)</input> retourneert 6."
+msgstr "<input>=AFRONDEN.BOVEN(3,45; 3)</input> retourneert 6."
#. XGfA3
#: func_ceiling.xhp
@@ -56367,7 +56367,7 @@ msgctxt ""
"par_id921586208146984\n"
"help.text"
msgid "<input>=CEILING(-1.234)</input> returns -1."
-msgstr "<input>=BOVENGRENS(-1,234)</input> retourneert -1."
+msgstr "<input>=AFRONDEN.BOVEN(-1,234)</input> retourneert -1."
#. ZWjxy
#: func_ceiling.xhp
@@ -56385,7 +56385,7 @@ msgctxt ""
"par_id291586208158119\n"
"help.text"
msgid "<input>=CEILING(-45.67; -2; 1)</input> returns -46."
-msgstr "<input>=BOVENGRENS(-45,67; -2; 1)</input> retourneert -46."
+msgstr "<input>=AFRONDEN.BOVEN(-45,67; -2; 1)</input> retourneert -46."
#. rZ78k
#: func_ceiling.xhp
@@ -56394,7 +56394,7 @@ msgctxt ""
"bm_id2952518\n"
"help.text"
msgid "<bookmark_value>CEILING.PRECISE function</bookmark_value><bookmark_value>rounding;up to multiples of significance</bookmark_value>"
-msgstr "<bookmark_value>BOVENGRENS.NAUWEURIG functie</bookmark_value><bookmark_value>afronding; op veelvouden van de stapgrootte</bookmark_value>"
+msgstr "<bookmark_value>AFRONDEN.BOVEN.NAUWKEURIG functie</bookmark_value><bookmark_value>afronding; op veelvouden van de stapgrootte</bookmark_value>"
#. 5DWRd
#: func_ceiling.xhp
@@ -56403,7 +56403,7 @@ msgctxt ""
"hd_id2952518\n"
"help.text"
msgid "<variable id=\"CEILING.PRECISEh1\"><link href=\"text/scalc/01/func_ceiling.xhp#ceilingprecise\" name=\"CEILING.PRECISE\">CEILING.PRECISE</link></variable>"
-msgstr "<variable id=\"CEILING.PRECISEh1\"><link href=\"text/scalc/01/func_ceiling.xhp#ceilingprecise\" name=\"CEILING.PRECISE\">BOVENGRENS.NAUWKEURIG</link></variable>"
+msgstr "<variable id=\"CEILING.PRECISEh1\"><link href=\"text/scalc/01/func_ceiling.xhp#ceilingprecise\" name=\"CEILING.PRECISE\">AFRONDEN.BOVEN.NAUWKEURIG</link></variable>"
#. aTD6P
#: func_ceiling.xhp
@@ -56439,7 +56439,7 @@ msgctxt ""
"par_id2953454\n"
"help.text"
msgid "CEILING.PRECISE(Number [; Significance])"
-msgstr "BOVENGRENS.NAUWKEURIG(Getal [; Stapgrootte [; Modus]])"
+msgstr "AFRONDEN.BOVEN.NAUWKEURIG(Getal [; Stapgrootte [; Modus]])"
#. FaYeD
#: func_ceiling.xhp
@@ -56457,7 +56457,7 @@ msgctxt ""
"par_id201586213398634\n"
"help.text"
msgid "<input>=CEILING.PRECISE(3.45)</input> returns 4."
-msgstr "<input>=BOVENGRENS.NAUWKEURIG(3,45)</input> retourneert 4."
+msgstr "<input>=AFRONDEN.BOVEN.NAUWKEURIG(3,45)</input> retourneert 4."
#. KxeUC
#: func_ceiling.xhp
@@ -56466,7 +56466,7 @@ msgctxt ""
"par_id651586213406243\n"
"help.text"
msgid "<input>=CEILING.PRECISE(-45.67; 2)</input> returns -44."
-msgstr "<input>=BOVENGRENS.NAUWKEURIG(-45,67; 2)</input> retourneert -44."
+msgstr "<input>=AFRONDEN.BOVEN.NAUWKEURIG(-45,67; 2)</input> retourneert -44."
#. WV9bx
#: func_ceiling.xhp
@@ -56475,7 +56475,7 @@ msgctxt ""
"bm_id911516997198644\n"
"help.text"
msgid "<bookmark_value>CEILING.MATH function</bookmark_value>"
-msgstr "<bookmark_value>BOVENGRENS.WISKUNDIG functie</bookmark_value>"
+msgstr "<bookmark_value>AFRONDEN.BOVEN.WISK functie</bookmark_value>"
#. 7xeKu
#: func_ceiling.xhp
@@ -56484,7 +56484,7 @@ msgctxt ""
"hd_id91516997330445\n"
"help.text"
msgid "<variable id=\"CEILING.MATHh1\"><link href=\"text/scalc/01/func_ceiling.xhp#ceilingmath\" name=\"CEILING.MATH\">CEILING.MATH</link></variable>"
-msgstr "<variable id=\"CEILING.MATHh1\"><link href=\"text/scalc/01/func_ceiling.xhp#ceilingmath\" name=\"CEILING.MATH\">BOVENGRENS.WISKUNDIG</link></variable>"
+msgstr "<variable id=\"CEILING.MATHh1\"><link href=\"text/scalc/01/func_ceiling.xhp#ceilingmath\" name=\"CEILING.MATH\">AFRONDEN.BOVEN.WISK</link></variable>"
#. AzJvD
#: func_ceiling.xhp
@@ -56520,7 +56520,7 @@ msgctxt ""
"par_id841516997669932\n"
"help.text"
msgid "CEILING.MATH(Number [; Significance [; Mode]])"
-msgstr "BOVENGRENS.WISKUNDIG(Getal [; Stapgrootte [; Modus]])"
+msgstr "AFRONDEN.BOVEN.WISK(Getal [; Stapgrootte [; Modus]])"
#. EAezJ
#: func_ceiling.xhp
@@ -56547,7 +56547,7 @@ msgctxt ""
"par_id331586208590009\n"
"help.text"
msgid "<input>=CEILING.MATH(3.45)</input> returns 4."
-msgstr "<input>=BOVENGRENS.WISKUNDIG(3,45)</input> retourneert 4."
+msgstr "<input>=AFRONDEN.BOVEN.WISK(3,45)</input> retourneert 4."
#. g5xAQ
#: func_ceiling.xhp
@@ -56556,7 +56556,7 @@ msgctxt ""
"par_id481586208595809\n"
"help.text"
msgid "<input>=CEILING.MATH(3.45; -3)</input> returns 6."
-msgstr "<input>=BOVENGRENS.WISKUNDIG(3,45; -3)</input> retourneert 6."
+msgstr "<input>=AFRONDEN.BOVEN.WISK(3,45; -3)</input> retourneert 6."
#. Eby7i
#: func_ceiling.xhp
@@ -56565,7 +56565,7 @@ msgctxt ""
"par_id641586208600665\n"
"help.text"
msgid "<input>=CEILING.MATH(-1.234)</input> returns -1."
-msgstr "<input>=BOVENGRENS.WISKUNDIG(-1,234)</input> retourneert -1."
+msgstr "<input>=AFRONDEN.BOVEN.WISK(-1,234)</input> retourneert -1."
#. T4orc
#: func_ceiling.xhp
@@ -56574,7 +56574,7 @@ msgctxt ""
"par_id151586208604536\n"
"help.text"
msgid "<input>=CEILING.MATH(-45.67; -2; 0)</input> returns -44."
-msgstr "<input>=BOVENGRENS.WISKUNDIG(-45,67; -2; 0)</input> returns -44."
+msgstr "<input>=AFRONDEN.BOVEN.WISK(-45,67; -2; 0)</input> returns -44."
#. opt6B
#: func_ceiling.xhp
@@ -56583,7 +56583,7 @@ msgctxt ""
"par_id971586208611345\n"
"help.text"
msgid "<input>=CEILING.MATH(-45.67; +2; 1)</input> returns -46."
-msgstr "<input>=BOVENGRENS.WISKUNDIG(-45,67; +2; 1)</input> retourneert -46."
+msgstr "<input>=AFRONDEN.BOVEN.WISK(-45,67; +2; 1)</input> retourneert -46."
#. EzE9t
#: func_ceiling.xhp
@@ -56718,7 +56718,7 @@ msgctxt ""
"par_id821586214265060\n"
"help.text"
msgid "This function calculates identical results to the <link href=\"#Section311\" name=\"ceilingprecise\">CEILING.PRECISE</link> function."
-msgstr "Deze functie berekent identieke resultaten als de functie <link href=\"#Section311\" name=\"ceilingprecise\">BOVENGRENS.NAUWKEURIG</link>."
+msgstr "Deze functie berekent identieke resultaten als de functie <link href=\"#Section311\" name=\"ceilingprecise\">AFRONDEN.BOVEN.NAUWKEURIG</link>."
#. GRocX
#: func_ceiling.xhp
diff --git a/source/nl/helpcontent2/source/text/scalc/02.po b/source/nl/helpcontent2/source/text/scalc/02.po
index 5dfa3037b29..390f5081637 100644
--- a/source/nl/helpcontent2/source/text/scalc/02.po
+++ b/source/nl/helpcontent2/source/text/scalc/02.po
@@ -4,9 +4,9 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2020-06-29 13:08+0200\n"
-"PO-Revision-Date: 2021-11-23 08:11+0000\n"
+"PO-Revision-Date: 2022-03-05 08:39+0000\n"
"Last-Translator: kees538 <kees538@gmail.com>\n"
-"Language-Team: Dutch <https://translations.documentfoundation.org/projects/libo_help-master/textscalc02/nl/>\n"
+"Language-Team: Dutch <https://translations.documentfoundation.org/projects/libo_help-7-3/textscalc02/nl/>\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
@@ -842,7 +842,7 @@ msgctxt ""
"par_id3155061\n"
"help.text"
msgid "To change the default formula that is displayed, right-click the field, and then choose the formula that you want. The available formulas are: Average, count of values (COUNTA), count of numbers (COUNT), Maximum, Minimum, Sum, or None."
-msgstr "U kunt de standaardformule die wordt weergegeven, wijzigen door met de rechtermuisknop in het veld te klikken en vervolgens de gewenste formule te kiezen. De beschikbare formules zijn: Gemiddelde, aantal waarden (Aantal2=Aantalarg), aantal getallen (Aantal), Maximum, Minimum, Som of Geen."
+msgstr "U kunt de standaardformule die wordt weergegeven, wijzigen door met de rechtermuisknop in het veld te klikken en vervolgens de gewenste formule te kiezen. De beschikbare formules zijn: Gemiddelde, aantal waarden (AANTALARG), aantal getallen (Aantal), Maximum, Minimum, Som of Geen."
#. hAizh
#: 08080000.xhp
diff --git a/source/nl/helpcontent2/source/text/sdatabase.po b/source/nl/helpcontent2/source/text/sdatabase.po
index 70f3794347f..58de20b1121 100644
--- a/source/nl/helpcontent2/source/text/sdatabase.po
+++ b/source/nl/helpcontent2/source/text/sdatabase.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-11-19 15:44+0100\n"
-"PO-Revision-Date: 2022-02-15 08:38+0000\n"
+"PO-Revision-Date: 2022-03-05 08:39+0000\n"
"Last-Translator: kees538 <kees538@gmail.com>\n"
"Language-Team: Dutch <https://translations.documentfoundation.org/projects/libo_help-7-3/textsdatabase/nl/>\n"
"Language: nl\n"
@@ -1264,7 +1264,7 @@ msgctxt ""
"par_id3159205\n"
"help.text"
msgid "Except for the <emph>Group</emph> function, the above functions are called Aggregate functions. These are functions that calculate data to create summaries from the results. Additional functions that are not listed in the list box might be also possible. These depend on the specific database engine in use and on the current functionality provided by the Base driver used to connect to that database engine."
-msgstr "Behalve de functie <emph>Groeperen</emph>, worden de bovenstaande functies aggregatiefuncties genoemd. Dit zijn functies die gegevens berekenen om samenvattingen van de resultaten te maken. Extra functies die niet in de keuzelijst staan, zijn wellicht ook mogelijk. Deze zijn afhankelijk van de specifieke database-engine die wordt gebruikt en van de huidige functionaliteit die wordt geboden door het basisstuurprogramma dat wordt gebruikt om verbinding te maken met die database-engine."
+msgstr "Behalve de functie <emph>Groeperen</emph>, worden de bovenstaande functies aggregaatfuncties genoemd. Dit zijn functies die gegevens berekenen om samenvattingen van de resultaten te maken. Extra functies die niet in de keuzelijst staan, zijn wellicht ook mogelijk. Deze zijn afhankelijk van de specifieke database-engine die wordt gebruikt en van de huidige functionaliteit die wordt geboden door het basisstuurprogramma dat wordt gebruikt om verbinding te maken met die database-engine."
#. BVC6J
#: 02010100.xhp
diff --git a/source/nl/sc/messages.po b/source/nl/sc/messages.po
index 7707a283e58..21babf5cb81 100644
--- a/source/nl/sc/messages.po
+++ b/source/nl/sc/messages.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-21 12:38+0100\n"
-"PO-Revision-Date: 2022-02-08 10:51+0000\n"
+"PO-Revision-Date: 2022-03-05 08:39+0000\n"
"Last-Translator: kees538 <kees538@gmail.com>\n"
"Language-Team: Dutch <https://translations.documentfoundation.org/projects/libo_ui-7-3/scmessages/nl/>\n"
"Language: nl\n"
@@ -12180,7 +12180,7 @@ msgstr "0 of ONWAAR berekent de kansdichtheidsfunctie. Elke andere waarde of WAA
#: sc/inc/scfuncs.hrc:2827
msgctxt "SC_OPCODE_CHI_INV"
msgid "Values of the inverse of CHIDIST(x; DegreesOfFreedom)."
-msgstr "Waarden van de inverse van CHIVERD(x; vrijheidsgraden)."
+msgstr "Waarden van de inverse van CHI.KWADRAAT(x; vrijheidsgraden)."
#. bWMJ2
#: sc/inc/scfuncs.hrc:2828
@@ -12210,7 +12210,7 @@ msgstr "Het aantal vrijheidsgraden van de chi-kwadraatsverdeling."
#: sc/inc/scfuncs.hrc:2838
msgctxt "SC_OPCODE_CHI_INV_MS"
msgid "Values of the inverse of CHIDIST(x; DegreesOfFreedom)."
-msgstr "Waarden van de inverse van CHIVERD(x; vrijheidsgraden)."
+msgstr "Waarden van de inverse van CHI.KWADRAAT(x; vrijheidsgraden)."
#. xcDGa
#: sc/inc/scfuncs.hrc:2839
@@ -12270,7 +12270,7 @@ msgstr "Het aantal vrijheidsgraden van de chi-kwadraatsverdeling."
#: sc/inc/scfuncs.hrc:2860
msgctxt "SC_OPCODE_CHISQ_INV_MS"
msgid "Values of the inverse of CHISQ.DIST(x;DegreesOfFreedom;TRUE())."
-msgstr "Waarden van de inverse van CHIKWADR.VERD(x;vrijheidsgraden;WAAR())."
+msgstr "Waarden van de inverse van CHIKW.VERD(x;vrijheidsgraden;WAAR())."
#. 4TDNd
#: sc/inc/scfuncs.hrc:2861
diff --git a/source/nl/scaddins/messages.po b/source/nl/scaddins/messages.po
index c71de6ca82c..f7d8d61f58e 100644
--- a/source/nl/scaddins/messages.po
+++ b/source/nl/scaddins/messages.po
@@ -4,16 +4,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-09-10 23:12+0200\n"
-"PO-Revision-Date: 2021-01-20 15:36+0000\n"
+"PO-Revision-Date: 2022-03-06 09:39+0000\n"
"Last-Translator: kees538 <kees538@gmail.com>\n"
-"Language-Team: Dutch <https://translations.documentfoundation.org/projects/libo_ui-master/scaddinsmessages/nl/>\n"
+"Language-Team: Dutch <https://translations.documentfoundation.org/projects/libo_ui-7-3/scaddinsmessages/nl/>\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Accelerator-Marker: ~\n"
-"X-Generator: LibreOffice\n"
+"X-Generator: Weblate 4.8.1\n"
"X-POOTLE-MTIME: 1559976857.000000\n"
#. i8Y7Z
@@ -5028,13 +5028,13 @@ msgstr "NOMINALE.RENTE"
#: scaddins/inc/strings.hrc:60
msgctxt "ANALYSIS_FUNCNAME_Dollarfr"
msgid "DOLLARFR"
-msgstr "BEDRAG.BR"
+msgstr "EURO.BR"
#. HC3sJ
#: scaddins/inc/strings.hrc:61
msgctxt "ANALYSIS_FUNCNAME_Dollarde"
msgid "DOLLARDE"
-msgstr "BEDRAG.DE"
+msgstr "EURO.DE"
#. avnCE
#: scaddins/inc/strings.hrc:62
diff --git a/source/nn/helpcontent2/source/text/shared/00.po b/source/nn/helpcontent2/source/text/shared/00.po
index 3c86f6e6915..2a736f3c4d2 100644
--- a/source/nn/helpcontent2/source/text/shared/00.po
+++ b/source/nn/helpcontent2/source/text/shared/00.po
@@ -4,16 +4,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-21 12:38+0100\n"
-"PO-Revision-Date: 2021-11-29 01:44+0000\n"
+"PO-Revision-Date: 2022-03-02 03:39+0000\n"
"Last-Translator: Kolbjørn Stuestøl <kolbjoern@stuestoel.no>\n"
-"Language-Team: Norwegian Nynorsk <https://translations.documentfoundation.org/projects/libo_help-master/textshared00/nn/>\n"
+"Language-Team: Norwegian Nynorsk <https://translations.documentfoundation.org/projects/libo_help-7-3/textshared00/nn/>\n"
"Language: nn\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Accelerator-Marker: ~\n"
-"X-Generator: LibreOffice\n"
+"X-Generator: Weblate 4.8.1\n"
"X-POOTLE-MTIME: 1566334736.000000\n"
#. 3B8ZN
@@ -5675,7 +5675,7 @@ msgctxt ""
"par_id314995711\n"
"help.text"
msgid "<ahelp hid=\".\">When this option is enabled, fields or cells whose values are quoted in their entirety (the first and last characters of the value equal the text delimiter) are imported as text.</ahelp>"
-msgstr "<ahelp hid=\".\">Når denne innstillinga er aktivert, vert felt og celler der innhaldet er skrive mellom sitatteikn (der første og siste teiknet i strengen er lik skiljeteiknet) importerte som tekst.</ahelp>"
+msgstr "<ahelp hid=\".\">Når denne innstillinga er slått på, vert felt og celler der innhaldet er skrive mellom sitatteikn (der første og siste teiknet i strengen er lik skiljeteiknet) importerte som tekst.</ahelp>"
#. EGDzB
#: 00000208.xhp
@@ -5693,7 +5693,7 @@ msgctxt ""
"par_id314995722\n"
"help.text"
msgid "<ahelp hid=\".\">When this option is enabled, Calc will automatically detect all number formats, including special number formats such as dates, time, and scientific notation.</ahelp>"
-msgstr "<ahelp hid=\".\">Når denne innstillinga er aktivert, vil Calc automatisk kjenne igjen alle talformat, også spesielle talformat som datoar, klokkeslett og vitskapeleg notasjon.</ahelp>"
+msgstr "<ahelp hid=\".\">Når denne innstillinga er slått på, vil Calc automatisk kjenna igjen alle talformat, også spesielle talformat som datoar, klokkeslett og vitskapeleg notasjon.</ahelp>"
#. W5qTa
#: 00000208.xhp
diff --git a/source/nn/helpcontent2/source/text/shared/guide.po b/source/nn/helpcontent2/source/text/shared/guide.po
index 105e31ba490..9caa88b7037 100644
--- a/source/nn/helpcontent2/source/text/shared/guide.po
+++ b/source/nn/helpcontent2/source/text/shared/guide.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-20 13:21+0100\n"
-"PO-Revision-Date: 2022-02-19 18:38+0000\n"
+"PO-Revision-Date: 2022-03-02 03:39+0000\n"
"Last-Translator: Kolbjørn Stuestøl <kolbjoern@stuestoel.no>\n"
"Language-Team: Norwegian Nynorsk <https://translations.documentfoundation.org/projects/libo_help-7-3/textsharedguide/nn/>\n"
"Language: nn\n"
@@ -716,7 +716,7 @@ msgctxt ""
"hd_id11626028179231\n"
"help.text"
msgid "Creating Targets"
-msgstr ""
+msgstr "Laga mål"
#. U4tPq
#: auto_redact.xhp
@@ -725,7 +725,7 @@ msgctxt ""
"par_id211626097811059\n"
"help.text"
msgid "Targets are rules and patterns used by Automatic Redaction to find portions of the document to be automatically marked for redaction."
-msgstr ""
+msgstr "Mål er reglar og mønster som vert brukt av autosladding for å finna delar av dokumentet som skal merkjast automatisk for sladding."
#. A6CCF
#: auto_redact.xhp
@@ -734,7 +734,7 @@ msgctxt ""
"par_id851626028193218\n"
"help.text"
msgid "To create a new target, click the <menuitem>Add Target</menuitem> button."
-msgstr ""
+msgstr "For å laga eit nytt mål, trykk på knappen <menuitem>Legg til mål</menuitem>."
#. RGwFa
#: auto_redact.xhp
@@ -743,7 +743,7 @@ msgctxt ""
"par_id101626028852152\n"
"help.text"
msgid "The <emph>Add Target</emph> dialog appears, to let you define a <emph>Name</emph> for the new target, as well as to choose its <emph>Type</emph> and <emph>Content</emph>. There are three types of targets to choose from in the <emph>Type</emph> dropdown list:"
-msgstr ""
+msgstr "Dialogvindauget <emph>Sladdingsmål</emph> kjem opp. Der kan du setja eit <emph>namn</emph> på det nye målet og velja <emph>Type</emph> og <emph>innhald </emph>. Du kan velja mellom tre måltypar i nedtrekkslista <emph>Type</emph>:"
#. 5AKPv
#: auto_redact.xhp
@@ -752,7 +752,7 @@ msgctxt ""
"par_id241626028988544\n"
"help.text"
msgid "<emph>Text</emph>: Automatic Redaction will look for all occurrences of the specified text and mark them for redaction."
-msgstr ""
+msgstr "<emph>Tekst</emph>: Automatisk sladding vil sjå etter alle førekomstar av den gjevne teksten og merkja dei for sladding."
#. iCDRP
#: auto_redact.xhp
@@ -761,7 +761,7 @@ msgctxt ""
"par_id31626028992866\n"
"help.text"
msgid "<emph>Regular expression</emph>: Define a regular expression to use to search the document. All matches will be marked for redaction."
-msgstr ""
+msgstr "<emph>Regulært uttrykk</emph>: Definer eit regulært uttrykk som skal brukast for å søkja i dokumentet. Alle treff vert merkte for sladding."
#. puprE
#: auto_redact.xhp
@@ -770,7 +770,7 @@ msgctxt ""
"par_id391626028994653\n"
"help.text"
msgid "<emph>Predefined</emph>: Choose predefined regular expressions to automatically redact contents, such as credit card numbers, email addresses and so on."
-msgstr ""
+msgstr "<emph>Førehandsdefinert</emph>: Vel førehandsdefinerte regulære uttrykk for å sladda innhald automatisk, for eksempel kredittkortnumer, e-postadresser og så vidare."
#. bMHnY
#: auto_redact.xhp
@@ -779,7 +779,7 @@ msgctxt ""
"par_id181626029575406\n"
"help.text"
msgid "Add all targets that you want to apply to your document and click <emph>OK</emph>. This opens the document as a drawing in %PRODUCTNAME Draw with all targets automatically redacted with the <emph>Rectangle Redaction</emph> tool."
-msgstr ""
+msgstr "Legg til alle måla du vil bruka i dokumentet og trykk <emph>OK</emph>. Dette opnar dokumentet som ei teikning i %PRODUCTNAME Draw med alle mål automatisk sladda med verktøyet <emph>Rektangelsladding</emph>."
#. kiFS3
#: auto_redact.xhp
@@ -797,7 +797,7 @@ msgctxt ""
"par_id581626101004089\n"
"help.text"
msgid "Refer to the help page <link href=\"text/shared/01/02100001.xhp\" name=\"regex_link\">List of Regular Expressions</link> to learn more about how to use regular expressions in %PRODUCTNAME."
-msgstr ""
+msgstr "Sjå hjelpesida <link href=\"text/shared/01/02100001.xhp\" name=\"regex_link\">Liste over regulære uttrykk</link> for å læra meir om korleis du brukar regulære uttrykk i %PRODUCTNAME."
#. AE55E
#: auto_redact.xhp
@@ -806,7 +806,7 @@ msgctxt ""
"hd_id951626029985729\n"
"help.text"
msgid "Exporting and Importing Targets"
-msgstr ""
+msgstr "Eksportera og importera mål"
#. CsYeH
#: auto_redact.xhp
@@ -815,7 +815,7 @@ msgctxt ""
"par_id701626030005749\n"
"help.text"
msgid "Click the <emph>Save Targets</emph> button to save all defined targets in the document as a JSON (JavaScript Object Notation) file."
-msgstr ""
+msgstr "Trykk på knappen <emph>Lagra mål</emph> for å lagra alle dei definerte måla i dokumentet som ei JSON-fil (JavaScript Object Notation)."
#. M2XoB
#: auto_redact.xhp
@@ -824,7 +824,7 @@ msgctxt ""
"par_id971626030103135\n"
"help.text"
msgid "Click the <emph>Load Targets</emph> button to import and apply the targets defined in a JSON file to another %PRODUCTNAME document."
-msgstr ""
+msgstr "Trykk på knappen <emph>Last inn mål</emph> for å importera og bruka måla som er definerte i ei JSON-fil i eit anna %PRODUCTNAME-dokument."
#. 2haDR
#: auto_redact.xhp
@@ -833,7 +833,7 @@ msgctxt ""
"par_id311626030327293\n"
"help.text"
msgid "The document automatic redaction targets are saved alongside the document. Hence, they are available in the document after you save and close it."
-msgstr ""
+msgstr "Måla for automatisk sladding av dokumentet vert lagra ved sida av dokumentet. Difor er dei tilgjengelege i dokumentet etter at du har lagra og lukka det."
#. K7YtD
#: autocorr_url.xhp
@@ -1868,7 +1868,7 @@ msgctxt ""
"par_id3156136\n"
"help.text"
msgid "You can add texture to the bars in a graph or chart (instead of the default colors) via graphics:"
-msgstr ""
+msgstr "Du kan leggja til tekstur på søylene i ein graf eller eit diagram (i staden for standardfargar) med punktbilete:"
#. 4UEfD
#: chart_barformat.xhp
@@ -1913,7 +1913,7 @@ msgctxt ""
"par_id3146797\n"
"help.text"
msgid "Click on <emph>Image</emph>. In the list box select an image as a texture for the currently selected bars. Click <emph>OK</emph> to accept the setting."
-msgstr ""
+msgstr "Trykk på <emph>Bilete</emph>. Vel i listeboksen det biletet du vil bruka som tekstur på dei valde søylene. Klikk <emph>OK</emph> for å godta innstillinga."
#. rgZEg
#: chart_insert.xhp
@@ -4046,7 +4046,7 @@ msgctxt ""
"hd_id771554399002497\n"
"help.text"
msgid "<variable id=\"convertfilters_h1\"><link href=\"text/shared/guide/convertfilters.xhp\" name=\"conversion filter names\">File Conversion Filter Names</link></variable>"
-msgstr ""
+msgstr "<variable id=\"convertfilters_h1\"><link href=\"text/shared/guide/convertfilters.xhp\" name=\"conversion filter names\">Filkonverteringsfilternamn</link></variable>"
#. EoDwz
#: convertfilters.xhp
@@ -4055,7 +4055,7 @@ msgctxt ""
"par_id581554399002498\n"
"help.text"
msgid "<variable id=\"commandline_intro\"> <ahelp hid=\".\">Tables with filter names for <link href=\"text/shared/guide/start_parameters.xhp\" name=\"commandline\">command line</link> document conversion.</ahelp> </variable>"
-msgstr ""
+msgstr "<variable id=\"commandline_intro\"> <ahelp hid=\".\">Tabellar med filternamn for <link href=\"text/shared/guide/start_parameters.xhp\" name=\"commandline\">kommandolinja</link> dokumentkonvertering .</ahelp> </variable>"
#. Whybs
#: convertfilters.xhp
@@ -4064,7 +4064,7 @@ msgctxt ""
"hd_id531633524464103\n"
"help.text"
msgid "Usage"
-msgstr ""
+msgstr "Bruk"
#. vcWaC
#: convertfilters.xhp
@@ -4073,7 +4073,7 @@ msgctxt ""
"par_id801633524474460\n"
"help.text"
msgid "Filter names are used when importing and exporting files in alien formats and converting files formats through the <link href=\"text/shared/guide/start_parameters.xhp\" name=\"commandline\">command line</link>."
-msgstr ""
+msgstr "Filternamn vert brukte når du importerer og eksporterer filer i framande format og konverterer filformat gjennom <link href=\"text/shared/guide/start_parameters.xhp\" name=\"commandline\">kommandolinja</link>."
#. QAzjK
#: convertfilters.xhp
@@ -4433,7 +4433,7 @@ msgctxt ""
"FilterName_writer_indexing_export\n"
"help.text"
msgid "Writer Indexing Export XML"
-msgstr ""
+msgstr "Writer indekserer eksport XML"
#. Va5zD
#: convertfilters.xhp
@@ -5450,7 +5450,7 @@ msgctxt ""
"FilterName_writer_png_Export\n"
"help.text"
msgid "PNG - Portable Network Graphics"
-msgstr ""
+msgstr "PNG – Portable Network Graphics"
#. FeKia
#: convertfilters.xhp
@@ -5468,7 +5468,7 @@ msgctxt ""
"bm_000pdfimport\n"
"help.text"
msgid "<bookmark_value>command line document conversion; filters for PDFIMPORT</bookmark_value>"
-msgstr ""
+msgstr "<bookmark_value>dokumentkonvertering frå kommandolinja; filter for PDFIMPORT</bookmark_value>"
#. K7dq5
#: convertfilters.xhp
@@ -5477,7 +5477,7 @@ msgctxt ""
"hd_000pdfimport\n"
"help.text"
msgid "Filters for PDFIMPORT"
-msgstr ""
+msgstr "Filter for PDFIMPORT"
#. xJhTH
#: convertfilters.xhp
@@ -5486,7 +5486,7 @@ msgctxt ""
"FilterName_draw_pdf_import\n"
"help.text"
msgid "PDF - Portable Document Format (Draw)"
-msgstr ""
+msgstr "PDF - Portable Document Format (Draw)"
#. JDFdH
#: convertfilters.xhp
@@ -5495,7 +5495,7 @@ msgctxt ""
"FilterName_impress_pdf_import\n"
"help.text"
msgid "PDF - Portable Document Format (Impress)"
-msgstr ""
+msgstr "PDF - Portable Document Format (Impress)"
#. WsMeW
#: convertfilters.xhp
@@ -5504,7 +5504,7 @@ msgctxt ""
"FilterName_writer_pdf_import\n"
"help.text"
msgid "PDF - Portable Document Format (Writer)"
-msgstr ""
+msgstr "PDF - Portable Document Format (Writer)"
#. 9WyPm
#: convertfilters.xhp
@@ -5513,7 +5513,7 @@ msgctxt ""
"FilterName_writer_pdf_addstream_import\n"
"help.text"
msgid "PDF - Portable Document Format"
-msgstr ""
+msgstr "PDF - Portable Document Format"
#. kF4WL
#: convertfilters.xhp
@@ -5522,7 +5522,7 @@ msgctxt ""
"FilterName_impress_pdf_addstream_import\n"
"help.text"
msgid "PDF - Portable Document Format"
-msgstr ""
+msgstr "PDF - Portable Document Format"
#. aFqyu
#: convertfilters.xhp
@@ -5531,7 +5531,7 @@ msgctxt ""
"FilterName_draw_pdf_addstream_import\n"
"help.text"
msgid "PDF - Portable Document Format"
-msgstr ""
+msgstr "PDF - Portable Document Format"
#. 5AFFP
#: convertfilters.xhp
@@ -5540,7 +5540,7 @@ msgctxt ""
"FilterName_calc_pdf_addstream_import\n"
"help.text"
msgid "PDF - Portable Document Format"
-msgstr ""
+msgstr "PDF - Portable Document Format"
#. ziEHZ
#: convertfilters.xhp
@@ -5549,7 +5549,7 @@ msgctxt ""
"bm_000xsltfilter\n"
"help.text"
msgid "<bookmark_value>command line document conversion; filters for XSLTFILTER</bookmark_value>"
-msgstr ""
+msgstr "<bookmark_value>dokumentkonvertering frå kommandolinja; filter for XSLTFILTER</bookmark_value>"
#. AzDaX
#: convertfilters.xhp
@@ -5558,7 +5558,7 @@ msgctxt ""
"hd_000xsltfilter\n"
"help.text"
msgid "Filters for XSLTFILTER"
-msgstr ""
+msgstr "Filter for XSLTFILTER"
#. ebRhP
#: convertfilters.xhp
@@ -5567,7 +5567,7 @@ msgctxt ""
"FilterName_ADO_Rowset_XML\n"
"help.text"
msgid "ADO Rowset XML"
-msgstr ""
+msgstr "ADO radsett XML"
#. tTViV
#: convertfilters.xhp
@@ -5576,7 +5576,7 @@ msgctxt ""
"FilterName_DocBook_File\n"
"help.text"
msgid "DocBook"
-msgstr ""
+msgstr "DocBook"
#. GHC43
#: convertfilters.xhp
@@ -5585,7 +5585,7 @@ msgctxt ""
"FilterName_MS_Excel_2003_XML\n"
"help.text"
msgid "Microsoft Excel 2003 XML"
-msgstr ""
+msgstr "Microsoft Excel 2003 XML"
#. 5wBfH
#: convertfilters.xhp
@@ -5594,7 +5594,7 @@ msgctxt ""
"FilterName_MS_Word_2003_XML\n"
"help.text"
msgid "Word 2003 XML"
-msgstr ""
+msgstr "Word 2003 XML"
#. CTAEj
#: convertfilters.xhp
@@ -5603,7 +5603,7 @@ msgctxt ""
"FilterName_XHTML_Calc_File\n"
"help.text"
msgid "XHTML"
-msgstr ""
+msgstr "XHTML"
#. VUZrD
#: convertfilters.xhp
@@ -5612,7 +5612,7 @@ msgctxt ""
"FilterName_XHTML_Draw_File\n"
"help.text"
msgid "XHTML"
-msgstr ""
+msgstr "XHTML"
#. AhcRA
#: convertfilters.xhp
@@ -5621,7 +5621,7 @@ msgctxt ""
"FilterName_XHTML_Impress_File\n"
"help.text"
msgid "XHTML"
-msgstr ""
+msgstr "XHTML"
#. iCCFv
#: convertfilters.xhp
@@ -5630,7 +5630,7 @@ msgctxt ""
"FilterName_XHTML_Writer_File\n"
"help.text"
msgid "XHTML"
-msgstr ""
+msgstr "XHTML"
#. MCrWq
#: convertfilters.xhp
@@ -5639,7 +5639,7 @@ msgctxt ""
"FilterName_UOF_text\n"
"help.text"
msgid "Unified Office Format text"
-msgstr ""
+msgstr "Unified Office Format tekst"
#. TXKeC
#: convertfilters.xhp
@@ -5648,7 +5648,7 @@ msgctxt ""
"FilterName_UOF_spreadsheet\n"
"help.text"
msgid "Unified Office Format spreadsheet"
-msgstr ""
+msgstr "Unified Office Format rekneark"
#. VW3Gt
#: convertfilters.xhp
@@ -5657,7 +5657,7 @@ msgctxt ""
"FilterName_UOF_presentation\n"
"help.text"
msgid "Unified Office Format presentation"
-msgstr ""
+msgstr "Unified Office Format presentasjon"
#. Bkz5M
#: copy_drawfunctions.xhp
@@ -5963,7 +5963,7 @@ msgctxt ""
"tit\n"
"help.text"
msgid "CSV Filter parameters"
-msgstr ""
+msgstr "CSV-filterparameter"
#. KyLbg
#: csv_params.xhp
@@ -5972,7 +5972,7 @@ msgctxt ""
"bm_id181634740978601\n"
"help.text"
msgid "<bookmark_value>CSV;filter options</bookmark_value> <bookmark_value>CSV;separator specification line</bookmark_value> <bookmark_value>CSV;import options</bookmark_value> <bookmark_value>CSV;export options</bookmark_value> <bookmark_value>CSV;command line filter options</bookmark_value>"
-msgstr ""
+msgstr "<bookmark_value>CSV;filterinnstillingr</bookmark_value> <bookmark_value>CSV;separatorspesifikasjonslinje</bookmark_value> <bookmark_value>CSV;importalternativ</bookmark_value> <bookmark_value>CSV;eksportalternativ</bookmark_value> <bookmark_value>CSV; kommandolinje filterinnstillingar</bookmark_value>"
#. szBoK
#: csv_params.xhp
@@ -5981,7 +5981,7 @@ msgctxt ""
"hd_id551634734576194\n"
"help.text"
msgid "<variable id=\"csv_params_h1\"><link href=\"text/shared/guide/csv_params.xhp\" name=\"filter options\">CSV Filter Options</link></variable>"
-msgstr ""
+msgstr "<variable id=\"csv_params_h1\"><link href=\"text/shared/guide/csv_params.xhp\" name=\"filter options\">CSV-filterinnstillingar</link></variable>"
#. qRkBK
#: csv_params.xhp
@@ -5990,7 +5990,7 @@ msgctxt ""
"par_id401634734576197\n"
"help.text"
msgid "The CSV filter accepts an option string containing five to thirteen tokens, separated by commas. Tokens 6 to 13 are optional."
-msgstr ""
+msgstr "CSV-filteret godtek ein innstillingsstreng som inneheld fem til tretten merke skilde med komma. Merke 6 til 13 er valfrie."
#. BQKWB
#: csv_params.xhp
@@ -5999,7 +5999,7 @@ msgctxt ""
"par_id431634743318433\n"
"help.text"
msgid "Import from UTF-8, Language German, Comma separated, Text delimiter \", Quoted field as text. CSV file has columns formatted as date, number, number, number:"
-msgstr ""
+msgstr "Importer frå UTF-8, tysk språk, kommaseparert, tekstskiljeteikn \", sitert felt som tekst. CSV-fila har kolonnar formaterte som dato, tal, tal, tal:"
#. rdZgZ
#: csv_params.xhp
@@ -6008,7 +6008,7 @@ msgctxt ""
"par_id281634743298078\n"
"help.text"
msgid "Export to Windows-1252, Field delimiter : comma, Text delimiter : quote, Save cell contents as shown:"
-msgstr ""
+msgstr "Eksporter til Windows-1252, Feltskiljeteikn: komma, Tekstskiljeteikn: sitat, Lagra celleinnhald som vist:"
#. J8rtr
#: csv_params.xhp
@@ -6017,7 +6017,7 @@ msgctxt ""
"par_id511634735255956\n"
"help.text"
msgid "Token Position"
-msgstr ""
+msgstr "Merkeplassering"
#. 5rrFy
#: csv_params.xhp
@@ -6026,7 +6026,7 @@ msgctxt ""
"par_id71634735255956\n"
"help.text"
msgid "Definition"
-msgstr ""
+msgstr "Definisjon"
#. tBx7H
#: csv_params.xhp
@@ -6035,7 +6035,7 @@ msgctxt ""
"par_id581634735255956\n"
"help.text"
msgid "Meaning and Example of Token"
-msgstr ""
+msgstr "Meining og eksempel på merke"
#. FBZ5h
#: csv_params.xhp
@@ -6044,7 +6044,7 @@ msgctxt ""
"par_id691634735255956\n"
"help.text"
msgid "Field Separator"
-msgstr ""
+msgstr "Feltskiljeteikn"
#. Zgou6
#: csv_params.xhp
diff --git a/source/nn/officecfg/registry/data/org/openoffice/Office/UI.po b/source/nn/officecfg/registry/data/org/openoffice/Office/UI.po
index 7f4f425c2ff..f092367256a 100644
--- a/source/nn/officecfg/registry/data/org/openoffice/Office/UI.po
+++ b/source/nn/officecfg/registry/data/org/openoffice/Office/UI.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-21 12:38+0100\n"
-"PO-Revision-Date: 2022-02-26 21:39+0000\n"
+"PO-Revision-Date: 2022-03-05 08:39+0000\n"
"Last-Translator: Kolbjørn Stuestøl <kolbjoern@stuestoel.no>\n"
"Language-Team: Norwegian Nynorsk <https://translations.documentfoundation.org/projects/libo_ui-7-3/officecfgregistrydataorgopenofficeofficeui/nn/>\n"
"Language: nn\n"
@@ -27196,7 +27196,7 @@ msgctxt ""
"UIName\n"
"value.text"
msgid "Master Slide Sorter/Pane"
-msgstr "Hovudutforming lysbilete sortering/panel"
+msgstr "Hovudlysbilete sortering/panel"
#. FzNvJ
#: ImpressWindowState.xcu
@@ -27206,7 +27206,7 @@ msgctxt ""
"UIName\n"
"value.text"
msgid "Master Slide Sorter/Pane (no selection)"
-msgstr "Hovudutforming lysbilete, sortering/panel (ikkje merkt)"
+msgstr "Hovudlysbilete, sortering/panel (ikkje merkt)"
#. D3FGq
#: ImpressWindowState.xcu
diff --git a/source/nn/sd/messages.po b/source/nn/sd/messages.po
index 4678db62328..50b3a263a61 100644
--- a/source/nn/sd/messages.po
+++ b/source/nn/sd/messages.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-21 12:38+0100\n"
-"PO-Revision-Date: 2022-02-24 15:39+0000\n"
+"PO-Revision-Date: 2022-03-05 08:39+0000\n"
"Last-Translator: Kolbjørn Stuestøl <kolbjoern@stuestoel.no>\n"
"Language-Team: Norwegian Nynorsk <https://translations.documentfoundation.org/projects/libo_ui-7-3/sdmessages/nn/>\n"
"Language: nn\n"
@@ -1640,7 +1640,7 @@ msgstr "Klarte ikkje kopiera fila $(URL1) til $(URL2)"
#: sd/inc/strings.hrc:232
msgctxt "STR_STATUSBAR_MASTERPAGE"
msgid "Slide Master name. Right-click for list or click for dialog."
-msgstr "Namn på hovudutforminga for lysbilete. Høgreklikk for å opna lista eller klikk for å opna dialogvindauget."
+msgstr "Namn på hovudlysbiletet. Høgreklikk for å opna lista eller klikk for å opna dialogvindauget."
#. HcDvJ
#: sd/inc/strings.hrc:233
diff --git a/source/oc/cui/messages.po b/source/oc/cui/messages.po
index 6168297cfee..25c73eb49b3 100644
--- a/source/oc/cui/messages.po
+++ b/source/oc/cui/messages.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2022-01-10 12:20+0100\n"
-"PO-Revision-Date: 2022-02-19 10:39+0000\n"
+"PO-Revision-Date: 2022-03-02 22:39+0000\n"
"Last-Translator: Quentin PAGÈS <quentinantonin@free.fr>\n"
"Language-Team: Occitan <https://translations.documentfoundation.org/projects/libo_ui-7-3/cuimessages/oc/>\n"
"Language: oc\n"
@@ -5554,43 +5554,43 @@ msgstr "_Color :"
#: cui/uiconfig/ui/borderpage.ui:283
msgctxt "borderpage|linewidthlb"
msgid "Hairline (0.05pt)"
-msgstr ""
+msgstr "Plan fina (0,05 pt)"
#. u3nzv
#: cui/uiconfig/ui/borderpage.ui:284
msgctxt "borderpage|linewidthlb"
msgid "Very thin (0.5pt)"
-msgstr ""
+msgstr "Finassa (0,5 pt)"
#. aWBEL
#: cui/uiconfig/ui/borderpage.ui:285
msgctxt "borderpage|linewidthlb"
msgid "Thin (0.75pt)"
-msgstr ""
+msgstr "Fina (0,75 pt)"
#. NGkAL
#: cui/uiconfig/ui/borderpage.ui:286
msgctxt "borderpage|linewidthlb"
msgid "Medium (1.5pt)"
-msgstr ""
+msgstr "Mejana (1,5 pt)"
#. H2AVr
#: cui/uiconfig/ui/borderpage.ui:287
msgctxt "borderpage|linewidthlb"
msgid "Thick (2.25pt)"
-msgstr ""
+msgstr "Espessa (2,25 pt)"
#. b5UoB
#: cui/uiconfig/ui/borderpage.ui:288
msgctxt "borderpage|linewidthlb"
msgid "Extra thick (4.5pt)"
-msgstr ""
+msgstr "Plan espessa (4,5 pt)"
#. ACvsP
#: cui/uiconfig/ui/borderpage.ui:289
msgctxt "borderpage|linewidthlb"
msgid "Custom"
-msgstr ""
+msgstr "Personalizada"
#. uwByw
#: cui/uiconfig/ui/borderpage.ui:333
diff --git a/source/oc/officecfg/registry/data/org/openoffice/Office/UI.po b/source/oc/officecfg/registry/data/org/openoffice/Office/UI.po
index 9a74fb90fbf..0ef7a821c69 100644
--- a/source/oc/officecfg/registry/data/org/openoffice/Office/UI.po
+++ b/source/oc/officecfg/registry/data/org/openoffice/Office/UI.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-12-21 12:38+0100\n"
-"PO-Revision-Date: 2022-02-19 10:39+0000\n"
+"PO-Revision-Date: 2022-03-02 22:39+0000\n"
"Last-Translator: Quentin PAGÈS <quentinantonin@free.fr>\n"
"Language-Team: Occitan <https://translations.documentfoundation.org/projects/libo_ui-7-3/officecfgregistrydataorgopenofficeofficeui/oc/>\n"
"Language: oc\n"
@@ -24706,7 +24706,7 @@ msgctxt ""
"TooltipLabel\n"
"value.text"
msgid "Attach to Email"
-msgstr ""
+msgstr "Juntar a un corrièl"
#. N29sp
#: GenericCommands.xcu
@@ -26277,7 +26277,7 @@ msgctxt ""
"Label\n"
"value.text"
msgid "Word ~Joiner"
-msgstr ""
+msgstr "~Juntura de mots"
#. UvwGS
#: GenericCommands.xcu
@@ -34507,7 +34507,7 @@ msgctxt ""
"TooltipLabel\n"
"value.text"
msgid "Clone Formatting (double click and Ctrl or Cmd to alter behavior)"
-msgstr ""
+msgstr "Clonar lo format (doble clic e Ctrl o Cmd per cambiar lo compòrtament)"
#. 7PCFf
#: WriterCommands.xcu
diff --git a/source/oc/svx/messages.po b/source/oc/svx/messages.po
index b3f95b92828..c0172b67896 100644
--- a/source/oc/svx/messages.po
+++ b/source/oc/svx/messages.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2021-11-25 19:34+0100\n"
-"PO-Revision-Date: 2022-02-19 10:39+0000\n"
+"PO-Revision-Date: 2022-03-02 22:39+0000\n"
"Last-Translator: Quentin PAGÈS <quentinantonin@free.fr>\n"
"Language-Team: Occitan <https://translations.documentfoundation.org/projects/libo_ui-7-3/svxmessages/oc/>\n"
"Language: oc\n"
@@ -7295,7 +7295,7 @@ msgstr ""
#: include/svx/strings.hrc:1310
msgctxt "RID_SVXSTR_ZOOMTOOL_HINT"
msgid "Zoom factor. Right-click to change zoom factor or click to open Zoom dialog."
-msgstr ""
+msgstr "Factor d’escala. Fasètz un clic dreit per modificar lo factor d’agrandiment o clicatz per dobrir la bóstia de dialòg d’escala."
#. HCjAM
#: include/svx/strings.hrc:1311
diff --git a/source/oc/sw/messages.po b/source/oc/sw/messages.po
index 3850db1786c..1bbf29df7ef 100644
--- a/source/oc/sw/messages.po
+++ b/source/oc/sw/messages.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.libreoffice.org/enter_bug.cgi?product=LibreOffice&bug_status=UNCONFIRMED&component=UI\n"
"POT-Creation-Date: 2022-01-10 12:22+0100\n"
-"PO-Revision-Date: 2022-02-19 10:40+0000\n"
+"PO-Revision-Date: 2022-03-02 22:39+0000\n"
"Last-Translator: Quentin PAGÈS <quentinantonin@free.fr>\n"
"Language-Team: Occitan <https://translations.documentfoundation.org/projects/libo_ui-7-3/swmessages/oc/>\n"
"Language: oc\n"
@@ -16995,7 +16995,7 @@ msgstr ""
#: sw/uiconfig/swriter/ui/insertbookmark.ui:195
msgctxt "insertbookmark|bookmarks"
msgid "_Bookmarks:"
-msgstr ""
+msgstr "_Marcapaginas :"
#. XbAhB
#: sw/uiconfig/swriter/ui/insertbookmark.ui:228
@@ -22928,7 +22928,7 @@ msgstr ""
#: sw/uiconfig/swriter/ui/optformataidspage.ui:167
msgctxt "optformataidspage|bookmarks"
msgid "Bookmarks"
-msgstr ""
+msgstr "Marcadors"
#. 3RWMe
#: sw/uiconfig/swriter/ui/optformataidspage.ui:238
diff --git a/source/pt-BR/helpcontent2/source/text/swriter/01.po b/source/pt-BR/helpcontent2/source/text/swriter/01.po
index 92bdaea62a7..e5088715b22 100644
--- a/source/pt-BR/helpcontent2/source/text/swriter/01.po
+++ b/source/pt-BR/helpcontent2/source/text/swriter/01.po