Compare commits

..

1 Commits

Author SHA1 Message Date
Joachim Henze
442898a452 [SHELL32] Use 1996 as birth year in IDD_ABOUT
We do use the birth year 1996 instead of 1998
within our msgina pictures already,
and also within the [SDK] for autogenerated file-info.

Since SHELL32 IDD_ABOUT is used by many applications
it makes sense to harmonize with that.

Beside that, strip some redundancy from the headers.
2023-07-16 16:29:31 +02:00
8092 changed files with 264357 additions and 730478 deletions

3
.gitattributes vendored
View File

@@ -30,9 +30,6 @@
*.TXT text
*.y text
# Files with these extensions must always have LF (Unix) line endings.
*.sh text eol=lf
# Files with these extensions end up in the built ReactOS system, so they
# need to have CRLF line endings.
*.bat text eol=crlf

1
.github/FUNDING.yml vendored
View File

@@ -1 +1,2 @@
custom: ['https://reactos.org/donate/', 'https://www.paypal.me/ReactOS']
liberapay: ReactOS

View File

@@ -17,8 +17,3 @@ _Use a TODO when your pull request is Work in Progress._
- [ ]
- [ ]
## Testbot runs (Filled in by Devs)
- [ ] KVM x86:
- [ ] KVM x64:

52
.github/labeler.yml vendored
View File

@@ -1,53 +1,29 @@
# Labelling by the files touched
ATL:
- changed-files:
- any-glob-to-any-file:
- sdk/lib/atl/**
- sdk/lib/atl/**
drivers:
- changed-files:
- any-glob-to-any-file:
- drivers/**
- sdk/lib/drivers/**
- all-globs-to-any-file:
- win32ss/drivers/**
- '!win32ss/drivers/font/**'
- drivers/**
- sdk/lib/drivers/**
- any: ["win32ss/drivers/**", "!win32ss/drivers/font/**"]
freeldr:
- changed-files:
- any-glob-to-any-file:
- boot/freeldr/**
- boot/freeldr/**
"kernel&hal":
- changed-files:
- any-glob-to-any-file:
- hal/**
- ntoskrnl/**
- hal/**
- ntoskrnl/**
ROSTESTS:
- changed-files:
- any-glob-to-any-file:
- modules/rostests/**
- modules/rostests/**
shell:
- changed-files:
- any-glob-to-any-file:
- base/shell/explorer/**
- base/shell/rshell/**
- dll/shellext/**
- dll/win32/browseui/**
- dll/win32/shell32/**
- base/shell/explorer/**
- base/shell/rshell/**
- dll/shellext/**
- dll/win32/browseui/**
- dll/win32/shell32/**
Win32SS:
- changed-files:
- any-glob-to-any-file:
- win32ss/**
"input method":
- changed-files:
- any-glob-to-any-file:
- base/ctf/**
- win32ss/user/imm32/**
- win32ss/user/ntuser/ime.c
- win32ss/user/user32/misc/imm.c
- win32ss/**

View File

@@ -8,25 +8,19 @@ jobs:
compiler: [gcc, clang]
arch: [i386, amd64]
config: [Debug, Release]
dllver: ['0x502', '0x600']
exclude:
- dllver: 0x600
compiler: clang
- dllver: 0x600
config: Release
fail-fast: false
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
steps:
- name: Get RosBE build specifics
id: get_rosbe_spec
run: |
gcc -march=native -Q --help=target | grep "\-march= " | awk '{print $NF}'
echo march-sha=$(gcc -march=native -Q --help=target | sha1sum | awk '{print $1}') >> $GITHUB_OUTPUT
echo git-sha=$(git ls-remote https://github.com/zefklop/RosBE.git | grep unix_amd64 | awk '{print $1}') >> $GITHUB_OUTPUT
echo ::set-output name=march-sha::$(gcc -march=native -Q --help=target | sha1sum | awk '{print $1}')
echo ::set-output name=git-sha::$(git ls-remote https://github.com/zefklop/RosBE.git | grep unix_amd64 | awk '{print $1}')
wget https://gist.githubusercontent.com/zefklop/b2d6a0b470c70183e93d5285a03f5899/raw/build_rosbe_ci.sh
- name: Get RosBE
id: get_rosbe
uses: actions/cache@v4
uses: actions/cache@v2
with:
path: RosBE-CI
key: RosBE-CI-${{runner.os}}-${{steps.get_rosbe_spec.outputs.march-sha}}-${{steps.get_rosbe_spec.outputs.git-sha}}-${{hashfiles('./build_rosbe_ci.sh')}}
@@ -46,16 +40,16 @@ jobs:
sudo ./llvm.sh $LLVM_VERSION
echo "D_CLANG_VERSION=-DCLANG_VERSION=$LLVM_VERSION" >> $GITHUB_ENV
- name: Source checkout
uses: actions/checkout@v4
uses: actions/checkout@v2
with:
path: src
- name: Set up cache for ccache
uses: actions/cache@v4
uses: actions/cache@v2
with:
path: ccache
key: ccache-${{matrix.compiler}}-${{matrix.arch}}-${{matrix.config}}-${{matrix.dllver}}-${{github.sha}}
key: ccache-${{matrix.compiler}}-${{matrix.arch}}-${{matrix.config}}-${{github.sha}}
restore-keys: |
ccache-${{matrix.compiler}}-${{matrix.arch}}-${{matrix.config}}-${{matrix.dllver}}-
ccache-${{matrix.compiler}}-${{matrix.arch}}-
- name: Set ccache settings
run: |
echo "CCACHE_BASEDIR=${{github.workspace}}" >> $GITHUB_ENV
@@ -66,7 +60,7 @@ jobs:
if: ${{ matrix.compiler == 'gcc' }}
run: echo "CCACHE_COMPILERCHECK=string:${{steps.get_rosbe_spec.outputs.git-sha}}-${{hashfiles('./build_rosbe_ci.sh')}}" >> $GITHUB_ENV
- name: Configure
run: echo 'cmake -S ${{github.workspace}}/src -B ${{github.workspace}}/build -G Ninja -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-${{matrix.compiler}}.cmake -DARCH:STRING=${{matrix.arch}} -DCMAKE_BUILD_TYPE=${{matrix.config}} -DDLL_EXPORT_VERSION=${{matrix.dllver}} -DENABLE_CCACHE=1 -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1 ${{env.D_CLANG_VERSION}}' | ${{github.workspace}}/RosBE-CI/RosBE.sh . 0 ${{matrix.arch}}
run: echo 'cmake -S ${{github.workspace}}/src -B ${{github.workspace}}/build -G Ninja -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-${{matrix.compiler}}.cmake -DARCH:STRING=${{matrix.arch}} -DCMAKE_BUILD_TYPE=${{matrix.config}} -DENABLE_CCACHE=1 -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1 ${{env.D_CLANG_VERSION}}' | ${{github.workspace}}/RosBE-CI/RosBE.sh . 0 ${{matrix.arch}}
- name: Build
run: echo 'cmake --build ${{github.workspace}}/build -- -k0' | ${{github.workspace}}/RosBE-CI/RosBE.sh . 0 ${{matrix.arch}}
- name: Generate ISOs
@@ -74,9 +68,9 @@ jobs:
- name: Print ccache statistics
run: ccache -s
- name: Upload ISOs
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v2
with:
name: reactos-${{matrix.compiler}}-${{matrix.arch}}-${{matrix.config}}-${{matrix.dllver}}-${{github.sha}}
name: reactos-${{matrix.compiler}}-${{matrix.arch}}-${{matrix.config}}-${{github.sha}}
path: |
build/bootcd.iso
build/livecd.iso
@@ -84,16 +78,17 @@ jobs:
build-msvc:
strategy:
matrix:
os: [windows-latest]
toolset: ['14','14.2'] # VS 2022, and 2019 (see below)
os: [windows-latest, windows-2019]
toolset: ['14.2', '14.1', '14.0'] # VS 2019, 2017, and 2015 (see below)
arch: [i386, amd64]
config: [Debug, Release]
dllver: ['0x502', '0x600']
exclude: # Build NT6 ISOs only with the latest toolset when compiled as a debug build
- dllver: 0x600
toolset: 14.2
- dllver: 0x600
config: Release
exclude: # VS 2019, 2017 only with windows-latest; VS 2015 only with windows-2019
- os: windows-2019
toolset: '14.2'
- os: windows-2019
toolset: '14.1'
- os: windows-latest
toolset: '14.0'
fail-fast: false
runs-on: ${{matrix.os}}
steps:
@@ -119,33 +114,33 @@ jobs:
arch: amd64
toolset: ${{matrix.toolset}}
- name: Source checkout
uses: actions/checkout@v4
uses: actions/checkout@v2
with:
path: src
- name: Configure
run: cmake -S src -B build -G Ninja -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-msvc.cmake -DARCH:STRING=${{matrix.arch}} -DCMAKE_BUILD_TYPE=${{matrix.config}} -DDLL_EXPORT_VERSION=${{matrix.dllver}} -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1
run: cmake -S src -B build -G Ninja -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-msvc.cmake -DARCH:STRING=${{matrix.arch}} -DCMAKE_BUILD_TYPE=${{matrix.config}} -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1
- name: Build
run: cmake --build build -- -k0
- name: Generate ISOs
run: cmake --build build --target bootcd --target livecd
- name: Upload ISOs
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v2
with:
name: reactos-msvc${{matrix.toolset}}-${{matrix.arch}}-${{matrix.config}}-${{matrix.dllver}}-${{github.sha}}
name: reactos-msvc${{matrix.toolset}}-${{matrix.arch}}-${{matrix.config}}-${{github.sha}}
path: |
build/bootcd.iso
build/livecd.iso
- name: Upload debug symbols
if: ${{ matrix.config == 'Debug' }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v2
with:
name: reactos-syms-msvc${{matrix.toolset}}-${{matrix.arch}}-${{matrix.config}}-${{matrix.dllver}}-${{github.sha}}
name: reactos-syms-msvc${{matrix.toolset}}-${{matrix.arch}}-${{matrix.config}}-${{github.sha}}
path: build/msvc_pdb
build-msvc-arm:
strategy:
matrix:
toolset: ['14','14.2'] # VS 2022, 2019
toolset: ['14.2', '14.1'] # VS 2019, 2017
arch: [arm, arm64]
config: [Debug, Release]
fail-fast: false
@@ -165,7 +160,6 @@ jobs:
uses: ilammy/msvc-dev-cmd@v1
with:
arch: amd64_arm
sdk: 10.0.22621.0 # Windows SDK 10.0.26100.0 dropped support for 32-bit ARM
toolset: ${{matrix.toolset}}
- name: Activate VS cmd (arm64)
if: ${{ matrix.arch == 'arm64' }}
@@ -174,7 +168,7 @@ jobs:
arch: amd64_arm64
toolset: ${{matrix.toolset}}
- name: Source checkout
uses: actions/checkout@v4
uses: actions/checkout@v2
with:
path: src
- name: Configure
@@ -188,21 +182,17 @@ jobs:
- name: Build rosapps
if: ${{ matrix.arch == 'arm' }}
run: cmake --build build --target modules/rosapps/all
- name: Build subsystems
if: ${{ matrix.arch == 'arm' }}
run: cmake --build build --target subsystems/all
- name: Build some applications (arm64)
if: ${{ matrix.arch == 'arm64' }}
run: cmake --build build --target calc magnify mstsc notepad osk regedit taskmgr winmine wordpad base/applications/screensavers/all -- -k0
- name: Upload compiled binaries
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v2
with:
name: reactos-msvc${{matrix.toolset}}-${{matrix.arch}}-${{matrix.config}}-${{github.sha}}
path: |
build/base
build/dll/cpl
build/modules/rosapps
build/subsystems
!**/CMakeFiles
!**/cmake_install.cmake
!**/*.asm
@@ -218,12 +208,11 @@ jobs:
!**/*.tlb
- name: Upload debug symbols
if: ${{ matrix.config == 'Debug' }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v2
with:
name: reactos-syms-msvc${{matrix.toolset}}-${{matrix.arch}}-${{matrix.config}}-${{github.sha}}
path: build/msvc_pdb
# FIXME: Does not boot on toolset 14.1, 14.3+ is untested
build-clang-cl:
strategy:
matrix:
@@ -250,17 +239,17 @@ jobs:
uses: ilammy/msvc-dev-cmd@v1
with:
arch: amd64_x86
toolset: '14'
toolset: '14.1' # latest masm build known to make bootable builds
- name: Activate VS cmd (amd64)
if: ${{ matrix.arch == 'amd64' }}
uses: ilammy/msvc-dev-cmd@v1
with:
arch: amd64
toolset: '14'
toolset: '14.1' # latest masm build known to make bootable builds
- name: Add LLVM to PATH
run: echo "${env:LLVM_PATH}" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- name: Source checkout
uses: actions/checkout@v4
uses: actions/checkout@v2
with:
path: src
- name: Configure
@@ -270,7 +259,7 @@ jobs:
- name: Generate ISOs
run: cmake --build build --target bootcd --target livecd
- name: Upload ISOs
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v2
with:
name: reactos-clang-cl-${{matrix.arch}}-${{matrix.config}}-${{github.sha}}
path: |
@@ -278,33 +267,34 @@ jobs:
build/livecd.iso
- name: Upload debug symbols
if: ${{ matrix.config == 'Debug' }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v2
with:
name: reactos-syms-clang-cl-${{matrix.arch}}-${{matrix.config}}-${{github.sha}}
path: build/msvc_pdb
build-msbuild-i386:
name: MSBuild (i386)
runs-on: windows-latest
steps:
- name: Install Flex and Bison
run: |
curl -O https://svn.reactos.org/storage/vperevertkin/flexbison.7z
7z x flexbison.7z -O${{github.workspace}}\bin
echo "${{github.workspace}}\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
echo "BISON_PKGDATADIR=${{github.workspace}}\bin\share\bison" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
echo "M4=${{github.workspace}}\bin\m4.exe" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: Add CL to PATH
uses: ilammy/msvc-dev-cmd@v1
with:
arch: amd64_x86
- uses: actions/checkout@v4
with:
path: src
- name: Configure
run: |
mkdir build
cd build
cmake -G "Visual Studio 17 2022" -A Win32 -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-msvc.cmake -DARCH:STRING=i386 -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1 ${{github.workspace}}\src
- name: Build
run: cmake --build ${{github.workspace}}\build --target bootcd --target livecd
# Disable MSBuild for the moment being until a proper fix is provided -- see CORE-18911
# build-msbuild-i386:
# name: MSBuild (i386)
# runs-on: windows-2019
# steps:
# - name: Install Flex and Bison
# run: |
# curl -O https://svn.reactos.org/storage/vperevertkin/flexbison.7z
# 7z x flexbison.7z -O${{github.workspace}}\bin
# echo "${{github.workspace}}\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
# echo "BISON_PKGDATADIR=${{github.workspace}}\bin\share\bison" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
# echo "M4=${{github.workspace}}\bin\m4.exe" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
# - name: Add CL to PATH
# uses: ilammy/msvc-dev-cmd@v1
# with:
# arch: amd64_x86
# - uses: actions/checkout@v2
# with:
# path: src
# - name: Configure
# run: |
# mkdir build
# cd build
# cmake -G "Visual Studio 16 2019" -A Win32 -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-msvc.cmake -DARCH:STRING=i386 -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1 ${{github.workspace}}\src
# - name: Build
# run: cmake --build ${{github.workspace}}\build --target bootcd --target livecd

View File

@@ -6,6 +6,6 @@ jobs:
triage:
runs-on: ubuntu-latest
steps:
- uses: actions/labeler@v5
- uses: actions/labeler@v3
with:
sync-labels: true
repo-token: "${{ secrets.GITHUB_TOKEN }}"

View File

@@ -14,10 +14,11 @@ jobs:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: actions/stale@v9
- uses: actions/stale@v5
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 120

View File

@@ -68,9 +68,6 @@ include(sdk/cmake/config.cmake)
# Compiler flags handling
include(sdk/cmake/compilerflags.cmake)
# set_wine_module function
include(sdk/cmake/set_wine_module.cmake)
add_definitions(
-D__REACTOS__
# swprintf without count argument is used in most of the codebase
@@ -143,10 +140,6 @@ if(NOT CMAKE_CROSSCOMPILING)
add_definitions(/D_X86_ /D__i386__ /DWIN32 /D_WINDOWS)
elseif(ARCH STREQUAL "amd64")
add_definitions(-D_AMD64_ -D__x86_64__ /DWIN32 -D_WINDOWS)
elseif(ARCH STREQUAL "arm")
add_definitions(-D__arm__)
elseif(ARCH STREQUAL "arm64")
add_definitions(-D__aarch64__)
endif()
if(MSVC_VERSION GREATER 1699)
add_definitions(/D_ALLOW_KEYWORD_MACROS)
@@ -160,10 +153,7 @@ if(NOT CMAKE_CROSSCOMPILING)
set(NATIVE_TARGETS asmpp bin2c widl gendib cabman fatten hpp isohybrid mkhive mkisofs obj2bin spec2def geninc mkshelllink utf16le xml2sdb)
if(NOT MSVC)
list(APPEND NATIVE_TARGETS pefixup)
if (ARCH STREQUAL "i386")
list(APPEND NATIVE_TARGETS rsym)
endif()
list(APPEND NATIVE_TARGETS rsym pefixup)
endif()
install(TARGETS ${NATIVE_TARGETS})
@@ -242,10 +232,7 @@ Enable this if the module uses typeid or dynamic_cast. You will probably need to
-D_WIN32_WINNT=0x502
-D_WIN32_WINDOWS=0x502
-D_SETUPAPI_VER=0x502
-DMINGW_HAS_SECURE_API=1
-DD3D_UMD_INTERFACE_VERSION=0x000C # Vista
-DDXGKDDI_INTERFACE_VERSION=0x1052 # Vista
-DDLL_EXPORT_VERSION=${DLL_EXPORT_VERSION})
-DMINGW_HAS_SECURE_API=1)
# Arch Options
if(ARCH STREQUAL "i386")
@@ -262,7 +249,7 @@ Enable this if the module uses typeid or dynamic_cast. You will probably need to
elseif(ARCH STREQUAL "amd64")
# clang-cl defines this one for itself
if (NOT (MSVC AND CMAKE_C_COMPILER_ID STREQUAL "Clang"))
add_compile_definitions(_M_AMD64 _M_X64)
add_compile_definitions(_M_AMD64)
endif()
add_definitions(-D_AMD64_ -D__x86_64__ -D_WIN64)
elseif(ARCH STREQUAL "arm")
@@ -322,7 +309,6 @@ Enable this if the module uses typeid or dynamic_cast. You will probably need to
sdk/include
sdk/include/psdk
sdk/include/dxsdk
sdk/include/winrt
${REACTOS_BINARY_DIR}/sdk/include
${REACTOS_BINARY_DIR}/sdk/include/psdk
${REACTOS_BINARY_DIR}/sdk/include/dxsdk
@@ -330,12 +316,10 @@ Enable this if the module uses typeid or dynamic_cast. You will probably need to
${REACTOS_BINARY_DIR}/sdk/include/reactos
${REACTOS_BINARY_DIR}/sdk/include/reactos/mc
sdk/include/crt
sdk/include/vcruntime
sdk/include/ddk
sdk/include/ndk
sdk/include/reactos
sdk/include/reactos/libs
sdk/lib/pseh/include)
sdk/include/reactos/libs)
if(ARCH STREQUAL "arm")
include_directories(${REACTOS_SOURCE_DIR}/sdk/include/reactos/arm)
@@ -347,15 +331,18 @@ Enable this if the module uses typeid or dynamic_cast. You will probably need to
add_subdirectory(sdk/include/xdk)
add_subdirectory(sdk/include/psdk)
add_subdirectory(sdk/include/dxsdk)
add_subdirectory(sdk/include/reactos)
add_subdirectory(sdk/include/reactos/wine)
add_subdirectory(sdk/include/reactos/mc)
add_subdirectory(sdk/include/asm)
if(ARCH MATCHES "64$")
include(sdk/cmake/baseaddress64.cmake)
elseif(NO_ROSSYM)
if(NO_ROSSYM)
include(sdk/cmake/baseaddress_dwarf.cmake)
elseif(MSVC)
include(sdk/cmake/baseaddress_msvc.cmake)
if (ARCH STREQUAL "amd64")
include(sdk/cmake/baseaddress_msvc_x64.cmake)
else()
include(sdk/cmake/baseaddress_msvc.cmake)
endif()
else()
include(sdk/cmake/baseaddress.cmake)
endif()

View File

@@ -96,7 +96,7 @@
# Apisets
# M: learn-more, learn_more, Mark Jansen
# S: Maintained
/sdk/lib/apisets/ @learn-more
/dll/apisets/ @learn-more
# Application Compatibility subystem
# M: learn-more, learn_more, Mark Jansen
@@ -116,20 +116,6 @@
# S: Abandoned
/ntoskrnl/cache/
# Client/Server Runtime Subsystem
# M: HBelusca, Hermès Bélusca-Maïto
# S: Maintained
/sdk/include/reactos/subsys/csr/ @HBelusca
/subsystems/csr/ @HBelusca
/win32ss/user/ntuser/csr.* @HBelusca
# Clipboard Viewer
# M: HBelusca, Hermès Bélusca-Maïto
# R: Mondgestein, Ricardo Hanke
# S: Maintained
/base/applications/clipbrd/ @HBelusca
/base/applications/cmdutils/clip/ @HBelusca
# CMake Build Scripts
# M:
# R: learn-more, learn_more, Mark Jansen
@@ -138,58 +124,6 @@
/sdk/cmake/
*.cmake
# Command-line Utilities
# M: HBelusca, Hermès Bélusca-Maïto
# S: Maintained
/base/applications/cmdutils/attrib/ @HBelusca
/base/applications/cmdutils/chcp/ @HBelusca
/base/applications/cmdutils/doskey/ @HBelusca
/base/applications/cmdutils/eventcreate/ @HBelusca
/base/applications/cmdutils/find/ @HBelusca
/base/applications/cmdutils/help/ @HBelusca
/base/applications/cmdutils/mode/ @HBelusca
/base/applications/cmdutils/more/ @HBelusca
/base/applications/cmdutils/taskkill/ @HBelusca
/base/applications/cmdutils/timeout/ @HBelusca
/sdk/lib/conutils/ @HBelusca
# Command-line Prompt Interpreter
# M: HBelusca, Hermès Bélusca-Maïto
# S: Maintained
/base/shell/cmd/ @HBelusca
# Console Client/Server Subsystem, Terminal Emulator / Text-Mode
# M: HBelusca, Hermès Bélusca-Maïto
# S: Maintained
/dll/cpl/console/ @HBelusca
/dll/win32/kernel32/client/console/ @HBelusca
/dll/win32/kernel32/include/console.h @HBelusca
/drivers/base/condrv/ @HBelusca
/drivers/setup/blue/ @HBelusca
/modules/rostests/winetests/kernel32/console.c @HBelusca
/sdk/include/psdk/wincon.h @HBelusca
/sdk/include/reactos/wincon_undoc.h @HBelusca
/sdk/include/reactos/drivers/condrv/ @HBelusca
/sdk/include/reactos/drivers/blue/ @HBelusca
/sdk/include/reactos/subsys/win/conmsg.h @HBelusca
/sdk/include/reactos/subsys/win/console.h @HBelusca
/win32ss/user/ntuser/console.c @HBelusca
/win32ss/user/winsrv/concfg/ @HBelusca
/win32ss/user/winsrv/consrv/ @HBelusca
# Event Log Subsystem
# M: HBelusca, Hermès Bélusca-Maïto
# M: EricKohl, ekohl, Eric Kohl
# S: Maintained
/base/services/eventlog/ @EricKohl @HBelusca
/dll/win32/advapi32/service/eventlog.c @EricKohl @HBelusca
/sdk/lib/evtlib/ @HBelusca
# Event Log Viewer
# M: HBelusca, Hermès Bélusca-Maïto
# S: Maintained
/base/applications/mscutils/eventvwr/ @HBelusca
# File Patch API
# M: learn-more, learn_more, Mark Jansen
# S: Maintained
@@ -205,7 +139,7 @@
# Filesystem Filter Manager
# M: gedmurphy, Ged, Ged Murphy
# S: Maintained
/drivers/filters/fltmgr/ @gedmurphy
/drivers/filters/fltmgr/ @gedmurphy
# File Systems Run Time Library
# M: HeisSpiter, Heis Spiter, Pierre Schweitzer
@@ -216,13 +150,11 @@
/sdk/lib/drivers/ntoskrnl_vista/fsrtl.c @HeisSpiter
# Freeloader
# M: HBelusca, Hermès Bélusca-Maïto
# M:
# R: tkreuzer, ThePhysicist, Timo Kreuzer
# R: Extravert-ir, extravert34, Victor Perevertkin
# S: Maintained
/boot/freeldr/freeldr/ @HBelusca @tkreuzer @Extravert-ir
/boot/rtl/ @HBelusca
/ntoskrnl/config/cmboot.c @HBelusca
/boot/freeldr/freeldr/ @tkreuzer @Extravert-ir
# HAL / APIC
# M: tkreuzer, ThePhysicist, Timo Kreuzer
@@ -255,12 +187,6 @@
# S: Maintained
/drivers/storage/mountmgr/ @HeisSpiter
# MSConfig
# M: HBelusca, Hermès Bélusca-Maïto
# S: Maintained
/base/applications/msconfig/ @HBelusca
/base/applications/msconfig_new/ @HBelusca
# Network Drivers
# M:
# R: ThFabba, Thomas Faber
@@ -289,29 +215,11 @@
# S: Maintained
/dll/ntdll/ @HeisSpiter @learn-more @ThFabba @tkreuzer
# NT Virtual DOS Machine
# M: HBelusca, Hermès Bélusca-Maïto
# R: reactos573, aandrejevic, Aleksandar Andrejevic
# S: Maintained
/dll/win32/kernel32/client/vdm.c @reactos573 @HBelusca
/dll/win32/kernel32/include/vdm.h @reactos573 @HBelusca
/sdk/include/reactos/subsys/win/vdm.h @reactos573 @HBelusca
/ntoskrnl/vdm/ @reactos573 @HBelusca
/sdk/include/reactos/libs/fast486/ @reactos573 @HBelusca
/sdk/lib/fast486/ @reactos573 @HBelusca
/subsystems/mvdm/ @reactos573 @HBelusca
/subsystems/win/basesrv/vdm.* @reactos573 @HBelusca
# Printing
# M: ColinFinck, Colin Finck
# S: Maintained
/win32ss/printing/ @ColinFinck
# Program Manager
# M: HBelusca, Hermès Bélusca-Maïto
# S: Maintained
/base/shell/progman/ @HBelusca
# ReactOS API Tests
# M:
# R: learn-more, learn_more, Mark Jansen
@@ -324,25 +232,7 @@
# S: Maintained
/modules/rostests/kmtests/ @ThFabba
# ReactOS Setup
# M: HBelusca, Hermès Bélusca-Maïto
# R: EricKohl, ekohl, Eric Kohl
# S: Maintained
/base/setup/ @HBelusca
/base/system/winlogon/setup.c @EricKohl
/dll/win32/setupapi/
/dll/win32/syssetup/ @EricKohl
/drivers/setup/ @HBelusca
/sdk/include/reactos/libs/syssetup/ @EricKohl
# ReactOS miscellaneous tools
# M:
# R: HBelusca, Hermès Bélusca-Maïto
# S: Maintained
/modules/rosapps/applications/cmdutils/cat/ @HBelusca
/modules/rosapps/applications/sysutils/utils/partinfo/ @HBelusca
# ReactOS internals tools
# ROS internals tools
# M: HeisSpiter, Heis Spiter, Pierre Schweitzer
# S: Maintained
/modules/rosapps/applications/rosinternals/ @HeisSpiter
@@ -362,26 +252,15 @@
/modules/rostests/kmtests/ntos_se/ @GeoB99
/ntoskrnl/se/ @GeoB99
# Session Manager Subsystem
# M: HBelusca, Hermès Bélusca-Maïto
# S: Maintained
/base/system/smss/ @HBelusca
/sdk/include/reactos/subsys/sm/ @HBelusca
/sdk/lib/smlib/ @HBelusca
# Shell
# M:
# R: learn-more, learn_more, Mark Jansen
# R: yagoulas, Giannis Adamopoulos
# R: HBelusca, Hermès Bélusca-Maïto
# S: Maintained
/base/shell/explorer/ @learn-more @yagoulas
/base/shell/rshell/ @learn-more @yagoulas
/dll/win32/browseui/ @learn-more @yagoulas
/dll/win32/shell32/ @learn-more @yagoulas
/dll/win32/shell32/CShellLink.* @HBelusca
/dll/win32/shell32/CUserNotification.* @HBelusca
/dll/win32/shell32/systray.cpp @HBelusca
# Shell Extensions
# M:
@@ -430,34 +309,10 @@
/modules/rosapps/applications/cmdutils/vfdcmd/ @HeisSpiter
/modules/rosapps/drivers/vfd/ @HeisSpiter
# Win32 Subsystem
# M:
# R: HBelusca, Hermès Bélusca-Maïto
# S: Maintained
/sdk/include/reactos/winbase_undoc.h @HBelusca
/subsystems/win/basesrv/
/win32ss/user/winsrv/
/win32ss/user/winsrv/usersrv/harderror.c @HBelusca
# Win32 Subsystem - File functions
# Win32 file functions
# M: HeisSpiter, Heis Spiter, Pierre Schweitzer
# R: HBelusca, Hermès Bélusca-Maïto
# S: Maintained
/dll/win32/kernel32/client/file/ @HeisSpiter
/dll/win32/kernel32/client/file/find.c @HBelusca
# Win32 Subsystem - Shutdown
# M: HBelusca, Hermès Bélusca-Maïto
# R: EricKohl, ekohl, Eric Kohl
# S: Maintained
/base/system/winlogon/sas.c @EricKohl @HBelusca
/base/system/winlogon/shutdown.c @EricKohl @HBelusca
/dll/win32/advapi32/misc/shutdown.c @EricKohl
/dll/win32/msgina/shutdown.c @EricKohl @HBelusca
/win32ss/user/ntuser/shutdown.* @HBelusca
/win32ss/user/user32/misc/exit.c @HBelusca
/win32ss/user/winsrv/consrv/shutdown.c @HBelusca
/win32ss/user/winsrv/usersrv/shutdown.c @HBelusca
/dll/win32/kernel32/client/file/ @HeisSpiter
# Windows Network File Systems functions
# M: HeisSpiter, Heis Spiter, Pierre Schweitzer
@@ -483,11 +338,6 @@
amd64/ @tkreuzer
/boot/freeldr/freeldr/arch/realmode/amd64.S @tkreuzer
# Wine DirectX
# M: DarkFire01, The_DarkFire_, Justin Miller
# S: Upstream
/dll/directx/wine/ @DarkFire01
# Translations
# This is the list of translation teams in ReactOS GitHub organization.
# If you want to be part of one - hit us at https://chat.reactos.org/

View File

@@ -1,356 +0,0 @@
# Coding Style
This article describes general coding style guidelines, which should be used for new ReactOS code. These guidelines apply exclusively to C and C++ source files. The Members of ReactOS agreed on this document in the October 2013 meeting.
As much existing ReactOS code as possible should be converted to this style unless there are reasons against doing this (like if the code is going to be rewritten from scratch in the near future). See [Notes on reformatting existing code](#notes-on-reformatting-existing-code) for more details.
Code synchronized with other sources (like Wine) must not be rewritten. [3rd Party Files.txt](https://github.com/reactos/reactos/blob/master/media/doc/3rd%20Party%20Files.txt) and [WINESYNC.txt](https://github.com/reactos/reactos/blob/master/media/doc/WINESYNC.txt) files can be used for tracking synchronized files.
## File Structure
1. Every ReactOS source code file should include a file header like this:
```
/*
* PROJECT: ReactOS Kernel
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
* PURPOSE: Does cool things like Memory Management
* COPYRIGHT: Copyright 2017 Arno Nymous <abc@mailaddress.com>
* Copyright 2017 Mike Blablabla <mike@blabla.com>
*/
```
Please use SPDX license identifiers available at https://spdx.org/licenses.
This makes our source file parseable by licensing tools!
You should add yourself to the `COPYRIGHT` section of a file if you did a major contribution to it and could take responsibility for the whole file or a part of it. Not more than 3 people shall be in that list for each file.
`FILE` line of the old header should be removed.
2. [Doxygen](https://doxygen.reactos.org/) documentation generator is used for ReactOS codebase, so use a proper header for functions, see [API Documentation](https://reactos.org/wiki/Documentation_Guidelines#API_Documentation) for details.
## Indentation and line width
1. Line width must be at most **100 characters**.
2. Do not add a space or tab at the end of any line.
3. Indent with **4 spaces**, don't use tabs!
4. Indent both a case label and the case statement of a switch statement.
**Right:**
```c
switch (Condition)
{
case 1:
DoSomething();
break;
case 2:
{
DoMany();
ManyMore();
OtherThings();
break;
}
}
```
**Wrong:**
```c
switch(Condition)
{
case 1:
DoSomething();
break;
case 2:
DoMany();
ManyMore();
OtherThings();
break;
}
```
5. When a function call does not fit onto a line, align arguments like this:
```c
FunctionCall(arg1,
arg2,
arg3);
```
6. Function headers should have this format (preserving the order as in the example):
```c
static // scope identifier
CODE_SEG("PAGE") // section placement
// other attributes
BOOLEAN // return type
FASTCALL // calling convention
IsOdd(
_In_ UINT32 Number);
```
## Spacing
1. Do not use spaces around unary operators.
**Right:** `i++;`
**Wrong:** `i ++;`
2. Place spaces around binary and ternary operators.
**Right:** `a = b + c;`
**Wrong:** `a=b+c;`
3. Do not place spaces before comma and semicolon.
**Right:**
```c
for (int i = 0; i < 5; i++)
DoSomething();
func1(a, b);
```
**Wrong:**
```c
for (int i = 0; i < 5 ; i++)
DoSomething();
func1(a , b) ;
```
4. Place spaces between control statements and their parentheses.
**Right:**
```c
if (Condition)
DoSomething();
```
**Wrong:**
```c
if(Condition)
DoSomething();
```
5. Do not place spaces between a function and its parentheses, or between a parenthesis and its content.
**Right:**
```c
func(a, b);
```
**Wrong:**
```c
func (a, b);
func( a, b );
```
## Line breaking
1. Each statement should get its own line.
**Right:**
```c
x++;
y++;
if (Condition)
DoSomething();
```
**Wrong:**
```c
x++; y++;
if (Condition) DoSomething();
```
## Braces
1. Always put braces (`{` and `}`) on their own lines.
2. One-line control clauses may use braces, but this is not a requirement. An exception are one-line control clauses including additional comments.
**Right:**
```c
if (Condition)
DoSomething();
if (Condition)
{
DoSomething();
}
if (Condition)
{
// This is a comment
DoSomething();
}
if (A_Very || (Very && Long || Condition) &&
On_Many && Lines)
{
DoSomething();
}
if (Condition)
DoSomething();
else
DoSomethingElse();
if (Condition)
{
DoSomething();
}
else
{
DoSomethingElse();
YetAnother();
}
```
**Wrong:**
```c
if (Condition) {
DoSomething();
}
if (Condition)
// This is a comment
DoSomething();
if (A_Very || (Very && Long || Condition) &&
On_Many && Lines)
DoSomething();
if (Condition)
DoSomething();
else {
DoSomethingElse();
YetAnother();
}
```
## Control structures
1. Don't use inverse logic in control clauses.
**Right:** `if (i == 1)`
**Wrong:** `if (1 == i)`
2. Avoid too many levels of cascaded control structures. Prefer a "linear style" over a "tree style". Use `goto` when it helps to make the code cleaner (e.g. for cleanup paths).
**Right:**
```c
if (!func1())
return;
i = func2();
if (i == 0)
return;
j = func3();
if (j == 1)
return;
...
```
**Wrong:**
```c
if (func1())
{
i = func2();
if (func2())
{
j = func3();
if (func3())
{
...
}
}
}
```
## Naming
1. Capitalize names of variables and functions. Hungarian Notation may be used when developing for Win32, but it is not required. If you don't use it, the first letter of a name must be a capital too (no lowerCamelCase). Do not use underscores as separators either.
**Right:**
```c
PLIST_ENTRY FirstEntry;
VOID NTAPI IopDeleteIoCompletion(PVOID ObjectBody);
PWSTR pwszTest;
```
**Wrong:**
```c
PLIST_ENTRY first_entry;
VOID NTAPI iop_delete_io_completion(PVOID objectBody);
PWSTR pwsztest;
```
2. Avoid abbreviating function and variable names, use descriptive verbs where possible.
3. Precede boolean values with meaningful verbs like "is" and "did" if possible and if it fits the usage.
**Right:**
```c
BOOLEAN IsValid;
BOOLEAN DidSendData;
```
**Wrong:**
```c
BOOLEAN Valid;
BOOLEAN SentData;
```
## Commenting
1. Avoid line-wasting comments, which could fit into a single line.
**Right:**
```c
// This is a one-line comment
/* This is a C-style comment */
// This is a comment over multiple lines.
// We don't define any strict rules for it.
```
**Wrong:**
```c
//
// This comment wastes two lines
//
```
## Null, false and 0
1. The null pointer should be written as `NULL`. In the rare case that your environment recommends a different null pointer (e.g. C++11 `nullptr`), you may use this one of course. Just don't use the value `0`.
2. Win32/NT Boolean values should be written as `TRUE` and `FALSE`. In the rare case that you use C/C++ `bool` variables, you should write them as `true` and `false`.
3. When you need to terminate ANSI or OEM string, or check for its terminator, use `ANSI_NULL`. If the string is Unicode or Wide string, use `UNICODE_NULL`.
## Notes on reformatting existing code
- Never totally reformat a file and put a code change into it. Do this in separate commits.
- If a commit only consists of formatting changes, say this clearly in the commit message by preceding it with *[FORMATTING]*.
## Other points
- Do not use `LARGE_INTEGER`/`ULARGE_INTEGER` unless needed for using APIs. Use `INT64`/`UINT64` instead
- Use `#pragma once` instead of guard defines in headers
- Don't specify a calling convention for a function unless required (usually for APIs or exported symbols)
## Using an automatic code style tool
TO BE ADDED BY User:Zefklop
## Points deliberately left out
Additional ideas were suggested during the discussion of this document, but a consensus couldn't be reached on them. Therefore we refrain from enforcing any rules on these points:
- TO BE ADDED BY User:Hbelusca
## See also
- [Kernel Coding Style](https://reactos.org/wiki/Kernel_Coding_Style)
- [GNU Indent](https://reactos.org/wiki/GNU_Indent)

View File

@@ -63,19 +63,13 @@ Our commit style is defined in a __[commit template]__. Use it as a reference or
### Rules and Recommendations
- *Use your __real name__ and __real email__.* We do not accept anonymous code contributions!
- Every commit that changes code or translations should have author's full legal name (in latin letters, diacritics allowed).
- It's recommended to have the same full name set in GitHub profile (in the [Name field here][GitHub Profile Settings]) that matches one specified in commits.
- There is an exception for media changes, such as changes of art (wallpapers, themes, icons, sounds) and out-of-code documentation.
- In these specific cases it's allowed to use a nickname or alias as author's name, and it's recommended to have the same name set in GitHub profile (in the [Name field here][GitHub Profile Settings]) matching one specified in commits.
- In any case the author must use a real e-mail address, this includes git commits (`user.email` setting) and GitHub [e-mail settings][GitHub Email Settings] - the checkbox "Keep my email addresses private" must be unchecked there.
- In order to *keep your privacy*, select appropriate "Primary email address" that will be applied to your commits in GitHub [e-mail settings][GitHub Email Settings].
- *Use your __real name__ and __real email__.* We do not accept anonymous contributions!
- *Ensure your contribution is properly described.* Include the relevant issue number if applicable.
- *Put only related changes.* It will make reviewing easier as the reviewer needs to recall less information about the existing source code that is changed.
- *Search for similar pull requests/patches before submitting.* It may be that a similar pull request or issue was opened previously. Comment and review on that one instead.
- *Keep your contribution small and focused on the topic.* It can be tempting to fix existing issues as you come across them while reading the source code. Resist the temptation and put in a note in the source code instead, or (even better) put the issue in the issue tracking system.
- *Respect our __[Coding Style]__ and __[Programming Guidelines]__.*
- *Do not be afraid to ask questions.* Ask our developers in the [chat].
- *Do not be afraid to ask questions.* Ask our developers on JIRA or [IRC] channel.
To amend your commit with your name and e-mail (in any case you've forgot to set your name/e-mail) please take a look at this [guide](https://reactos.org/wiki/ReactOS_Git_For_Dummies#Amending_your_commit_with_name.2FE-mail). To set your name/e-mail globally for future commits that you push, [read this](https://reactos.org/wiki/ReactOS_Git_For_Dummies#Assign_commits_with_your_name_.26_E-mail_automatically).
@@ -85,7 +79,7 @@ Finding a good project to start with can be a challenge, because when starting o
- Find a test that fails, and try to make it succeed: <https://reactos.org/testman/>
- Look around in JIRA, and if you have problems finding nice projects to start with, there is a label for this: <https://jira.reactos.org/issues/?jql=labels%20%3D%20starter-project>
- Ask for help in the [chat]
- Ask for help on [IRC]
- Additionally, there are some tests that cause crashes/hangs, but these might be slightly harder: <https://jira.reactos.org/browse/ROSTESTS-125>
[clean room reverse engineering]: https://en.wikipedia.org/wiki/Clean_room_design
@@ -96,14 +90,12 @@ Finding a good project to start with can be a challenge, because when starting o
[migration to GitHub]: https://reactos.org/project-news/reactos-repository-migrated-github/
[humans are terrible at tracking large amount of information]: https://www.eurekalert.org/pub_releases/2005-03/aps-hmc030805.php
[Pull requests]: https://help.github.com/articles/about-pull-requests/
[GitHub Profile Settings]: https://github.com/settings/profile
[GitHub Email Settings]: https://github.com/settings/emails
[tips for reviewing patches]: https://www.drupal.org/patch/review
[missing functionality]: https://reactos.org/wiki/Missing_ReactOS_Functionality
[patch]: https://git-scm.com/docs/git-format-patch
[Submitting Patches]: https://reactos.org/wiki/Submitting_Patches
[Coding Style]: https://reactos.org/wiki/Coding_Style
[chat]: https://reactos.org/wiki/Mattermost
[IRC]: https://reactos.org/wiki/Connect_to_the_ReactOS_IRC_Channels
[Programming Guidelines]: https://reactos.org/wiki/Programming_Guidelines
[3rd Party Files.txt]: /media/doc/3rd_Party_Files.txt
[README.WINE]: /media/doc/README.WINE

View File

@@ -14,17 +14,3 @@ In addition, in order to avoid coming off as rude to helpful contributors, pleas
- Asking the contributor to do unrelated work
- Closing without providing a reason
- Merging with the intention to rewrite that code soon after
Before merging a PR, make sure it follows the [contributing rules](CONTRIBUTING.md#rules-and-recommendations), but more importantly:
- Make sure the author has specified a real e-mail in all PR commits
- If PR contains code or translations, make sure the author has not specified a nickname or alias, but a full legal name in all PR commits
- If PR contains media (wallpapers, themes, icons, sounds) or out-of-code documentation, make sure the author has specified the name or alias in all PR commits
- If PR contains mixed code with media changes, handle it as PR with code
- Important notes before using "Squash and merge" strategy on a PR:
- Make sure the author's name in GitHub profile matches one in commits. If this is not the case, ask the author to set it accordingly.
- If the author does not want to set the name in GitHub profile:
- "no squash merge" label needs to be added to a PR.
- Make sure every commit message is formatted correctly as in [.gitmessage](https://github.com/reactos/reactos/blob/master/.gitmessage).
- Finally in this case a PR has to be merged either using "Rebase and merge" strategy or manually.
- By pressing "Squash and merge" button in a PR you can make sure the author does not use no-reply e-mail -
under the commit message there will be a text label saying: `This commit will be authored by <address@email.com>`

View File

@@ -7,18 +7,24 @@
---
<p align=center>
<a href="https://reactos.org/project-news/reactos-0415-released/">
<img alt="ReactOS 0.4.15 Release" src="https://img.shields.io/badge/release-0.4.15-0688CB.svg"></a>
<a href="https://reactos.org/project-news/reactos-0414-released/">
<img alt="ReactOS 0.4.14 Release" src="https://img.shields.io/badge/release-0.4.14-0688CB.svg">
</a>
<a href="https://reactos.org/download/">
<img alt="Download ReactOS" src="https://img.shields.io/badge/download-latest-0688CB.svg"></a>
<img alt="Download ReactOS" src="https://img.shields.io/badge/download-latest-0688CB.svg">
</a>
<a href="https://sourceforge.net/projects/reactos/">
<img alt="SourceForge Download" src="https://img.shields.io/sourceforge/dm/reactos.svg?colorB=0688CB"></a>
<img alt="SourceForge Download" src="https://img.shields.io/sourceforge/dm/reactos.svg?colorB=0688CB">
</a>
<a href="https://github.com/reactos/reactos/blob/master/COPYING">
<img alt="License" src="https://img.shields.io/badge/license-GNU_GPL_2.0-0688CB.svg"></a>
<img alt="License" src="https://img.shields.io/badge/license-GNU_GPL_2.0-0688CB.svg">
</a>
<a href="https://reactos.org/donate/">
<img alt="Donate" src="https://img.shields.io/badge/%24-donate-E44E4A.svg"></a>
<img alt="Donate" src="https://img.shields.io/badge/%24-donate-E44E4A.svg">
</a>
<a href="https://twitter.com/reactos">
<img alt="Follow on Twitter" src="https://img.shields.io/twitter/follow/reactos.svg?style=social&label=Follow%20%40reactos"></a>
<img alt="Follow on Twitter" src="https://img.shields.io/twitter/follow/reactos.svg?style=social&label=Follow%20%40reactos">
</a>
</p>
## Quick Links
@@ -50,7 +56,7 @@ The code of ReactOS is licensed under [GNU GPL 2.0](https://github.com/reactos/r
To build the system it is strongly advised to use the _ReactOS Build Environment (RosBE)._
Up-to-date versions for Windows and for Unix/GNU-Linux are available from our download page at: ["Build Environment"](https://reactos.org/wiki/Build_Environment).
Alternatively one can use Microsoft Visual C++ (MSVC) version 2019+. Building with MSVC is covered here: ["Visual Studio or Microsoft Visual C++"](https://reactos.org/wiki/CMake#Visual_Studio_or_Microsoft_Visual_C.2B.2B).
Alternatively one can use Microsoft Visual C++ (MSVC) version 2015+. Building with MSVC is covered here: ["Visual Studio or Microsoft Visual C++"](https://reactos.org/wiki/CMake#Visual_Studio_or_Microsoft_Visual_C.2B.2B).
See ["Building ReactOS"](https://reactos.org/wiki/Building_ReactOS) article for more details.
@@ -121,10 +127,10 @@ The main development is done on [GitHub](https://github.com/reactos/reactos). We
There is also an obsolete [SVN archive repository](https://svn.reactos.org/reactos/) that is kept for historical purposes.
[coverity.badge]: https://scan.coverity.com/projects/205/badge.svg?flat=1
[rosbewin.badge]: https://img.shields.io/badge/RosBE_Windows-2.2.1-0688CB.svg
[rosbeunix.badge]: https://img.shields.io/badge/RosBE_Unix-2.2.1-0688CB.svg
[rosbewin.badge]: https://img.shields.io/badge/RosBE_Windows-2.2.0-0688CB.svg
[rosbeunix.badge]: https://img.shields.io/badge/RosBE_Unix-2.2-0688CB.svg
[prwelcome.badge]: https://img.shields.io/badge/PR-welcome-0688CB.svg
[coverity.link]: https://scan.coverity.com/projects/205
[rosbewin.link]: https://sourceforge.net/projects/reactos/files/RosBE-Windows/i386/2.2.1/
[rosbeunix.link]: https://sourceforge.net/projects/reactos/files/RosBE-Unix/2.2.1/
[rosbewin.link]: https://sourceforge.net/projects/reactos/files/RosBE-Windows/i386/2.2.0/
[rosbeunix.link]: https://sourceforge.net/projects/reactos/files/RosBE-Unix/2.2/

View File

@@ -1,6 +1,5 @@
add_subdirectory(applications)
add_subdirectory(ctf)
add_subdirectory(services)
add_subdirectory(setup)
add_subdirectory(shell)

View File

@@ -3,7 +3,6 @@ add_subdirectory(atactl)
add_subdirectory(cacls)
add_subdirectory(calc)
add_subdirectory(charmap)
add_subdirectory(cleanmgr)
add_subdirectory(clipbrd)
add_subdirectory(cmdutils)
add_subdirectory(control)

View File

@@ -35,4 +35,4 @@ typedef struct _SENDCMDINPARAMS {
ULONG dwReserved[4];
UCHAR bBuffer[1];
} SENDCMDINPARAMS, *PSENDCMDINPARAMS, *LPSENDCMDINPARAMS;
#include <poppack.h>
#include <poppack.h>

View File

@@ -1,11 +1,4 @@
/*
* PROJECT: ReactOS CACLS
* LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
* PURPOSE: Romanian resource file
* TRANSLATORS: Copyright 2011-2018 Ștefan Fulea <stefan.fulea@mail.com>
* Copyright 2024 Andrei Miloiu <miloiuandrei@gmail.com>
*/
/* Translator: Ștefan Fulea (stefan dot fulea at mail dot com) */
LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
STRINGTABLE
@@ -41,7 +34,7 @@ Abrevieri:\n\
OI - Moștenire obiecte.\n\
ACE moștenită de fișiere.\n\
IO - Moștenire simplă.\n\
ACE neaplicată folderelor/fișierelor curente.\n"
ACE neaplicată dosarelor/fișierelor curente.\n"
IDS_ABBR_CI "(CI)"
IDS_ABBR_OI "(OI)"
IDS_ABBR_IO "(IO)"

View File

@@ -1,4 +1,5 @@
#pragma once
#ifndef __CALC_H__
#define __CALC_H__
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
@@ -15,7 +16,6 @@
#include <htmlhelp.h>
#endif
#include <limits.h>
#include <strsafe.h>
/* RESOURCES */
#include "resource.h"
@@ -280,3 +280,5 @@ INT_PTR CALLBACK AboutDlgProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp);
void ConvExecute(HWND hWnd);
void ConvAdjust(HWND hWnd, int n_cat);
void ConvInit(HWND hWnd);
#endif /* __CALC_H__ */

View File

@@ -181,7 +181,7 @@ static const conv_t conv_CURRENCY[] = {
DECLARE_CONV_UNIT(CURRENCY, LITHUANIAN_LITAS, "$/3,45280", "$*3,45280")
DECLARE_CONV_UNIT(CURRENCY, LUXEMBOURG_FRANC, "$/40,3399", "$*40,3399")
DECLARE_CONV_UNIT(CURRENCY, MALTESE_LIRA, "$/0.42930", "$*0.42930")
DECLARE_CONV_UNIT(CURRENCY, PORTUGUESE_ESCUDO, "$/200,482", "$*200,482")
DECLARE_CONV_UNIT(CURRENCY, PORTOGUESE_ESCUDO, "$/200,482", "$*200,482")
DECLARE_CONV_UNIT(CURRENCY, SLOVAK_KORUNA, "$/30,126", "$*30,126")
DECLARE_CONV_UNIT(CURRENCY, SLOVENIAN_TOLAR, "$/239,640", "$*239,640")
DECLARE_CONV_UNIT(CURRENCY, SPANISH_PESETA, "$/166,386", "$*166,386")

View File

@@ -1,22 +1,24 @@
/* Превод на Български/ Bulgarian translation
* https://reactos.org/wiki/Bulgarian_translation
* FILE: base/applications/calc/lang/bg-BG.rc
* Недовършен / Incomplete
*/
LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT
/* Dialogs */
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Калкулатор"
CAPTION "Калкулатор за ReactOS"
MENU IDR_MENU_SCIENTIFIC_1
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
AUTORADIOBUTTON "Шстн", IDC_RADIO_HEX, 8, 21, 30, 10
AUTORADIOBUTTON "Дстн", IDC_RADIO_DEC, 41, 21, 30, 10
AUTORADIOBUTTON "Осм", IDC_RADIO_OCT, 74, 21, 30, 10
AUTORADIOBUTTON "Двоич", IDC_RADIO_BIN, 107, 21, 30, 10
CONTROL "Шстн", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
CONTROL "Дстн", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
CONTROL "Осм", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
CONTROL "Двоич", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
CONTROL "Обр", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
CONTROL "Хип", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
@@ -133,13 +135,17 @@ BEGIN
PUSHBUTTON "Дроб", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
AUTORADIOBUTTON "ЧДума", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "ДДума", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Дума", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Байт", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Градуси", IDC_RADIO_DEG, 150, 21, 45, 10
AUTORADIOBUTTON "Радиани", IDC_RADIO_RAD, 204, 21, 45, 10
AUTORADIOBUTTON "Градиани", IDC_RADIO_GRAD, 258, 21, 45, 10
CONTROL "ЧДума", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 150, 21, 38, 10
CONTROLДума", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 190, 21, 38, 10
CONTROL "Дума", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 230, 21, 38, 10
CONTROL "Байт", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 270, 21, 38, 10
CONTROL "Градуси", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
CONTROL "Радиани", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
CONTROL "Градиани", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
@@ -150,9 +156,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Калкулатор"
CAPTION "Калкулатор за ReactOS"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
@@ -215,9 +221,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Калкулатор"
CAPTION "Калкулатор за ReactOS"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg"
BEGIN
@@ -309,8 +315,8 @@ IDR_MENU_SCIENTIFIC_1 MENU
BEGIN
POPUP "&Обработка"
BEGIN
MENUITEM "Запомняне\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Поставяне\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Запомняне\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Поставяне\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "Изглед"
BEGIN
@@ -341,8 +347,8 @@ IDR_MENU_SCIENTIFIC_2 MENU
BEGIN
POPUP "&Обработка"
BEGIN
MENUITEM "Запомняне\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Поставяне\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Запомняне\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Поставяне\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "Изглед"
BEGIN
@@ -374,8 +380,8 @@ IDR_MENU_STANDARD MENU
BEGIN
POPUP "&Обработка"
BEGIN
MENUITEM "Запомняне\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Поставяне\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Запомняне\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Поставяне\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "Изглед"
BEGIN
@@ -504,7 +510,7 @@ BEGIN
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
IDS_CURRENCY_LUXEMBOURG_FRANC "Люксембургски франк"
IDS_CURRENCY_MALTESE_LIRA "Малтийска лира"
IDS_CURRENCY_PORTUGUESE_ESCUDO "Португалско ескудо"
IDS_CURRENCY_PORTOGUESE_ESCUDO "Португалско ескудо"
IDS_CURRENCY_SLOVAK_KORUNA "Словашка крона"
IDS_CURRENCY_SLOVENIAN_TOLAR "Словенси толар"
IDS_CURRENCY_SPANISH_PESETA "Испанска песета"

View File

@@ -1,22 +1,23 @@
/*
* TRANSLATOR: 2010 Radek Liska (Black_Fox) <radekliska@gmail.com>
/* FILE: base/applications/calc/lang/cs-CZ.rc
* TRANSLATOR: Radek Liska aka Black_Fox (radekliska at gmail dot com)
* UPDATED: 2010-05-30
*/
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
/* Dialogs */
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Kalkulačka"
CAPTION "ReactOS kalkulačka"
MENU IDR_MENU_SCIENTIFIC_1
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
@@ -133,13 +134,17 @@ BEGIN
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Byte", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Stupně", IDC_RADIO_DEG, 150, 21, 45, 10
AUTORADIOBUTTON "Radiány", IDC_RADIO_RAD, 204, 21, 45, 10
AUTORADIOBUTTON "Grady", IDC_RADIO_GRAD, 258, 21, 45, 10
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 150, 21, 38, 10
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 190, 21, 38, 10
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 230, 21, 38, 10
CONTROL "Byte", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 270, 21, 38, 10
CONTROL "Stupně", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
CONTROL "Radiány", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
CONTROL "Grady", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
@@ -150,9 +155,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Kalkulačka"
CAPTION "ReactOS Kalkulačka"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
@@ -215,9 +220,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Kalkulačka"
CAPTION "ReactOS Kalkulačka"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg"
BEGIN
@@ -309,8 +314,8 @@ IDR_MENU_SCIENTIFIC_1 MENU
BEGIN
POPUP "Úpravy"
BEGIN
MENUITEM "Kopírovat\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Vložit\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Kopírovat\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Vložit\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "Zobrazit"
BEGIN
@@ -341,8 +346,8 @@ IDR_MENU_SCIENTIFIC_2 MENU
BEGIN
POPUP "Úpravy"
BEGIN
MENUITEM "Kopírovat\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Vložit\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Kopírovat\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Vložit\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "Zobrazit"
BEGIN
@@ -374,8 +379,8 @@ IDR_MENU_STANDARD MENU
BEGIN
POPUP "Úpravy"
BEGIN
MENUITEM "Kopírovat\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Vložit\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Kopírovat\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Vložit\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "Zobrazit"
BEGIN
@@ -504,7 +509,7 @@ BEGIN
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
IDS_CURRENCY_LUXEMBOURG_FRANC "Lucemburský frank"
IDS_CURRENCY_MALTESE_LIRA "Maltská lira"
IDS_CURRENCY_PORTUGUESE_ESCUDO "Portugalské escudo"
IDS_CURRENCY_PORTOGUESE_ESCUDO "Portugalské escudo"
IDS_CURRENCY_SLOVAK_KORUNA "Slovenská koruna"
IDS_CURRENCY_SLOVENIAN_TOLAR "Slovinský tolar"
IDS_CURRENCY_SPANISH_PESETA "Španělská peseta"

View File

@@ -2,17 +2,17 @@ LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
/* Dialogs */
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Rechner"
CAPTION "ReactOS Rechner"
MENU IDR_MENU_SCIENTIFIC_1
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
AUTORADIOBUTTON "Dez", IDC_RADIO_DEC, 41, 21, 30, 10
AUTORADIOBUTTON "Okt", IDC_RADIO_OCT, 74, 21, 30, 10
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
CONTROL "Dez", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
CONTROL "Okt", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
@@ -129,13 +129,17 @@ BEGIN
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Byte", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Degree", IDC_RADIO_DEG, 150, 21, 45, 10
AUTORADIOBUTTON "Radiant", IDC_RADIO_RAD, 204, 21, 45, 10
AUTORADIOBUTTON "Grad", IDC_RADIO_GRAD, 258, 21, 45, 10
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 150, 21, 38, 10
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 190, 21, 38, 10
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 230, 21, 38, 10
CONTROL "Byte", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 270, 21, 38, 10
CONTROL "Degree", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
CONTROL "Radiant", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
CONTROL "Grad", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
@@ -146,9 +150,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Rechner"
CAPTION "ReactOS Rechner"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
@@ -211,9 +215,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Rechner"
CAPTION "ReactOS Rechner"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg"
BEGIN
@@ -303,89 +307,89 @@ END
IDR_MENU_SCIENTIFIC_1 MENU
BEGIN
POPUP "&Bearbeiten"
POPUP "Bearbeiten"
BEGIN
MENUITEM "&Kopieren\tStrg-C", IDM_EDIT_COPY
MENUITEM "&Einfügen\tStrg-V", IDM_EDIT_PASTE
MENUITEM "Kopieren\tSTRG-C", IDM_EDIT_COPY
MENUITEM "Einfügen\tSTRG-V", IDM_EDIT_PASTE
END
POPUP "&Ansicht"
POPUP "Ansicht"
BEGIN
MENUITEM "&Standard", IDM_VIEW_STANDARD
MENUITEM "&Wissenschaftlich", IDM_VIEW_SCIENTIFIC
MENUITEM "Kon&version", IDM_VIEW_CONVERSION
MENUITEM "Standard", IDM_VIEW_STANDARD
MENUITEM "Wissenschaftlich", IDM_VIEW_SCIENTIFIC
MENUITEM "Konversion", IDM_VIEW_CONVERSION
MENUITEM SEPARATOR
MENUITEM "&Hex\tF5", IDM_VIEW_HEX, CHECKED
MENUITEM "De&zimal\tF6", IDM_VIEW_DEC, CHECKED
MENUITEM "O&ktal\tF7", IDM_VIEW_OCT, CHECKED
MENUITEM "&Binär\tF8", IDM_VIEW_BIN, CHECKED
MENUITEM "Hex\tF5", IDM_VIEW_HEX, CHECKED
MENUITEM "Dezimal\tF6", IDM_VIEW_DEC, CHECKED
MENUITEM "Oktal\tF7", IDM_VIEW_OCT, CHECKED
MENUITEM "Binär\tF8", IDM_VIEW_BIN, CHECKED
MENUITEM SEPARATOR
MENUITEM "&Deg\tF2", IDM_VIEW_DEG, CHECKED
MENUITEM "&Rad\tF3", IDM_VIEW_RAD, CHECKED
MENUITEM "&Grad\tF4", IDM_VIEW_GRAD, CHECKED
MENUITEM "Degree\tF2", IDM_VIEW_DEG, CHECKED
MENUITEM "Radiant\tF3", IDM_VIEW_RAD, CHECKED
MENUITEM "Grad\tF4", IDM_VIEW_GRAD, CHECKED
MENUITEM SEPARATOR
MENUITEM "Zifferngr&uppierung", IDM_VIEW_GROUP, CHECKED
MENUITEM "Zifferngruppierung", IDM_VIEW_GROUP, CHECKED
END
POPUP "&?"
POPUP "Hilfe"
BEGIN
MENUITEM "&Hilfethemen", IDM_HELP_HELP
MENUITEM "Hilfethemen", IDM_HELP_HELP
MENUITEM SEPARATOR
MENUITEM "&Info", IDM_HELP_ABOUT
MENUITEM "Info", IDM_HELP_ABOUT
END
END
IDR_MENU_SCIENTIFIC_2 MENU
BEGIN
POPUP "&Bearbeiten"
POPUP "Bearbeiten"
BEGIN
MENUITEM "&Kopieren\tStrg-C", IDM_EDIT_COPY
MENUITEM "&Einfügen\tStrg-V", IDM_EDIT_PASTE
MENUITEM "Kopieren\tSTRG-C", IDM_EDIT_COPY
MENUITEM "Einfügen\tSTRG-V", IDM_EDIT_PASTE
END
POPUP "&Ansicht"
POPUP "Ansicht"
BEGIN
MENUITEM "&Standard", IDM_VIEW_STANDARD
MENUITEM "&Wissenschaftlich", IDM_VIEW_SCIENTIFIC
MENUITEM "Kon&version", IDM_VIEW_CONVERSION
MENUITEM "Standard", IDM_VIEW_STANDARD
MENUITEM "Wissenschaftlich", IDM_VIEW_SCIENTIFIC
MENUITEM "Konversion", IDM_VIEW_CONVERSION
MENUITEM SEPARATOR
MENUITEM "&Hex\tF5", IDM_VIEW_HEX, CHECKED
MENUITEM "&Dezimal\tF6", IDM_VIEW_DEC, CHECKED
MENUITEM "O&ktal\tF7", IDM_VIEW_OCT, CHECKED
MENUITEM "Bi&när\tF8", IDM_VIEW_BIN, CHECKED
MENUITEM "Hex\tF5", IDM_VIEW_HEX, CHECKED
MENUITEM "Dezimal\tF6", IDM_VIEW_DEC, CHECKED
MENUITEM "Oktal\tF7", IDM_VIEW_OCT, CHECKED
MENUITEM "Binär\tF8", IDM_VIEW_BIN, CHECKED
MENUITEM SEPARATOR
MENUITEM "&Qword\tF12", IDM_VIEW_QWORD, CHECKED
MENUITEM "Dw&ord\tF2", IDM_VIEW_DWORD, CHECKED
MENUITEM "Wo&rd\tF3", IDM_VIEW_WORD, CHECKED
MENUITEM "&Byte\tF4", IDM_VIEW_BYTE, CHECKED
MENUITEM "Qword\tF12", IDM_VIEW_QWORD, CHECKED
MENUITEM "Dword\tF2", IDM_VIEW_DWORD, CHECKED
MENUITEM "Word\tF3", IDM_VIEW_WORD, CHECKED
MENUITEM "Byte\tF4", IDM_VIEW_BYTE, CHECKED
MENUITEM SEPARATOR
MENUITEM "Zifferngr&uppierung", IDM_VIEW_GROUP, CHECKED
MENUITEM "Zifferngruppierung", IDM_VIEW_GROUP, CHECKED
END
POPUP "&?"
POPUP "Hilfe"
BEGIN
MENUITEM "&Hilfethemen", IDM_HELP_HELP
MENUITEM "Hilfethemen", IDM_HELP_HELP
MENUITEM SEPARATOR
MENUITEM "&Info", IDM_HELP_ABOUT
MENUITEM "Über ReactOS Rechner", IDM_HELP_ABOUT
END
END
IDR_MENU_STANDARD MENU
BEGIN
POPUP "&Bearbeiten"
POPUP "Bearbeiten"
BEGIN
MENUITEM "&Kopieren\tStrg-C", IDM_EDIT_COPY
MENUITEM "&Einfügen\tStrg-V", IDM_EDIT_PASTE
MENUITEM "Kopieren\tSTRG-C", IDM_EDIT_COPY
MENUITEM "Einfügen\tSTRG-V", IDM_EDIT_PASTE
END
POPUP "&Ansicht"
POPUP "Ansicht"
BEGIN
MENUITEM "&Standard", IDM_VIEW_STANDARD
MENUITEM "&Wissenschaftlich", IDM_VIEW_SCIENTIFIC
MENUITEM "Kon&version", IDM_VIEW_CONVERSION
MENUITEM "Standard", IDM_VIEW_STANDARD
MENUITEM "Wissenschaftlich", IDM_VIEW_SCIENTIFIC
MENUITEM "Konversion", IDM_VIEW_CONVERSION
MENUITEM SEPARATOR
MENUITEM "Zifferngr&uppierung", IDM_VIEW_GROUP, CHECKED
MENUITEM "Zifferngruppierung", IDM_VIEW_GROUP, CHECKED
END
POPUP "&?"
POPUP "Hilfe"
BEGIN
MENUITEM "&Hilfethemen", IDM_HELP_HELP
MENUITEM "Hilfethemen", IDM_HELP_HELP
MENUITEM SEPARATOR
MENUITEM "&Info", IDM_HELP_ABOUT
MENUITEM "Über ReactOS Rechner", IDM_HELP_ABOUT
END
END
@@ -500,7 +504,7 @@ BEGIN
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
IDS_CURRENCY_LUXEMBOURG_FRANC "Luxemburgische Franc"
IDS_CURRENCY_MALTESE_LIRA "Maltesische Lire"
IDS_CURRENCY_PORTUGUESE_ESCUDO "Portugiesische Escudo"
IDS_CURRENCY_PORTOGUESE_ESCUDO "Portugiesische Escudo"
IDS_CURRENCY_SLOVAK_KORUNA "Slowakische Krone"
IDS_CURRENCY_SLOVENIAN_TOLAR "Slovenische Tolar"
IDS_CURRENCY_SPANISH_PESETA "Spanische Peseta"

View File

@@ -2,17 +2,17 @@ LANGUAGE LANG_GREEK, SUBLANG_DEFAULT
/* Dialogs */
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Αριθμομηχανή"
MENU IDR_MENU_SCIENTIFIC_1
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
@@ -129,13 +129,17 @@ BEGIN
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Byte", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Βαθμοί", IDC_RADIO_DEG, 150, 21, 45, 10
AUTORADIOBUTTON "Μοίρες", IDC_RADIO_RAD, 204, 21, 45, 10
AUTORADIOBUTTON "Ακτίνια", IDC_RADIO_GRAD, 258, 21, 45, 10
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 150, 21, 38, 10
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 190, 21, 38, 10
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 230, 21, 38, 10
CONTROL "Byte", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 270, 21, 38, 10
CONTROL "Βαθμοί", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
CONTROL "Μοίρες", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
CONTROL "Ακτίνια", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
@@ -146,7 +150,7 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Αριθμομηχανή"
MENU IDR_MENU_STANDARD
@@ -211,7 +215,7 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Αριθμομηχανή"
MENU IDR_MENU_STANDARD
@@ -305,8 +309,8 @@ IDR_MENU_SCIENTIFIC_1 MENU
BEGIN
POPUP "Επεξεργασία"
BEGIN
MENUITEM "Αντιγραφή\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Επικόλληση\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Αντιγραφή\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Επικόλληση\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "View"
BEGIN
@@ -337,8 +341,8 @@ IDR_MENU_SCIENTIFIC_2 MENU
BEGIN
POPUP "Επεξεργασία"
BEGIN
MENUITEM "Αντιγραφή\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Επικόλληση\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Αντιγραφή\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Επικόλληση\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "View"
BEGIN
@@ -370,8 +374,8 @@ IDR_MENU_STANDARD MENU
BEGIN
POPUP "Επεξεργασία"
BEGIN
MENUITEM "Αντιγραφή\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Επικόλληση\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Αντιγραφή\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Επικόλληση\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "View"
BEGIN
@@ -500,7 +504,7 @@ BEGIN
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
IDS_CURRENCY_LUXEMBOURG_FRANC "Luxembourg franc"
IDS_CURRENCY_MALTESE_LIRA "Μαλτέζικη λίρα"
IDS_CURRENCY_PORTUGUESE_ESCUDO "Πορτογαλικό εσκούδο"
IDS_CURRENCY_PORTOGUESE_ESCUDO "Πορτογαλικό εσκούδο"
IDS_CURRENCY_SLOVAK_KORUNA "Slovak koruna"
IDS_CURRENCY_SLOVENIAN_TOLAR "Slovenian tolar"
IDS_CURRENCY_SPANISH_PESETA "Ισπανική πεσέτα"

View File

@@ -2,17 +2,17 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
/* Dialogs */
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Calculator"
CAPTION "ReactOS Calculator"
MENU IDR_MENU_SCIENTIFIC_1
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
@@ -129,13 +129,17 @@ BEGIN
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Byte", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Degrees", IDC_RADIO_DEG, 150, 21, 45, 10
AUTORADIOBUTTON "Radians", IDC_RADIO_RAD, 204, 21, 45, 10
AUTORADIOBUTTON "Gradians", IDC_RADIO_GRAD, 258, 21, 45, 10
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 150, 21, 38, 10
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 190, 21, 38, 10
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 230, 21, 38, 10
CONTROL "Byte", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 270, 21, 38, 10
CONTROL "Degrees", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
CONTROL "Radians", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
CONTROL "Gradians", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
@@ -146,9 +150,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Calculator"
CAPTION "ReactOS Calculator"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
@@ -211,9 +215,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Calculator"
CAPTION "ReactOS Calculator"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg"
BEGIN
@@ -500,7 +504,7 @@ BEGIN
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
IDS_CURRENCY_LUXEMBOURG_FRANC "Luxembourg franc"
IDS_CURRENCY_MALTESE_LIRA "Maltese lira"
IDS_CURRENCY_PORTUGUESE_ESCUDO "Portuguese escudo"
IDS_CURRENCY_PORTOGUESE_ESCUDO "Portuguese escudo"
IDS_CURRENCY_SLOVAK_KORUNA "Slovak koruna"
IDS_CURRENCY_SLOVENIAN_TOLAR "Slovenian tolar"
IDS_CURRENCY_SPANISH_PESETA "Spanish peseta"

View File

@@ -8,17 +8,17 @@ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
/* Dialogs */
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Calculadora"
CAPTION "Calculadora de ReactOS"
MENU IDR_MENU_SCIENTIFIC_1
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
CONTROL "Hipotenusa", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 37, 41, 48, 10
@@ -135,13 +135,17 @@ BEGIN
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Byte", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Grados", IDC_RADIO_DEG, 150, 21, 45, 10
AUTORADIOBUTTON "Radianes", IDC_RADIO_RAD, 204, 21, 45, 10
AUTORADIOBUTTON "Gradianes", IDC_RADIO_GRAD, 258, 21, 45, 10
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 150, 21, 38, 10
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 190, 21, 38, 10
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 230, 21, 38, 10
CONTROL "Byte", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 270, 21, 38, 10
CONTROL "Grados", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 151, 21, 45, 10
CONTROL "Radianes", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 198, 21, 45, 10
CONTROL "Gradianes", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 248, 21, 45, 10
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
@@ -152,9 +156,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Calculadora"
CAPTION "Calculadora de ReactOS"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
@@ -217,9 +221,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Calculadora"
CAPTION "Calculadora de ReactOS"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg"
BEGIN
@@ -311,8 +315,8 @@ IDR_MENU_SCIENTIFIC_1 MENU
BEGIN
POPUP "Edición"
BEGIN
MENUITEM "Copiar\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Pegar\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Copiar\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Pegar\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "Ver"
BEGIN
@@ -343,8 +347,8 @@ IDR_MENU_SCIENTIFIC_2 MENU
BEGIN
POPUP "Edición"
BEGIN
MENUITEM "Copiar\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Pegar\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Copiar\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Pegar\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "Ver"
BEGIN
@@ -376,8 +380,8 @@ IDR_MENU_STANDARD MENU
BEGIN
POPUP "Edición"
BEGIN
MENUITEM "Copiar\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Pegar\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Copiar\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Pegar\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "Ver"
BEGIN
@@ -506,7 +510,7 @@ BEGIN
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
IDS_CURRENCY_LUXEMBOURG_FRANC "Franco luxemburgués"
IDS_CURRENCY_MALTESE_LIRA "Lira maltesa"
IDS_CURRENCY_PORTUGUESE_ESCUDO "Escudo portugués"
IDS_CURRENCY_PORTOGUESE_ESCUDO "Escudo portugués"
IDS_CURRENCY_SLOVAK_KORUNA "Corona eslovaca"
IDS_CURRENCY_SLOVENIAN_TOLAR "Tolar esloveno"
IDS_CURRENCY_SPANISH_PESETA "Peseta española"

View File

@@ -2,17 +2,17 @@ LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
/* Dialogs */
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Calculatrice"
CAPTION "Calculatrice ReactOS"
MENU IDR_MENU_SCIENTIFIC_1
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
@@ -129,13 +129,17 @@ BEGIN
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
AUTORADIOBUTTON "Q-mot", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "D-mot", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Mot", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Octet", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Degrés", IDC_RADIO_DEG, 150, 21, 45, 10
AUTORADIOBUTTON "Radians", IDC_RADIO_RAD, 204, 21, 45, 10
AUTORADIOBUTTON "Grades", IDC_RADIO_GRAD, 258, 21, 45, 10
CONTROL "Q-mot", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 150, 21, 38, 10
CONTROL "D-mot", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 190, 21, 38, 10
CONTROL "Mot", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 230, 21, 38, 10
CONTROL "Octet", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 270, 21, 38, 10
CONTROL "Degrés", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
CONTROL "Radians", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
CONTROL "Grades", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
@@ -146,9 +150,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Calculatrice"
CAPTION "Calculatrice ReactOS"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
@@ -211,9 +215,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Calculatrice"
CAPTION "Calculatrice ReactOS"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg"
BEGIN
@@ -305,8 +309,8 @@ IDR_MENU_SCIENTIFIC_1 MENU
BEGIN
POPUP "Édition"
BEGIN
MENUITEM "Copier\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Coller\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Copier\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Coller\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "Affichage"
BEGIN
@@ -337,8 +341,8 @@ IDR_MENU_SCIENTIFIC_2 MENU
BEGIN
POPUP "Édition"
BEGIN
MENUITEM "Copier\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Coller\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Copier\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Coller\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "Affichage"
BEGIN
@@ -370,8 +374,8 @@ IDR_MENU_STANDARD MENU
BEGIN
POPUP "Édition"
BEGIN
MENUITEM "Copier\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Coller\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Copier\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Coller\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "Affichage"
BEGIN
@@ -500,7 +504,7 @@ BEGIN
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
IDS_CURRENCY_LUXEMBOURG_FRANC "Franc luxembourgeois"
IDS_CURRENCY_MALTESE_LIRA "Lire maltaise"
IDS_CURRENCY_PORTUGUESE_ESCUDO "Escudo portugaise"
IDS_CURRENCY_PORTOGUESE_ESCUDO "Escudo portugaise"
IDS_CURRENCY_SLOVAK_KORUNA "Couronne slovaque"
IDS_CURRENCY_SLOVENIAN_TOLAR "Tolar slovène"
IDS_CURRENCY_SPANISH_PESETA "Peseta espagnole"

View File

@@ -1,21 +1,21 @@
/* TRANSLATOR: Baruch Rutman */
/* Translated by Baruch Rutman */
LANGUAGE LANG_HEBREW, SUBLANG_DEFAULT
/* Dialogs */
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_LAYOUTRTL
CAPTION "מחשבון"
CAPTION "מחשבון ReactOS"
MENU IDR_MENU_SCIENTIFIC_1
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
GROUPBOX "", IDC_STATIC, 4 ,14, 141, 20
AUTORADIOBUTTON "הקס", IDC_RADIO_HEX, 6, 21, 30, 10
AUTORADIOBUTTON "עשרוני", IDC_RADIO_DEC, 36, 21, 34, 10
AUTORADIOBUTTON "אוקטלי", IDC_RADIO_OCT, 73, 21, 37, 10
AUTORADIOBUTTON "בינרי", IDC_RADIO_BIN, 113, 21, 30, 10
CONTROL "הקס", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 6, 21, 30, 10
CONTROL "עשרוני", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 36, 21, 34, 10
CONTROL "אוקטלי", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 73, 21, 37, 10
CONTROL "בינרי", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 113, 21, 30, 10
GROUPBOX "", IDC_STATIC, 4, 34, 84, 20
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
@@ -132,13 +132,17 @@ BEGIN
PUSHBUTTON "A", IDC_BUTTON_A, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Byte", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "מעלות", IDC_RADIO_DEG, 150, 21, 45, 10
AUTORADIOBUTTON "רדיאנים", IDC_RADIO_RAD, 204, 21, 45, 10
AUTORADIOBUTTON "גרדיאנים", IDC_RADIO_GRAD, 258, 21, 45, 10
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 150, 21, 38, 10
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 190, 21, 38, 10
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 230, 21, 38, 10
CONTROL "Byte", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 270, 21, 38, 10
CONTROL "מעלות", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
CONTROL "רדיאנים", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
CONTROL "גרדיאנים", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
@@ -149,10 +153,10 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_LAYOUTRTL
CAPTION "מחשבון"
CAPTION "מחשבון ReactOS"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
@@ -215,10 +219,10 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_LAYOUTRTL
CAPTION "מחשבון"
CAPTION "מחשבון ReactOS"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg"
BEGIN
@@ -506,7 +510,7 @@ BEGIN
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
IDS_CURRENCY_LUXEMBOURG_FRANC "פרנק לוקסמבורגי"
IDS_CURRENCY_MALTESE_LIRA "לירה מלטזי"
IDS_CURRENCY_PORTUGUESE_ESCUDO "אסקודו פורטגלי"
IDS_CURRENCY_PORTOGUESE_ESCUDO "אסקודו פורטגלי"
IDS_CURRENCY_SLOVAK_KORUNA "קורונה סלובקית"
IDS_CURRENCY_SLOVENIAN_TOLAR "טולר סלובני"
IDS_CURRENCY_SPANISH_PESETA "פזטה ספרדית"

View File

@@ -1,25 +1,26 @@
/*
* PROJECT: ReactOS Calculator
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/applications/calc/lang/hu-HU.rc
* PURPOSE: Hungarian Language File for ReactOS Calc
* TRANSLATOR: Nagy Tibor <xnagytibor@gmail.com>
* TRANSLATOR: Nagy Tibor (xnagytibor at gmail dot com)
*/
LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
/* Dialogs */
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Számológép"
CAPTION "ReactOS Számológép"
MENU IDR_MENU_SCIENTIFIC_1
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
@@ -136,13 +137,17 @@ BEGIN
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
AUTORADIOBUTTON "Négyszó", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Duplaszó", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Szó", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Bájt", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Fok", IDC_RADIO_DEG, 150, 21, 45, 10
AUTORADIOBUTTON "Radián", IDC_RADIO_RAD, 204, 21, 45, 10
AUTORADIOBUTTON "Gradián", IDC_RADIO_GRAD, 258, 21, 45, 10
CONTROL "Négyszó", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 150, 21, 38, 10
CONTROL "Duplaszó", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 190, 21, 38, 10
CONTROL "Szó", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 230, 21, 38, 10
CONTROL "Bájt", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 270, 21, 38, 10
CONTROL "Fok", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
CONTROL "Radián", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
CONTROL "Gradián", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
@@ -153,9 +158,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Számológép"
CAPTION "ReactOS Számológép"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
@@ -218,9 +223,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Számológép"
CAPTION "ReactOS Számológép"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg"
BEGIN
@@ -447,12 +452,12 @@ BEGIN
IDS_AREA_ACRES_FRANCE "Acre (Franciaország)"
IDS_AREA_ACRES_SCOTS "Acre (Skót)"
IDS_AREA_ACRES_US "Acre (Egyesült Államok)"
IDS_AREA_ARES "Are"
IDS_AREA_ARES "Are" // ?
IDS_AREA_CHOU "Chou"
IDS_AREA_DANBO "Danbo"
IDS_AREA_HECTARES "Hektár"
IDS_AREA_JEONGBO "Jeongbo"
IDS_AREA_MORGEN_HUNGARY "Hold (Magyarország)"
IDS_AREA_MORGEN_HUNGARY "Hold (Magyarország)" // ?
IDS_AREA_MU "Mu"
IDS_AREA_PING "Ping"
IDS_AREA_PYEONG "Pyeong"
@@ -460,19 +465,19 @@ BEGIN
IDS_AREA_RAI "Rai"
IDS_AREA_SE "Se"
IDS_AREA_SQUARE_CENTIMETERS "Négyzetcentiméter"
IDS_AREA_SQUARE_CHR "Négyzetchr"
IDS_AREA_SQUARE_FATHOMS "Négyzetöl"
IDS_AREA_SQUARE_FATHOMS_HUNGARY "Négyzetöl (Magyarország)"
IDS_AREA_SQUARE_FEET "Négyzetláb"
IDS_AREA_SQUARE_INCHES "Négyzethüvelyk"
IDS_AREA_SQUARE_CHR "Négyzetchr" // ?
IDS_AREA_SQUARE_FATHOMS "Négyzetöl" // Alt.: Négyszögöl
IDS_AREA_SQUARE_FATHOMS_HUNGARY "Négyzetöl (Magyarország)" // Alt.: Négyszögöl (Magyarország)
IDS_AREA_SQUARE_FEET "Négyzetláb" // Alt.: Négyszögláb
IDS_AREA_SQUARE_INCHES "Négyzethüvelyk" // Alt.: Négyszöghüvelyk
IDS_AREA_SQUARE_KILOMETERS "Négyzetkilométer"
IDS_AREA_SQUARE_LAR "Négyzetlar"
IDS_AREA_SQUARE_LAR "Négyzetlar" // ?
IDS_AREA_SQUARE_METER "Négyzetméter"
IDS_AREA_SQUARE_MILES "Négyzetmérföld"
IDS_AREA_SQUARE_MILLIMETERS "Négyzetmilliméter"
IDS_AREA_SQUARE_SHAKU "Négyzetshaku"
IDS_AREA_SQUARE_TSUEN "Négyzettsuen"
IDS_AREA_SQUARE_VA "Négyzetva"
IDS_AREA_SQUARE_SHAKU "Négyzetshaku" // ?
IDS_AREA_SQUARE_TSUEN "Négyzettsuen" // ?
IDS_AREA_SQUARE_VA "Négyzetva" // ?
IDS_AREA_SQUARE_YARD "Négyzetyard"
IDS_AREA_TAN "Tan"
IDS_AREA_TSUBO "Tsubo"
@@ -507,7 +512,7 @@ BEGIN
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
IDS_CURRENCY_LUXEMBOURG_FRANC "Luxemburgi frank"
IDS_CURRENCY_MALTESE_LIRA "Máltai líra"
IDS_CURRENCY_PORTUGUESE_ESCUDO "Portugál escudo"
IDS_CURRENCY_PORTOGUESE_ESCUDO "Portugál escudo"
IDS_CURRENCY_SLOVAK_KORUNA "Szlovák korona"
IDS_CURRENCY_SLOVENIAN_TOLAR "Szlovén tolár"
IDS_CURRENCY_SPANISH_PESETA "Spanyol pezeta"

View File

@@ -9,17 +9,17 @@ LANGUAGE LANG_INDONESIAN, SUBLANG_DEFAULT
/* Dialogs */
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Kalkulator"
CAPTION "Kalkulator ReactOS"
MENU IDR_MENU_SCIENTIFIC_1
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
@@ -136,13 +136,17 @@ BEGIN
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Byte", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Derajat", IDC_RADIO_DEG, 150, 21, 45, 10
AUTORADIOBUTTON "Radian", IDC_RADIO_RAD, 204, 21, 45, 10
AUTORADIOBUTTON "Gradian", IDC_RADIO_GRAD, 258, 21, 45, 10
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 150, 21, 38, 10
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 190, 21, 38, 10
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 230, 21, 38, 10
CONTROL "Byte", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 270, 21, 38, 10
CONTROL "Derajat", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
CONTROL "Radian", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
CONTROL "Gradian", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
@@ -153,9 +157,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Kalkulator"
CAPTION "Kalkulator ReactOS"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
@@ -218,9 +222,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Kalkulator"
CAPTION "Kalkulator ReactOS"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg"
BEGIN
@@ -507,7 +511,7 @@ BEGIN
IDS_CURRENCY_LITHUANIAN_LITAS "Litas Lithuania"
IDS_CURRENCY_LUXEMBOURG_FRANC "Franc Luksemburg"
IDS_CURRENCY_MALTESE_LIRA "Lira Malta"
IDS_CURRENCY_PORTUGUESE_ESCUDO "Escudo Portugis"
IDS_CURRENCY_PORTOGUESE_ESCUDO "Escudo Portugis"
IDS_CURRENCY_SLOVAK_KORUNA "Koruna Slovakia"
IDS_CURRENCY_SLOVENIAN_TOLAR "Tolar Slovenia"
IDS_CURRENCY_SPANISH_PESETA "Peseta Spanyol"

View File

@@ -2,17 +2,17 @@ LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
/* Dialogs */
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Calcolatrice"
CAPTION "Calcolatrice ReactOS"
MENU IDR_MENU_SCIENTIFIC_1
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
@@ -129,13 +129,17 @@ BEGIN
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Byte", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Gradi", IDC_RADIO_DEG, 150, 21, 45, 10
AUTORADIOBUTTON "Radianti", IDC_RADIO_RAD, 204, 21, 45, 10
AUTORADIOBUTTON "Gradienti", IDC_RADIO_GRAD, 258, 21, 45, 10
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 150, 21, 38, 10
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 190, 21, 38, 10
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 230, 21, 38, 10
CONTROL "Byte", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 270, 21, 38, 10
CONTROL "Gradi", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
CONTROL "Radianti", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
CONTROL "Gradienti", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
@@ -146,9 +150,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Calcolatrice"
CAPTION "Calcolatrice ReactOS"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
@@ -211,9 +215,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Calcolatrice"
CAPTION "Calcolatrice ReactOS"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg"
BEGIN
@@ -305,8 +309,8 @@ IDR_MENU_SCIENTIFIC_1 MENU
BEGIN
POPUP "Modifica"
BEGIN
MENUITEM "Copia\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Incolla\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Copia\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Incolla\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "Visualizza"
BEGIN
@@ -337,8 +341,8 @@ IDR_MENU_SCIENTIFIC_2 MENU
BEGIN
POPUP "Modifica"
BEGIN
MENUITEM "Copia\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Incolla\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Copia\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Incolla\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "Visualizza"
BEGIN
@@ -370,8 +374,8 @@ IDR_MENU_STANDARD MENU
BEGIN
POPUP "Modifica"
BEGIN
MENUITEM "Copia\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Incolla\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Copia\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Incolla\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "Visualizza"
BEGIN
@@ -500,7 +504,7 @@ BEGIN
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
IDS_CURRENCY_LUXEMBOURG_FRANC "Franco Lussemburghese"
IDS_CURRENCY_MALTESE_LIRA "Lira maltese"
IDS_CURRENCY_PORTUGUESE_ESCUDO "Escudo portoghese"
IDS_CURRENCY_PORTOGUESE_ESCUDO "Escudo portoghese"
IDS_CURRENCY_SLOVAK_KORUNA "Corona slovacca"
IDS_CURRENCY_SLOVENIAN_TOLAR "Tallero sloveno"
IDS_CURRENCY_SPANISH_PESETA "Peseta spagnola"

View File

@@ -2,17 +2,17 @@ LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
/* Dialogs */
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "電卓"
CAPTION "ReactOS 電卓"
MENU IDR_MENU_SCIENTIFIC_1
FONT 9, "MS UI Gothic", 0, 0, 0x1
BEGIN
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
AUTORADIOBUTTON "16進", IDC_RADIO_HEX, 8, 21, 30, 10
AUTORADIOBUTTON "10進", IDC_RADIO_DEC, 41, 21, 30, 10
AUTORADIOBUTTON "8進", IDC_RADIO_OCT, 74, 21, 30, 10
AUTORADIOBUTTON "2進", IDC_RADIO_BIN, 107, 21, 30, 10
CONTROL "16進", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
CONTROL "10進", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
CONTROL "8進", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
CONTROL "2進", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
@@ -129,13 +129,17 @@ BEGIN
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Byte", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Degrees", IDC_RADIO_DEG, 150, 21, 45, 10
AUTORADIOBUTTON "Radians", IDC_RADIO_RAD, 204, 21, 45, 10
AUTORADIOBUTTON "Gradians", IDC_RADIO_GRAD, 258, 21, 45, 10
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 150, 21, 38, 10
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 190, 21, 38, 10
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 230, 21, 38, 10
CONTROL "Byte", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 270, 21, 38, 10
CONTROL "Degrees", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
CONTROL "Radians", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
CONTROL "Gradians", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
@@ -146,9 +150,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "電卓"
CAPTION "ReactOS 電卓"
MENU IDR_MENU_STANDARD
FONT 9, "MS UI Gothic", 0, 0, 0x1
BEGIN
@@ -211,9 +215,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "電卓"
CAPTION "ReactOS 電卓"
MENU IDR_MENU_STANDARD
FONT 9, "MS UI Gothic"
BEGIN
@@ -373,7 +377,7 @@ BEGIN
MENUITEM "コピー(&C)\tCtrl+C", IDM_EDIT_COPY
MENUITEM "貼り付け(&P)\tCtrl+V", IDM_EDIT_PASTE
END
POPUP "表示(&V)"
POPUP "表示"
BEGIN
MENUITEM "標準(&T)", IDM_VIEW_STANDARD
MENUITEM "関数電卓(&S)", IDM_VIEW_SCIENTIFIC
@@ -500,7 +504,7 @@ BEGIN
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
IDS_CURRENCY_LUXEMBOURG_FRANC "ルクセンブルク フラン"
IDS_CURRENCY_MALTESE_LIRA "マルタ リラ"
IDS_CURRENCY_PORTUGUESE_ESCUDO "ポルトガル エスクード"
IDS_CURRENCY_PORTOGUESE_ESCUDO "ポルトガル エスクード"
IDS_CURRENCY_SLOVAK_KORUNA "スロバキア コルナ"
IDS_CURRENCY_SLOVENIAN_TOLAR "スロベニア tolar"
IDS_CURRENCY_SPANISH_PESETA "スペイン ペセタ"

View File

@@ -4,17 +4,17 @@ LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
/* Dialogs */
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "계산기"
CAPTION "ReactOS 계산기"
MENU IDR_MENU_SCIENTIFIC_1
FONT 9, "굴림", 0, 0, 0x1
BEGIN
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
@@ -131,13 +131,17 @@ BEGIN
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Byte", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Degrees", IDC_RADIO_DEG, 150, 21, 45, 10
AUTORADIOBUTTON "Radians", IDC_RADIO_RAD, 204, 21, 45, 10
AUTORADIOBUTTON "Gradians", IDC_RADIO_GRAD, 258, 21, 45, 10
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 150, 21, 38, 10
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 190, 21, 38, 10
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 230, 21, 38, 10
CONTROL "Byte", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 270, 21, 38, 10
CONTROL "Degrees", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
CONTROL "Radians", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
CONTROL "Gradians", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
@@ -148,9 +152,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "계산기"
CAPTION "ReactOS 계산기"
MENU IDR_MENU_STANDARD
FONT 9, "굴림", 0, 0, 0x1
BEGIN
@@ -213,9 +217,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "계산기"
CAPTION "ReactOS 계산기 정보"
MENU IDR_MENU_STANDARD
FONT 9, "굴림"
BEGIN
@@ -307,8 +311,8 @@ IDR_MENU_SCIENTIFIC_1 MENU
BEGIN
POPUP "편집"
BEGIN
MENUITEM "복사\tCtrl-C", IDM_EDIT_COPY
MENUITEM "붙여넣기\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "복사\tCTRL-C", IDM_EDIT_COPY
MENUITEM "붙여넣기\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "보기"
BEGIN
@@ -339,8 +343,8 @@ IDR_MENU_SCIENTIFIC_2 MENU
BEGIN
POPUP "편집"
BEGIN
MENUITEM "복사\tCtrl-C", IDM_EDIT_COPY
MENUITEM "붙여넣기\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "복사\tCTRL-C", IDM_EDIT_COPY
MENUITEM "붙여넣기\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "보기"
BEGIN
@@ -372,8 +376,8 @@ IDR_MENU_STANDARD MENU
BEGIN
POPUP "편집"
BEGIN
MENUITEM "복사\tCtrl-C", IDM_EDIT_COPY
MENUITEM "붙여넣기\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "복사\tCTRL-C", IDM_EDIT_COPY
MENUITEM "붙여넣기\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "보기"
BEGIN
@@ -502,7 +506,7 @@ BEGIN
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
IDS_CURRENCY_LUXEMBOURG_FRANC "Luxembourg franc"
IDS_CURRENCY_MALTESE_LIRA "Maltese lira"
IDS_CURRENCY_PORTUGUESE_ESCUDO "Portuguese escudo"
IDS_CURRENCY_PORTOGUESE_ESCUDO "Portoguese escudo"
IDS_CURRENCY_SLOVAK_KORUNA "Slovak koruna"
IDS_CURRENCY_SLOVENIAN_TOLAR "Slovenian tolar"
IDS_CURRENCY_SPANISH_PESETA "Spanish peseta"

View File

@@ -2,17 +2,17 @@ LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL
/* Dialogs */
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Rekenmachine"
CAPTION "ReactOS Rekenmachine"
MENU IDR_MENU_SCIENTIFIC_1
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
@@ -129,13 +129,17 @@ BEGIN
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Byte", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Graden", IDC_RADIO_DEG, 150, 21, 45, 10
AUTORADIOBUTTON "Radialen", IDC_RADIO_RAD, 204, 21, 45, 10
AUTORADIOBUTTON "Gradiënten", IDC_RADIO_GRAD, 258, 21, 45, 10
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 150, 21, 38, 10
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 190, 21, 38, 10
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 230, 21, 38, 10
CONTROL "Byte", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 270, 21, 38, 10
CONTROL "Graden", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
CONTROL "Radialen", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
CONTROL "Gradiënten", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
@@ -146,9 +150,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Rekenmachine"
CAPTION "ReactOS Rekenmachine"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
@@ -211,9 +215,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Rekenmachine"
CAPTION "ReactOS Rekenmachine"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg"
BEGIN
@@ -305,8 +309,8 @@ IDR_MENU_SCIENTIFIC_1 MENU
BEGIN
POPUP "Bewerken"
BEGIN
MENUITEM "Kopiëren\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Plakken\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Kopiëren\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Plakken\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "Beeld"
BEGIN
@@ -337,8 +341,8 @@ IDR_MENU_SCIENTIFIC_2 MENU
BEGIN
POPUP "Edit"
BEGIN
MENUITEM "Kopiëren\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Plakken\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Kopiëren\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Plakken\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "Beeld"
BEGIN
@@ -370,8 +374,8 @@ IDR_MENU_STANDARD MENU
BEGIN
POPUP "Edit"
BEGIN
MENUITEM "Kopiëren\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Plakken\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Kopiëren\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Plakken\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "View"
BEGIN
@@ -500,7 +504,7 @@ BEGIN
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
IDS_CURRENCY_LUXEMBOURG_FRANC "Luxemburgse franc"
IDS_CURRENCY_MALTESE_LIRA "Maltese lira"
IDS_CURRENCY_PORTUGUESE_ESCUDO "Portugese escudo"
IDS_CURRENCY_PORTOGUESE_ESCUDO "Portugese escudo"
IDS_CURRENCY_SLOVAK_KORUNA "Slowaakse kroon"
IDS_CURRENCY_SLOVENIAN_TOLAR "Sloveense tolar"
IDS_CURRENCY_SPANISH_PESETA "Spaanse peseta"

View File

@@ -2,17 +2,17 @@ LANGUAGE LANG_NORWEGIAN, SUBLANG_NEUTRAL
/* Dialogs */
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Kalkulator"
CAPTION "ReactOS Kalkulator"
MENU IDR_MENU_SCIENTIFIC_1
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
AUTORADIOBUTTON "Heks", IDC_RADIO_HEX, 8, 21, 30, 10
AUTORADIOBUTTON "Des", IDC_RADIO_DEC, 41, 21, 30, 10
AUTORADIOBUTTON "Okt", IDC_RADIO_OCT, 74, 21, 30, 10
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
CONTROL "Heks", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
CONTROL "Des", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
CONTROL "Okt", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
@@ -129,13 +129,17 @@ BEGIN
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Tegn", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Grader", IDC_RADIO_DEG, 150, 21, 45, 10
AUTORADIOBUTTON "Radianer", IDC_RADIO_RAD, 204, 21, 45, 10
AUTORADIOBUTTON "Gradienter", IDC_RADIO_GRAD, 258, 21, 45, 10
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 150, 21, 38, 10
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 190, 21, 38, 10
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 230, 21, 38, 10
CONTROL "Tegn", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 270, 21, 38, 10
CONTROL "Grader", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
CONTROL "Radianer", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
CONTROL "Gradienter", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
@@ -146,9 +150,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Kalkulator"
CAPTION "ReactOS Kalkulator"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
@@ -211,9 +215,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Kalkulator"
CAPTION "ReactOS Kalkulator"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg"
BEGIN
@@ -305,8 +309,8 @@ IDR_MENU_SCIENTIFIC_1 MENU
BEGIN
POPUP "Rediger"
BEGIN
MENUITEM "Kopier\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Lim inn\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Kopier\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Lim inn\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "Vis"
BEGIN
@@ -337,8 +341,8 @@ IDR_MENU_SCIENTIFIC_2 MENU
BEGIN
POPUP "Rediger"
BEGIN
MENUITEM "Kopier\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Lim inn\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Kopier\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Lim inn\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "Vis"
BEGIN
@@ -370,8 +374,8 @@ IDR_MENU_STANDARD MENU
BEGIN
POPUP "Rediger"
BEGIN
MENUITEM "Kopier\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Lim inn\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Kopier\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Lim inn\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "Vis"
BEGIN
@@ -500,7 +504,7 @@ BEGIN
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
IDS_CURRENCY_LUXEMBOURG_FRANC "Luxembourg franc"
IDS_CURRENCY_MALTESE_LIRA "Maltesisk lira"
IDS_CURRENCY_PORTUGUESE_ESCUDO "Portugisisk escudo"
IDS_CURRENCY_PORTOGUESE_ESCUDO "Portogisisk escudo"
IDS_CURRENCY_SLOVAK_KORUNA "Slovansk koruna"
IDS_CURRENCY_SLOVENIAN_TOLAR "Slovenansk tolar"
IDS_CURRENCY_SPANISH_PESETA "Spansk peseta"

View File

@@ -1,25 +1,27 @@
/*
* Translated by Caemyr - Olaf Siejka 2008-2011
* Use ReactOS forum PM or IRC to contact me
* IRC: irc.freenode.net #reactos-pl;
* Updated by Saibamen - Adam Stachowicz <saibamenppl@gmail.com> 2011
* Translated by Caemyr - Olaf Siejka (Feb, Jun 2008)
* Use ReactOS forum PM or IRC to contact me
* https://reactos.org
* IRC: irc.freenode.net #reactos-pl;
* Updated by Saibamen - Adam Stachowicz (saibamenppl@gmail.com) (Apr, 2011)
* UTF-8 conversion by Caemyr (May, 2011)
*/
LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
/* Dialogs */
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Kalkulator"
CAPTION "Kalkulator ReactOS"
MENU IDR_MENU_SCIENTIFIC_1
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
@@ -136,13 +138,17 @@ BEGIN
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Bajt", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Stopnie", IDC_RADIO_DEG, 150, 21, 45, 10
AUTORADIOBUTTON "Radiany", IDC_RADIO_RAD, 204, 21, 45, 10
AUTORADIOBUTTON "Gradusy", IDC_RADIO_GRAD, 258, 21, 45, 10
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 150, 21, 38, 10
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 190, 21, 38, 10
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 230, 21, 38, 10
CONTROL "Bajt", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 270, 21, 38, 10
CONTROL "Stopnie", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
CONTROL "Radiany", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
CONTROL "Gradusy", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
@@ -153,9 +159,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Kalkulator"
CAPTION "Kalkulator ReactOS"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
@@ -218,9 +224,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Kalkulator"
CAPTION "Kalkulator ReactOS"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg"
BEGIN
@@ -312,8 +318,8 @@ IDR_MENU_SCIENTIFIC_1 MENU
BEGIN
POPUP "Edycja"
BEGIN
MENUITEM "Kopiuj\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Wklej\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Kopiuj\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Wklej\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "Wygląd"
BEGIN
@@ -344,8 +350,8 @@ IDR_MENU_SCIENTIFIC_2 MENU
BEGIN
POPUP "Edycja"
BEGIN
MENUITEM "Kopiuj\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Wklej\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Kopiuj\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Wklej\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "Wygląd"
BEGIN
@@ -377,8 +383,8 @@ IDR_MENU_STANDARD MENU
BEGIN
POPUP "Edycja"
BEGIN
MENUITEM "Kopiuj\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Wklej\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Kopiuj\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Wklej\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "Wygląd"
BEGIN
@@ -507,7 +513,7 @@ BEGIN
IDS_CURRENCY_LITHUANIAN_LITAS "Litewski lit"
IDS_CURRENCY_LUXEMBOURG_FRANC "Luksemburski frank"
IDS_CURRENCY_MALTESE_LIRA "Maltańskie liry"
IDS_CURRENCY_PORTUGUESE_ESCUDO "Portugalskie escudo"
IDS_CURRENCY_PORTOGUESE_ESCUDO "Portugalskie escudo"
IDS_CURRENCY_SLOVAK_KORUNA "Słowacka korona"
IDS_CURRENCY_SLOVENIAN_TOLAR "Słoveński tolar"
IDS_CURRENCY_SPANISH_PESETA "Hiszpańska peseta"

View File

@@ -1,20 +1,20 @@
/* TRANSLATOR: 2011 mkbu95 <mkbu95@gmail.com> */
/* Translation and UTF-8 Conversion by mkbu95 <mkbu95@gmail.com> (August, 2011) */
LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
/* Dialogs */
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Calculadora"
CAPTION "Calculadora ReactOS"
MENU IDR_MENU_SCIENTIFIC_1
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
@@ -131,13 +131,17 @@ BEGIN
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Byte", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Graus", IDC_RADIO_DEG, 150, 21, 45, 10
AUTORADIOBUTTON "Radianos", IDC_RADIO_RAD, 204, 21, 45, 10
AUTORADIOBUTTON "Grados", IDC_RADIO_GRAD, 258, 21, 45, 10
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 150, 21, 38, 10
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 190, 21, 38, 10
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 230, 21, 38, 10
CONTROL "Byte", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 270, 21, 38, 10
CONTROL "Graus", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
CONTROL "Radianos", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
CONTROL "Grados", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
@@ -148,9 +152,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Calculadora"
CAPTION "Calculadora ReactOS"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
@@ -213,9 +217,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Calculadora"
CAPTION "Calculadora ReactOS"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg"
BEGIN
@@ -502,7 +506,7 @@ BEGIN
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
IDS_CURRENCY_LUXEMBOURG_FRANC "Franco luxemburguês"
IDS_CURRENCY_MALTESE_LIRA "Lira maltesa"
IDS_CURRENCY_PORTUGUESE_ESCUDO "Escudo português"
IDS_CURRENCY_PORTOGUESE_ESCUDO "Escudo português"
IDS_CURRENCY_SLOVAK_KORUNA "Coroa eslovaca"
IDS_CURRENCY_SLOVENIAN_TOLAR "Tolar"
IDS_CURRENCY_SPANISH_PESETA "Peseta"

View File

@@ -1,20 +1,20 @@
/* TRANSLATOR: 2021 Gabriel Aguiar <fgygh5804@gmail.com,fgsoftwarestudio@gmail.com> */
/* Translation and UTF-8 Conversion by Gabriel Aguiar <fgygh5804@gmail.com,fgsoftwarestudio@gmail.com> (July, 2021) */
LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL
/* Dialogs */
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Calculadora"
CAPTION "Calculadora ReactOS"
MENU IDR_MENU_SCIENTIFIC_1
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
@@ -131,13 +131,17 @@ BEGIN
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Byte", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Graus", IDC_RADIO_DEG, 150, 21, 45, 10
AUTORADIOBUTTON "Radianos", IDC_RADIO_RAD, 204, 21, 45, 10
AUTORADIOBUTTON "Grados", IDC_RADIO_GRAD, 258, 21, 45, 10
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 150, 21, 38, 10
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 190, 21, 38, 10
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 230, 21, 38, 10
CONTROL "Byte", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 270, 21, 38, 10
CONTROL "Graus", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
CONTROL "Radianos", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
CONTROL "Grados", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
@@ -148,9 +152,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Calculadora"
CAPTION "Calculadora ReactOS"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
@@ -213,9 +217,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Calculadora"
CAPTION "Calculadora ReactOS"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg"
BEGIN
@@ -502,7 +506,7 @@ BEGIN
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
IDS_CURRENCY_LUXEMBOURG_FRANC "Franco luxemburguês"
IDS_CURRENCY_MALTESE_LIRA "Lira maltesa"
IDS_CURRENCY_PORTUGUESE_ESCUDO "Escudo português"
IDS_CURRENCY_PORTOGUESE_ESCUDO "Escudo português"
IDS_CURRENCY_SLOVAK_KORUNA "Coroa eslovaca"
IDS_CURRENCY_SLOVENIAN_TOLAR "Tolar"
IDS_CURRENCY_SPANISH_PESETA "Peseta"

View File

@@ -4,24 +4,24 @@
* PURPOSE: Romanian resource file
* TRANSLATORS: Copyright 2009 Petru Dimitriu <petrimetri@gmail.com>
* Copyright 2011-2018 Ștefan Fulea <stefan.fulea@mail.com>
* Copyright 2022-2024 Andrei Miloiu <miloiuandrei@gmail.com>
* Copyright 2022 Andrei Miloiu <miloiuandrei@gmail.com>
*/
LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
/* Dialogs */
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Calculator"
CAPTION "Minicalculator"
MENU IDR_MENU_SCIENTIFIC_1
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
@@ -138,26 +138,30 @@ BEGIN
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
AUTORADIOBUTTON "64 biți", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "32 biți", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "16 biți", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "8 biți", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Grade", IDC_RADIO_DEG, 150, 21, 45, 10
AUTORADIOBUTTON "Radiani", IDC_RADIO_RAD, 204, 21, 45, 10
AUTORADIOBUTTON "Gradiani", IDC_RADIO_GRAD, 258, 21, 45, 10
CONTROL "64 biți", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 150, 21, 38, 10
CONTROL "32 biți", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 190, 21, 38, 10
CONTROL "16 biți", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 230, 21, 38, 10
CONTROL "8 biți", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 270, 21, 38, 10
CONTROL "Grade", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
CONTROL "Radiani", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
CONTROL "Gradiani", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "Backspace", IDC_BUTTON_BACK, 177, 38, 43, 18, BS_CENTER |
PUSHBUTTON "Înapoi", IDC_BUTTON_BACK, 177, 38, 43, 18, BS_CENTER |
BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
RTEXT "", IDC_TEXT_OUTPUT, 5, 1, 305, 14, SS_CENTERIMAGE, WS_EX_CLIENTEDGE
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Calculator"
CAPTION "Minicalculator"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
@@ -165,7 +169,7 @@ BEGIN
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "CE", IDC_BUTTON_CE, 80, 23, 41, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "Backspace", IDC_BUTTON_BACK, 36, 23, 42, 18, BS_CENTER | BS_VCENTER |
PUSHBUTTON "Înapoi", IDC_BUTTON_BACK, 36, 23, 42, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
RTEXT "", IDC_TEXT_OUTPUT, 5, 1, 159, 14, SS_CENTERIMAGE, WS_EX_CLIENTEDGE
PUSHBUTTON "7", IDC_BUTTON_7, 36, 45, 24, 18, BS_CENTER | BS_VCENTER |
@@ -220,9 +224,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Calculator"
CAPTION "Minicalculator"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg"
BEGIN
@@ -240,7 +244,7 @@ BEGIN
BS_VCENTER | BS_NOTIFY | WS_TABSTOP, 276, 24, 40, 17
CONTROL "CE", IDC_BUTTON_CE, "Button", BS_OWNERDRAW | BS_CENTER |
BS_VCENTER | BS_NOTIFY | WS_TABSTOP, 232, 24, 40, 17
CONTROL "Backspace", IDC_BUTTON_BACK, "Button", BS_OWNERDRAW | BS_CENTER |
CONTROL "Înapoi", IDC_BUTTON_BACK, "Button", BS_OWNERDRAW | BS_CENTER |
BS_VCENTER | BS_NOTIFY | WS_TABSTOP, 188, 24, 40,17
RTEXT "", IDC_TEXT_OUTPUT, 5, 1, 312, 14, SS_CENTERIMAGE, WS_EX_CLIENTEDGE
CONTROL "7", IDC_BUTTON_7, "Button", BS_OWNERDRAW | BS_CENTER |
@@ -314,31 +318,31 @@ IDR_MENU_SCIENTIFIC_1 MENU
BEGIN
POPUP "&Editare"
BEGIN
MENUITEM "&Copiere\tCtrl-C", IDM_EDIT_COPY
MENUITEM "&Lipire\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "&Copiază\tCtrl-C", IDM_EDIT_COPY
MENUITEM "&Lipește\tCtrl-V", IDM_EDIT_PASTE
END
POPUP "&Vizualizare"
POPUP "&Afișare"
BEGIN
MENUITEM "&Standard", IDM_VIEW_STANDARD
MENUITEM "&Ştiinţific", IDM_VIEW_SCIENTIFIC
MENUITEM "Co&nversie", IDM_VIEW_CONVERSION
MENUITEM "Mod st&andard", IDM_VIEW_STANDARD
MENUITEM "Mod știi&nțific", IDM_VIEW_SCIENTIFIC
MENUITEM "Con&versie", IDM_VIEW_CONVERSION
MENUITEM SEPARATOR
MENUITEM "&Hexazecimal\tF5", IDM_VIEW_HEX, CHECKED
MENUITEM "&Zecimal\tF6", IDM_VIEW_DEC, CHECKED
MENUITEM "O&ctal\tF7", IDM_VIEW_OCT, CHECKED
MENUITEM "&Octal\tF7", IDM_VIEW_OCT, CHECKED
MENUITEM "&Binar\tF8", IDM_VIEW_BIN, CHECKED
MENUITEM SEPARATOR
MENUITEM "&Grade\tF2", IDM_VIEW_DEG, CHECKED
MENUITEM "&Radiani\tF3", IDM_VIEW_RAD, CHECKED
MENUITEM "Gra&diani\tF4", IDM_VIEW_GRAD, CHECKED
MENUITEM SEPARATOR
MENUITEM "G&ruparea cifrelor", IDM_VIEW_GROUP, CHECKED
MENUITEM "Grupează &cifrele", IDM_VIEW_GROUP, CHECKED
END
POPUP "Aj&utor"
BEGIN
MENUITEM "&Termeni din Ajutor", IDM_HELP_HELP
MENUITEM "&Manual…", IDM_HELP_HELP
MENUITEM SEPARATOR
MENUITEM "&Despre Calculator ReactOS", IDM_HELP_ABOUT
MENUITEM "&Despre", IDM_HELP_ABOUT
END
END
@@ -346,32 +350,32 @@ IDR_MENU_SCIENTIFIC_2 MENU
BEGIN
POPUP "&Editare"
BEGIN
MENUITEM "&Copiere\tCtrl-C", IDM_EDIT_COPY
MENUITEM "&Lipire\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "&Copiază\tCTRL-C", IDM_EDIT_COPY
MENUITEM "&Lipește\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "&Vizualizare"
POPUP "&Afișare"
BEGIN
MENUITEM "&Standard", IDM_VIEW_STANDARD
MENUITEM "&Ştiinţific", IDM_VIEW_SCIENTIFIC
MENUITEM "G&ruparea cifrelor", IDM_VIEW_CONVERSION
MENUITEM "Mod st&andard", IDM_VIEW_STANDARD
MENUITEM "Mod știi&nțific", IDM_VIEW_SCIENTIFIC
MENUITEM "Con&versie", IDM_VIEW_CONVERSION
MENUITEM SEPARATOR
MENUITEM "&Hexazecimal\tF5", IDM_VIEW_HEX, CHECKED
MENUITEM "&Zecimal\tF6", IDM_VIEW_DEC, CHECKED
MENUITEM "&Octal\tF7", IDM_VIEW_OCT, CHECKED
MENUITEM "&Binar\tF8", IDM_VIEW_BIN, CHECKED
MENUITEM SEPARATOR
MENUITEM "&64 de biți\tF12", IDM_VIEW_QWORD, CHECKED
MENUITEM "&32 de biți\tF2", IDM_VIEW_DWORD, CHECKED
MENUITEM "&64 biți\tF12", IDM_VIEW_QWORD, CHECKED
MENUITEM "&32 biți\tF2", IDM_VIEW_DWORD, CHECKED
MENUITEM "&16 biți\tF3", IDM_VIEW_WORD, CHECKED
MENUITEM "&8 biți\tF4", IDM_VIEW_BYTE, CHECKED
MENUITEM SEPARATOR
MENUITEM "Gr&uparea cifrelor", IDM_VIEW_GROUP, CHECKED
MENUITEM "Grupează &cifrele", IDM_VIEW_GROUP, CHECKED
END
POPUP "Aj&utor"
BEGIN
MENUITEM "&Termeni din Ajutor", IDM_HELP_HELP
MENUITEM "&Manual…", IDM_HELP_HELP
MENUITEM SEPARATOR
MENUITEM "&Despre Calculator ReactOS", IDM_HELP_ABOUT
MENUITEM "&Despre", IDM_HELP_ABOUT
END
END
@@ -379,22 +383,22 @@ IDR_MENU_STANDARD MENU
BEGIN
POPUP "&Editare"
BEGIN
MENUITEM "&Copiere\tCtrl-C", IDM_EDIT_COPY
MENUITEM "&Lipire\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "&Copiază\tCTRL-C", IDM_EDIT_COPY
MENUITEM "&Lipește\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "&Vizualizare"
POPUP "&Afișare"
BEGIN
MENUITEM "&Standard", IDM_VIEW_STANDARD
MENUITEM "&Ştiinţific", IDM_VIEW_SCIENTIFIC
MENUITEM "Co&nversie", IDM_VIEW_CONVERSION
MENUITEM "Mod st&andard", IDM_VIEW_STANDARD
MENUITEM "Mod știi&nțific", IDM_VIEW_SCIENTIFIC
MENUITEM "Con&versie", IDM_VIEW_CONVERSION
MENUITEM SEPARATOR
MENUITEM "Gr&uparea cifrelor", IDM_VIEW_GROUP, CHECKED
MENUITEM "Grupează &cifre", IDM_VIEW_GROUP, CHECKED
END
POPUP "Aj&utor"
BEGIN
MENUITEM "&Termeni din Ajutor", IDM_HELP_HELP
MENUITEM "&Manual…", IDM_HELP_HELP
MENUITEM SEPARATOR
MENUITEM "&Despre Calculator ReactOS", IDM_HELP_ABOUT
MENUITEM "&Despre", IDM_HELP_ABOUT
END
END
@@ -403,13 +407,13 @@ END
STRINGTABLE
BEGIN
IDS_MATH_ERROR "Eroare"
IDS_QUICKHELP "Termeni din Ajutor"
IDS_QUICKHELP "Manual"
END
/* About */
STRINGTABLE
BEGIN
IDS_CALC_NAME "Calculator ReactOS"
IDS_CALC_NAME "Minicalculator ReactOS"
IDS_AUTHOR "Scris de Carlo Bramini"
END
@@ -434,8 +438,8 @@ END
/* Angles */
STRINGTABLE
BEGIN
IDS_ANGLE_ARCMINUTES "Minut de arc"
IDS_ANGLE_ARCSECONDS "Secundă de arc"
IDS_ANGLE_ARCMINUTES "Minute of arc"
IDS_ANGLE_ARCSECONDS "Second of arc"
IDS_ANGLE_DEGREES "Grade"
IDS_ANGLE_GRADIANS "Gradiani"
IDS_ANGLE_RADIANS "Radiani"
@@ -466,7 +470,7 @@ BEGIN
IDS_AREA_SQUARE_FATHOMS "Fathomi pătrați"
IDS_AREA_SQUARE_FATHOMS_HUNGARY "Fathomi pătrați (Ungaria)"
IDS_AREA_SQUARE_FEET "Picioare pătrate"
IDS_AREA_SQUARE_INCHES "Inci pătrați"
IDS_AREA_SQUARE_INCHES "Țoli pătrați"
IDS_AREA_SQUARE_KILOMETERS "Kilometri pătrați"
IDS_AREA_SQUARE_LAR "Lar pătrați"
IDS_AREA_SQUARE_METER "Metri pătrați"
@@ -509,7 +513,7 @@ BEGIN
IDS_CURRENCY_LITHUANIAN_LITAS "Litas lituanian"
IDS_CURRENCY_LUXEMBOURG_FRANC "Franc luxemburghez"
IDS_CURRENCY_MALTESE_LIRA "Litră malteză"
IDS_CURRENCY_PORTUGUESE_ESCUDO "Escudo portughez"
IDS_CURRENCY_PORTOGUESE_ESCUDO "Escudo portughez"
IDS_CURRENCY_SLOVAK_KORUNA "Coroană slovacă"
IDS_CURRENCY_SLOVENIAN_TOLAR "Tolar sloven"
IDS_CURRENCY_SPANISH_PESETA "Peseta spaniolă"
@@ -520,7 +524,7 @@ STRINGTABLE
BEGIN
IDS_ENERGY_15_C_CALORIES "Calorii 15 °C"
IDS_ENERGY_BTUS "Unități termale britanice"
IDS_ENERGY_ERGS "Ergi"
IDS_ENERGY_ERGS "Erg"
IDS_ENERGY_EVS "Electroni-Volt"
IDS_ENERGY_FOOT_POUNDS "Picioare-Livră"
IDS_ENERGY_IT_CALORIES "Calorii Tabel Internațional"
@@ -551,7 +555,7 @@ BEGIN
IDS_LENGTH_GAN "Gan"
IDS_LENGTH_HANDS "Palme"
IDS_LENGTH_HUNH "Hunh"
IDS_LENGTH_INCHES "Inci"
IDS_LENGTH_INCHES "Țoli"
IDS_LENGTH_JA "Ja"
IDS_LENGTH_JEONG "Jeong"
IDS_LENGTH_KABIET "Kabiet"
@@ -588,7 +592,7 @@ END
STRINGTABLE
BEGIN
IDS_POWER_BTUS_PER_MINUTE "Unități termice britanice pe minut"
IDS_POWER_FPS_PER_MINUTE "Picior-lire pe minut"
IDS_POWER_FPS_PER_MINUTE "Picior-livre pe minut"
IDS_POWER_HORSEPOWER "Cai putere"
IDS_POWER_KILOWATTS "Kilowați"
IDS_POWER_MEGAWATTS "Megawați"
@@ -604,7 +608,7 @@ BEGIN
IDS_PRESSURE_KILOPASCALS "Kilopascali"
IDS_PRESSURE_MM_OF_MERCURY "Milimetri coloană de mercur"
IDS_PRESSURE_PASCALS "Pascali"
IDS_PRESSURE_PSI "Livre-forță pe inci pătrați"
IDS_PRESSURE_PSI "Livre-forță pe țol pătrat"
END
/* Temperatures */
@@ -653,7 +657,7 @@ BEGIN
IDS_VOLUME_BUSHELS_US "Bushel (SUA)"
IDS_VOLUME_CUBIC_CENTIMETERS "Centrimetri cubi"
IDS_VOLUME_CUBIC_FEET "Picioare^3"
IDS_VOLUME_CUBIC_INCHES "Inci cubi"
IDS_VOLUME_CUBIC_INCHES "Țoli cubi"
IDS_VOLUME_CUBIC_METERS "Metri cubi"
IDS_VOLUME_CUBIC_YARDS "Yarzi cubi"
IDS_VOLUME_DOE "Doe"
@@ -704,11 +708,11 @@ BEGIN
IDS_WEIGHT_OUNCES_AVOIRDUPOIS "Uncii, avoirdupois"
IDS_WEIGHT_OUNCES_TROY "Uncii, troy"
IDS_WEIGHT_POUNDS "Livre"
IDS_WEIGHT_QUINTAL_METRIC "Quintale (metric)"
IDS_WEIGHT_QUINTAL_METRIC "Chintale (metric)"
IDS_WEIGHT_SALOUNG "Saloung"
IDS_WEIGHT_STONES "Stones"
IDS_WEIGHT_TAMLUNG "Tamlung"
IDS_WEIGHT_TONNES "Tone"
IDS_WEIGHT_TONNES "Tonni"
IDS_WEIGHT_TONS_UK "Tone (Marea Britanie)"
IDS_WEIGHT_TONS_US "Tone (SUA)"
END

View File

@@ -2,17 +2,17 @@ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
/* Dialogs */
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Калькулятор ReactOS"
MENU IDR_MENU_SCIENTIFIC_1
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
@@ -129,13 +129,17 @@ BEGIN
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
AUTORADIOBUTTON "8 байт", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "4 байт", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "2 байт", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "1 байт", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Градусы", IDC_RADIO_DEG, 150, 21, 45, 10
AUTORADIOBUTTON "Радианы", IDC_RADIO_RAD, 204, 21, 45, 10
AUTORADIOBUTTON "Грады", IDC_RADIO_GRAD, 258, 21, 45, 10
CONTROL "8 байт", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 150, 21, 38, 10
CONTROL "4 байт", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 190, 21, 38, 10
CONTROL "2 байт", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 230, 21, 38, 10
CONTROL "1 байт", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 270, 21, 38, 10
CONTROL "Градусы", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
CONTROL "Радианы", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
CONTROL "Грады", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
@@ -146,7 +150,7 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Калькулятор ReactOS"
MENU IDR_MENU_STANDARD
@@ -211,7 +215,7 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Калькулятор ReactOS"
MENU IDR_MENU_STANDARD
@@ -305,8 +309,8 @@ IDR_MENU_SCIENTIFIC_1 MENU
BEGIN
POPUP "&Правка"
BEGIN
MENUITEM "&Копировать\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Вст&авить\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "&Копировать\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Вст&авить\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "В&ид"
BEGIN
@@ -337,8 +341,8 @@ IDR_MENU_SCIENTIFIC_2 MENU
BEGIN
POPUP "&Правка"
BEGIN
MENUITEM "&Копировать\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Вст&авить\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "&Копировать\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Вст&авить\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "В&ид"
BEGIN
@@ -370,8 +374,8 @@ IDR_MENU_STANDARD MENU
BEGIN
POPUP "&Правка"
BEGIN
MENUITEM "&Копировать\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Вст&авить\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "&Копировать\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Вст&авить\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "В&ид"
BEGIN
@@ -425,8 +429,8 @@ END
/* Angles */
STRINGTABLE
BEGIN
IDS_ANGLE_ARCMINUTES "Угловая минута"
IDS_ANGLE_ARCSECONDS "Угловая секунда"
IDS_ANGLE_ARCMINUTES "Minute of arc"
IDS_ANGLE_ARCSECONDS "Second of arc"
IDS_ANGLE_DEGREES "градус"
IDS_ANGLE_GRADIANS "град"
IDS_ANGLE_RADIANS "радиан"
@@ -500,7 +504,7 @@ BEGIN
IDS_CURRENCY_LITHUANIAN_LITAS "Литовский лит"
IDS_CURRENCY_LUXEMBOURG_FRANC "Люксембургский франк"
IDS_CURRENCY_MALTESE_LIRA "Мальтийская лира"
IDS_CURRENCY_PORTUGUESE_ESCUDO "Португальское эскудо"
IDS_CURRENCY_PORTOGUESE_ESCUDO "Португальское эскудо"
IDS_CURRENCY_SLOVAK_KORUNA "Словацкая крона"
IDS_CURRENCY_SLOVENIAN_TOLAR "Словенский толар"
IDS_CURRENCY_SPANISH_PESETA "Испанская песета"

View File

@@ -1,4 +1,7 @@
/* TRANSLATOR: 2008-2011 Mário Kačmár /Mario Kacmar/ aka Kario <kario@szm.sk>
/* TRANSLATOR : Mário Kačmár /Mario Kacmar/ aka Kario (kario@szm.sk)
* DATE OF TR.: 30-01-2008
* LAST CHANGE: 09-08-2011
* ---------------------------------------
* TODO: pridanie navigačných značiek "&" ?
*/
@@ -6,17 +9,17 @@ LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT
/* Dialogs */
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Kalkulačka"
CAPTION "Kalkulačka systému ReactOS"
MENU IDR_MENU_SCIENTIFIC_1
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
@@ -133,13 +136,17 @@ BEGIN
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Bajt", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Stupne", IDC_RADIO_DEG, 150, 21, 45, 10
AUTORADIOBUTTON "Radiány", IDC_RADIO_RAD, 204, 21, 45, 10
AUTORADIOBUTTON "Grady", IDC_RADIO_GRAD, 258, 21, 45, 10
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 150, 21, 38, 10
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 190, 21, 38, 10
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 230, 21, 38, 10
CONTROL "Bajt", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 270, 21, 38, 10
CONTROL "Stupne", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
CONTROL "Radiány", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
CONTROL "Grady", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
@@ -150,9 +157,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Kalkulačka"
CAPTION "Kalkulačka systému ReactOS"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
@@ -215,9 +222,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Kalkulačka"
CAPTION "Kalkulačka systému ReactOS"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg"
BEGIN
@@ -309,8 +316,8 @@ IDR_MENU_SCIENTIFIC_1 MENU
BEGIN
POPUP "Úpravy"
BEGIN
MENUITEM "Kopírovať\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Prilepiť\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Kopírovať\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Prilepiť\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "Zobraziť"
BEGIN
@@ -341,8 +348,8 @@ IDR_MENU_SCIENTIFIC_2 MENU
BEGIN
POPUP "Úpravy"
BEGIN
MENUITEM "Kopírovať\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Prilepiť\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Kopírovať\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Prilepiť\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "Zobraziť"
BEGIN
@@ -374,8 +381,8 @@ IDR_MENU_STANDARD MENU
BEGIN
POPUP "Úpravy"
BEGIN
MENUITEM "Kopírovať\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Prilepiť\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Kopírovať\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Prilepiť\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "Zobraziť"
BEGIN
@@ -504,7 +511,7 @@ BEGIN
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
IDS_CURRENCY_LUXEMBOURG_FRANC "Luxemburský frank"
IDS_CURRENCY_MALTESE_LIRA "Maltská líra"
IDS_CURRENCY_PORTUGUESE_ESCUDO "Portugalské escudo"
IDS_CURRENCY_PORTOGUESE_ESCUDO "Portugalské escudo"
IDS_CURRENCY_SLOVAK_KORUNA "Slovenská koruna"
IDS_CURRENCY_SLOVENIAN_TOLAR "Slovinský toliar"
IDS_CURRENCY_SPANISH_PESETA "Španielska peseta"

View File

@@ -1,21 +1,22 @@
/* TRANSLATOR: 2013 Ardit Dani (Ard1t) <ardit.dani@gmail.com>
/* TRANSLATOR : Ardit Dani (Ard1t) (ardit.dani@gmail.com)
* DATE OF TR: 29-11-2013
*/
LANGUAGE LANG_ALBANIAN, SUBLANG_NEUTRAL
/* Dialogs */
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Makine Llogaritje"
CAPTION "ReactOS Makine Llogaritje"
MENU IDR_MENU_SCIENTIFIC_1
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
@@ -132,13 +133,17 @@ BEGIN
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Byte", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Degrees", IDC_RADIO_DEG, 150, 21, 45, 10
AUTORADIOBUTTON "Radians", IDC_RADIO_RAD, 204, 21, 45, 10
AUTORADIOBUTTON "Gradians", IDC_RADIO_GRAD, 258, 21, 45, 10
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 150, 21, 38, 10
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 190, 21, 38, 10
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 230, 21, 38, 10
CONTROL "Byte", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 270, 21, 38, 10
CONTROL "Degrees", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
CONTROL "Radians", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
CONTROL "Gradians", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
@@ -149,9 +154,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Makine Llogaritje"
CAPTION "ReactOS Makine Llogaritje"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
@@ -214,9 +219,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Makine Llogaritje"
CAPTION "ReactOS Makine Llogaritje"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg"
BEGIN
@@ -503,7 +508,7 @@ BEGIN
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
IDS_CURRENCY_LUXEMBOURG_FRANC "Luxembourg franc"
IDS_CURRENCY_MALTESE_LIRA "Lira Maltese"
IDS_CURRENCY_PORTUGUESE_ESCUDO "Escudo Portugez"
IDS_CURRENCY_PORTOGUESE_ESCUDO "Escudo Portugez"
IDS_CURRENCY_SLOVAK_KORUNA "Koruna Sllovake"
IDS_CURRENCY_SLOVENIAN_TOLAR "Tolari Slloven"
IDS_CURRENCY_SPANISH_PESETA "Peseta Spanjolle"

View File

@@ -1,5 +1,6 @@
/*
* PROJECT: ReactOS CALC
* FILE: base/applications/calc/lang/sv-SE.rc
* PURPOSE: Swedish resource file
* Translation: Jaix Bly
*/
@@ -8,17 +9,17 @@ LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
/* Dialogs */
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Kalkylator"
CAPTION "ReactOS Kalkylator"
MENU IDR_MENU_SCIENTIFIC_1
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
AUTORADIOBUTTON "Okt", IDC_RADIO_OCT, 74, 21, 30, 10
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
CONTROL "Okt", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
@@ -135,13 +136,17 @@ BEGIN
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Byte", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Grader", IDC_RADIO_DEG, 150, 21, 45, 10
AUTORADIOBUTTON "Radianer", IDC_RADIO_RAD, 204, 21, 45, 10
AUTORADIOBUTTON "Gradienter", IDC_RADIO_GRAD, 258, 21, 45, 10
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 150, 21, 38, 10
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 190, 21, 38, 10
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 230, 21, 38, 10
CONTROL "Byte", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 270, 21, 38, 10
CONTROL "Grader", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
CONTROL "Radianer", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
CONTROL "Gradienter", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
@@ -152,9 +157,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Kalkylator"
CAPTION "ReactOS Kalkylator"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
@@ -217,9 +222,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Kalkylator"
CAPTION "ReactOS Kalkylator"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg"
BEGIN
@@ -311,8 +316,8 @@ IDR_MENU_SCIENTIFIC_1 MENU
BEGIN
POPUP "Redigera"
BEGIN
MENUITEM "Kopiera\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Klistra in\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Kopiera\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Klistra in\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "Visa"
BEGIN
@@ -343,8 +348,8 @@ IDR_MENU_SCIENTIFIC_2 MENU
BEGIN
POPUP "Redigera"
BEGIN
MENUITEM "Kopiera\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Klistra in\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Kopiera\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Klistra in\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "Vis"
BEGIN
@@ -376,8 +381,8 @@ IDR_MENU_STANDARD MENU
BEGIN
POPUP "Redigera"
BEGIN
MENUITEM "Kopiera\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Klistra in\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Kopiera\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Klistra in\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "Visa"
BEGIN
@@ -506,7 +511,7 @@ BEGIN
IDS_CURRENCY_LITHUANIAN_LITAS "Litauenisk litas"
IDS_CURRENCY_LUXEMBOURG_FRANC "Luxembourg franc"
IDS_CURRENCY_MALTESE_LIRA "Maltesisk lire"
IDS_CURRENCY_PORTUGUESE_ESCUDO "Portugisisk escudo"
IDS_CURRENCY_PORTOGUESE_ESCUDO "Portugisisk escudo"
IDS_CURRENCY_SLOVAK_KORUNA "Slovakisk koruna"
IDS_CURRENCY_SLOVENIAN_TOLAR "Slovensk tolar"
IDS_CURRENCY_SPANISH_PESETA "Spansk peseta"

View File

@@ -2,17 +2,17 @@ LANGUAGE LANG_THAI, SUBLANG_DEFAULT
/* Dialogs */
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "เครื่องคิดเลข"
CAPTION "เครื่องคิดเลข ReactOS"
MENU IDR_MENU_SCIENTIFIC_1
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
AUTORADIOBUTTON "สิบหก", IDC_RADIO_HEX, 8, 21, 30, 10
AUTORADIOBUTTON "สิบ", IDC_RADIO_DEC, 41, 21, 30, 10
AUTORADIOBUTTON "แปด", IDC_RADIO_OCT, 74, 21, 30, 10
AUTORADIOBUTTON "สอง", IDC_RADIO_BIN, 107, 21, 30, 10
CONTROL "สิบหก", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
CONTROL "สิบ", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
CONTROL "แปด", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
CONTROL "สอง", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
@@ -129,13 +129,17 @@ BEGIN
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
AUTORADIOBUTTON "สี่เวิร์ด", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "สองเวิร์ด", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "เวิร์ด", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "ไบต", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "องศา", IDC_RADIO_DEG, 150, 21, 45, 10
AUTORADIOBUTTON "เกรเดียน", IDC_RADIO_RAD, 204, 21, 45, 10
AUTORADIOBUTTON "Gradians", IDC_RADIO_GRAD, 258, 21, 45, 10
CONTROL "สี่เวิร์ด", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 150, 21, 38, 10
CONTROL "สองเวิร์ด", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 190, 21, 38, 10
CONTROL "เวิร์ด", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 230, 21, 38, 10
CONTROL "ไบต์", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 270, 21, 38, 10
CONTROL "องศา", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
CONTROL "เรเดียน", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
CONTROL "เกรเดียน", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
@@ -146,7 +150,7 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "สถานภาพทั่วไป"
MENU IDR_MENU_STANDARD
@@ -211,9 +215,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "เครื่องคิดเลข"
CAPTION "เครื่องคิดเลข ReactOS"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg"
BEGIN
@@ -305,8 +309,8 @@ IDR_MENU_SCIENTIFIC_1 MENU
BEGIN
POPUP "แ&ก้ไข"
BEGIN
MENUITEM "คัดลอก\tCtrl-C", IDM_EDIT_COPY
MENUITEM "วาง\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "คัดลอก\tCTRL-C", IDM_EDIT_COPY
MENUITEM "วาง\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "&มุมมอง"
BEGIN
@@ -337,8 +341,8 @@ IDR_MENU_SCIENTIFIC_2 MENU
BEGIN
POPUP "แ&ก้ไข"
BEGIN
MENUITEM "คัดลอก\tCtrl-C", IDM_EDIT_COPY
MENUITEM "วาง\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "คัดลอก\tCTRL-C", IDM_EDIT_COPY
MENUITEM "วาง\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "&มุมมอง"
BEGIN
@@ -370,8 +374,8 @@ IDR_MENU_STANDARD MENU
BEGIN
POPUP "แ&ก้ไข"
BEGIN
MENUITEM "คัดลอก\tCtrl-C", IDM_EDIT_COPY
MENUITEM "วาง\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "คัดลอก\tCTRL-C", IDM_EDIT_COPY
MENUITEM "วาง\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "&มุมมอง"
BEGIN
@@ -500,7 +504,7 @@ BEGIN
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
IDS_CURRENCY_LUXEMBOURG_FRANC "Luxembourg franc"
IDS_CURRENCY_MALTESE_LIRA "Maltese lira"
IDS_CURRENCY_PORTUGUESE_ESCUDO "Portuguese escudo"
IDS_CURRENCY_PORTOGUESE_ESCUDO "Portoguese escudo"
IDS_CURRENCY_SLOVAK_KORUNA "Slovak koruna"
IDS_CURRENCY_SLOVENIAN_TOLAR "Slovenian tolar"
IDS_CURRENCY_SPANISH_PESETA "Spanish peseta"

View File

@@ -1,23 +1,23 @@
/* TRANSLATOR:
2013-2019 Erdem Ersoy (eersoy93) <erdemersoy@erdemersoy.net>
2021 Süleyman Poyraz <zaryob.dev@gmail.com>
2013-2014, 2016, 2019 Erdem Ersoy (eersoy93) (erdemersoy [at] erdemersoy [dot] net),
2021 Süleyman Poyraz (zaryob [dot] dev [at] gmail [dot] com)
*/
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
/* Dialogs */
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Hesap Makinesi"
CAPTION "ReactOS Hesap Makinesi"
MENU IDR_MENU_SCIENTIFIC_1
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
AUTORADIOBUTTON "Onaltılık", IDC_RADIO_HEX, 8, 21, 30, 10
AUTORADIOBUTTON "Onluk", IDC_RADIO_DEC, 41, 21, 30, 10
AUTORADIOBUTTON "Sekizlik", IDC_RADIO_OCT, 74, 21, 30, 10
AUTORADIOBUTTON "İkilik", IDC_RADIO_BIN, 107, 21, 30, 10
CONTROL "Onaltılık", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
CONTROL "Onluk", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
CONTROL "Sekizlik", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
CONTROL "İkilik", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
@@ -134,13 +134,17 @@ BEGIN
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Byte", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Derece", IDC_RADIO_DEG, 150, 21, 45, 10
AUTORADIOBUTTON "Radian", IDC_RADIO_RAD, 204, 21, 45, 10
AUTORADIOBUTTON "Gradian", IDC_RADIO_GRAD, 258, 21, 45, 10
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 150, 21, 38, 10
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 190, 21, 38, 10
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 230, 21, 38, 10
CONTROL "Byte", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 270, 21, 38, 10
CONTROL "Derece", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
CONTROL "Radian", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
CONTROL "Gradian", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
@@ -151,9 +155,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Hesap Makinesi"
CAPTION "ReactOS Hesap Makinesi"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
@@ -216,9 +220,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Hesap Makinesi"
CAPTION "ReactOS Hesap Makinesi"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg"
BEGIN
@@ -505,7 +509,7 @@ BEGIN
IDS_CURRENCY_LITHUANIAN_LITAS "Litvanya litas"
IDS_CURRENCY_LUXEMBOURG_FRANC "Lüksemburg Frangı"
IDS_CURRENCY_MALTESE_LIRA "Malta Lirası"
IDS_CURRENCY_PORTUGUESE_ESCUDO "Portekiz Esküdosu"
IDS_CURRENCY_PORTOGUESE_ESCUDO "Portekiz Esküdosu"
IDS_CURRENCY_SLOVAK_KORUNA "Slovak Korunası"
IDS_CURRENCY_SLOVENIAN_TOLAR "Slovenya Toları"
IDS_CURRENCY_SPANISH_PESETA "İspanyol Pesetası"

View File

@@ -1,7 +1,8 @@
/*
* PROJECT: ReactOS Calc
* PROJECT: ReactOS Calculator
* LICENSE: GPL - See COPYING in the top level directory
* PURPOSE: Ukrainian Language File
* FILE: base/applications/calc/lang/uk-UA.rc
* PURPOSE: Ukraianian Language File for ReactOS Calc
* TRANSLATORS: Artem Reznikov & Sakara Yevhen
*/
@@ -9,17 +10,17 @@ LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
/* Dialogs */
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Калькулятор"
CAPTION "Калькулятор ReactOS"
MENU IDR_MENU_SCIENTIFIC_1
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
@@ -136,13 +137,17 @@ BEGIN
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
AUTORADIOBUTTON "8 байт", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "4 байт", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "2 байт", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "1 байт", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Градуси", IDC_RADIO_DEG, 150, 21, 45, 10
AUTORADIOBUTTON "Радіани", IDC_RADIO_RAD, 204, 21, 45, 10
AUTORADIOBUTTON "Гради", IDC_RADIO_GRAD, 258, 21, 45, 10
CONTROL "8 байт", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 150, 21, 38, 10
CONTROL "4 байт", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 190, 21, 38, 10
CONTROL "2 байт", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 230, 21, 38, 10
CONTROL "1 байт", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 270, 21, 38, 10
CONTROL "Градуси", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
CONTROL "Радіани", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
CONTROL "Гради", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
@@ -153,9 +158,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Калькулятор"
CAPTION "Калькулятор ReactOS"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
@@ -218,9 +223,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Калькулятор"
CAPTION "Калькулятор ReactOS"
MENU IDR_MENU_STANDARD
FONT 8, "MS Shell Dlg"
BEGIN
@@ -312,8 +317,8 @@ IDR_MENU_SCIENTIFIC_1 MENU
BEGIN
POPUP "Правка"
BEGIN
MENUITEM "Копіювати\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Вставити\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Копіювати\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Вставити\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "Вигляд"
BEGIN
@@ -344,8 +349,8 @@ IDR_MENU_SCIENTIFIC_2 MENU
BEGIN
POPUP "Правка"
BEGIN
MENUITEM "Копіювати\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Вставити\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Копіювати\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Вставити\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "Вигляд"
BEGIN
@@ -377,8 +382,8 @@ IDR_MENU_STANDARD MENU
BEGIN
POPUP "Правка"
BEGIN
MENUITEM "Копіювати\tCtrl-C", IDM_EDIT_COPY
MENUITEM "Вставити\tCtrl-V", IDM_EDIT_PASTE
MENUITEM "Копіювати\tCTRL-C", IDM_EDIT_COPY
MENUITEM "Вставити\tCTRL-V", IDM_EDIT_PASTE
END
POPUP "Вигляд"
BEGIN
@@ -507,7 +512,7 @@ BEGIN
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
IDS_CURRENCY_LUXEMBOURG_FRANC "Люксембургський франк"
IDS_CURRENCY_MALTESE_LIRA "Мальтийськая ліра"
IDS_CURRENCY_PORTUGUESE_ESCUDO "Португальське ескудо"
IDS_CURRENCY_PORTOGUESE_ESCUDO "Португальське ескудо"
IDS_CURRENCY_SLOVAK_KORUNA "Словацька крона"
IDS_CURRENCY_SLOVENIAN_TOLAR "Словенський толар"
IDS_CURRENCY_SPANISH_PESETA "Іспанська песета"

View File

@@ -10,17 +10,17 @@ LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
/* Dialogs */
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "计算器"
CAPTION "ReactOS 计算器"
MENU IDR_MENU_SCIENTIFIC_1
FONT 9, "宋体", 0, 0, 0x1
BEGIN
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
@@ -137,13 +137,17 @@ BEGIN
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
AUTORADIOBUTTON "四字", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "双字", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "字", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "字节", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "角度", IDC_RADIO_DEG, 150, 21, 45, 10
AUTORADIOBUTTON "弧度", IDC_RADIO_RAD, 204, 21, 45, 10
AUTORADIOBUTTON "梯度", IDC_RADIO_GRAD, 258, 21, 45, 10
CONTROL "四字", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 150, 21, 38, 10
CONTROL "字", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 190, 21, 38, 10
CONTROL "字", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 230, 21, 38, 10
CONTROL "字节", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 270, 21, 38, 10
CONTROL "角度", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
CONTROL "弧度", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
CONTROL "梯度", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
@@ -154,9 +158,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "计算器"
CAPTION "ReactOS 计算器"
MENU IDR_MENU_STANDARD
FONT 9, "宋体", 0, 0, 0x1
BEGIN
@@ -219,9 +223,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "计算器"
CAPTION "ReactOS 计算器"
MENU IDR_MENU_STANDARD
FONT 9, "宋体"
BEGIN
@@ -508,7 +512,7 @@ BEGIN
IDS_CURRENCY_LITHUANIAN_LITAS "Lithuanian litas"
IDS_CURRENCY_LUXEMBOURG_FRANC "卢森堡法郎"
IDS_CURRENCY_MALTESE_LIRA "马耳他里拉"
IDS_CURRENCY_PORTUGUESE_ESCUDO "葡萄牙埃斯库多"
IDS_CURRENCY_PORTOGUESE_ESCUDO "葡萄牙埃斯库多"
IDS_CURRENCY_SLOVAK_KORUNA "斯洛伐克克朗"
IDS_CURRENCY_SLOVENIAN_TOLAR "斯洛文尼亚拖拉"
IDS_CURRENCY_SPANISH_PESETA "西班牙比塞塔"

View File

@@ -10,17 +10,17 @@ LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_HONGKONG
/* Dialogs */
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "計數機"
CAPTION "ReactOS 計數機"
MENU IDR_MENU_SCIENTIFIC_1
FONT 9, "新細明體", 0, 0, 0x1
BEGIN
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
@@ -137,13 +137,17 @@ BEGIN
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "位元組", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "角度", IDC_RADIO_DEG, 150, 21, 45, 10
AUTORADIOBUTTON "弧度", IDC_RADIO_RAD, 204, 21, 45, 10
AUTORADIOBUTTON "梯度", IDC_RADIO_GRAD, 258, 21, 45, 10
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 150, 21, 38, 10
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 190, 21, 38, 10
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 230, 21, 38, 10
CONTROL "位元組", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 270, 21, 38, 10
CONTROL "角度", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
CONTROL "弧度", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
CONTROL "梯度", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
@@ -154,9 +158,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "計數機"
CAPTION "ReactOS 計數機"
MENU IDR_MENU_STANDARD
FONT 9, "新細明體", 0, 0, 0x1
BEGIN
@@ -219,9 +223,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "計數機"
CAPTION "ReactOS 計數機"
MENU IDR_MENU_STANDARD
FONT 9, "新細明體"
BEGIN
@@ -508,7 +512,7 @@ BEGIN
IDS_CURRENCY_LITHUANIAN_LITAS "拉脫維亞拉分"
IDS_CURRENCY_LUXEMBOURG_FRANC "盧森堡法郎"
IDS_CURRENCY_MALTESE_LIRA "馬爾他里拉"
IDS_CURRENCY_PORTUGUESE_ESCUDO "葡萄牙埃斯庫多"
IDS_CURRENCY_PORTOGUESE_ESCUDO "葡萄牙埃斯庫多"
IDS_CURRENCY_SLOVAK_KORUNA "斯洛伐克克朗"
IDS_CURRENCY_SLOVENIAN_TOLAR "斯洛維尼亞拖拉"
IDS_CURRENCY_SPANISH_PESETA "西班牙比塞塔"

View File

@@ -1,20 +1,20 @@
// TRANSLATOR: 2021 Chan Chilung <eason066@gmail.com>
// Traditional Chinese translation by 2021 Chan Chilung <eason066@gmail.com>
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
/* Dialogs */
IDD_DIALOG_SCIENTIFIC DIALOGEX CW_USEDEFAULT16, 0, 316, 163
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 163
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "計算機"
CAPTION "ReactOS 計算機"
MENU IDR_MENU_SCIENTIFIC_1
FONT 9, "新細明體", 0, 0, 0x1
BEGIN
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
AUTORADIOBUTTON "Hex", IDC_RADIO_HEX, 8, 21, 30, 10
AUTORADIOBUTTON "Dec", IDC_RADIO_DEC, 41, 21, 30, 10
AUTORADIOBUTTON "Oct", IDC_RADIO_OCT, 74, 21, 30, 10
AUTORADIOBUTTON "Bin", IDC_RADIO_BIN, 107, 21, 30, 10
CONTROL "Hex", IDC_RADIO_HEX, "Button", BS_AUTORADIOBUTTON, 8, 21, 30, 10
CONTROL "Dec", IDC_RADIO_DEC, "Button", BS_AUTORADIOBUTTON, 41, 21, 30, 10
CONTROL "Oct", IDC_RADIO_OCT, "Button", BS_AUTORADIOBUTTON, 74, 21, 30, 10
CONTROL "Bin", IDC_RADIO_BIN, "Button", BS_AUTORADIOBUTTON, 107, 21, 30, 10
GROUPBOX "", IDC_STATIC, 5, 34, 84, 20
CONTROL "Inv", IDC_CHECK_INV, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 8, 41, 26, 10
CONTROL "Hyp", IDC_CHECK_HYP, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 49, 41, 29, 10
@@ -131,13 +131,17 @@ BEGIN
PUSHBUTTON "F", IDC_BUTTON_F, 286, 140, 24, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
GROUPBOX "", IDC_STATIC, 147, 14, 163, 20
AUTORADIOBUTTON "Qword", IDC_RADIO_QWORD, 150, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Dword", IDC_RADIO_DWORD, 190, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "Word", IDC_RADIO_WORD, 230, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "位元組", IDC_RADIO_BYTE, 270, 21, 38, 10, NOT WS_VISIBLE
AUTORADIOBUTTON "角度", IDC_RADIO_DEG, 150, 21, 45, 10
AUTORADIOBUTTON "弧度", IDC_RADIO_RAD, 204, 21, 45, 10
AUTORADIOBUTTON "梯度", IDC_RADIO_GRAD, 258, 21, 45, 10
CONTROL "Qword", IDC_RADIO_QWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 150, 21, 38, 10
CONTROL "Dword", IDC_RADIO_DWORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 190, 21, 38, 10
CONTROL "Word", IDC_RADIO_WORD, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 230, 21, 38, 10
CONTROL "位元組", IDC_RADIO_BYTE, "Button", BS_AUTORADIOBUTTON |
NOT WS_VISIBLE, 270, 21, 38, 10
CONTROL "角度", IDC_RADIO_DEG, "Button", BS_AUTORADIOBUTTON, 150, 21, 45, 10
CONTROL "弧度", IDC_RADIO_RAD, "Button", BS_AUTORADIOBUTTON, 204, 21, 45, 10
CONTROL "梯度", IDC_RADIO_GRAD, "Button", BS_AUTORADIOBUTTON, 258, 21, 45, 10
PUSHBUTTON "C", IDC_BUTTON_CANC, 267, 38, 43, 18, BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "CE", IDC_BUTTON_CE, 222, 38, 43, 18, BS_CENTER | BS_VCENTER |
@@ -148,9 +152,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_STANDARD DIALOGEX CW_USEDEFAULT16, 0, 169, 128
IDD_DIALOG_STANDARD DIALOGEX 0, 0, 169, 128
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "計算機"
CAPTION "ReactOS 計算機"
MENU IDR_MENU_STANDARD
FONT 9, "新細明體", 0, 0, 0x1
BEGIN
@@ -213,9 +217,9 @@ BEGIN
DEFPUSHBUTTON "", IDC_BUTTON_FOCUS, 0, 0, 5, 5, NOT WS_VISIBLE
END
IDD_DIALOG_CONVERSION DIALOGEX CW_USEDEFAULT16, 0, 320, 130
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "計算機"
CAPTION "ReactOS 計算機"
MENU IDR_MENU_STANDARD
FONT 9, "新細明體"
BEGIN
@@ -502,7 +506,7 @@ BEGIN
IDS_CURRENCY_LITHUANIAN_LITAS "拉脫維亞拉分"
IDS_CURRENCY_LUXEMBOURG_FRANC "盧森堡法郎"
IDS_CURRENCY_MALTESE_LIRA "馬爾他里拉"
IDS_CURRENCY_PORTUGUESE_ESCUDO "葡萄牙埃斯庫多"
IDS_CURRENCY_PORTOGUESE_ESCUDO "葡萄牙埃斯庫多"
IDS_CURRENCY_SLOVAK_KORUNA "斯洛伐克克朗"
IDS_CURRENCY_SLOVENIAN_TOLAR "斯洛維尼亞拖拉"
IDS_CURRENCY_SPANISH_PESETA "西班牙比塞塔"

View File

@@ -4,8 +4,6 @@
#define IDC_STATIC -1
#endif
#define CW_USEDEFAULT16 0x8000
#define IDS_CALC_NAME 1
#define IDS_MATH_ERROR 2
#define IDS_QUICKHELP 3
@@ -194,7 +192,7 @@
#define IDS_CURRENCY_LITHUANIAN_LITAS 2414
#define IDS_CURRENCY_LUXEMBOURG_FRANC 2415
#define IDS_CURRENCY_MALTESE_LIRA 2416
#define IDS_CURRENCY_PORTUGUESE_ESCUDO 2417
#define IDS_CURRENCY_PORTOGUESE_ESCUDO 2417
#define IDS_CURRENCY_SLOVAK_KORUNA 2418
#define IDS_CURRENCY_SLOVENIAN_TOLAR 2419
#define IDS_CURRENCY_SPANISH_PESETA 2420

View File

@@ -19,7 +19,7 @@
*/
#include <windef.h>
#include <winuser.rh>
#include <winuser.h>
#include "resource.h"
@@ -28,7 +28,7 @@
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
/* Icons */
IDI_CALC ICON "res/calc.ico"
IDI_CALC ICON DISCARDABLE "res/calc.ico"
/* Manifest */
#include <reactos/manifest_exe.rc>

View File

@@ -27,7 +27,7 @@ void prepare_rpn_result_2(calc_number_t *rpn, TCHAR *buffer, int size, int base)
switch (base) {
case IDC_RADIO_HEX:
StringCchPrintf(buffer, size, _T("%I64X"), rpn->i);
_stprintf(buffer, _T("%I64X"), rpn->i);
break;
case IDC_RADIO_DEC:
/*
@@ -40,11 +40,11 @@ void prepare_rpn_result_2(calc_number_t *rpn, TCHAR *buffer, int size, int base)
/* calculate the width of integer number */
width = (rpn->f==0) ? 1 : (int)log10(fabs(rpn->f))+1;
if (calc.sci_out == TRUE || width > MAX_LD_WIDTH || width < -MAX_LD_WIDTH)
StringCchPrintf(buffer, size, _T("%#.*e"), MAX_LD_WIDTH-1, rpn->f);
_stprintf(buffer, _T("%#.*e"), MAX_LD_WIDTH-1, rpn->f);
else {
TCHAR *ptr, *dst;
StringCchPrintfEx(buffer, size, &ptr, NULL, 0, _T("%#*.*f"), width, ((MAX_LD_WIDTH-width-1)>=0) ? MAX_LD_WIDTH-width-1 : 0, rpn->f);
ptr = buffer + _stprintf(buffer, _T("%#*.*f"), width, ((MAX_LD_WIDTH-width-1)>=0) ? MAX_LD_WIDTH-width-1 : 0, rpn->f);
/* format string ensures there is a '.': */
dst = _tcschr(buffer, _T('.'));
while (--ptr > dst)
@@ -61,7 +61,7 @@ void prepare_rpn_result_2(calc_number_t *rpn, TCHAR *buffer, int size, int base)
#undef MAX_LD_WIDTH
break;
case IDC_RADIO_OCT:
StringCchPrintf(buffer, size, _T("%I64o"), rpn->i);
_stprintf(buffer, _T("%I64o"), rpn->i);
break;
case IDC_RADIO_BIN:
if (rpn->i == 0) {

View File

@@ -107,7 +107,7 @@ void prepare_rpn_result_2(calc_number_t *rpn, TCHAR *buffer, int size, int base)
}
mpz_clear(zz);
mpf_clear(ff);
StringCchPrintf(buffer, size, _T("%hs"), temp);
_sntprintf(buffer, SIZEOF(calc.buffer), _T("%hs"), temp);
}
void convert_text2number_2(calc_number_t *a)

View File

@@ -254,10 +254,10 @@ static void UpdateNumberIntl(void)
{
/* Get current user defaults */
if (!GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, calc.sDecimal, SIZEOF(calc.sDecimal)))
StringCbCopy(calc.sDecimal, sizeof(calc.sDecimal), _T("."));
_tcscpy(calc.sDecimal, _T("."));
if (!GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_STHOUSAND, calc.sThousand, SIZEOF(calc.sThousand)))
StringCbCopy(calc.sThousand, sizeof(calc.sThousand), _T(","));
_tcscpy(calc.sThousand, _T(","));
/* get the string lengths */
calc.sDecimal_len = _tcslen(calc.sDecimal);
@@ -342,7 +342,7 @@ static void save_config(void)
switch (osvi.dwPlatformId) {
case VER_PLATFORM_WIN32s:
case VER_PLATFORM_WIN32_WINDOWS:
StringCbPrintf(buf, sizeof(buf), _T("%lu"), calc.layout);
_stprintf(buf, _T("%lu"), calc.layout);
WriteProfileString(_T("SciCalc"), _T("layout"), buf);
WriteProfileString(_T("SciCalc"), _T("UseSep"), (calc.usesep==TRUE) ? _T("1") : _T("0"));
break;
@@ -496,16 +496,16 @@ static void update_lcd_display(HWND hwnd)
TCHAR tmp[MAX_CALC_SIZE * 2 + 2];
if (calc.buffer[0] == _T('\0'))
StringCbCopy(tmp, sizeof(tmp), _T("0"));
_tcscpy(tmp, _T("0"));
else
StringCbCopy(tmp, sizeof(tmp), calc.buffer);
_tcscpy(tmp, calc.buffer);
/* Add final '.' in decimal mode (if it's missing), but
* only if it's a result: no append if it prints "ERROR".
*/
if (calc.base == IDC_RADIO_DEC && !calc.is_nan) {
if (_tcschr(tmp, _T('.')) == NULL)
StringCbCat(tmp, sizeof(tmp), _T("."));
_tcscat(tmp, _T("."));
}
/* if separator mode is on, let's add an additional space */
if (calc.usesep && !calc.sci_in && !calc.sci_out && !calc.is_nan) {
@@ -573,14 +573,13 @@ static void update_parent_display(HWND hWnd)
if (!n)
str[0] = _T('\0');
else
StringCbPrintf(str, sizeof(str), _T("(=%d"), n);
_stprintf(str,_T("(=%d"), n);
SetDlgItemText(hWnd, IDC_TEXT_PARENT, str);
}
static void build_operand(HWND hwnd, DWORD idc)
{
unsigned int i = 0, n;
size_t cbPtr;
if (idc == IDC_BUTTON_DOT) {
/* if dot is the first char, it's added automatically */
@@ -618,14 +617,12 @@ static void build_operand(HWND hwnd, DWORD idc)
if (idc != IDC_STATIC)
calc.esp = (calc.esp * 10 + (key2code[i].key-'0')) % LOCAL_EXP_SIZE;
if (calc.ptr == calc.buffer)
StringCbPrintf(calc.ptr, sizeof(calc.buffer), _T("0.e%+d"), calc.esp);
_stprintf(calc.ptr, _T("0.e%+d"), calc.esp);
else {
/* adds the dot at the end if the number has no decimal part */
if (!_tcschr(calc.buffer, _T('.')))
*calc.ptr++ = _T('.');
cbPtr = sizeof(calc.buffer) - ((BYTE*)calc.ptr - (BYTE*)calc.buffer);
StringCbPrintf(calc.ptr, cbPtr, _T("e%+d"), calc.esp);
_stprintf(calc.ptr, _T("e%+d"), calc.esp);
}
update_lcd_display(hwnd);
return;
@@ -640,11 +637,7 @@ static void build_operand(HWND hwnd, DWORD idc)
return;
break;
}
cbPtr = sizeof(calc.buffer) - ((BYTE*)calc.ptr - (BYTE*)calc.buffer);
StringCbPrintfEx(calc.ptr, cbPtr, &calc.ptr, NULL, STRSAFE_FILL_ON_FAILURE,
_T("%C"), key2code[i].key);
calc.ptr += _stprintf(calc.ptr, _T("%C"), key2code[i].key);
update_lcd_display(hwnd);
}
@@ -857,11 +850,11 @@ static void update_memory_flag(HWND hWnd, BOOL mem_flag)
SetDlgItemText(hWnd, IDC_TEXT_MEMORY, mem_flag ? _T("M") : _T(""));
}
static void update_n_stats_items(HWND hWnd, TCHAR *buffer, size_t cbBuffer)
static void update_n_stats_items(HWND hWnd, TCHAR *buffer)
{
unsigned int n = SendDlgItemMessage(hWnd, IDC_LIST_STAT, LB_GETCOUNT, 0, 0);
StringCbPrintf(buffer, cbBuffer, _T("n=%u"), n);
_stprintf(buffer, _T("n=%u"), n);
SetDlgItemText(hWnd, IDC_TEXT_NITEMS, buffer);
}
@@ -912,7 +905,7 @@ static char *ReadConversion(const char *formula)
str[len+1] = ')';
str[len+2] = '\0';
StringCbCopy(calc.source, sizeof(calc.source), (*calc.buffer == _T('\0')) ? _T("0") : calc.buffer);
_tcscpy(calc.source, (*calc.buffer == _T('\0')) ? _T("0") : calc.buffer);
/* clear display content before proceeding */
calc.ptr = calc.buffer;
@@ -949,13 +942,13 @@ static INT_PTR CALLBACK DlgStatProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
if (n == LB_ERR)
return TRUE;
SendDlgItemMessage(hWnd, IDC_LIST_STAT, LB_DELETESTRING, (WPARAM)n, 0);
update_n_stats_items(hWnd, buffer, sizeof(buffer));
update_n_stats_items(hWnd, buffer);
delete_stat_item(n);
return TRUE;
case IDC_BUTTON_CAD:
SendDlgItemMessage(hWnd, IDC_LIST_STAT, LB_RESETCONTENT, 0, 0);
clean_stat_list();
update_n_stats_items(hWnd, buffer, sizeof(buffer));
update_n_stats_items(hWnd, buffer);
return TRUE;
}
break;
@@ -971,7 +964,7 @@ static INT_PTR CALLBACK DlgStatProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
buffer, SIZEOF(buffer),
((statistic_t *)lp)->base);
SendDlgItemMessage(hWnd, IDC_LIST_STAT, LB_ADDSTRING, 0, (LPARAM)buffer);
update_n_stats_items(hWnd, buffer, sizeof(buffer));
update_n_stats_items(hWnd, buffer);
return TRUE;
}
return FALSE;
@@ -993,13 +986,11 @@ static void CopyMemToClipboard(void *ptr)
if(OpenClipboard(NULL)) {
HGLOBAL clipbuffer;
TCHAR *buffer;
size_t cbBuffer;
EmptyClipboard();
cbBuffer = (_tcslen(ptr) + 1) * sizeof(TCHAR);
clipbuffer = GlobalAlloc(GMEM_DDESHARE, cbBuffer);
clipbuffer = GlobalAlloc(GMEM_DDESHARE, (_tcslen(ptr)+1)*sizeof(TCHAR));
buffer = (TCHAR *)GlobalLock(clipbuffer);
StringCbCopy(buffer, cbBuffer, ptr);
_tcscpy(buffer, ptr);
GlobalUnlock(clipbuffer);
#ifdef UNICODE
SetClipboardData(CF_UNICODETEXT,clipbuffer);
@@ -1015,16 +1006,10 @@ static void handle_copy_command(HWND hWnd)
TCHAR display[MAX_CALC_SIZE];
UINT n;
// Read current text from output display
n = GetDlgItemText(hWnd, IDC_TEXT_OUTPUT, display, SIZEOF(display));
// Check if result is a true number
if (!calc.is_nan)
{
// Remove trailing decimal point if no decimal digits exist
if (calc.base == IDC_RADIO_DEC && _tcschr(calc.buffer, _T('.')) == NULL)
display[n - calc.sDecimal_len] = _T('\0');
}
if (calc.base == IDC_RADIO_DEC && _tcschr(calc.buffer, _T('.')) == NULL)
display[n - calc.sDecimal_len] = _T('\0');
CopyMemToClipboard(display);
}
@@ -1071,8 +1056,9 @@ static char *handle_sequence_input(HWND hwnd, sequence_t *seq)
}
} else
if (ch == '$') {
StringCbCopyEx(calc.buffer, sizeof(calc.buffer), calc.source, &calc.ptr, NULL,
STRSAFE_FILL_ON_FAILURE);
calc.ptr =
_tcscpy(calc.buffer, calc.source) +
_tcslen(calc.source);
} else {
for (x=0; x<SIZEOF(key2code); x++) {
if (!(key2code[x].mask & BITMASK_IS_ASCII) ||
@@ -1641,7 +1627,7 @@ static INT_PTR CALLBACK DlgMainProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
case IDC_BUTTON_D:
case IDC_BUTTON_E:
case IDC_BUTTON_F:
if (calc.is_nan) break;
calc.is_nan = FALSE;
build_operand(hWnd, LOWORD(wp));
return TRUE;
case IDC_BUTTON_PERCENT:
@@ -1707,7 +1693,6 @@ static INT_PTR CALLBACK DlgMainProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
}
return TRUE;
case IDC_BUTTON_BACK:
if (calc.is_nan) break;
if (calc.sci_in) {
if (calc.esp == 0) {
TCHAR *ptr;
@@ -1960,9 +1945,9 @@ int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdL
hInstance,
MAKEINTRESOURCE(IDI_CALC),
IMAGE_ICON,
0,
0,
LR_DEFAULTSIZE | LR_SHARED);
GetSystemMetrics(SM_CXICON),
GetSystemMetrics(SM_CYICON),
0);
calc.hSmIcon = LoadImage(
hInstance,
@@ -1970,7 +1955,7 @@ int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdL
IMAGE_ICON,
GetSystemMetrics(SM_CXSMICON),
GetSystemMetrics(SM_CYSMICON),
LR_SHARED);
0);
do {
/* ignore hwnd: dialogs are already visible! */
@@ -2000,6 +1985,12 @@ int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdL
save_config();
} while (calc.action != IDC_STATIC);
if (calc.hBgIcon != NULL)
DestroyIcon(calc.hBgIcon);
if (calc.hSmIcon != NULL)
DestroyIcon(calc.hSmIcon);
stop_rpn_engine();
Theme_Stop();

View File

@@ -2,7 +2,7 @@
* FILE: base/applications/charmap/lang/ro-RO.rc
* ReactOS Project (https://reactos.org)
* TRANSLATORS: Copyright 2011-2018 Ștefan Fulea <stefan.fulea@mail.com>
* Copyright 2023-2024 Andrei Miloiu <miloiuandrei@gmail.com>
* Copyright 2023 Andrei Miloiu <miloiuandrei@gmail.com>
*/
LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
@@ -11,18 +11,18 @@ IDD_CHARMAP DIALOGEX 6, 6, 292, 224
FONT 8, "MS Shell Dlg", 0, 0
STYLE DS_SHELLFONT | WS_CHILD | WS_VISIBLE
BEGIN
LTEXT "&Font:", IDC_STATIC, 6, 7, 24, 9
LTEXT "F&ont:", IDC_STATIC, 6, 7, 24, 9
COMBOBOX IDC_FONTCOMBO, 36, 5, 210, 210, WS_CHILD | WS_VISIBLE | WS_TABSTOP |
WS_VSCROLL | CBS_DROPDOWNLIST | CBS_SORT | CBS_HASSTRINGS
PUSHBUTTON "Ajut&or", IDC_CMHELP, 249, 5, 35, 13
PUSHBUTTON "&Manual…", IDC_CMHELP, 249, 5, 35, 13
CONTROL "", IDC_FONTMAP, "FontMapWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP |
WS_VSCROLL, 20, 22, 266, 156
LTEXT "C&aractere de copiat:", IDC_STATIC, 6, 188, 66, 9
CONTROL "", IDC_TEXTBOX, RICHEDIT_CLASS, ES_AUTOHSCROLL | WS_BORDER |
WS_CHILD | WS_VISIBLE | WS_TABSTOP, 74, 186, 114, 13
DEFPUSHBUTTON "Se&lectare", IDC_SELECT, 194, 186, 44, 13
PUSHBUTTON "&Copiere", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
CONTROL "&Vizualizare complexă", IDC_CHECK_ADVANCED, "Button", BS_AUTOCHECKBOX |
DEFPUSHBUTTON "S&electează", IDC_SELECT, 194, 186, 44, 13
PUSHBUTTON "&Copiază", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
CONTROL "Mod a&vansat", IDC_CHECK_ADVANCED, "Button", BS_AUTOCHECKBOX |
WS_TABSTOP, 8, 208, 95, 10
END
@@ -30,14 +30,14 @@ IDD_ADVANCED DIALOGEX 0, 0, 292, 64
STYLE DS_SHELLFONT | WS_CHILD
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Se&t de caractere:", IDC_STATIC, 8, 8, 60, 8
LTEXT "Co&dificare:", IDC_STATIC, 8, 8, 48, 8
COMBOBOX IDC_COMBO_CHARSET, 72, 4, 116, 80, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "&Grupare după:", IDC_STATIC, 8, 28, 50, 8
COMBOBOX IDC_COMBO_GROUPBY, 72, 24, 116, 80, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "Căutar&e", IDC_BUTTON_SEARCH, 200, 44, 50, 14
PUSHBUTTON "&Caută", IDC_BUTTON_SEARCH, 200, 44, 50, 14
EDITTEXT IDC_EDIT_SEARCH, 72, 44, 116, 14, ES_AUTOHSCROLL
LTEXT "Că&utare:", IDC_STATIC, 8, 48, 42, 8
LTEXT "U&nicode:", IDC_STATIC, 200, 8, 30, 8
LTEXT "Căuta&re:", IDC_STATIC, 8, 48, 42, 8
LTEXT "&Unicode:", IDC_STATIC, 200, 8, 30, 8
EDITTEXT IDC_EDIT_UNICODE, 236, 4, 28, 12, ES_AUTOHSCROLL
END
@@ -46,7 +46,7 @@ CAPTION "Despre"
FONT 8, "MS Shell Dlg", 0, 0
STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
BEGIN
LTEXT "Plan caractere v0.1\nDrept de autor (C) 2007 Ged Murphy (gedmurphy@reactos.org)\nTraducere de Ștefan Fulea (stefan.fulea@mail.com)", IDC_STATIC, 48, 7, 210, 36
LTEXT "Hartă de caractere v0.1\nDrept de autor (C) 2007 Ged Murphy (gedmurphy@reactos.org)\nTraducere de Ștefan Fulea (stefan.fulea@mail.com)", IDC_STATIC, 48, 7, 210, 36
PUSHBUTTON "Î&nchide", IDOK, 105, 162, 44, 15
ICON IDI_ICON, IDC_STATIC, 10, 10, 7, 30
EDITTEXT IDC_LICENSE_EDIT, 8, 44, 254, 107, WS_VISIBLE | WS_VSCROLL |
@@ -57,7 +57,7 @@ STRINGTABLE
BEGIN
IDS_LICENSE "Această aplicație este publică; fiind permisă modificarea și/sau (re)distribuția sa în termenii Licenței Publice Generale GNU publicată de Free Software Foundation; sau versiunea 2 a Licenței, sau (la alegere) a oricărei versiuni ulterioare.\r\n\r\nAceastă aplicație este distribuită doar în speranța de a fi utilă, FĂRĂ însă NICI O GARANȚIE; nici măcar cu garanția implicită a VANDABILITĂȚII sau a UTILITĂȚII ÎNTR-UN SCOP ANUME. Pentru mai multe detalii consultați Licența Publică Generală GNU.\r\n\r\nPuteți vedea această licență aici:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nDe asemenea puteți consulta traduceri neoficiale ale acestei licențe aici:\r\nhttp://www.gnu.org/licenses/translations.html"
IDS_ABOUT "&Despre…"
IDS_TITLE "Plan caractere"
IDS_TITLE "Hartă de caractere"
IDS_UNICODE "Unicode"
IDS_ALL "Toate"
END

View File

@@ -54,5 +54,5 @@ BEGIN
IDS_ABOUT "&О программе..."
IDS_TITLE "Таблица символов"
IDS_UNICODE "Unicode"
IDS_ALL "Все"
IDS_ALL "All"
END

View File

@@ -801,13 +801,11 @@ MapWndProc(HWND hwnd,
infoPtr->CurrentFont.lfFaceName,
SIZEOF(lfFaceName));
SetFont(infoPtr, lfFaceName);
SetCaretXY(infoPtr, infoPtr->CaretX, infoPtr->CaretY, FALSE, TRUE);
break;
case FM_SETFONT:
infoPtr->CaretX = infoPtr->CaretY = infoPtr->iYStart = 0;
SetFont(infoPtr, (LPWSTR)lParam);
SetCaretXY(infoPtr, infoPtr->CaretX, infoPtr->CaretY, FALSE, TRUE);
break;
case FM_GETCHAR:

View File

@@ -93,7 +93,7 @@ extern void LoadSettings(void)
lstatus = RegQueryValueEx(hKey, _T("Advanced"), NULL, &type, (LPBYTE)&dwAdvancedChecked, &size);
if (lstatus == ERROR_SUCCESS && type == REG_DWORD && dwAdvancedChecked != FALSE)
{
SendDlgItemMessage(hCharmapDlg, IDC_CHECK_ADVANCED, BM_CLICK, 0, 0);
SendDlgItemMessage(hCharmapDlg, IDC_CHECK_ADVANCED, BM_CLICK, MF_CHECKED, 0);
}
RegCloseKey(hKey);

View File

@@ -91,4 +91,4 @@ CCell::SetCellCoordinates(
)
{
m_CellCoordinates = Coordinates;
}
}

View File

@@ -519,4 +519,4 @@ CGridView::SetCellFocus(
// Set the new active cell and give it focus
m_ActiveCell = NewActiveCell;
m_ActiveCell->SetFocus(true);
}
}

View File

@@ -81,4 +81,4 @@ private:
bool ChangeMapFont(
);
};
};

View File

@@ -51,4 +51,4 @@
//WINE_DEFAULT_DEBUG_CHANNEL(charmap);
#endif
#endif

View File

@@ -1,9 +0,0 @@
project(cleanmgr)
# The main application
add_subdirectory(cleanmgr)
# Cleanup handlers
#add_subdirectory(dataclen) # Data Driven Cleaner

View File

@@ -1,212 +0,0 @@
/*
* PROJECT: ReactOS Disk Cleanup
* LICENSE: MIT (https://spdx.org/licenses/MIT)
* PURPOSE: CCleanupHandler implementation
* COPYRIGHT: Copyright 2023-2025 Mark Jansen <mark.jansen@reactos.org>
*/
#include "cleanmgr.h"
CCleanupHandler::CCleanupHandler(CRegKey &subKey, const CStringW &keyName, const GUID &guid)
: hSubKey(subKey)
, KeyName(keyName)
, Guid(guid)
, dwFlags(0)
, Priority(0)
, StateFlags(0)
, SpaceUsed(0)
, ShowHandler(true)
, hIcon(NULL)
{
}
CCleanupHandler::~CCleanupHandler()
{
Deactivate();
::DestroyIcon(hIcon);
}
void
CCleanupHandler::Deactivate()
{
if (Handler)
{
DWORD dwFlags = 0;
Handler->Deactivate(&dwFlags);
if (dwFlags & EVCF_REMOVEFROMLIST)
UNIMPLEMENTED_DBGBREAK();
}
}
bool
CCleanupHandler::Initialize(LPCWSTR pcwszVolume)
{
if (FAILED_UNEXPECTEDLY(
::CoCreateInstance(Guid, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARG(IEmptyVolumeCache, &Handler))))
{
return false;
}
DWORD dwSize = sizeof(Priority);
if (hSubKey.QueryBinaryValue(L"Priority", &Priority, &dwSize) != ERROR_SUCCESS)
{
if (hSubKey.QueryDWORDValue(L"Priority", Priority) != ERROR_SUCCESS)
Priority = 200;
}
dwSize = sizeof(StateFlags);
if (hSubKey.QueryDWORDValue(L"StateFlags", StateFlags) != ERROR_SUCCESS)
StateFlags = 0;
WCHAR PathBuffer[MAX_PATH] = {};
ULONG nChars = _countof(PathBuffer);
if (hSubKey.QueryStringValue(L"IconPath", PathBuffer, &nChars) != ERROR_SUCCESS)
{
CStringW Tmp;
WCHAR GuidStr[50] = {};
if (StringFromGUID2(Guid, GuidStr, _countof(GuidStr)))
{
Tmp.Format(L"CLSID\\%s\\DefaultIcon", GuidStr);
CRegKey clsid;
nChars = _countof(PathBuffer);
if (clsid.Open(HKEY_CLASSES_ROOT, Tmp, KEY_READ) != ERROR_SUCCESS ||
clsid.QueryStringValue(NULL, PathBuffer, &nChars) != ERROR_SUCCESS)
{
PathBuffer[0] = UNICODE_NULL;
}
}
}
if (!PathBuffer[0])
StringCchCopyW(PathBuffer, _countof(PathBuffer), L"%systemroot%\\system32\\shell32.dll");
int Index = 0;
WCHAR *ptr = wcschr(PathBuffer, L',');
if (ptr)
{
*ptr++ = UNICODE_NULL;
Index = wcstol(ptr, NULL, 10);
}
HICON Large, Small;
UINT Result = ExtractIconExW(PathBuffer, Index, &Large, &Small, 1);
if (Result < 1)
Result = ExtractIconExW(L"%systemroot%\\system32\\shell32.dll", 0, &Large, &Small, 1);
if (Result >= 1)
{
hIcon = Small;
if (!hIcon)
{
hIcon = Large;
}
else
{
::DestroyIcon(Large);
}
}
// These options should come from the command line
// dwFlags |= EVCF_SETTINGSMODE;
// dwFlags |= EVCF_OUTOFDISKSPACE;
CComPtr<IEmptyVolumeCache2> spHandler2;
HRESULT hr = Handler->QueryInterface(IID_PPV_ARG(IEmptyVolumeCache2, &spHandler2));
if (SUCCEEDED(hr))
{
hr = spHandler2->InitializeEx(
hSubKey, pcwszVolume, KeyName, &wszDisplayName, &wszDescription, &wszBtnText, &dwFlags);
if (FAILED_UNEXPECTEDLY(hr))
return false;
// No files to clean will return S_FALSE;
if (hr != S_OK)
return false;
}
else
{
// Observed behavior:
// When Initialize is called, wszDescription is actually pointing to data
// wszDescription.AllocateBytes(0x400u);
hr = Handler->Initialize(hSubKey, pcwszVolume, &wszDisplayName, &wszDescription, &dwFlags);
if (FAILED_UNEXPECTEDLY(hr))
return false;
// No files to clean will return S_FALSE;
if (hr != S_OK)
return false;
CComPtr<IPropertyBag> spBag;
WCHAR GuidStr[50] = {};
nChars = _countof(GuidStr);
if (hSubKey.QueryStringValue(L"PropertyBag", GuidStr, &nChars) == ERROR_SUCCESS)
{
GUID guid = {};
if (!FAILED_UNEXPECTEDLY(CLSIDFromString(GuidStr, &guid)))
{
FAILED_UNEXPECTEDLY(
CoCreateInstance(guid, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARG(IPropertyBag, &spBag)));
}
}
ReadProperty(L"Display", spBag, wszDisplayName);
ReadProperty(L"Description", spBag, wszDescription);
if (dwFlags & EVCF_HASSETTINGS)
{
ReadProperty(L"AdvancedButtonText", spBag, wszBtnText);
}
}
if ((dwFlags & EVCF_ENABLEBYDEFAULT) && !(StateFlags & HANDLER_STATE_SELECTED))
{
StateFlags |= HANDLER_STATE_SELECTED;
}
// For convenience
if (!wszDisplayName)
SHStrDupW(KeyName, &wszDisplayName);
return true;
}
void
CCleanupHandler::ReadProperty(LPCWSTR Name, IPropertyBag *pBag, CComHeapPtr<WCHAR> &storage)
{
if (storage)
return;
if (pBag)
{
CComVariant tmp;
tmp.vt = VT_BSTR;
HRESULT hr = pBag->Read(Name, &tmp, NULL);
if (!FAILED_UNEXPECTEDLY(hr) && tmp.vt == VT_BSTR)
{
SHStrDupW(tmp.bstrVal, &storage);
}
}
if (!storage)
{
WCHAR TmpStr[0x200] = {};
DWORD dwSize = _countof(TmpStr);
if (hSubKey.QueryStringValue(Name, TmpStr, &dwSize) == ERROR_SUCCESS)
{
WCHAR ResolvedStr[0x200] = {};
SHLoadIndirectString(TmpStr, ResolvedStr, _countof(ResolvedStr), NULL);
SHStrDupW(ResolvedStr, &storage);
}
}
}
BOOL
CCleanupHandler::HasSettings() const
{
return !!(dwFlags & EVCF_HASSETTINGS);
}
BOOL
CCleanupHandler::DontShowIfZero() const
{
return !!(dwFlags & EVCF_DONTSHOWIFZERO);
}

View File

@@ -1,48 +0,0 @@
/*
* PROJECT: ReactOS Disk Cleanup
* LICENSE: MIT (https://spdx.org/licenses/MIT)
* PURPOSE: CCleanupHandler definition
* COPYRIGHT: Copyright 2023-2025 Mark Jansen <mark.jansen@reactos.org>
*/
#define HANDLER_STATE_SELECTED 1
struct CCleanupHandler
{
CCleanupHandler(CRegKey &subKey, const CStringW &keyName, const GUID &guid);
~CCleanupHandler();
void Deactivate();
bool
Initialize(LPCWSTR pcwszVolume);
void
ReadProperty(LPCWSTR Name, IPropertyBag *pBag, CComHeapPtr<WCHAR> &storage);
BOOL
HasSettings() const;
BOOL
DontShowIfZero() const;
CRegKey hSubKey;
CStringW KeyName;
GUID Guid;
CComHeapPtr<WCHAR> wszDisplayName;
CComHeapPtr<WCHAR> wszDescription;
CComHeapPtr<WCHAR> wszBtnText;
CStringW IconPath;
DWORD dwFlags;
DWORD Priority;
DWORD StateFlags;
CComPtr<IEmptyVolumeCache> Handler;
DWORDLONG SpaceUsed;
bool ShowHandler;
HICON hIcon;
};

View File

@@ -1,163 +0,0 @@
/*
* PROJECT: ReactOS Disk Cleanup
* LICENSE: MIT (https://spdx.org/licenses/MIT)
* PURPOSE: CCleanupHandlerList implementation
* COPYRIGHT: Copyright 2023-2025 Mark Jansen <mark.jansen@reactos.org>
*/
#include "cleanmgr.h"
void CCleanupHandlerList::LoadHandlers(WCHAR Drive)
{
m_DriveStr.Format(L"%c:", Drive);
CRegKey VolumeCaches;
if (VolumeCaches.Open(HKEY_LOCAL_MACHINE, L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\VolumeCaches", KEY_READ) != ERROR_SUCCESS)
return;
LONG ItemIndex = 0;
WCHAR szKeyName[MAX_PATH];
WCHAR wszVolume[] = { Drive, L':', L'\\', UNICODE_NULL };
while (TRUE)
{
DWORD dwSize = _countof(szKeyName);
if (VolumeCaches.EnumKey(ItemIndex++, szKeyName, &dwSize) != ERROR_SUCCESS)
{
break;
}
CRegKey hSubKey;
if (hSubKey.Open(VolumeCaches, szKeyName, KEY_READ) == ERROR_SUCCESS)
{
WCHAR GuidStr[50] = {};
dwSize = _countof(GuidStr);
if (hSubKey.QueryStringValue(NULL, GuidStr, &dwSize) != ERROR_SUCCESS)
{
continue;
}
GUID guid = {};
if (FAILED_UNEXPECTEDLY(CLSIDFromString(GuidStr, &guid)))
continue;
CCleanupHandler* handler = new CCleanupHandler(hSubKey, szKeyName, guid);
if (!handler->Initialize(wszVolume))
{
delete handler;
continue;
}
m_Handlers.AddTail(handler);
}
}
// Sort handlers
BOOL fChanged = m_Handlers.GetCount() > 0;
while (fChanged)
{
fChanged = FALSE;
for (size_t n = 0; n < m_Handlers.GetCount() - 1; n++)
{
POSITION leftPos = m_Handlers.FindIndex(n);
POSITION rightPos = m_Handlers.FindIndex(n+1);
CCleanupHandler* left = m_Handlers.GetAt(leftPos);
CCleanupHandler* right = m_Handlers.GetAt(rightPos);
if (right->Priority < left->Priority)
{
m_Handlers.SwapElements(leftPos, rightPos);
fChanged = TRUE;
}
else if (right->Priority == left->Priority)
{
CStringW leftStr(left->wszDisplayName);
if (leftStr.Compare(right->wszDisplayName) > 0)
{
m_Handlers.SwapElements(leftPos, rightPos);
fChanged = TRUE;
}
}
}
}
}
DWORDLONG
CCleanupHandlerList::ScanDrive(IEmptyVolumeCacheCallBack *picb)
{
CProgressDlg progress;
CString Caption;
Caption.Format(IDS_CALCULATING, m_DriveStr.GetString());
CStringW Title(MAKEINTRESOURCE(IDS_DISK_CLEANUP));
progress.Start((DWORD)m_Handlers.GetCount(), Title, Caption);
int ItemIndex = 0;
DWORDLONG TotalSpaceUsed = 0;
ForEach(
[&](CCleanupHandler *current)
{
Caption.Format(IDS_SCANNING, current->wszDisplayName.m_pData);
progress.Step(++ItemIndex, Caption);
HRESULT hr = current->Handler->GetSpaceUsed(&current->SpaceUsed, picb);
if (FAILED_UNEXPECTEDLY(hr))
{
current->ShowHandler = false;
current->StateFlags &= ~HANDLER_STATE_SELECTED;
return;
}
if (current->SpaceUsed == 0 && current->DontShowIfZero())
{
current->ShowHandler = false;
current->StateFlags &= ~HANDLER_STATE_SELECTED;
}
TotalSpaceUsed += current->SpaceUsed;
});
progress.Stop();
return TotalSpaceUsed;
}
void
CCleanupHandlerList::ExecuteCleanup(IEmptyVolumeCacheCallBack *picb)
{
CProgressDlg progress;
CString Caption;
Caption.Format(IDS_CLEANING_CAPTION, m_DriveStr.GetString());
DWORD TotalSelected = 0;
ForEach(
[&](CCleanupHandler *current)
{
if (current->StateFlags & HANDLER_STATE_SELECTED)
TotalSelected++;
});
CStringW Title(MAKEINTRESOURCE(IDS_DISK_CLEANUP));
progress.Start(TotalSelected, Title, Caption);
int ItemIndex = 0;
ForEach(
[&](CCleanupHandler *current)
{
if (!(current->StateFlags & HANDLER_STATE_SELECTED))
return;
Caption.Format(IDS_CLEANING, current->wszDisplayName.m_pData);
progress.Step(++ItemIndex, Caption);
// If there is nothing to clean, we might get STG_E_NOMOREFILES
if (current->SpaceUsed > 0)
{
HRESULT hr = current->Handler->Purge(-1, picb);
if (FAILED_UNEXPECTEDLY(hr))
return;
}
});
progress.Stop();
}

View File

@@ -1,31 +0,0 @@
/*
* PROJECT: ReactOS Disk Cleanup
* LICENSE: MIT (https://spdx.org/licenses/MIT)
* PURPOSE: CCleanupHandlerList definition
* COPYRIGHT: Copyright 2023-2025 Mark Jansen <mark.jansen@reactos.org>
*/
class CCleanupHandlerList
{
private:
CAtlList<CCleanupHandler *> m_Handlers;
CStringW m_DriveStr;
public:
void LoadHandlers(WCHAR Drive);
DWORDLONG ScanDrive(IEmptyVolumeCacheCallBack* picb);
void ExecuteCleanup(IEmptyVolumeCacheCallBack *picb);
template<typename Fn>
void ForEach(Fn callback)
{
for (POSITION it = m_Handlers.GetHeadPosition(); it; m_Handlers.GetNext(it))
{
CCleanupHandler *current = m_Handlers.GetAt(it);
callback(current);
}
}
};

View File

@@ -1,54 +0,0 @@
/*
* PROJECT: ReactOS Disk Cleanup
* LICENSE: MIT (https://spdx.org/licenses/MIT)
* PURPOSE: CEmptyVolumeCacheCallBack definition / implementation
* COPYRIGHT: Copyright 2023-2025 Mark Jansen <mark.jansen@reactos.org>
*/
// We don't really use this, but some windows handlers crash without it
struct CEmptyVolumeCacheCallBack
: public IEmptyVolumeCacheCallBack
{
STDMETHOD_(ULONG, AddRef)() throw()
{
return 2;
}
STDMETHOD_(ULONG, Release)() throw()
{
return 1;
}
STDMETHOD(QueryInterface)(
REFIID riid,
_COM_Outptr_ void** ppvObject) throw()
{
if (riid == IID_IUnknown || riid == IID_IEmptyVolumeCacheCallBack)
{
*ppvObject = (IUnknown*)this;
return S_OK;
}
*ppvObject = NULL;
return E_NOINTERFACE;
}
STDMETHODIMP ScanProgress(
_In_ DWORDLONG dwlSpaceUsed,
_In_ DWORD dwFlags,
_In_ LPCWSTR pcwszStatus) override
{
DPRINT("dwlSpaceUsed: %lld, dwFlags: %x\n", dwlSpaceUsed, dwFlags);
return S_OK;
}
STDMETHODIMP PurgeProgress(
_In_ DWORDLONG dwlSpaceFreed,
_In_ DWORDLONG dwlSpaceToFree,
_In_ DWORD dwFlags,
_In_ LPCWSTR pcwszStatus) override
{
DPRINT("dwlSpaceFreed: %lld, dwlSpaceToFree: %lld, dwFlags: %x\n", dwlSpaceFreed, dwlSpaceToFree, dwFlags);
return S_OK;
}
};

View File

@@ -1,19 +0,0 @@
add_executable(cleanmgr
cleanmgr.cpp
cleanmgr.h
cleanmgr.rc
resource.h
CEmptyVolumeCacheCallBack.hpp
CProgressDlg.hpp
CSelectDriveDlg.cpp
CCleanupHandler.cpp
CCleanupHandler.hpp
CCleanupHandlerList.cpp
CCleanupHandlerList.hpp
)
set_module_type(cleanmgr win32gui UNICODE)
target_link_libraries(cleanmgr uuid cpprt atl_classes)
add_importlibs(cleanmgr shlwapi oleaut32 ole32 shell32 comctl32 user32 advapi32 msvcrt kernel32 ntdll)
add_dependencies(cleanmgr psdk)
add_cd_file(TARGET cleanmgr DESTINATION reactos/system32 FOR all)

View File

@@ -1,50 +0,0 @@
/*
* PROJECT: ReactOS Disk Cleanup
* LICENSE: MIT (https://spdx.org/licenses/MIT)
* PURPOSE: Progress dialog implementation
* COPYRIGHT: Copyright 2023-2025 Mark Jansen <mark.jansen@reactos.org>
*/
#pragma once
class CProgressDlg
{
CComPtr<IProgressDialog> m_spProgress;
DWORD m_dwTotal = 0;
public:
~CProgressDlg()
{
Stop();
}
void Start(DWORD dwTotalSteps, LPCWSTR Title, LPCWSTR Text)
{
HRESULT hr = CoCreateInstance(CLSID_ProgressDialog, NULL, CLSCTX_INPROC, IID_PPV_ARG(IProgressDialog, &m_spProgress));
if (FAILED_UNEXPECTEDLY(hr))
return;
m_dwTotal = dwTotalSteps;
m_spProgress->SetTitle(Title);
m_spProgress->SetLine(2, Text, TRUE, NULL);
m_spProgress->StartProgressDialog(NULL, NULL, PROGDLG_NOMINIMIZE, NULL);
m_spProgress->SetProgress(0, m_dwTotal);
}
void Step(DWORD dwProgress, LPCWSTR Text)
{
m_spProgress->SetProgress(dwProgress, m_dwTotal);
m_spProgress->SetLine(1, Text, TRUE, NULL);
}
void Stop()
{
if (m_spProgress)
{
m_spProgress->StopProgressDialog();
m_spProgress.Release();
}
}
};

View File

@@ -1,80 +0,0 @@
/*
* PROJECT: ReactOS Disk Cleanup
* LICENSE: MIT (https://spdx.org/licenses/MIT)
* PURPOSE: Drive selection dialog
* COPYRIGHT: Copyright 2023-2025 Mark Jansen <mark.jansen@reactos.org>
*/
#include "cleanmgr.h"
class CSelectDriveDlg : public CDialogImpl<CSelectDriveDlg>
{
public:
enum { IDD = IDD_SELECTDRIVE };
BEGIN_MSG_MAP(CSelectDriveDlg)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
COMMAND_ID_HANDLER(IDOK, OnEndDialog)
COMMAND_ID_HANDLER(IDCANCEL, OnEndDialog)
END_MSG_MAP()
CSelectDriveDlg()
:m_SelectedDrive(UNICODE_NULL)
{
}
LRESULT OnInitDialog(UINT, WPARAM, LPARAM, BOOL&)
{
// Try to find an existing instance of this dialog
WCHAR buf[300];
GetWindowTextW(buf, _countof(buf));
for (HWND hNext = NULL, hFind; (hFind = ::FindWindowExW(NULL, hNext, NULL, buf)) != NULL; hNext = hFind)
{
if (hFind != *this && ::IsWindowVisible(hFind))
{
::SetForegroundWindow(hFind);
EndDialog(IDCANCEL);
return FALSE;
}
}
CWindow cbo = GetDlgItem(IDC_DRIVES);
WCHAR VolumeNameBuffer[MAX_PATH + 1];
CStringW Tmp;
for (WCHAR Drive = 'A'; Drive <= 'Z'; ++Drive)
{
WCHAR RootPathName[] = { Drive,':','\\',0 };
UINT Type = GetDriveTypeW(RootPathName);
if (Type == DRIVE_FIXED)
{
GetVolumeInformationW(RootPathName, VolumeNameBuffer, _countof(VolumeNameBuffer), 0, 0, 0, 0, 0);
Tmp.Format(L"%s (%.2s)", VolumeNameBuffer, RootPathName);
int index = (int)cbo.SendMessage(CB_ADDSTRING, NULL, (LPARAM)Tmp.GetString());
cbo.SendMessage(CB_SETITEMDATA, index, Drive);
}
}
cbo.SendMessage(CB_SETCURSEL, 0);
return 1;
}
LRESULT OnEndDialog(WORD, WORD wID, HWND, BOOL&)
{
CWindow cbo = GetDlgItem(IDC_DRIVES);
m_SelectedDrive = (WCHAR)cbo.SendMessage(CB_GETITEMDATA, cbo.SendMessage(CB_GETCURSEL));
EndDialog(wID);
return 0;
}
WCHAR m_SelectedDrive;
};
void
SelectDrive(WCHAR &Drive)
{
CSelectDriveDlg dlgSelectDrive;
if (dlgSelectDrive.DoModal() == IDOK)
{
Drive = dlgSelectDrive.m_SelectedDrive;
}
}

View File

@@ -1,328 +0,0 @@
/*
* PROJECT: ReactOS Disk Cleanup
* LICENSE: MIT (https://spdx.org/licenses/MIT)
* PURPOSE: Disk cleanup entrypoint
* COPYRIGHT: Copyright 2023-2025 Mark Jansen <mark.jansen@reactos.org>
*/
#include "cleanmgr.h"
// for listview with extend style LVS_EX_CHECKBOXES, State image 1 is the unchecked box, and state image 2 is the
// checked box. see this: https://docs.microsoft.com/en-us/windows/win32/controls/extended-list-view-styles
#define STATEIMAGETOINDEX(x) (((x)&LVIS_STATEIMAGEMASK) >> 12)
#define STATEIMAGE_UNCHECKED 1
#define STATEIMAGE_CHECKED 2
struct CCleanMgrProperties :
public CPropertyPageImpl<CCleanMgrProperties>
{
enum { IDD = IDD_PROPERTIES_MAIN };
CWindow m_HandlerListControl;
WCHAR m_Drive;
DWORDLONG m_TotalSpaceUsed;
CCleanupHandlerList* m_HandlerList;
bool m_IgnoreChanges = true;
CCleanMgrProperties(WCHAR Drive, DWORDLONG TotalSpaceUsed, CCleanupHandlerList *handlerList)
: m_Drive(Drive)
, m_TotalSpaceUsed(TotalSpaceUsed)
, m_HandlerList(handlerList)
{
}
int OnApply()
{
CStringW Title(MAKEINTRESOURCE(IDS_DISK_CLEANUP));
CStringW Text(MAKEINTRESOURCE(IDS_CONFIRM_DELETE));
if (MessageBoxW(Text, Title, MB_YESNO | MB_ICONQUESTION) != IDYES)
return PSNRET_INVALID;
return PSNRET_NOERROR;
}
LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
HICON hIcon = (HICON)::LoadImageW(
_AtlBaseModule.GetResourceInstance(), MAKEINTRESOURCEW(IDI_CLEANMGR), IMAGE_ICON, 0, 0,
LR_DEFAULTSIZE | LR_SHARED);
SendDlgItemMessage(IDC_DISKICON, STM_SETICON, (WPARAM)hIcon);
m_HandlerListControl = GetDlgItem(IDC_HANDLERLIST);
RECT rc;
m_HandlerListControl.GetClientRect(&rc);
rc.right -= GetSystemMetrics(SM_CXVSCROLL);
LV_COLUMN column = {};
column.mask = LVCF_FMT | LVCF_WIDTH;
column.fmt = LVCFMT_LEFT;
column.cx = rc.right * 80 / 100;
ListView_InsertColumn(m_HandlerListControl, 0, &column);
column.fmt = LVCFMT_RIGHT;
column.cx = rc.right * 20 / 100;
ListView_InsertColumn(m_HandlerListControl, 1, &column);
HIMAGELIST hImagelist = ImageList_Create(16, 16, ILC_MASK | ILC_COLOR32, 1, 1);
ListView_SetImageList(m_HandlerListControl, hImagelist, LVSIL_SMALL);
ListView_SetExtendedListViewStyleEx(m_HandlerListControl, LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT, LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT);
m_HandlerList->ForEach(
[&](CCleanupHandler *current)
{
if (!current->ShowHandler)
return;
LV_ITEM item = {};
item.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM;
item.lParam = (LPARAM)current;
item.pszText = (LPWSTR)current->wszDisplayName;
item.iItem = ListView_GetItemCount(m_HandlerListControl);
item.iImage = ImageList_AddIcon(hImagelist, current->hIcon);
item.iItem = ListView_InsertItem(m_HandlerListControl, &item);
ListView_SetCheckState(
m_HandlerListControl, item.iItem, !!(current->StateFlags & HANDLER_STATE_SELECTED));
item.mask = LVIF_TEXT;
WCHAR ByteSize[100] = {};
StrFormatByteSizeW(current->SpaceUsed, ByteSize, _countof(ByteSize));
ListView_SetItemText(m_HandlerListControl, item.iItem, 1, ByteSize);
});
// Now we should start responding to changes
m_IgnoreChanges = false;
// Select the first item
ListView_SetItemState(m_HandlerListControl, 0, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
UpdateSpaceUsed();
return TRUE;
}
CCleanupHandler* GetHandler(int Index)
{
LVITEMW item = {};
item.iItem = Index;
if (item.iItem >= 0)
{
item.mask = LVIF_PARAM;
ListView_GetItem(m_HandlerListControl, &item);
return (CCleanupHandler*)item.lParam;
}
return nullptr;
}
LRESULT OnDetails(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
CCleanupHandler *handler = GetHandler(ListView_GetNextItem(m_HandlerListControl, -1, LVIS_FOCUSED));
if (handler)
{
handler->Handler->ShowProperties(m_hWnd);
}
return 0L;
}
LRESULT OnHandlerItemchanged(int idCtrl, LPNMHDR pnmh, BOOL& bHandled)
{
if (idCtrl == IDC_HANDLERLIST)
{
// We are still initializing, don't respond to changes just yet!
if (m_IgnoreChanges)
return 0L;
LPNMLISTVIEW pnic = (LPNMLISTVIEW)pnmh;
// We only care about state changes
if (!(pnic->uChanged & LVIF_STATE))
return 0L;
INT ItemIndex = pnic->iItem;
if (ItemIndex == -1 || ItemIndex >= ListView_GetItemCount(pnic->hdr.hwndFrom))
{
return 0L;
}
bool GotSelected = (pnic->uNewState & LVIS_SELECTED) && !(pnic->uOldState & LVIS_SELECTED);
if (GotSelected)
{
CWindow DetailsButton = GetDlgItem(IDC_DETAILS);
CCleanupHandler* handler = (CCleanupHandler*)pnic->lParam;
SetDlgItemText(IDC_DESCRIPTION, handler->wszDescription ? handler->wszDescription : L"");
if (handler->HasSettings())
{
DetailsButton.ShowWindow(SW_SHOW);
DetailsButton.SetWindowText(handler->wszBtnText);
}
else
{
DetailsButton.ShowWindow(SW_HIDE);
}
}
int iOldState = STATEIMAGETOINDEX(pnic->uOldState);
int iNewState = STATEIMAGETOINDEX(pnic->uNewState);
if ((iOldState ^ iNewState) == (STATEIMAGE_UNCHECKED ^ STATEIMAGE_CHECKED))
{
CCleanupHandler* handler = (CCleanupHandler*)pnic->lParam;
if (iNewState == STATEIMAGE_CHECKED)
handler->StateFlags |= HANDLER_STATE_SELECTED;
else
handler->StateFlags &= ~HANDLER_STATE_SELECTED;
UpdateSpaceUsed();
}
}
return 0L;
}
void UpdateSpaceUsed()
{
CStringW tmp;
WCHAR ByteSize[100];
StrFormatByteSizeW(m_TotalSpaceUsed, ByteSize, _countof(ByteSize));
tmp.Format(IDS_TOTAL_CLEANABLE_CAPTION, ByteSize, m_Drive);
SetDlgItemText(IDC_TOTAL_CLEANABLE, tmp);
DWORDLONG SelectedGained = 0;
m_HandlerList->ForEach(
[&](CCleanupHandler *current)
{
if (current->StateFlags & HANDLER_STATE_SELECTED)
{
SelectedGained += current->SpaceUsed;
}
});
StrFormatByteSizeW(SelectedGained, ByteSize, _countof(ByteSize));
SetDlgItemText(IDC_SELECTED_GAINED, ByteSize);
}
BEGIN_MSG_MAP(CCleanMgrProperties)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
COMMAND_ID_HANDLER(IDC_DETAILS, OnDetails)
NOTIFY_HANDLER(IDC_HANDLERLIST, LVN_ITEMCHANGED, OnHandlerItemchanged)
CHAIN_MSG_MAP(CPropertyPageImpl<CCleanMgrProperties>) // Allow the default handler to call 'OnApply' etc
END_MSG_MAP()
};
class CCleanMgrModule : public ATL::CAtlExeModuleT< CCleanMgrModule >
{
public:
WCHAR m_Drive = UNICODE_NULL;
bool ParseCommandLine(
_In_z_ LPCTSTR lpCmdLine,
_Out_ HRESULT* pnRetCode) throw()
{
int argc = 0;
CLocalPtr<LPWSTR> argv(CommandLineToArgvW(lpCmdLine, &argc));
for (int n = 1; n < argc; ++n)
{
if ((argv[n][0] == '/' || argv[n][0] == '-') && towlower(argv[n][1]) == 'd')
{
if (iswalpha(argv[n][2]))
{
m_Drive = towupper(argv[n][2]);
continue;
}
if ((n + 1) < argc)
{
m_Drive = towupper(argv[n + 1][0]);
++n;
continue;
}
}
}
*pnRetCode = S_OK;
return true;
}
static inline UINT GetWindowProcessId(_In_ HWND hWnd)
{
DWORD pid;
return GetWindowThreadProcessId(hWnd, &pid) ? pid : 0;
}
static BOOL CALLBACK EnumSingleInstanceCallback(_In_ HWND hWnd, _In_ LPARAM lParam)
{
if (::IsWindowVisible(hWnd) && (LPARAM)GetWindowProcessId(hWnd) == lParam)
{
::SetForegroundWindow(hWnd);
return FALSE;
}
return TRUE;
}
HRESULT Run(_In_ int nShowCmd) throw()
{
if (m_Drive == UNICODE_NULL)
{
SelectDrive(m_Drive);
}
if (m_Drive == UNICODE_NULL)
return E_FAIL;
CStringW Title;
Title.Format(IDS_PROPERTIES_MAIN_TITLE, m_Drive);
HWND hWndInstance = ::CreateWindowExW(WS_EX_TOOLWINDOW, WC_STATIC, Title, 0, 0, 0, 0, 0, NULL, NULL, NULL, NULL);
for (HWND hNext = NULL, hFind; (hFind = ::FindWindowExW(NULL, hNext, WC_STATIC, Title)) != NULL; hNext = hFind)
{
if (hFind != hWndInstance)
{
::EnumWindows(EnumSingleInstanceCallback, GetWindowProcessId(hFind));
return S_FALSE;
}
}
CCleanupHandlerList Handlers;
CEmptyVolumeCacheCallBack CacheCallBack;
Handlers.LoadHandlers(m_Drive);
DWORDLONG TotalSpaceUsed = Handlers.ScanDrive(&CacheCallBack);
CCleanMgrProperties cleanMgr(m_Drive, TotalSpaceUsed, &Handlers);
HPROPSHEETPAGE hpsp[1] = { cleanMgr.Create() };
PROPSHEETHEADERW psh = { };
psh.dwSize = sizeof(psh);
psh.dwFlags = PSH_NOAPPLYNOW | PSH_USEICONID | PSH_NOCONTEXTHELP;
psh.hInstance = _AtlBaseModule.GetResourceInstance();
psh.pszIcon = MAKEINTRESOURCEW(IDI_CLEANMGR);
psh.pszCaption = Title;
psh.nPages = _countof(hpsp);
psh.phpage = hpsp;
if (PropertySheetW(&psh) >= 1)
{
::DestroyWindow(hWndInstance); // Allow new "cleanmgr /D" without waiting for these handlers
Handlers.ExecuteCleanup(&CacheCallBack);
}
else
{
::DestroyWindow(hWndInstance);
}
return S_OK;
}
};
CCleanMgrModule _AtlModule;
extern "C" int WINAPI wWinMain(HINSTANCE /*hInstance*/, HINSTANCE /*hPrevInstance*/,
LPWSTR /*lpCmdLine*/, int nShowCmd)
{
return _AtlModule.WinMain(nShowCmd);
}

View File

@@ -1,66 +0,0 @@
/*
* PROJECT: ReactOS Disk Cleanup
* LICENSE: MIT (https://spdx.org/licenses/MIT)
* PURPOSE: Main header file
* COPYRIGHT: Copyright 2023-2025 Mark Jansen <mark.jansen@reactos.org>
*/
#pragma once
#ifndef STRICT
#define STRICT
#endif
#define _ATL_APARTMENT_THREADED
#define _ATL_NO_AUTOMATIC_NAMESPACE
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit
#define ATL_NO_ASSERT_ON_DESTROY_NONEXISTENT_WINDOW
#define _FORCENAMELESSUNION
#include <ndk/rtlfuncs.h>
#include <windef.h>
#include <winbase.h>
#include <shlobj.h>
#include <shlwapi.h>
#include <atlbase.h>
#include <atlcom.h>
#include <atlstr.h>
#include <strsafe.h>
#include <emptyvc.h>
#include <atlcoll.h>
using namespace ATL;
#define NDEBUG
#include <reactos/debug.h>
#include <reactos/shellutils.h>
#include <ui/rosdlgs.h>
template <class T> class CLocalPtr
: public CHeapPtr<T, CLocalAllocator>
{
public:
CLocalPtr() throw()
{
}
explicit CLocalPtr(_In_ T* pData) throw() :
CHeapPtr<T, CLocalAllocator>(pData)
{
}
};
#include "resource.h"
#include "CProgressDlg.hpp"
#include "CCleanupHandler.hpp"
#include "CCleanupHandlerList.hpp"
#include "CEmptyVolumeCacheCallBack.hpp"
// CSelectDriveDlg.cpp
void
SelectDrive(WCHAR &Drive);

View File

@@ -1,64 +0,0 @@
/*
* PROJECT: ReactOS Disk Cleanup
* LICENSE: MIT (https://spdx.org/licenses/MIT)
* PURPOSE: Resources
* COPYRIGHT: Copyright 2023-2025 Mark Jansen <mark.jansen@reactos.org>
*/
#include <windef.h>
#include <winuser.h>
#include <commctrl.h>
#include "resource.h"
#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Disk Cleanup"
#define REACTOS_STR_INTERNAL_NAME "cleanmgr"
#define REACTOS_STR_ORIGINAL_FILENAME "cleanmgr.exe"
#include <reactos/version.rc>
#include <reactos/manifest_exe.rc>
IDI_CLEANMGR ICON "resources/cleanmgr.ico"
#pragma code_page(65001)
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
STRINGTABLE
BEGIN
IDS_PROPERTIES_MAIN_TITLE "Disk Cleanup for (%c:)"
IDS_TOTAL_CLEANABLE_CAPTION "You can use Disk Cleanup to free up to %s of disk space on (%c:)."
IDS_DISK_CLEANUP "Disk Cleanup"
IDS_CONFIRM_DELETE "Are you sure you want to delete these files permanently?"
IDS_CALCULATING "Disk Cleanup is calculating how much space can be gained on (%s)."
IDS_SCANNING "Scanning: %s"
IDS_CLEANING_CAPTION "Disk Cleanup is cleaning up files on %s."
IDS_CLEANING "Cleaning: %s"
END
IDD_PROPERTIES_MAIN DIALOGEX 0, 0, 235, 215
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CENTER | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Disk Cleanup"
FONT 8, "MS Shell Dlg", 400, 0, 0x0
BEGIN
CONTROL "",IDC_DISKICON,"Static",SS_ICON,6,6,20,20
LTEXT "You can use Disk Cleanup to free up to 0.0MB of disk space on drive C.",IDC_TOTAL_CLEANABLE,36,6,192,18
LTEXT "Files to delete:",IDC_STATIC,6,30,222,8
CONTROL "",IDC_HANDLERLIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_NOCOLUMNHEADER | WS_BORDER | WS_TABSTOP,6,42,222,66
LTEXT "Total amount of disk space gained:",IDC_STATIC,6,114,144,8
RTEXT "",IDC_SELECTED_GAINED,156,114,73,8
GROUPBOX "Description",IDC_STATIC,6,126,222,84
LTEXT "",IDC_DESCRIPTION,12,138,210,54
PUSHBUTTON "Details...",IDC_DETAILS,150,192,74,14
END
IDD_SELECTDRIVE DIALOGEX 0, 0, 177, 74
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Disk Cleanup - Select Drive"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
DEFPUSHBUTTON "OK",IDOK,30,48,50,14
PUSHBUTTON "E&xit",IDCANCEL,96,48,50,14
LTEXT "Select the drive to clean up.",IDC_STATIC,12,6,150,8
COMBOBOX IDC_DRIVES,12,24,150,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS | CBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
END

View File

@@ -1,30 +0,0 @@
/*
* PROJECT: ReactOS Disk Cleanup
* LICENSE: MIT (https://spdx.org/licenses/MIT)
* PURPOSE: Resource definitions
* COPYRIGHT: Copyright 2023-2025 Mark Jansen <mark.jansen@reactos.org>
*/
#define IDC_STATIC -1
#define IDI_CLEANMGR 100
#define IDD_PROPERTIES_MAIN 200
#define IDC_DISKICON 201
#define IDC_TOTAL_CLEANABLE 202
#define IDC_HANDLERLIST 203
#define IDC_SELECTED_GAINED 204
#define IDC_DESCRIPTION 205
#define IDC_DETAILS 206
#define IDD_SELECTDRIVE 220
#define IDC_DRIVES 221
#define IDS_PROPERTIES_MAIN_TITLE 1000
#define IDS_TOTAL_CLEANABLE_CAPTION 1001
#define IDS_DISK_CLEANUP 1002
#define IDS_CONFIRM_DELETE 1003
#define IDS_CALCULATING 1004
#define IDS_SCANNING 1005
#define IDS_CLEANING_CAPTION 1006
#define IDS_CLEANING 1007

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

View File

@@ -248,11 +248,13 @@ static int OnCommand(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
case CMD_ABOUT:
{
HICON hIcon;
WCHAR szTitle[MAX_STRING_LEN];
hIcon = LoadIconW(Globals.hInstance, MAKEINTRESOURCE(CLIPBRD_ICON));
LoadStringW(Globals.hInstance, STRING_CLIPBOARD, szTitle, ARRAYSIZE(szTitle));
ShellAboutW(Globals.hMainWnd, szTitle, NULL,
LoadIconW(Globals.hInstance, MAKEINTRESOURCEW(CLIPBRD_ICON)));
ShellAboutW(Globals.hMainWnd, szTitle, NULL, hIcon);
DeleteObject(hIcon);
break;
}
@@ -358,13 +360,6 @@ static void OnPaint(HWND hWnd, WPARAM wParam, LPARAM lParam)
break;
}
case CF_HDROP:
{
GetClientRect(hWnd, &rc);
HDropFromClipboard(hdc, &rc);
break;
}
default:
{
GetClientRect(hWnd, &rc);

View File

@@ -50,9 +50,6 @@ CLPFILE_ICON ICON "res/clpfile.ico"
#ifdef LANGUAGE_IT_IT
#include "lang/it-IT.rc"
#endif
#ifdef LANGUAGE_JA_JP
#include "lang/ja-JP.rc"
#endif
#ifdef LANGUAGE_PL_PL
#include "lang/pl-PL.rc"
#endif

View File

@@ -164,8 +164,7 @@ UINT GetAutomaticClipboardFormat(void)
CF_DSPBITMAP,
CF_DSPMETAFILEPICT,
CF_DSPENHMETAFILE,
CF_PALETTE,
CF_HDROP
CF_PALETTE
};
return GetPriorityClipboardFormat(uFormatList, ARRAYSIZE(uFormatList));

View File

@@ -3,7 +3,6 @@
* LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
* PURPOSE: Implementation of Italian language for Clipboard Viewer
* COPYRIGHT: Copyright 2018 George Bișoc (george.bisoc@reactos.org)
* Copyright 2025 Gabriele Lo Re (gabrolr70@gmail.com)
*/
LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
@@ -40,12 +39,12 @@ END
STRINGTABLE
BEGIN
STRING_CLIPBOARD "Visualizzatore Appunti condivisi"
STRING_CLIPFILE "Elemento appunti condivisi"
STRING_DELETE_MSG "Cancella i contenuti degli appunti condivisi?"
STRING_DELETE_TITLE "Cancella appunti condivisi"
STRING_FORMAT_NT "Appunti condivisi di ReactOS (*.clp)"
STRING_FORMAT_GEN "Appunti condivisi (*.clp)"
STRING_CLIPBOARD "Visualizzatore di Clipboard"
STRING_CLIPFILE "Elemento Clipboard"
STRING_DELETE_MSG "Cancella i contenuti del Clipboard?"
STRING_DELETE_TITLE "Cancella Clipboard"
STRING_FORMAT_NT "I file del Clipboard di ReactOS (*.clp)"
STRING_FORMAT_GEN "I file Clipboard (*.clp)"
END
STRINGTABLE
@@ -68,6 +67,6 @@ END
STRINGTABLE
BEGIN
ERROR_UNSUPPORTED_FORMAT "Gli appunti Condivisi contengono informazioni in formato data, che non possono essere visualizzate."
ERROR_INVALID_FILE_FORMAT "Il file selezionato non è un file di tipo appunti condivisi valido."
ERROR_UNSUPPORTED_FORMAT "Il Clipboard contiene informazioni in formato data, che non p essere visualizzato."
ERROR_INVALID_FILE_FORMAT "Il file selezionato non è un file di tipo clipboard valido."
END

View File

@@ -1,65 +0,0 @@
LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
ID_ACCEL ACCELERATORS
BEGIN
VK_DELETE, CMD_DELETE, VIRTKEY
END
MAIN_MENU MENU
BEGIN
POPUP "ファイル(&F)"
BEGIN
MENUITEM "開く(&O)...", CMD_OPEN
MENUITEM "名前を付けて保存(&A)...", CMD_SAVE_AS
MENUITEM SEPARATOR
MENUITEM "終了(&X)", CMD_EXIT
END
POPUP "編集(&E)"
BEGIN
MENUITEM "削除(&D)\tDel", CMD_DELETE
END
POPUP "表示(&D)"
BEGIN
MENUITEM "自動(&A)", CMD_AUTOMATIC
END
POPUP "ヘルプ(&H)"
BEGIN
MENUITEM "ヘルプ トピック(&H)", CMD_HELP
MENUITEM SEPARATOR
MENUITEM "バージョン情報(&A)", CMD_ABOUT
END
END
STRINGTABLE
BEGIN
STRING_CLIPBOARD "クリップボード ビュア"
STRING_CLIPFILE "クリップボードの要素"
STRING_DELETE_MSG "クリップボードの内容をクリアしますか?"
STRING_DELETE_TITLE "クリップボードのクリア"
STRING_FORMAT_NT "ReactOS 用のクリップボード ファイル (*.clp)"
STRING_FORMAT_GEN "クリップボード ファイル (*.clp)"
END
STRINGTABLE
BEGIN
STRING_CF_UNKNOWN "未知の形式"
STRING_CF_TEXT "テキスト"
STRING_CF_BITMAP "ビットマップ"
STRING_CF_OEMTEXT "OEM テキスト"
STRING_CF_UNICODETEXT "Unicode テキスト"
STRING_CF_DIB "DIB ビットマップ"
STRING_CF_LOCALE "ロケール データ"
STRING_CF_ENHMETAFILE "拡張メタファイル"
STRING_CF_METAFILEPICT "メタファイル"
STRING_CF_PALETTE "カラー パレット"
STRING_CF_DIBV5 "DIB ビットマップ (バージョン 5)"
STRING_CF_SYLK "シンボリック リンク形式"
STRING_CF_DIF "データ交換フォーマット"
STRING_CF_HDROP "ドロップ データ"
END
STRINGTABLE
BEGIN
ERROR_UNSUPPORTED_FORMAT "表示できない形式のデータがクリップボードにあります。"
ERROR_INVALID_FILE_FORMAT "選択したファイルは有効なクリップボードファイルではありません。"
END

View File

@@ -1,11 +1,4 @@
/*
* PROJECT: ReactOS Clipboard
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
* PURPOSE: Romanian resource file
* TRANSLATORS: Copyright 2011-2018 Ștefan Fulea <stefan.fulea@mail.com>
* Copyright 2023-2024 Andrei Miloiu <miloiuandrei@gmail.com>
*/
/* Translator: Ștefan Fulea (stefan dot fulea at mail dot com) */
LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
ID_ACCEL ACCELERATORS
@@ -18,23 +11,23 @@ BEGIN
POPUP "&Fișier"
BEGIN
MENUITEM "&Deschidere…", CMD_OPEN
MENUITEM "&Salvare ca…", CMD_SAVE_AS
MENUITEM "Păst&rare ca…", CMD_SAVE_AS
MENUITEM SEPARATOR
MENUITEM "I&eșire", CMD_EXIT
END
POPUP "&Editare"
BEGIN
MENUITEM "Ș&tergere\tDel", CMD_DELETE
MENUITEM "Șt&erge\tDel", CMD_DELETE
END
POPUP "&Afișare"
BEGIN
MENUITEM "A&utomată", CMD_AUTOMATIC
MENUITEM "&Automată", CMD_AUTOMATIC
END
POPUP "A&jutor"
POPUP "Aj&utor"
BEGIN
MENUITEM "Aj&utor", CMD_HELP
MENUITEM "&Manual…", CMD_HELP
MENUITEM SEPARATOR
MENUITEM "&Despre", CMD_ABOUT
MENUITEM "&Despre", CMD_ABOUT
END
END
@@ -42,8 +35,8 @@ STRINGTABLE
BEGIN
STRING_CLIPBOARD "Inspector de Clipboard"
STRING_CLIPFILE "Element de Clipboard"
STRING_DELETE_MSG "Eliminare conținut din Clipboard?"
STRING_DELETE_TITLE "Curățare Clipboard"
STRING_DELETE_MSG "Elimină conținutul din Clipboard?"
STRING_DELETE_TITLE "Curăță Clipboard"
STRING_FORMAT_NT "Fișiere clipboard pentru ReactOS (*.clp)"
STRING_FORMAT_GEN "Fișiere clipboard (*.clp)"
END
@@ -60,10 +53,10 @@ BEGIN
STRING_CF_ENHMETAFILE "Metafișier îmbunătățit"
STRING_CF_METAFILEPICT "Metafișier"
STRING_CF_PALETTE "Paletă de culori"
STRING_CF_DIBV5 "Bitmap DIB (versiunea 5)"
STRING_CF_DIBV5 "Bitmap DIB (versiune 5)"
STRING_CF_SYLK "Format de legătură simbolică"
STRING_CF_DIF "Format de schimb de date"
STRING_CF_HDROP "Ștergere a datelor"
STRING_CF_DIF "Format de transfer al datelor"
STRING_CF_HDROP "Abandon date"
END
STRINGTABLE

View File

@@ -257,9 +257,9 @@ void SetDIBitsToDeviceFromClipboard(UINT uFormat, PAINTSTRUCT ps, SCROLLSTATE st
*
* FIXME: investigate!!
* ANSWER: this is a Windows bug; part of the answer is there:
* https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/ac7ab3b5-8609-4478-b86a-976dab44c271/bug-clipboard-format-conversions-cfdib-cfdibv5-cfdib (DEAD_LINK)
* https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/ac7ab3b5-8609-4478-b86a-976dab44c271/bug-clipboard-format-conversions-cfdib-cfdibv5-cfdib
* May be related:
* https://blog.talosintelligence.com/dangerous-clipboard/
* https://blog.talosintelligence.com/2015/10/dangerous-clipboard.html
*/
#if 0
if ((lpInfoHeader->biSize == sizeof(BITMAPINFOHEADER)) &&
@@ -331,45 +331,6 @@ void PlayEnhMetaFileFromClipboard(HDC hdc, const RECT *lpRect)
PlayEnhMetaFile(hdc, hEmf, lpRect);
}
static LPWSTR AllocStrCat(LPWSTR psz, LPCWSTR cat)
{
INT cch;
LPWSTR pszNew;
if (psz == NULL)
return _wcsdup(cat);
cch = lstrlenW(psz) + lstrlenW(cat) + 1;
pszNew = realloc(psz, cch * sizeof(WCHAR));
if (!pszNew)
return psz;
lstrcatW(pszNew, cat);
return pszNew;
}
void HDropFromClipboard(HDC hdc, const RECT *lpRect)
{
LPWSTR pszAlloc = NULL;
WCHAR szFile[MAX_PATH + 2];
HDROP hDrop = (HDROP)GetClipboardData(CF_HDROP);
UINT iFile, cFiles = DragQueryFileW(hDrop, 0xFFFFFFFF, NULL, 0);
RECT rc = *lpRect;
FillRect(hdc, &rc, (HBRUSH)(COLOR_WINDOW + 1));
for (iFile = 0; iFile < cFiles; ++iFile)
{
DragQueryFileW(hDrop, iFile, szFile, _countof(szFile));
lstrcatW(szFile, L"\r\n");
pszAlloc = AllocStrCat(pszAlloc, szFile);
}
DrawTextW(hdc, pszAlloc, -1, &rc,
DT_LEFT | DT_NOPREFIX | DT_EXTERNALLEADING | DT_WORD_ELLIPSIS);
free(pszAlloc);
}
BOOL RealizeClipboardPalette(HDC hdc)
{
BOOL Success;

View File

@@ -17,5 +17,4 @@ void BitBltFromClipboard(PAINTSTRUCT ps, SCROLLSTATE state, DWORD dwRop);
void SetDIBitsToDeviceFromClipboard(UINT uFormat, PAINTSTRUCT ps, SCROLLSTATE state, UINT fuColorUse);
void PlayMetaFileFromClipboard(HDC hdc, const RECT *lpRect);
void PlayEnhMetaFileFromClipboard(HDC hdc, const RECT *lpRect);
void HDropFromClipboard(HDC hdc, const RECT *lpRect);
BOOL RealizeClipboardPalette(HDC hdc);

View File

@@ -19,7 +19,6 @@ add_subdirectory(mode)
add_subdirectory(mofcomp)
add_subdirectory(more)
add_subdirectory(reg)
add_subdirectory(replace)
add_subdirectory(schtasks)
add_subdirectory(sort)
add_subdirectory(taskkill)

View File

@@ -9,7 +9,6 @@
/* UTF-8 */
#pragma code_page(65001)
#ifdef LANGUAGE_DE_DE
#include "lang/de-DE.rc"
#endif

View File

@@ -1,10 +1,4 @@
/*
* PROJECT: ReactOS AT utility
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
* PURPOSE: Romanian resource file
* TRANSLATORS: Copyright 2011-2019 Ștefan Fulea <stefan.fulea@mail.com>
* Copyright 2023 Andrei Miloiu <miloiuandrei@gmail.com>
*/
/* Translator: Ștefan Fulea (stefan dot fulea at mail dot com) */
LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
@@ -39,7 +33,7 @@ timp Specifică timpul de lansare a comenzii.\n\
IDS_JOBS_LIST "ID stare Zi Oră Comanda\n"
IDS_NO_ENTRIES "Nu există comenzi planificate.\n"
IDS_CONFIRM_QUESTION "Sigur doriți continuarea acestei operații? (D/N) [N]: "
IDS_CONFIRM_QUESTION "Sigur doriți continuarea acestei operații? (D|N) [N]: "
IDS_CONFIRM_INVALID "\nAcesta nu este un răspuns valid.\n"
IDS_CONFIRM_YES "D"
IDS_CONFIRM_NO "N"

View File

@@ -31,7 +31,7 @@ id Порядковый номер запланированно
IDS_CONFIRM_YES "Y"
IDS_CONFIRM_NO "N"
IDS_DELETE_ALL "Эта операция удалит все запланированные задачи.\n"
IDS_DELETE_ALL "This operation will delete all scheduled jobs.\n"
IDS_NEW_JOB "Добавлено новое задание с ID = %lu\n"
IDS_JOBS_LIST "Статус ID День Время Команда\n"
IDS_NO_ENTRIES "В списке нет запланированных задач.\n"

View File

@@ -1,10 +1,35 @@
/*
* PROJECT: ReactOS Attrib Command
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
* PURPOSE: Displays or changes file attributes recursively.
* COPYRIGHT: Copyright 1998-2019 Eric Kohl <eric.kohl@reactos.org>
* Copyright 2021 Doug Lyons <douglyons@douglyons.com>
* Copyright 2021-2023 Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
* ATTRIB.C - attrib internal command.
*
*
* History:
*
* 04-Dec-1998 Eric Kohl
* started
*
* 09-Dec-1998 Eric Kohl
* implementation works, except recursion ("attrib /s").
*
* 05-Jan-1999 Eric Kohl
* major rewrite.
* fixed recursion ("attrib /s").
* started directory support ("attrib /s /d").
* updated help text.
*
* 14-Jan-1999 Eric Kohl
* Unicode ready!
*
* 19-Jan-1999 Eric Kohl
* Redirection ready!
*
* 21-Jan-1999 Eric Kohl
* Added check for invalid filenames.
*
* 23-Jan-1999 Eric Kohl
* Added handling of multiple filenames.
*
* 02-Apr-2005 (Magnus Olsen <magnus@greatlord.com>)
* Remove all hardcoded strings in En.rc
*/
#include <stdio.h>
@@ -14,22 +39,15 @@
#include <winbase.h>
#include <wincon.h>
#include <winuser.h>
#include <strsafe.h>
#include <conutils.h>
#include "resource.h"
/* Enable to support extended attributes.
* See https://ss64.com/nt/attrib.html for an exhaustive list. */
// TODO: If you enable this, translations need to be updated as well!
//#define EXTENDED_ATTRIBUTES
#define ALL_FILES_PATTERN L"*.*" // It may also be possible to use L"*" (shorter)
CON_SCREEN StdOutScreen = INIT_CON_SCREEN(StdOut);
static VOID
static
VOID
ErrorMessage(
_In_ DWORD dwErrorCode,
_In_opt_ PCWSTR pszMsg,
@@ -59,257 +77,217 @@ ErrorMessage(
ConPrintf(StdErr, L" %s\n", pszMsg);
}
/**
* @brief Displays attributes for the given file.
* @return Always TRUE (success).
**/
static BOOL
PrintAttributes(
_In_ PWIN32_FIND_DATAW pFindData,
_In_ PCWSTR pszFullName,
_Inout_opt_ PVOID Context)
/* Returns TRUE if anything is printed, FALSE otherwise */
static
BOOL
PrintAttribute(
LPWSTR pszPath,
LPWSTR pszFile,
BOOL bRecurse,
BOOL bDirectories)
{
DWORD dwAttributes = pFindData->dwFileAttributes;
UNREFERENCED_PARAMETER(Context);
ConPrintf(StdOut,
#ifdef EXTENDED_ATTRIBUTES
L"%c %c%c%c %c %s\n",
#else
L"%c %c%c%c %s\n",
#endif
(dwAttributes & FILE_ATTRIBUTE_ARCHIVE) ? L'A' : L' ',
(dwAttributes & FILE_ATTRIBUTE_SYSTEM) ? L'S' : L' ',
(dwAttributes & FILE_ATTRIBUTE_HIDDEN) ? L'H' : L' ',
(dwAttributes & FILE_ATTRIBUTE_READONLY) ? L'R' : L' ',
#ifdef EXTENDED_ATTRIBUTES
(dwAttributes & FILE_ATTRIBUTE_NOT_CONTENT_INDEXED) ? L'I' : L' ',
#endif
pszFullName);
return TRUE;
}
typedef struct _ATTRIBS_MASKS
{
DWORD dwMask;
DWORD dwAttrib;
} ATTRIBS_MASKS, *PATTRIBS_MASKS;
/**
* @brief Changes attributes for the given file.
* @return TRUE if anything changed, FALSE otherwise.
**/
static BOOL
ChangeAttributes(
_In_ PWIN32_FIND_DATAW pFindData,
_In_ PCWSTR pszFullName,
_Inout_opt_ PVOID Context)
{
PATTRIBS_MASKS AttribsMasks = (PATTRIBS_MASKS)Context;
DWORD dwAttributes;
dwAttributes = ((pFindData->dwFileAttributes & ~AttribsMasks->dwMask) | AttribsMasks->dwAttrib);
return SetFileAttributesW(pszFullName, dwAttributes);
}
#define ENUM_RECURSE 0x01
#define ENUM_DIRECTORIES 0x02
typedef BOOL
(*PENUMFILES_CALLBACK)(
_In_ PWIN32_FIND_DATAW pFindData,
_In_ PCWSTR pszFullName,
_Inout_opt_ PVOID Context);
typedef struct _ENUMFILES_CTX
{
/* Fixed data */
_In_ PCWSTR FileName;
_In_ DWORD Flags;
/* Callback invoked on each enumerated file/directory */
_In_ PENUMFILES_CALLBACK Callback;
_In_ PVOID Context;
/* Dynamic data */
WIN32_FIND_DATAW findData;
ULONG uReparseLevel;
/* The full path buffer the function will act recursively */
// PWSTR FullPath; // Use a relocated buffer once long paths become supported!
size_t cchBuffer; // Buffer size
WCHAR FullPathBuffer[MAX_PATH + _countof("\\" ALL_FILES_PATTERN)];
} ENUMFILES_CTX, *PENUMFILES_CTX;
/* Returns TRUE if anything is done, FALSE otherwise */
static BOOL
EnumFilesWorker(
_Inout_ PENUMFILES_CTX EnumCtx,
_Inout_ _off_t offFilePart) // Offset to the file name inside FullPathBuffer
{
BOOL bFound = FALSE;
HRESULT hRes;
HANDLE hFind;
PWSTR findFileName = EnumCtx->findData.cFileName;
PWSTR pFilePart = EnumCtx->FullPathBuffer + offFilePart;
size_t cchRemaining = EnumCtx->cchBuffer - offFilePart;
WCHAR szFullName[MAX_PATH];
LPWSTR pszFileName;
BOOL bFound = FALSE;
BOOL bIsDir;
BOOL bExactMatch;
DWORD Error;
/* Recurse over all subdirectories */
if (EnumCtx->Flags & ENUM_RECURSE)
/* prepare full file name buffer */
wcscpy(szFullName, pszPath);
pszFileName = szFullName + wcslen(szFullName);
/* display all subdirectories */
if (bRecurse)
{
/* Append '*.*' */
hRes = StringCchCopyW(pFilePart, cchRemaining, ALL_FILES_PATTERN);
if (hRes != S_OK)
{
if (hRes == STRSAFE_E_INSUFFICIENT_BUFFER)
{
// TODO: If this fails, try to reallocate EnumCtx->FullPathBuffer by
// increasing its size by _countof(EnumCtx->findData.cFileName) + 1
// to satisfy this copy, as well as the one made in the loop below.
}
// else
ConPrintf(StdErr, L"Directory level too deep: %s\n", EnumCtx->FullPathBuffer);
return FALSE;
}
/* append *.* */
wcscpy(pszFileName, L"*.*");
hFind = FindFirstFileW(EnumCtx->FullPathBuffer, &EnumCtx->findData);
hFind = FindFirstFileW(szFullName, &findData);
if (hFind == INVALID_HANDLE_VALUE)
{
DWORD Error = GetLastError();
if ((Error != ERROR_DIRECTORY) &&
(Error != ERROR_SHARING_VIOLATION) &&
(Error != ERROR_FILE_NOT_FOUND))
Error = GetLastError();
if ((Error != ERROR_DIRECTORY) && (Error != ERROR_SHARING_VIOLATION)
&& (Error != ERROR_FILE_NOT_FOUND))
{
ErrorMessage(Error, EnumCtx->FullPathBuffer);
ErrorMessage(Error, pszFile);
}
return FALSE;
}
do
{
BOOL bIsReparse;
size_t offNewFilePart;
if (!(EnumCtx->findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
if (!(findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
continue;
if (!wcscmp(findFileName, L".") || !wcscmp(findFileName, L".."))
continue;
/* Allow at most 2 levels of reparse points / symbolic links */
bIsReparse = !!(EnumCtx->findData.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT);
if (bIsReparse)
if (!wcscmp(findData.cFileName, L".") ||
!wcscmp(findData.cFileName, L".."))
{
if (EnumCtx->uReparseLevel < 2)
EnumCtx->uReparseLevel++;
else
continue;
continue;
}
hRes = StringCchPrintfExW(pFilePart, cchRemaining,
NULL, &offNewFilePart, 0,
L"%s\\", findFileName);
/* Offset to the new file name part */
offNewFilePart = EnumCtx->cchBuffer - offNewFilePart;
bFound |= EnumFilesWorker(EnumCtx, offNewFilePart);
/* Recalculate the file part pointer and the number of characters
* remaining: the buffer may have been enlarged and relocated. */
pFilePart = EnumCtx->FullPathBuffer + offFilePart;
cchRemaining = EnumCtx->cchBuffer - offFilePart;
/* If we went through a reparse point / symbolic link, decrease level */
if (bIsReparse)
EnumCtx->uReparseLevel--;
wcscpy(pszFileName, findData.cFileName);
wcscat(pszFileName, L"\\");
bFound |= PrintAttribute(szFullName, pszFile, bRecurse, bDirectories);
}
while (FindNextFileW(hFind, &EnumCtx->findData));
while (FindNextFileW(hFind, &findData));
FindClose(hFind);
}
/* Append the file name pattern to search for */
hRes = StringCchCopyW(pFilePart, cchRemaining, EnumCtx->FileName);
/* append file name */
wcscpy(pszFileName, pszFile);
/* Search in the current directory */
hFind = FindFirstFileW(EnumCtx->FullPathBuffer, &EnumCtx->findData);
/* search current directory */
hFind = FindFirstFileW(szFullName, &findData);
if (hFind == INVALID_HANDLE_VALUE)
{
return bFound;
}
do
{
BOOL bIsDir = !!(EnumCtx->findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY);
BOOL bExactMatch = (_wcsicmp(findFileName, EnumCtx->FileName) == 0);
bIsDir = findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY;
bExactMatch = wcsicmp(findData.cFileName, pszFile) == 0;
if (bIsDir && !(EnumCtx->Flags & ENUM_DIRECTORIES) && !bExactMatch)
if (bIsDir && !bDirectories && !bExactMatch)
continue;
if (!wcscmp(findFileName, L".") || !wcscmp(findFileName, L".."))
if (!wcscmp(findData.cFileName, L".") ||
!wcscmp(findData.cFileName, L".."))
{
continue;
}
/* If we recursively enumerate files excluding directories,
* exclude any directory from the enumeration. */
if (bIsDir && !(EnumCtx->Flags & ENUM_DIRECTORIES) && (EnumCtx->Flags & ENUM_RECURSE))
continue;
wcscpy(pszFileName, findData.cFileName);
StringCchCopyW(pFilePart, cchRemaining, findFileName);
/* bFound = */ EnumCtx->Callback(&EnumCtx->findData, EnumCtx->FullPathBuffer, EnumCtx->Context);
ConPrintf(StdOut,
L"%c %c%c%c %s\n",
(findData.dwFileAttributes & FILE_ATTRIBUTE_ARCHIVE) ? L'A' : L' ',
(findData.dwFileAttributes & FILE_ATTRIBUTE_SYSTEM) ? L'S' : L' ',
(findData.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) ? L'H' : L' ',
(findData.dwFileAttributes & FILE_ATTRIBUTE_READONLY) ? L'R' : L' ',
szFullName);
bFound = TRUE;
}
while (FindNextFileW(hFind, &EnumCtx->findData));
while (FindNextFileW(hFind, &findData));
FindClose(hFind);
return bFound;
}
static BOOL
AttribEnumFiles(
_In_ PCWSTR pszPath,
_In_ PCWSTR pszFile,
_In_ DWORD fFlags,
_In_ PATTRIBS_MASKS AttribsMasks)
/* Returns TRUE if anything changed, FALSE otherwise */
static
BOOL
ChangeAttribute(
LPWSTR pszPath,
LPWSTR pszFile,
BOOL bRecurse,
BOOL bDirectories,
DWORD dwMask,
DWORD dwAttrib)
{
ENUMFILES_CTX EnumContext = {0};
size_t offFilePart;
HRESULT hRes;
WIN32_FIND_DATAW findData;
HANDLE hFind;
WCHAR szFullName[MAX_PATH];
LPWSTR pszFileName;
BOOL bFound = FALSE;
BOOL bIsDir;
BOOL bExactMatch;
DWORD dwAttribute;
DWORD Error;
EnumContext.FileName = pszFile;
EnumContext.Flags = fFlags;
EnumContext.Callback = (AttribsMasks->dwMask == 0 ? PrintAttributes : ChangeAttributes);
EnumContext.Context = (AttribsMasks->dwMask == 0 ? NULL : AttribsMasks);
/* prepare full file name buffer */
wcscpy(szFullName, pszPath);
pszFileName = szFullName + wcslen(szFullName);
/* Prepare the full file path buffer */
EnumContext.cchBuffer = _countof(EnumContext.FullPathBuffer);
hRes = StringCchCopyExW(EnumContext.FullPathBuffer,
EnumContext.cchBuffer,
pszPath,
NULL,
&offFilePart,
0);
if (hRes != S_OK)
return FALSE;
/* Offset to the file name part */
offFilePart = EnumContext.cchBuffer - offFilePart;
if (EnumContext.FullPathBuffer[offFilePart - 1] != L'\\')
/* display all subdirectories */
if (bRecurse)
{
EnumContext.FullPathBuffer[offFilePart] = L'\\';
EnumContext.FullPathBuffer[offFilePart + 1] = UNICODE_NULL;
offFilePart++;
/* append *.* */
wcscpy(pszFileName, L"*.*");
hFind = FindFirstFileW(szFullName, &findData);
if (hFind == INVALID_HANDLE_VALUE)
{
Error = GetLastError();
if ((Error != ERROR_DIRECTORY) && (Error != ERROR_SHARING_VIOLATION)
&& (Error != ERROR_FILE_NOT_FOUND))
{
ErrorMessage(Error, pszFile);
}
return FALSE;
}
do
{
if (!(findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
continue;
if (!wcscmp(findData.cFileName, L".") ||
!wcscmp(findData.cFileName, L".."))
{
continue;
}
wcscpy(pszFileName, findData.cFileName);
wcscat(pszFileName, L"\\");
bFound |= ChangeAttribute(szFullName, pszFile, bRecurse, bDirectories,
dwMask, dwAttrib);
}
while (FindNextFileW(hFind, &findData));
FindClose(hFind);
}
return EnumFilesWorker(&EnumContext, offFilePart);
/* append file name */
wcscpy(pszFileName, pszFile);
/* search current directory */
hFind = FindFirstFileW(szFullName, &findData);
if (hFind == INVALID_HANDLE_VALUE)
{
return bFound;
}
do
{
bIsDir = findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY;
bExactMatch = wcsicmp(findData.cFileName, pszFile) == 0;
if (bIsDir && !bDirectories && !bExactMatch)
continue;
if (!wcscmp(findData.cFileName, L".") ||
!wcscmp(findData.cFileName, L".."))
{
continue;
}
if (bRecurse && bIsDir && !bDirectories)
continue;
wcscpy(pszFileName, findData.cFileName);
dwAttribute = (findData.dwFileAttributes & ~dwMask) | dwAttrib;
SetFileAttributes(szFullName, dwAttribute);
bFound = TRUE;
}
while (FindNextFileW(hFind, &findData));
FindClose(hFind);
return bFound;
}
int wmain(int argc, WCHAR *argv[])
{
INT i;
DWORD dwEnumFlags = 0;
ATTRIBS_MASKS AttribsMasks = {0};
BOOL bRecurse = FALSE;
BOOL bDirectories = FALSE;
DWORD dwAttrib = 0;
DWORD dwMask = 0;
BOOL bFound = FALSE;
PWSTR pszFileName;
WCHAR szFilePath[MAX_PATH + 2] = L""; // + 2 to reserve an extra path separator and a NULL-terminator.
@@ -330,10 +308,10 @@ int wmain(int argc, WCHAR *argv[])
}
else
/* Retrieve the enumeration modes */
if (_wcsicmp(argv[i], L"/s") == 0)
dwEnumFlags |= ENUM_RECURSE;
else if (_wcsicmp(argv[i], L"/d") == 0)
dwEnumFlags |= ENUM_DIRECTORIES;
if (wcsicmp(argv[i], L"/s") == 0)
bRecurse = TRUE;
else if (wcsicmp(argv[i], L"/d") == 0)
bDirectories = TRUE;
else
{
/* Unknown option */
@@ -356,47 +334,37 @@ int wmain(int argc, WCHAR *argv[])
switch (towupper(argv[i][1]))
{
case L'A':
AttribsMasks.dwMask |= FILE_ATTRIBUTE_ARCHIVE;
dwMask |= FILE_ATTRIBUTE_ARCHIVE;
if (bAdd)
AttribsMasks.dwAttrib |= FILE_ATTRIBUTE_ARCHIVE;
dwAttrib |= FILE_ATTRIBUTE_ARCHIVE;
else
AttribsMasks.dwAttrib &= ~FILE_ATTRIBUTE_ARCHIVE;
dwAttrib &= ~FILE_ATTRIBUTE_ARCHIVE;
break;
case L'S':
AttribsMasks.dwMask |= FILE_ATTRIBUTE_SYSTEM;
dwMask |= FILE_ATTRIBUTE_SYSTEM;
if (bAdd)
AttribsMasks.dwAttrib |= FILE_ATTRIBUTE_SYSTEM;
dwAttrib |= FILE_ATTRIBUTE_SYSTEM;
else
AttribsMasks.dwAttrib &= ~FILE_ATTRIBUTE_SYSTEM;
dwAttrib &= ~FILE_ATTRIBUTE_SYSTEM;
break;
case L'H':
AttribsMasks.dwMask |= FILE_ATTRIBUTE_HIDDEN;
dwMask |= FILE_ATTRIBUTE_HIDDEN;
if (bAdd)
AttribsMasks.dwAttrib |= FILE_ATTRIBUTE_HIDDEN;
dwAttrib |= FILE_ATTRIBUTE_HIDDEN;
else
AttribsMasks.dwAttrib &= ~FILE_ATTRIBUTE_HIDDEN;
dwAttrib &= ~FILE_ATTRIBUTE_HIDDEN;
break;
case L'R':
AttribsMasks.dwMask |= FILE_ATTRIBUTE_READONLY;
dwMask |= FILE_ATTRIBUTE_READONLY;
if (bAdd)
AttribsMasks.dwAttrib |= FILE_ATTRIBUTE_READONLY;
dwAttrib |= FILE_ATTRIBUTE_READONLY;
else
AttribsMasks.dwAttrib &= ~FILE_ATTRIBUTE_READONLY;
dwAttrib &= ~FILE_ATTRIBUTE_READONLY;
break;
#ifdef EXTENDED_ATTRIBUTES
case L'I':
AttribsMasks.dwMask |= FILE_ATTRIBUTE_NOT_CONTENT_INDEXED;
if (bAdd)
AttribsMasks.dwAttrib |= FILE_ATTRIBUTE_NOT_CONTENT_INDEXED;
else
AttribsMasks.dwAttrib &= ~FILE_ATTRIBUTE_NOT_CONTENT_INDEXED;
break;
#endif
default:
ConResPrintf(StdErr, STRING_ERROR_INVALID_PARAM_FORMAT, argv[i]);
return -1;
@@ -412,10 +380,19 @@ int wmain(int argc, WCHAR *argv[])
/* If no file specification was found, operate on all files of the current directory */
if (!bFound)
{
GetCurrentDirectoryW(_countof(szFilePath) - 2, szFilePath);
pszFileName = ALL_FILES_PATTERN;
DWORD len = GetCurrentDirectoryW(_countof(szFilePath) - 2, szFilePath);
if (szFilePath[len - 1] != L'\\')
{
szFilePath[len] = L'\\';
szFilePath[len + 1] = UNICODE_NULL;
}
pszFileName = L"*.*";
if (dwMask == 0)
bFound = PrintAttribute(szFilePath, pszFileName, bRecurse, bDirectories);
else
bFound = ChangeAttribute(szFilePath, pszFileName, bRecurse, bDirectories, dwMask, dwAttrib);
bFound = AttribEnumFiles(szFilePath, pszFileName, dwEnumFlags, &AttribsMasks);
if (!bFound)
ConResPrintf(StdOut, STRING_FILE_NOT_FOUND, pszFileName);
@@ -442,7 +419,11 @@ int wmain(int argc, WCHAR *argv[])
pszFileName = L"";
}
bFound = AttribEnumFiles(szFilePath, pszFileName, dwEnumFlags, &AttribsMasks);
if (dwMask == 0)
bFound = PrintAttribute(szFilePath, pszFileName, bRecurse, bDirectories);
else
bFound = ChangeAttribute(szFilePath, pszFileName, bRecurse, bDirectories, dwMask, dwAttrib);
if (!bFound)
ConResPrintf(StdOut, STRING_FILE_NOT_FOUND, argv[i]);
}

View File

@@ -3,7 +3,6 @@
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
* PURPOSE: Romanian resource file
* TRANSLATORS: Copyright 2011-2014 Ștefan Fulea <stefan.fulea@mail.com>
* Copyright 2023 Andrei Miloiu <miloiuandrei@gmail.com>
*/
LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
@@ -24,6 +23,6 @@ ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] fișier ...\n\
Tastați ATTRIB fără argumente pentru afișarea atributelor pentru\n\
toate fișierele.\n"
STRING_CONSOLE_ERROR "Eroare necunoscută: %d\n"
STRING_FILE_NOT_FOUND "Fișierul nu a fost găsit - '%s'\n"
STRING_FILE_NOT_FOUND "File not found - '%s'\n"
STRING_ERROR_INVALID_PARAM_FORMAT "Formatul argumentului este eronat - %s\n"
END

View File

@@ -26,6 +26,6 @@ ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] файл ...\n\
/D Обработка и файлов, и папок.\n\n\
Команда ATTRIB без параметров выводит атрибуты всех файлов.\n"
STRING_CONSOLE_ERROR "Неизвестная ошибка: %d\n"
STRING_FILE_NOT_FOUND "Файл не найден - '%s'\n"
STRING_FILE_NOT_FOUND "File not found - '%s'\n"
STRING_ERROR_INVALID_PARAM_FORMAT "Неверный формат параметра - %s\n"
END

View File

@@ -2,14 +2,12 @@
include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/conutils)
list(APPEND SOURCE
asn.cpp
certutil.cpp
hashfile.cpp
certutil.c
precomp.h)
add_executable(certutil ${SOURCE})
set_module_type(certutil win32cui UNICODE)
target_link_libraries(certutil conutils ${PSEH_LIB})
add_importlibs(certutil crypt32 advapi32 msvcrt kernel32)
add_importlibs(certutil advapi32 msvcrt kernel32)
add_pch(certutil precomp.h SOURCE)
add_cd_file(TARGET certutil DESTINATION reactos/system32 FOR all)

View File

@@ -1,508 +0,0 @@
/*
* PROJECT: ReactOS certutil
* LICENSE: MIT (https://spdx.org/licenses/MIT)
* PURPOSE: CertUtil asn implementation
* COPYRIGHT: Copyright 2020 Mark Jansen (mark.jansen@reactos.org)
*
* NOTES:
* To keep it simple, Tag and Class are combined in one identifier
* See for more details:
* https://en.wikipedia.org/wiki/X.690#BER_encoding
* https://www.strozhevsky.com/free_docs/asn1_by_simple_words.pdf
* http://mikk.net/~chris/asn1.pdf
*
* And for a test suite:
* https://github.com/YuryStrozhevsky/asn1-test-suite
*/
#include "precomp.h"
#include <math.h>
#include <wincrypt.h>
#include <stdlib.h>
#define ASN_TAG_IS_CONSTRUCTED 0x20
#define ASN_TAG_BITSTRING 0x03
#define ASN_TAG_OCTET_STRING 0x04
#define ASN_TAG_OBJECT_ID 0x06
#define ASN_TAG_SEQUENCE_RAW 0x10
#define ASN_TAG_SET_RAW 0x11
#define ASN_TAG_SEQUENCE 0x30
#define ASN_TAG_SET 0x31
#define ASN_TAG_CONTEXT_SPECIFIC 0x80
#define ASN_TAG_CONTEXT_SPECIFIC_N(n) (ASN_TAG_CONTEXT_SPECIFIC | (n))
#define ASN_TAG_OPTIONAL 0xA0
#define ASN_TAG_OPTIONAL_N(n) (ASN_TAG_OPTIONAL | (n))
/* NOTE: These names are not the names listed in f.e. the wikipedia pages,
they are made to look like MS's names for this */
LPCWSTR TagToName(DWORD dwTag)
{
switch (dwTag)
{
case 0x0: return L"EOC";
case 0x1: return L"BOOL";
case 0x2: return L"INTEGER";
case ASN_TAG_BITSTRING: return L"BIT_STRING";
case ASN_TAG_OCTET_STRING: return L"OCTET_STRING";
case 0x5: return L"NULL";
case ASN_TAG_OBJECT_ID: return L"OBJECT_ID";
case 0x7: return L"Object Descriptor";
case 0x8: return L"EXTERNAL";
case 0x9: return L"REAL";
case 0xA: return L"ENUMERATED";
case 0xB: return L"EMBEDDED PDV";
case 0xC: return L"UTF8String";
case 0xD: return L"RELATIVE-OID";
case 0xE: return L"TIME";
case 0xF: return L"Reserved";
case ASN_TAG_SEQUENCE_RAW: __debugbreak(); return L"SEQUENCE_RAW";
case ASN_TAG_SET_RAW: __debugbreak(); return L"SET_RAW";
case 0x12: return L"NumericString";
case 0x13: return L"PRINTABLE_STRING";
case 0x14: return L"T61String";
case 0x15: return L"VideotexString";
case 0x16: return L"IA5String";
case 0x17: return L"UTC_TIME";
case 0x18: return L"GeneralizedTime";
case 0x19: return L"GraphicString";
case 0x1A: return L"VisibleString";
case 0x1B: return L"GeneralString";
case 0x1C: return L"UniversalString";
case 0x1D: return L"CHARACTER STRING";
case 0x1E: return L"BMPString";
case 0x1F: return L"DATE";
case 0x20: return L"CONSTRUCTED";
case ASN_TAG_SEQUENCE: return L"SEQUENCE";
case ASN_TAG_SET: return L"SET";
case ASN_TAG_CONTEXT_SPECIFIC_N(0): return L"CONTEXT_SPECIFIC[0]";
case ASN_TAG_CONTEXT_SPECIFIC_N(1): return L"CONTEXT_SPECIFIC[1]";
case ASN_TAG_CONTEXT_SPECIFIC_N(2): return L"CONTEXT_SPECIFIC[2]";
case ASN_TAG_CONTEXT_SPECIFIC_N(3): return L"CONTEXT_SPECIFIC[3]";
case ASN_TAG_CONTEXT_SPECIFIC_N(4): return L"CONTEXT_SPECIFIC[4]";
case ASN_TAG_CONTEXT_SPECIFIC_N(5): return L"CONTEXT_SPECIFIC[5]";
case ASN_TAG_CONTEXT_SPECIFIC_N(6): return L"CONTEXT_SPECIFIC[6]";
case ASN_TAG_CONTEXT_SPECIFIC_N(7): return L"CONTEXT_SPECIFIC[7]";
case ASN_TAG_CONTEXT_SPECIFIC_N(8): return L"CONTEXT_SPECIFIC[8]";
case ASN_TAG_CONTEXT_SPECIFIC_N(9): return L"CONTEXT_SPECIFIC[9]";
/* Experiments show that Windows' certutil only goes up to 9 */
case ASN_TAG_OPTIONAL_N(0): return L"OPTIONAL[0]";
case ASN_TAG_OPTIONAL_N(1): return L"OPTIONAL[1]";
case ASN_TAG_OPTIONAL_N(2): return L"OPTIONAL[2]";
case ASN_TAG_OPTIONAL_N(3): return L"OPTIONAL[3]";
case ASN_TAG_OPTIONAL_N(4): return L"OPTIONAL[4]";
case ASN_TAG_OPTIONAL_N(5): return L"OPTIONAL[5]";
case ASN_TAG_OPTIONAL_N(6): return L"OPTIONAL[6]";
case ASN_TAG_OPTIONAL_N(7): return L"OPTIONAL[7]";
case ASN_TAG_OPTIONAL_N(8): return L"OPTIONAL[8]";
case ASN_TAG_OPTIONAL_N(9): return L"OPTIONAL[9]";
/* Experiments show that Windows' certutil only goes up to 9 */
default:
return L"???";
}
}
BOOL Move(DWORD dwLen, PBYTE& pData, DWORD& dwSize)
{
if (dwSize < dwLen)
return FALSE;
pData += dwLen;
dwSize -= dwLen;
return TRUE;
}
BOOL ParseTag(PBYTE& pData, DWORD& dwSize, DWORD& dwTagAndClass)
{
if (dwSize == 0)
return FALSE;
/* Is this a long form? */
if ((pData[0] & 0x1f) != 0x1f)
{
/* No, so extract the tag and class (in one identifier) */
dwTagAndClass = pData[0];
return Move(1, pData, dwSize);
}
DWORD dwClass = (pData[0] & 0xE0) >> 5;
dwTagAndClass = 0;
DWORD n;
for (n = 1; n < dwSize; ++n)
{
dwTagAndClass <<= 7;
dwTagAndClass |= (pData[n] & 0x7f);
if (!(pData[n] & 0x80))
{
break;
}
}
Move(n, pData, dwSize);
/* Any number bigger than this, we shift data out! */
if (n > 4)
return FALSE;
/* Just drop this in the hightest bits*/
dwTagAndClass |= (dwClass << (32-3));
return TRUE;
}
BOOL ParseLength(PBYTE& pData, DWORD& dwSize, DWORD& dwLength)
{
if (dwSize == 0)
return FALSE;
if (!(pData[0] & 0x80))
{
dwLength = pData[0];
return Move(1, pData, dwSize);
}
DWORD dwBytes = pData[0] & 0x7f;
if (dwBytes == 0 || dwBytes > 8 || dwBytes + 1 > dwSize)
{
return FALSE;
}
dwLength = 0;
for (DWORD n = 0; n < dwBytes; ++n)
{
dwLength <<= 8;
dwLength += pData[1 + n];
}
return Move(dwBytes + 1, pData, dwSize);
}
DWORD HexDump(PBYTE pRoot, PBYTE pData, DWORD dwSize, PWSTR wszPrefix)
{
while (TRUE)
{
SIZE_T Address = pData - pRoot;
ConPrintf(StdOut, L"%04x: ", Address);
ConPuts(StdOut, wszPrefix);
for (DWORD n = 0; n < min(dwSize, 0x10); ++n)
{
ConPrintf(StdOut, L"%02x ", pData[n]);
}
if (dwSize <= 0x10)
break;
Move(0x10, pData, dwSize);
ConPuts(StdOut, L"\n");
}
return 3 * dwSize;
}
void PrintTag(PBYTE pRoot, PBYTE pHeader, DWORD dwTag, DWORD dwTagLength, PBYTE pData, PWSTR wszPrefix)
{
DWORD dwRemainder = HexDump(pRoot, pHeader, pData - pHeader, wszPrefix);
LPCWSTR wszTag = TagToName(dwTag);
DWORD dwPadding = dwRemainder + wcslen(wszPrefix);
while (dwPadding > 50)
dwPadding -= 50;
ConPrintf(StdOut, L"%*s; %s (%x Bytes)\n", 50 - dwPadding, L"", wszTag, dwTagLength);
}
struct OID_NAMES
{
CHAR* Oid;
LPCWSTR Names[20];
DWORD NumberOfNames;
};
BOOL WINAPI CryptOIDEnumCallback(_In_ PCCRYPT_OID_INFO pInfo, _Inout_opt_ void *pvArg)
{
OID_NAMES* Names = (OID_NAMES*)pvArg;
if (pInfo && pInfo->pszOID && !_stricmp(pInfo->pszOID, Names->Oid))
{
if (Names->NumberOfNames < RTL_NUMBER_OF(Names->Names))
{
for (DWORD n = 0; n < Names->NumberOfNames; ++n)
{
// We already have this..
if (!_wcsicmp(Names->Names[n], pInfo->pwszName))
return TRUE;
}
Names->Names[Names->NumberOfNames++] = pInfo->pwszName;
}
}
return TRUE;
}
void PrintOID(PBYTE pRoot, PBYTE pHeader, PBYTE pData, DWORD dwSize, PWSTR wszPrefix)
{
/* CryptFindOIDInfo expects the OID to be in ANSI.. */
CHAR szOID[250];
CHAR* ptr = szOID;
size_t cchRemaining = RTL_NUMBER_OF(szOID);
/* CryptFindOIDInfo just returns the first, we want multiple */
OID_NAMES Names = {0};
if (dwSize == 0)
return;
DWORD dwValue = 0, count = 0;
for (DWORD n = 0; n < dwSize; ++n)
{
dwValue <<= 7;
dwValue |= pData[n] & 0x7f;
if (pData[n] & 0x80)
{
if (++count >= 4)
break;
continue;
}
count = 0;
/* First & second octet have a special encoding */
if (ptr == szOID)
{
DWORD id1 = dwValue / 40;
DWORD id2 = dwValue % 40;
/* The first one can only be 0, 1 or 2, so handle special case: tc24.ber */
if (id1 > 2)
{
id2 += (id1 - 2) * 40;
id1 = 2;
}
StringCchPrintfExA(ptr, cchRemaining, &ptr, &cchRemaining, 0, "%d.%d", id1, id2);
}
else
{
StringCchPrintfExA(ptr, cchRemaining, &ptr, &cchRemaining, 0, ".%d", dwValue);
}
dwValue = 0;
}
if (dwValue || count)
{
/* We cannot format this, so just add abort */
return;
}
SIZE_T Address = pData - pRoot;
/* Pad with spaces instead of printing the address again */
DWORD addrDigits = (DWORD)log10((double)Address) + 1;
ConPrintf(StdOut, L"%*s ", max(addrDigits, 4), L"");
ConPrintf(StdOut, L"%s; %S", wszPrefix, szOID);
Names.Oid = szOID;
/* The order does not match a naive call with '0'... */
CryptEnumOIDInfo(0, 0, &Names, CryptOIDEnumCallback);
for (DWORD n = 0; n < Names.NumberOfNames; ++n)
{
if (n == 0)
ConPrintf(StdOut, L" %s", Names.Names[n]);
else if (n == 1)
ConPrintf(StdOut, L" (%s", Names.Names[n]);
else
ConPrintf(StdOut, L" / %s", Names.Names[n]);
}
ConPrintf(StdOut, L"%s\n", Names.NumberOfNames > 1 ? L")" : L"");
}
BOOL ParseAsn(PBYTE pRoot, PBYTE pData, DWORD dwSize, PWSTR wszPrefix, BOOL fPrint)
{
while (dwSize)
{
PBYTE pHeader = pData;
DWORD dwTagAndClass;
if (!ParseTag(pData, dwSize, dwTagAndClass))
{
if (fPrint)
ConPrintf(StdOut, L"CertUtil: -asn command failed to parse tag near 0x%x\n", pHeader - pRoot);
return FALSE;
}
DWORD dwTagLength;
if (!ParseLength(pData, dwSize, dwTagLength))
{
if (fPrint)
ConPrintf(StdOut, L"CertUtil: -asn command failed to parse tag length near 0x%x\n", pHeader - pRoot);
return FALSE;
}
if (dwTagLength > dwSize)
{
if (fPrint)
ConPrintf(StdOut, L"CertUtil: -asn command malformed tag length near 0x%x\n", pHeader - pRoot);
return FALSE;
}
if (fPrint)
PrintTag(pRoot, pHeader, dwTagAndClass, dwTagLength, pData, wszPrefix);
size_t len = wcslen(wszPrefix);
StringCchCatW(wszPrefix, MAX_PATH, dwTagLength != dwSize ? L"| " : L" ");
if (dwTagAndClass & ASN_TAG_IS_CONSTRUCTED)
{
if (!ParseAsn(pRoot, pData, dwTagLength, wszPrefix, fPrint))
{
return FALSE;
}
}
else
{
if (fPrint)
{
/* Special case for a bit string / octet string */
if ((dwTagAndClass == ASN_TAG_BITSTRING || dwTagAndClass == ASN_TAG_OCTET_STRING) && dwTagLength)
{
if (dwTagAndClass == ASN_TAG_BITSTRING)
{
/* First, we print the 'unused bits' field of the bit string */
HexDump(pRoot, pData, 1, wszPrefix);
ConPuts(StdOut, L"\n");
/* Move past it */
Move(1, pData, dwSize);
dwTagLength--;
}
/* Do we have any data left? */
if (dwTagLength)
{
/* Try to parse this as ASN */
if (ParseAsn(pRoot, pData, dwTagLength, wszPrefix, FALSE))
{
/* We succeeded, this _could_ be ASN, so display it as if it is */
if (!ParseAsn(pRoot, pData, dwTagLength, wszPrefix, TRUE))
{
/* Uhhh, did someone edit the data? */
ConPrintf(StdOut, L"CertUtil: -asn command unexpected failure parsing tag near 0x%x\n", pData - pRoot);
return FALSE;
}
/* Move past what we just parsed */
Move(dwTagLength, pData, dwSize);
/* Lie about this so that we don't also print a hexdump */
dwTagLength = 0;
}
}
}
/* Is there any data (left) to print? */
if (dwTagLength)
{
HexDump(pRoot, pData, dwTagLength, wszPrefix);
ConPuts(StdOut, L"\n");
StringCchCatW(wszPrefix, MAX_PATH, L" ");
/* Do we have additional formatters? */
switch (dwTagAndClass)
{
case ASN_TAG_OBJECT_ID:
PrintOID(pRoot, pHeader, pData, dwTagLength, wszPrefix);
break;
default:
break;
}
}
}
}
wszPrefix[len] = '\0';
if (!Move(dwTagLength, pData, dwSize))
{
/* This should not be possible, it was checked before! */
return FALSE;
}
}
return TRUE;
}
BOOL asn_dump(LPCWSTR Filename)
{
HANDLE hFile = CreateFileW(Filename, GENERIC_READ, FILE_SHARE_READ, NULL,
OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
ConPrintf(StdOut, L"CertUtil: -asn command failed to open: %d\n", GetLastError());
return FALSE;
}
DWORD dwSize = GetFileSize(hFile, NULL);
if (dwSize == INVALID_FILE_SIZE)
{
ConPrintf(StdOut, L"CertUtil: -asn command failed to get file size: %d\n", GetLastError());
CloseHandle(hFile);
return FALSE;
}
if (dwSize == 0)
{
ConPrintf(StdOut, L"CertUtil: -asn command got an empty file\n");
CloseHandle(hFile);
return FALSE;
}
PBYTE pData = (PBYTE)LocalAlloc(0, dwSize);
if (!pData)
{
ConPrintf(StdOut, L"CertUtil: -asn command failed to allocate: %d\n", GetLastError());
CloseHandle(hFile);
return FALSE;
}
DWORD cbRead;
BOOL fRead = ReadFile(hFile, pData, dwSize, &cbRead, NULL);
DWORD dwErr = GetLastError();
CloseHandle(hFile);
if (!fRead || cbRead != dwSize)
{
ConPrintf(StdOut, L"CertUtil: -asn command failed to read: %d\n", dwErr);
LocalFree(pData);
return FALSE;
}
WCHAR Buffer[MAX_PATH] = {0};
BOOL fSucceeded = ParseAsn(pData, pData, dwSize, Buffer, TRUE);
LocalFree(pData);
return fSucceeded;
}

View File

@@ -1,8 +1,10 @@
/*
* PROJECT: ReactOS certutil
* LICENSE: MIT (https://spdx.org/licenses/MIT)
* PURPOSE: CertUtil hashfile implementation
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
* PURPOSE: CertUtil stub
* COPYRIGHT: Copyright 2020 Mark Jansen (mark.jansen@reactos.org)
*
* Note: Only -hashfile is implemented for now, the rest is not present!
*/
#include "precomp.h"
@@ -10,7 +12,7 @@
#include <stdlib.h>
BOOL hash_file(LPCWSTR Filename)
static BOOL hash_file(LPCWSTR Filename)
{
HCRYPTPROV hProv;
BOOL bSuccess = FALSE;
@@ -85,3 +87,69 @@ BOOL hash_file(LPCWSTR Filename)
return bSuccess;
}
static void print_usage()
{
ConPuts(StdOut, L"Verbs:\n");
ConPuts(StdOut, L" -hashfile -- Display cryptographic hash over a file\n");
ConPuts(StdOut, L"\n");
ConPuts(StdOut, L"CertUtil -? -- Display a list of all verbs\n");
ConPuts(StdOut, L"CertUtil -hashfile -? -- Display help text for the 'hashfile' verb\n");
}
int wmain(int argc, WCHAR *argv[])
{
int n;
/* Initialize the Console Standard Streams */
ConInitStdStreams();
if (argc == 1) /* i.e. no commandline arguments given */
{
print_usage();
return EXIT_SUCCESS;
}
for (n = 1; n < argc; ++n)
{
if (!_wcsicmp(argv[n], L"-?"))
{
print_usage();
return EXIT_SUCCESS;
}
else if (!_wcsicmp(argv[n], L"-hashfile"))
{
if (argc == 3)
{
if (!_wcsicmp(argv[n+1], L"-?"))
{
print_usage();
return EXIT_SUCCESS;
}
else
{
if (!hash_file(argv[n+1]))
{
/* hash_file prints the failure itself */
return EXIT_FAILURE;
}
ConPuts(StdOut, L"CertUtil: -hashfile command completed successfully\n");
return EXIT_SUCCESS;
}
}
else
{
ConPrintf(StdOut, L"CertUtil: -hashfile expected 1 argument, got %d\n", argc - 2);
return EXIT_FAILURE;
}
}
else
{
ConPrintf(StdOut, L"CertUtil: Unknown verb: %s\n", argv[n]);
return EXIT_FAILURE;
}
}
return EXIT_SUCCESS;
}

View File

@@ -1,107 +0,0 @@
/*
* PROJECT: ReactOS certutil
* LICENSE: MIT (https://spdx.org/licenses/MIT)
* PURPOSE: CertUtil commandline handling
* COPYRIGHT: Copyright 2020 Mark Jansen (mark.jansen@reactos.org)
*
* Note: Only -hashfile and -asn are implemented for now, the rest is not present!
*/
#include "precomp.h"
#include <wincrypt.h>
#include <stdlib.h>
typedef struct
{
LPCWSTR Name;
BOOL (*pfn)(LPCWSTR Filename);
} Verb;
Verb verbs[] = {
{ L"hashfile", hash_file },
{ L"asn", asn_dump },
};
static void print_usage()
{
ConPuts(StdOut, L"Verbs:\n");
ConPuts(StdOut, L" -hashfile -- Display cryptographic hash over a file\n");
ConPuts(StdOut, L" -asn -- Display ASN.1 encoding of a file\n");
ConPuts(StdOut, L"\n");
ConPuts(StdOut, L"CertUtil -? -- Display a list of all verbs\n");
ConPuts(StdOut, L"CertUtil -hashfile -? -- Display help text for the 'hashfile' verb\n");
}
Verb* MatchVerb(LPCWSTR arg)
{
if (arg[0] != '-' && arg[0] != '/')
return NULL;
for (size_t n = 0; n < RTL_NUMBER_OF(verbs); ++n)
{
if (!_wcsicmp(verbs[n].Name, arg + 1))
{
return verbs + n;
}
}
return NULL;
}
int wmain(int argc, WCHAR *argv[])
{
int n;
/* Initialize the Console Standard Streams */
ConInitStdStreams();
if (argc == 1) /* i.e. no commandline arguments given */
{
print_usage();
return EXIT_SUCCESS;
}
for (n = 1; n < argc; ++n)
{
if (!_wcsicmp(argv[n], L"-?"))
{
print_usage();
return EXIT_SUCCESS;
}
Verb* verb = MatchVerb(argv[n]);
if (verb)
{
if (argc != 3)
{
ConPrintf(StdOut, L"CertUtil: -%s expected 1 argument, got %d\n", verb->Name, argc - 2);
return EXIT_FAILURE;
}
if (!_wcsicmp(argv[n+1], L"-?"))
{
print_usage();
return EXIT_SUCCESS;
}
if (!verb->pfn(argv[n+1]))
{
/* The verb prints the failure */
return EXIT_FAILURE;
}
ConPrintf(StdOut, L"CertUtil: -%s command completed successfully\n", verb->Name);
return EXIT_SUCCESS;
}
else
{
ConPrintf(StdOut, L"CertUtil: Unknown verb: %s\n", argv[n]);
return EXIT_FAILURE;
}
}
return EXIT_SUCCESS;
}

View File

@@ -7,14 +7,10 @@
#include <windef.h>
#include <winbase.h>
#include <strsafe.h>
#include <winreg.h>
#include <winuser.h>
#include <conutils.h>
BOOL hash_file(LPCWSTR Filename);
BOOL asn_dump(LPCWSTR Filename);
#endif /* __CERTUTIL_PRECOMP_H */

View File

@@ -9,7 +9,7 @@ COMP [/L] [/A] [данные1] [данные2]\n\n\
/A Вывод различий в формате ASCII (по умолчанию: шестнадцатиричный).\n\
/L Вывод номеров строк, в которых обнаружены различия.\n"
IDS_INVALIDSWITCH "Недопустимый ключ - /%c\n"
IDS_BADSYNTAX "Неверный формат командной строки\n"
IDS_BADSYNTAX "Не верный формат командной строки\n"
IDS_FILEERROR "Не удалось найти/открыть файл: %s\n"
IDS_COMPARING "Сравнение %s и %s...\n"
IDS_FILESIZEERROR "Не удалось определить размер файла: %s\n"

View File

@@ -1,5 +1,5 @@
add_definitions(-DCSCRIPT_BUILD)
add_definitions(-DCSCRIPT_BUILD -D__WINESRC__)
set(wscript_folder ${REACTOS_SOURCE_DIR}/base/applications/cmdutils/wscript)
include_directories(${wscript_folder})
@@ -13,11 +13,9 @@ add_executable(cscript ${SOURCE} rsrc.rc)
add_idl_headers(cscript_idlheader ihost.idl)
add_typelib(ihost.idl)
set_source_files_properties(rsrc.rc PROPERTIES OBJECT_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ihost.tlb)
target_link_libraries(cscript uuid wine oldnames)
target_link_libraries(cscript uuid wine)
set_module_type(cscript win32cui UNICODE)
add_delay_importlibs(cscript shlwapi)
add_importlibs(cscript shell32 oleaut32 ole32 advapi32 user32 msvcrt kernel32 ntdll)
add_dependencies(cscript stdole2 cscript_idlheader)
add_pch(cscript ${wscript_folder}/precomp.h SOURCE)
add_cd_file(TARGET cscript DESTINATION reactos/system32 FOR all)
set_wine_module_FIXME(cscript) # CORE-5743: No ARRAY_SIZE macro

View File

@@ -15,7 +15,28 @@
#include <winbase.h>
#include <winuser.h>
#include <wincon.h>
#include <wincon_undoc.h>
/* Console API functions which are absent from wincon.h */
#define EXENAME_LENGTH (255 + 1)
VOID
WINAPI
ExpungeConsoleCommandHistoryW(LPCWSTR lpExeName);
DWORD
WINAPI
GetConsoleCommandHistoryW(LPWSTR lpHistory,
DWORD cbHistory,
LPCWSTR lpExeName);
DWORD
WINAPI
GetConsoleCommandHistoryLengthW(LPCWSTR lpExeName);
BOOL
WINAPI
SetConsoleNumberOfCommandsW(DWORD dwNumCommands,
LPCWSTR lpExeName);
#include "doskey.h"
@@ -284,8 +305,8 @@ wmain(VOID)
{
pszExeName = RemoveQuotes(pArgStart + 9);
}
else if (!_wcsicmp(pArgStart, L"/H") ||
!_wcsicmp(pArgStart, L"/HISTORY"))
else if (!wcsicmp(pArgStart, L"/H") ||
!wcsicmp(pArgStart, L"/HISTORY"))
{
PrintHistory();
}
@@ -293,20 +314,20 @@ wmain(VOID)
{
SetConsoleNumberOfCommandsW(_wtoi(pArgStart + 10), pszExeName);
}
else if (!_wcsicmp(pArgStart, L"/REINSTALL"))
else if (!wcsicmp(pArgStart, L"/REINSTALL"))
{
ExpungeConsoleCommandHistoryW(pszExeName);
}
else if (!_wcsicmp(pArgStart, L"/INSERT"))
else if (!wcsicmp(pArgStart, L"/INSERT"))
{
SetInsert(ENABLE_INSERT_MODE);
}
else if (!_wcsicmp(pArgStart, L"/OVERSTRIKE"))
else if (!wcsicmp(pArgStart, L"/OVERSTRIKE"))
{
SetInsert(0);
}
else if (!_wcsicmp(pArgStart, L"/M") ||
!_wcsicmp(pArgStart, L"/MACROS"))
else if (!wcsicmp(pArgStart, L"/M") ||
!wcsicmp(pArgStart, L"/MACROS"))
{
PrintMacros(pszExeName, L"");
}
@@ -314,7 +335,7 @@ wmain(VOID)
!_wcsnicmp(pArgStart, L"/MACROS:", 8))
{
LPWSTR exe = RemoveQuotes(wcschr(pArgStart, L':') + 1);
if (!_wcsicmp(exe, L"ALL"))
if (!wcsicmp(exe, L"ALL"))
PrintAllMacros();
else
PrintMacros(exe, L"");

View File

@@ -6,9 +6,7 @@
#define REACTOS_STR_ORIGINAL_FILENAME "fc.exe"
#include <reactos/version.rc>
/* UTF-8 */
#pragma code_page(65001)
#pragma code_page(65001) /* UTF-8 */
#ifdef LANGUAGE_BG_BG
#include "lang/bg-BG.rc"
#endif

View File

@@ -2,40 +2,40 @@ LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
STRINGTABLE
BEGIN
IDS_USAGE "Compare deux fichiers ou un ensemble de fichiers et affiche les différences\n\
entre eux.\n\
IDS_USAGE "Compares two files or sets of files and displays the differences between\n\
them.\n\
\n\
FC [/A] [/C] [/L] [/LBn] [/N] [/OFF[LINE]] [/T] [/U] [/W] [/nnnn]\n\
[drive1:][path1]filename1 [drive2:][path2]filename2\n\
FC /B [drive1:][path1]filename1 [drive2:][path2]filename2\n\
\n\
/A Affiche uniquement la première et la dernière ligne pour chaque ensemble de différences.\n\
/B Effectue une comparaison binaire.\n\
/C Ne tient pas compte de la casse des lettres.\n\
/L Compare les fichiers sous forme de texte ASCII.\n\
/LBn Définit le nombre maximal de différences consécutives\n\
au nombre de lignes spécifié (par défaut : 100).\n\
/N Affiche les numéros de ligne sur une comparaison ASCII.\n\
/OFF[LINE] N'ignore pas les fichiers ayant l'attribut hors-ligne.\n\
/T Ne transforme pas les tabulations en espaces (par défaut : transformer).\n\
/U Compare les fichiers en tant que fichiers texte UNICODE.\n\
/W Compresse les espaces blancs (tabulations et espaces) pour la comparaison.\n\
/nnnn Spécifie le nombre de lignes consécutives qui doivent correspondre\n\
après une différence (par défaut : 2).\n\
/A Displays only first and last lines for each set of differences.\n\
/B Performs a binary comparison.\n\
/C Disregards the case of letters.\n\
/L Compares files as ASCII text.\n\
/LBn Sets the maximum consecutive mismatches to the specified\n\
number of lines (default: 100).\n\
/N Displays the line numbers on an ASCII comparison.\n\
/OFF[LINE] Doesn't skip files with offline attribute set.\n\
/T Doesn't expand tabs to spaces (default: expand).\n\
/U Compare files as UNICODE text files.\n\
/W Compresses white space (tabs and spaces) for comparison.\n\
/nnnn Specifies the number of consecutive lines that must match\n\
after a mismatch (default: 2).\n\
[drive1:][path1]filename1\n\
Spécifie le premier fichier ou ensemble de fichiers à comparer.\n\
Specifies the first file or set of files to compare.\n\
[drive2:][path2]filename2\n\
Spécifie le second fichier ou ensemble de fichiers à comparer.\n"
IDS_NO_DIFFERENCE "FC: Aucune différence constatée\n"
IDS_LONGER_THAN "FC: %ls plus grand que %ls\n"
IDS_COMPARING "Compare les fichiers %ls et %ls\n"
IDS_OUT_OF_MEMORY "FC: Dépassement de mémoire\n"
IDS_CANNOT_READ "FC: Ne peut pas lire depuis %ls\n"
IDS_INVALID_SWITCH "FC: Option invalide\n"
IDS_CANNOT_OPEN "FC: Ne peut pas ouvrir %ls - Fichier ou répertoire inexistant\n"
IDS_NEEDS_FILES "FC: Nombre insuffisant de fichiers spécifiés\n"
IDS_CANT_USE_WILDCARD "Les caractères joker ('*' et '?') ne sont pas encore supportés\n"
IDS_DIFFERENT "FC: Les fichiers %ls et %ls sont différents\n"
IDS_TOO_LARGE "FC: Fichier %ls trop grand\n"
IDS_RESYNC_FAILED "La resynchronisation a échoué. Les fichiers sont trop différents.\n"
Specifies the second file or set of files to compare.\n"
IDS_NO_DIFFERENCE "FC: no differences encountered\n"
IDS_LONGER_THAN "FC: %ls longer than %ls\n"
IDS_COMPARING "Comparing files %ls and %ls\n"
IDS_OUT_OF_MEMORY "FC: Out of memory\n"
IDS_CANNOT_READ "FC: cannot read from %ls\n"
IDS_INVALID_SWITCH "FC: Invalid Switch\n"
IDS_CANNOT_OPEN "FC: cannot open %ls - No such file or folder\n"
IDS_NEEDS_FILES "FC: Insufficient number of file specifications\n"
IDS_CANT_USE_WILDCARD "Wildcard ('*' and '?') are not supported yet\n"
IDS_DIFFERENT "FC: File %ls and %ls are different\n"
IDS_TOO_LARGE "FC: File %ls too large\n"
IDS_RESYNC_FAILED "Resync failed. Files are too different.\n"
END

Some files were not shown because too many files have changed in this diff Show More